Changes

Jump to navigation Jump to search
no edit summary
Line 326: Line 326:  
<br clear=all>
 
<br clear=all>
   −
=Key bindings=
+
=MIDI-learning=
 +
 
 +
MIDI-learning allows you to easily bind specific MIDI events with Zynthian-UI actions. There are 2 types of MIDI events you can learn:
 +
 
 +
====MIDI CC====
 +
[[File:Zynthian_ui_midi_cc_learn_01.png|400px|right]]
 +
[[File:Zynthian_ui_midi_cc_learn_02.png|400px|right]]
 +
You can map any parameter in the Zynthian UI to a CC knob/slider on your external MIDI controller. I intend to extend this feature to other MIDI messages, but currently only CC messages are supported. Until then, MIDI-filter rules can be used instead.
 +
 
 +
Learning a MIDI-CC is quite easy:
 +
 
 +
'''1.''' From the control screen, you click the snapshot button. You will be in CC MIDI-learn screen. It’s identical to the Control screen except that all the controllers have a tiny yellow “???” in the bottom.
 +
 
 +
'''2.''' Move a zynthian controller. Its tiny “???” will change to green while the other 3 will go back to normal state.
 +
 
 +
'''3.''' Finally, move a knob/fader in your MIDI keyboard/controller and the binding is done. The new CC number should appear in the bottom of the learned controller, replacing the tiny "???".
 +
 
 +
Of course, MIDI-learning configuration, including CC mappings, is stored and restored with snapshots.
 +
 
 +
'''Technical Note:''' MIDI-CC learning works with all the engines. It uses the engine’s native MIDI-learning capabilities when available. Zynthian’s MIDI-filter mappings are used for the rest. To be more explicit, native MIDI-learning is used for MOD-UI and ZynAddSubFX OSC parameters. All the other parameters are managed by Zynthian’s MIDI-filter mapping.
 +
 
 +
<br clear=all>
 +
 
 +
====MIDI Program Change====
 +
[[File:Zynthian_ui_midi_zs3_learn.png|400px|right]]
 +
You can map "SubSnapshots" (ZS3) to MIDI programs. The idea behind this feature is to have a fast preset-change mechanism that can be used on stage. In combination with the “Single Layer” feature, it turns Zynthian in a “Stage-Beast”. You can prepare a snapshot for the full performance, and use ZS3 for fast changing from a song to another, or between parts inside the same song.
 +
 
 +
Learning a SubSnapShot is obscenely easy:
 +
 
 +
'''1.''' From the control screen, you click the snapshot button '''twice'''. You will see the current list of ZS3s and a message: “Waiting for Program Change…”
 +
 
 +
'''2.''' Simply push a “Program Change” button in your keyboard/controller and the ZS3 will be stored in memory, associated with the Program number you send.
 +
 
 +
After that, you can recall any stored ZS3 by simply pushing the same PC button again. Of course, the memory-stored zs3s will be saved with your snapshot and restored when loaded again.
 +
 
 +
Every zs3 includes:
 +
 
 +
    - Layer ID
 +
    - Bank
 +
    - Preset
 +
    - Controller values
 +
 
 +
As you can see, it has sense in a SnapShot context, where a set of layers are defined. Zs3 changing is very fast, as no engine must be started.
 +
<br clear=all>
 +
 
 +
====MIDI-CC Learning with touch interface====
 +
 
 +
First, you need a working touch interface in your display. If you don't have a touchscreen, you could use a mouse ...
 +
 
 +
[[File:Zynthian_ui_midi_learning.png|400px|right]]
 +
'''Learning:'''
 +
1. In the "Instrument Control" screen, navigate through the parameter screen list to get to the parameter you want to learn.
 +
2. In the parameter/controller area, slide with your fingernail from '''left to right'''. A green "??" should appear at the bottom.
 +
3. On your MIDI controller, move the desired knob/slider (or a CC-assigned pad).  The green "??" should be replaced by a tiny number, and the parameter should change when you move the knob/slider or push the pad. CC-assigned pads can be very useful for on/off parameters. 
 +
<br clear=all>
 +
 
 +
[[File:Zynthian_ui_midi_unlearning.png|400px|right]]
 +
'''Unlearning:'''
 +
1. In the "Instrument Control" screen, navigate through the parameter screen list until you get to the parameter you want to unlearn.
 +
2. In the parameter/controller area, slide with your fingernail from '''right to left'''. The tiny number, indicating the current CC assignment, should disappear or change. If the parameter is an engine-specific controlled engine, the number will disappear. If the parameter is a hardcoded MIDI-mapped parameter, then the number will change.
 +
<br clear=all>
 +
 
 +
=CUIA: Callable UI Actions=
 +
 
 +
The Zynthian UI can be controlled remotely using a set of commands called CUIA: Callable UI Actions. These CUIA are available on several interfaces: Key Bindings, MIDI, OSC, etc.
 +
 
 +
==Key Bindings: Controlling the UI with a computer keyboard==
    
The user interface may be driven using a USB keyboard, e.g. QWERTY, Dvorak, etc.
 
The user interface may be driven using a USB keyboard, e.g. QWERTY, Dvorak, etc.
Line 397: Line 463:  
|}
 
|}
    +
==Controlling the UI with MIDI messages==
   −
=MIDI-learning=
+
These actions are available using MIDI messages on the Master Channel (default 16, but configurable with the webconf tool), specifically, note-on messages (0x9) are used so you can use a MIDI keyboard for controlling the Zynthian UI. For instance, to Power Off the zynthian, you send this message:
 
+
MIDI-learning allows you to easily bind specific MIDI events with Zynthian-UI actions. There are 2 types of MIDI events you can learn:
+
0x9F  ( Channel 16 Note ON)
 
+
  0x00  ( Note code for POWER_OFF as below )
====MIDI CC====
+
0x00  (Velocity/parameter)
[[File:Zynthian_ui_midi_cc_learn_01.png|400px|right]]
  −
[[File:Zynthian_ui_midi_cc_learn_02.png|400px|right]]
  −
You can map any parameter in the Zynthian UI to a CC knob/slider on your external MIDI controller. I intend to extend this feature to other MIDI messages, but currently only CC messages are supported. Until then, MIDI-filter rules can be used instead.
  −
 
  −
Learning a MIDI-CC is quite easy:
  −
 
  −
'''1.''' From the control screen, you click the snapshot button. You will be in CC MIDI-learn screen. It’s identical to the Control screen except that all the controllers have a tiny yellow “???” in the bottom.
  −
 
  −
'''2.''' Move a zynthian controller. Its tiny “???” will change to green while the other 3 will go back to normal state.
  −
 
  −
'''3.''' Finally, move a knob/fader in your MIDI keyboard/controller and the binding is done. The new CC number should appear in the bottom of the learned controller, replacing the tiny "???".
  −
 
  −
Of course, MIDI-learning configuration, including CC mappings, is stored and restored with snapshots.
  −
 
  −
  '''Technical Note:''' MIDI-CC learning works with all the engines. It uses the engine’s native MIDI-learning capabilities when available. Zynthian’s MIDI-filter mappings are used for the rest. To be more explicit, native MIDI-learning is used for MOD-UI and ZynAddSubFX OSC parameters. All the other parameters are managed by Zynthian’s MIDI-filter mapping.
  −
 
  −
<br clear=all>
  −
 
  −
====MIDI Program Change====
  −
[[File:Zynthian_ui_midi_zs3_learn.png|400px|right]]
  −
You can map "SubSnapshots" (ZS3) to MIDI programs. The idea behind this feature is to have a fast preset-change mechanism that can be used on stage. In combination with the “Single Layer” feature, it turns Zynthian in a “Stage-Beast”. You can prepare a snapshot for the full performance, and use ZS3 for fast changing from a song to another, or between parts inside the same song.
  −
 
  −
Learning a SubSnapShot is obscenely easy:
     −
'''1.''' From the control screen, you click the snapshot button '''twice'''. You will see the current list of ZS3s and a message: “Waiting for Program Change…”
+
or play the A-3 key, if your keyboard have it ;-)
   −
'''2.''' Simply push a “Program Change” button in your keyboard/controller and the ZS3 will be stored in memory, associated with the Program number you send.
+
This is the full list:
   −
After that, you can recall any stored ZS3 by simply pushing the same PC button again. Of course, the memory-stored zs3s will be saved with your snapshot and restored when loaded again.
+
"0": "POWER_OFF",
 +
"1": "REBOOT",
 +
"2": "RESTART_UI",
 +
"3": "RELOAD_MIDI_CONFIG",
   −
Every zs3 includes:
+
"10": "ALL_NOTES_OFF",
 +
"11": "ALL_SOUNDS_OFF",
 +
"12": "ALL_OFF",
   −
    - Layer ID
+
"51": "SELECT",                    D#3/Eb3
    - Bank
+
"52": "SELECT_UP",                E3
    - Preset
+
"53": "SELECT_DOWN",                  F3
    - Controller values
     −
As you can see, it has sense in a SnapShot context, where a set of layers are defined. Zs3 changing is very fast, as no engine must be started.
+
"64": "SWITCH_BACK_SHORT",         E4
<br clear=all>
+
"63": "SWITCH_BACK_BOLD",           D#4/Eb4
 +
"62": "SWITCH_BACK_LONG",           D4
   −
====MIDI-CC Learning with touch interface====
+
"65": "SWITCH_SELECT_SHORT",        F4
 
+
"66": "SWITCH_SELECT_BOLD",        F#4/Gb4
First, you need a working touch interface in your display. If you don't have a touchscreen, you could use a mouse ...
+
"67": "SWITCH_SELECT_LONG",        G4
 +
 +
"60": "SWITCH_LAYER_SHORT",        C4
 +
"61": "SWITCH_LAYER_BOLD",         C#4/Db4
 +
"59": "SWITCH_LAYER_LONG",         B4
   −
[[File:Zynthian_ui_midi_learning.png|400px|right]]
+
"71": "SWITCH_SNAPSHOT_SHORT",      B5
'''Learning:'''
+
"72": "SWITCH_SNAPSHOT_BOLD",       C5
1. In the "Instrument Control" screen, navigate through the parameter screen list to get to the parameter you want to learn.
+
  "73": "SWITCH_SNAPSHOT_LONG"       C#5/Db5
  2. In the parameter/controller area, slide with your fingernail from '''left to right'''. A green "??" should appear at the bottom.
  −
3. On your MIDI controller, move the desired knob/slider (or a CC-assigned pad).  The green "??" should be replaced by a tiny number, and the parameter should change when you move the knob/slider or push the pad. CC-assigned pads can be very useful for on/off parameters. 
  −
<br clear=all>
     −
[[File:Zynthian_ui_midi_unlearning.png|400px|right]]
+
[[File:2Oct_Keyboard_CUIA.png|600px|Keyboard]]
'''Unlearning:'''
  −
1. In the "Instrument Control" screen, navigate through the parameter screen list until you get to the parameter you want to unlearn.
  −
2. In the parameter/controller area, slide with your fingernail from '''right to left'''. The tiny number, indicating the current CC assignment, should disappear or change. If the parameter is an engine-specific controlled engine, the number will disappear. If the parameter is a hardcoded MIDI-mapped parameter, then the number will change.
  −
<br clear=all>
 
584

edits

Navigation menu