Skip to content

odisfm/zcx-core

Repository files navigation

zcx-core

Extending ClyphX Pro from NativeKontrol, zcx turns the user mode of your matrix-equipped MIDI controller into a deeply customisable interface for Ableton Live. It offers an alternative configuration system that makes heavy use of yaml files and templating to allow rapid prototyping of new ideas. It aims to enable musicians to program more ambitious controller setups with less work than it took before.

Thumbnail of a zcx overview video on YouTube

documentation

download

discord

hardware

zcx is currently maintained for these devices, with more planned:

  • Ableton Push 1
  • Ableton Push 2
  • Akai APC mini mk2
  • Novation Launchpad X
  • Novation Launchpad Pro mk3
  • Novation Launchpad Mini mk3
  • generic controllers

If your device isn't here


features

zcx scripts contain many features that are impractical or impossible to replicate natively in ClyphX

built for modes

Easily define any control as a modifier for any other control.

record:
  color: red
  gestures:
    pressed: SEL / ARM ON
    pressed__shift: SEL / STOP
    pressed_delayed: SREC  8
    pressed_delayed__shift: SREC 16
    pressed__shift__select: SETSTOP

shift:
  gestures:
    pressed:
      mode_on: shift
    released:
      mode_off: shift
      
select:
  gestures:
    pressed:
      mode_on: select
    released:
      mode_off: select

see how


unlimited pages

Turn an 8x8 matrix into an 8×8×∞ matrix.

# matrix_sections.yaml

home_row:
  col_start: 0
  col_end: 7
  row_start: 0
  row_end: 1

# pages.yaml

pages:
  main:
    - home_row
    - main_left
    - main_right
  track_page:
    - home_row
    - track_control
    - device_control
  drums:
    - home_row
    - drums_section

see how


rapid configuration

Configure dozens of buttons in seconds.

# matrix_sections.yaml

clip_section:
  col_start: 0
  col_end: 7
  row_start: 0
  row_end: 7

# matrix_sections/clip_section.yaml

color:
  palette: nebula
gestures:
  pressed: SEL / PLAY ${me.Index}
pad 1: SEL / PLAY 1
pad 2: SEL / PLAY 2
..
pad 64: SEL / PLAY 64

see how


deeper customisation

Unlock the full capabilities of your hardware.

play:
  color:
    pulse:
      a: red
      b: purple
      speed: 1
  gestures:
    double_clicked: STOPALL NQ

see how


intelligent controls

Specialised control types give smart LED feedback without you writing any code.

__state_row:
  includes: [
    state_1, state_2, state_3, state_4
  ]
  type: page
  page: ${me.index}
  gestures:
    pressed:
      page: ${me.index}

play:
  type: transport
  transport: play
  gestures:
    pressed: SETPLAY

see how


reusable components

Use templates instead of repeating definitions. Make a change in one place to see the differences across the whole control surface.

# control_templates.yaml

my_green_button:
  color: green

hold_warning:
  gestures:
    released_immediately:
      msg: You must hold this control to trigger it!


# named_controls.yaml

scene_1:
  template: [hold_warning, my_green_button]
  #color: green
  gestures:
    pressed_delayed: SCENE 1
    #released_immediately:
      # msg: You must hold this control to trigger it!

see how


About

zcx + ClyphX Pro turns your matrix-equipped MIDI controller into a custom control surface for Ableton Live

Topics

Resources

Contributing

Stars

Watchers

Forks

Contributors 2

  •  
  •