Line 252: |
Line 252: |
| ==Admin Menu== | | ==Admin Menu== |
| [[File:Zynthian_ui_admin.png|400px|right]] | | [[File:Zynthian_ui_admin.png|400px|right]] |
| + | [[File:Zynthian_ui_admin_02.png|400px|right]] |
| Pressing the Back knob, when you are in the Layer List screen, brings you to the Admin menu. | | Pressing the Back knob, when you are in the Layer List screen, brings you to the Admin menu. |
| | | |
Line 270: |
Line 271: |
| | | |
| <br clear=all> | | <br clear=all> |
− |
| |
| | | |
| ==Audio & MIDI Recording== | | ==Audio & MIDI Recording== |
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>
| |