Difference between revisions of "Zynthian UI Users Guide"

From ZynthianWiki
Jump to: navigation, search
(Touch Screen UI)
(Playing ZynPad)
 
(219 intermediate revisions by 6 users not shown)
Line 1: Line 1:
  
 
=General Concepts=
 
=General Concepts=
 +
 
[[File:zynthian_controllers.png|430px|right]]
 
[[File:zynthian_controllers.png|430px|right]]
[[File:zynthian_ui_workflow_1.png|400px|thumb]]
 
[[File:zynthian_ui_workflow_2.png|400px|thumb]]
 
  
The Zynthian UI is displayed on a touch display and controlled by 4 rotary-encoders with switches (push).
+
The physical Zynthian UI is displayed on a display and controlled by 4 knobs (rotary-encoders with push-switches). You can also control the UI with a touch-display, a mouse or keyboard (computer keyboard or MIDI keyboard, both!)
The encoders/switch knobs are used to navigate between the different screens/menus, select options and change the instrument parameters, acting as MIDI/OSC controllers. You can emulate the knobs behaviour using the touch-display, but it's sub-optimal and accessing some features could be tricky.
+
 
 +
Anyway, the 4 knobs+switches are the primary control mechanism used to navigate the UI: selecting options on menus and adjust the instrument parameters. The knobs can act as assignable MIDI/OSC controllers for the instrument's parameters (frequently lots of them!). You can emulate the knob's behavior using the touch-display, but it's sub-optimal and accessing some features could be tricky.
  
Currently there are two main screen-types (screen-layouts):
+
There are two main screen-layout types:
  
* '''Selector Screen''': a list of items that you can scroll and select with the SELECT (4) knob
+
* '''Selector Screen''': a list of items that you can scroll and select with the SELECT knob (CTRL-4)
* '''Controller Screen''': In the corners, 4 control widgets (one for each knob), with label and value indicator (graphic and numeric). In the middle, a list of controller maps which you can use to change or rotate using the SELECT (4) knob.
+
* '''Controller Screen''': 4 control widgets in the corners (one for each knob), with label and value indicators (graphic and numeric). In the middle there is a list of controller maps, which you can use to change the parameters controlled by the knobs.
  
Almost every Zynthian UI screen fits in one of these 2 types, however, other screen-types does exist:
+
Almost every Zynthian UI screen is of one of these 2 types, however, other screen-layouts do exist:
  
 
* '''Confirmation Screen''': It will ask you to confirm some operation.
 
* '''Confirmation Screen''': It will ask you to confirm some operation.
 
* '''XY Controller Screen''': It allows to modify 2 parameters at once using the touch interface.
 
* '''XY Controller Screen''': It allows to modify 2 parameters at once using the touch interface.
* '''Info Screen''': It display info about some operation, like "Update Software", or "Network Info"
+
* '''Info Screen''': It displays info about an operation, like "Update Software", or "Network Info"
* '''Sequencer''': It's a planned feature not implemented yet ;-)
+
  
There are 3 types of clicks (push) that can be performed, depending on how long you hold down the knob (or push on the touch-display):
+
There are 3 types of clicks (push-switch actions) that can be performed, depending on how long you hold down the knob (or hold your finger on the touch-display).
  
* '''short:''' less than 0.3 seconds
+
* '''short click:''' less than 0.3 seconds
* '''bold:''' between 0.3 and 2 seconds
+
* '''bold click:''' between 0.3 and 2 seconds
* '''long:''' more than 2 seconds
+
* '''long click:''' more than 2 seconds
  
Actions for each knob and click-type are context dependent. Generally, the SELECT knob is used to navigate and a short click on it will select an item on a "Selector Screen". Inside a "Controller Screen", short clicks can be used to rotate between layers (LAYER knob) or between controller pages (SELECT knob). "Bold-clicks" are intended as shortcuts for jumping to some specific screens. Clicking the BACK knob generally jumps to the previous screen in the workflow sequence.
+
These timing values are the default ones. You can adjust them to your personal feeling from the UI options on the webconf tool.
  
Most of actions depends on context (the current screen), but there are some actions that are global and will work from any screen:
+
Click actions for each knob are context dependent. The SELECT knob is mainly used to navigate, and a short click on it will select an item on a "Selector Screen". Inside a "Controller Screen", short clicks can be used to rotate between layers (LAYER knob) or between controller pages (SELECT knob). "Bold-clicks" are intended as shortcuts for jumping to some specific screens. Clicking the BACK knob generally jumps to the previous screen in the workflow sequence.
  
* '''long-back''': go to the admin menu
+
Most of the actions depend of context (current screen), but there are some actions that are global and will work from any screen:
* '''long-select''': power off
+
  
Snapshot actions are also global an will work from any point in the workflow. If you click SNAPSHOT (3) once, you get the Load Snapshot menu, another click and you will be in the Save Snapshot menu. If you bold-click SNAPSHOT then you will go directly to the Save Snapshot screen. The Snapshot screen have 2 levels: bank selection (directory) and snapshot (file). These actions are better explained below.
+
* '''bold-back''': Main menu
 +
* '''bold-snapshot''': Load Snapshot menu
 +
* '''long-layer''': ALSA Mixer app
 +
* '''long-back''': PANIC! All Notes Off
 +
* '''long-snapshot''': Audio Recorder
 +
* '''long-select''': Power Off
 +
 
 +
<br clear=all>
 +
 
 +
[[File:zynthian_ui_control_status.png|400px|right]]
 +
 
 +
=The Title Bar=
 +
The title bar have 2 functions:
 +
 
 +
* Kind of Breadcrumb, normally showing the screen title or layer information: MIDI channel, engine, bank & preset
 +
* Back-button, when using the touch-interface. I know, it's far from intuitive, but Zynthian-UI was not designed with touch-navigation in mind.
 +
 
 +
=The Status Area=
 +
 
 +
On the top-right corner there is a small area where some useful information is displayed in real time:
 +
 
 +
[[File:Status display.png|400px|right]]
 +
 
 +
* Audio Peak-meter or CPU-load => 1 or 2 small horizontal bars on the top right.
 +
* MIDI-IN => '''Blue M''' flag
 +
* Xrun => '''Red Warning''' flag
 +
* Under-voltage => '''Red Lightning''' flag
 +
* Over-temperature => '''Red Thermometer''' flag
 +
* Recording Audio => '''Red Circle''' flag
 +
* Playing Audio => '''Green Play''' flag
 +
 
 +
===The Peak-meter===
 +
 
 +
The Audio Peak-meter is shown by default. The meter covers the range -50dBFS to 0dBFS, i.e. maximum permissible level at full scale (far right) down to 50dB below (far left):
 +
 
 +
* The green segment covers the range -50dBFS to -10dBFS.
 +
* The yellow segment covers the range -10dBFS to -3dBFS.
 +
* The red segment covers the range -3dBFS to 0dBFS.
 +
 
 +
There are independent meters for left and right channels which monitor the system output, i.e. the mix of audio that feeds the Zynthian output. Level decays with a logarithmic rule, taking one second to decay to -200dBFS so will decay to -50dBFS (the displayed range) in about quarter of a second. Peaks are displayed instantly, i.e. the attack of the meter is immediate(*). The peak hold bar remains for two seconds or until a higher peak is reached.
 +
 
 +
(*) Meter is updated 5 times per second so there can be 200 ms delay in peak being displayed.
 +
 
 +
Alternately, CPU-load bar can be enabled from webconf, replacing the Audio Peak-meter. The CPU-load bar shows the CPU usage as calculated by the Jack Audio Server:
 +
 
 +
This is a running average of the time it takes to execute a full process cycle for all clients as a percentage of the real time available per cycle determined by the buffer size and sample rate.  
 +
 
 +
===The Flags===
 +
 
 +
* The '''Blue M''' flag is shown when MIDI messages pass thru the MIDI router. Not all messages are detected. Only CC, Program Change and Note On/Off.
 +
 
 +
* The '''Red Warning''' flag is shown when there are Xruns. You should hear clicks and pops too.
 +
 
 +
* When the '''Red Lightning''' or '''Red Thermometer''' flag is shown, your zynthian is working in a degraded state, with the CPU frequency capped to 600-800 MHz, trying to stabilize the system and avoid a system crash. You shouldn't see any of them and if you do so, you should consider looking for a better power source (under-voltage) or using a heat sink (over-temperature).
 +
 
 +
* Finally, the '''Red Circle''' and '''Green Play''' flags show the status of audio/MIDI capture: recording / playing
 +
 
 +
<br clear=all>
  
 
=The Zynthian UI Workflow=
 
=The Zynthian UI Workflow=
  
The next flowcharts show the different "screens" or "functions" and the way to reach each one using the 4 switches.
+
The following flowcharts show the different "screens" or "menus" and how to reach each one using the 4 switches.
It could be a good idea to print these 2 flowcharts and keep it near of your Zynthian Box until you memorize the flow and the spirit of Zynthian UI got inside of you ;-)
+
It would be a good idea to print these flowcharts and keep them near your Zynthian Box until you memorize the workflow.
  
If you want to contribute improving these flowcharts, you can edit it using the Google Documents Tools:
+
<gallery mode="slideshow" widths="240" heights="320">
 +
Image:zynthian_ui_workflow__main.png|''[[commons:Main Sequence|Main Sequence]]''
 +
Image:zynthian_ui_workflow__layer_options.png|''[[commons:Layer Options|Layer Options]]''
 +
Image:zynthian_ui_workflow__snapshots.png|''[[commons:Snapshots|Snapshots]]''
 +
Image:zynthian_ui_workflow__midi_learning.png|''[[commons:MIDI Learning|MIDI Learning]]''
 +
</gallery>
  
  - [https://docs.google.com/drawings/d/1jmt3zrJjPkbqj3hpzCIwRgFIKxiX2UptebBA_GN8e5I/edit?usp=sharing Main sequence: zynthian_ui_workflow_1]
+
If you want to contribute to improving these flowcharts, you can edit them using the Google Documents Tools:
  - [https://docs.google.com/drawings/d/1Um1HVCvvb4gZF_X-vcIN9cTxYIBRCtZ5oxniUdSTB3c/edit?usp=sharing Aux. Sequences: zynthian_ui_workflow_2]
+
 
 +
  - [https://docs.google.com/drawings/d/1jmt3zrJjPkbqj3hpzCIwRgFIKxiX2UptebBA_GN8e5I Main sequence: zynthian_ui_workflow_main]
 +
- [https://docs.google.com/drawings/d/1C8kfovwXxuabl1u-UlrnHY8xzFFNiqiQWt1mmD5UXak Layer Options: zynthian_ui_workflow_layer_options]
 +
  - [https://docs.google.com/drawings/d/1Um1HVCvvb4gZF_X-vcIN9cTxYIBRCtZ5oxniUdSTB3c Snapshots: zynthian_ui_workflow_snapshots]
 +
- [https://docs.google.com/drawings/d/1I0ArYVr3zGtzcSgOy19fHlIh8VF15rmsll9wZi-aXaI MIDI Learning: zynthian_ui_workflow_midi_learning]
  
 
<br clear=all>
 
<br clear=all>
Line 49: Line 113:
 
=The UI Screens=
 
=The UI Screens=
  
==Layer List==
+
==Main==
 +
 
 +
[[File:Zynthian_ui_main.png|400px|right]]
 +
 
 +
This is the first screen you would see when you power on your zynthian for first time and no default snapshot or last-state snapshot has been saved yet.
 +
The Main menu gives easy and intuitive access to the Zynthian-UI's main features:
 +
 
 +
* '''Layers'''
 +
* '''Snapshots'''
 +
* '''Audio Recorder'''
 +
* '''MIDI Recorder'''
 +
* '''ALSA-Mixer'''
 +
* '''Auto-EQ'''
 +
* '''Admin'''
 +
 
 +
You always can access this menu with '''bold-back'''.
 +
 
 +
The Zynthian-UI has a lot of short-cuts and most of the options on the Main menu can be accessed on this way, but until you learn the shortcuts and feel comfortable with them, you will find this menu very useful.
 +
 
 +
<br clear=all>
 +
 
 +
==Layers==
 +
 
 +
Layers are a key concept on Zynthian-UI: the first thing you do when you power-on your zynthian is, probably, create a layer.
 +
 
 +
A layer is an '''Audio Processing Chain''', normally assigned to a MIDI channel, which can be composed of one or more Audio Processing Units. These units are chained in the same order they are created, but you can change the order from the '''Layer Options''' menu. The first unit in a layer is the '''root''' and it determines the layer's type:
 +
 
 +
* '''Synth Layer''' => Receives MIDI note-events and generate audio output.
 +
* '''FX Layer''' => Receives audio-input and generates audio-output.
 +
* '''Generator Layer''' => Auto-generate audio output using an algorithm.
 +
* '''Special Layer''' => MOD-UI pedalboard, Pure Data patch, etc.
 +
 
 +
The rest of units in a layer are usually FX units which process the audio coming from the first unit (root).
 +
 
 +
All units in a layer receive all the MIDI events coming from the assigned channel. Some special layers (MOD-UI) don't have an assigned MIDI channel and receive all MIDI channels.
 +
 
 +
You can access the Layer screen:
 +
 
 +
* from any place, '''bold-layer'''
 +
* from Main menu
 +
 
 
[[File:Zynthian_ui_new_layer.png|400px|right]]
 
[[File:Zynthian_ui_new_layer.png|400px|right]]
This is the first screen you see when you power on (when no screenshots have been stored yet.)  A layer is a synth engine preset assigned to one (or all) MIDI Channel. Choose New Layer to get started.
 
  
There are 4 options in this screen:
+
There are several options on layers screen:
  
* '''New Layer''' => Create a new Layer
+
* '''NEW Synth Layer''' => Create a new Synthesizer Layer.
* '''Remove All Layers''' => Remove all layers, returning to the initial state.
+
* '''NEW Effect Layer''' => Create a new Effect Layer that will be connected to soundcard's Audio Input. You can route the audio from other layers to an Effect Layer.
* '''All Notes Off''' => All notes are released (note-off) by sending CC#123 to all channels.
+
* '''NEW Generator Layer''' => Create a new Generator Layer that self-generates audio or midi.
* '''All Sounds Off''' => All sounds are stopped abruptly by sending CC#120 to all channels.
+
* '''NEW Special Layer''' => Create a new Special Layer (MOD-UI, Pure Data, ...).
 +
* '''REMOVE ALL''' => Remove all Layers & Effects, returning to the initial state.
 +
* '''PANIC! All Notes/Sounds Off''' => Stop All Notes and sounds by sending CC#123 and CC#120 to all channels.
  
The 2 last options (All Notes Off / All Sounds Off) can be triggered by short/bold clicking CTRL-1 (layer) from the layer screen (contextual actions). You can trigger these actions from any point in the workflow by simply clicking twice CTRL-1.
+
The last option, ''All Notes/Sounds Off'', can be triggered with '''long-back''' from any point of the workflow. You can also add a ''panic-button'' to your zynthian using the extra pins from the AllInOne circuit or the Zynscreen. [[Adding Extra Switches|Read this for a detailed explanation about how to add a panic button to your Zynthian]].
  
 
<br clear=all>
 
<br clear=all>
  
[[File:Zynthian_ui_layer_list.png|400px|right]]
+
[[File:Zynthian_ui_layers.png|400px|right]]
You can create up to 16 layers. Several layers may be assigned to the same MIDI Channel, however these layers are MIDI-bond ''(what does this term mean)'' because they receive the same MIDI messages. This can be a problem when trying to adjust the volume (CC#7) or other parameters assigned to standard MIDI CCs. To solve this problem, you can use the "Clone" feature, that allows you to bind several layers while keeping MIDI CCs and other MIDI messages (Program Change, Channel Pressure, etc.) independent.
+
When you select '''NEW Synth/Effect/Generator/Special Layer''', you create a new root-layer (first of a chain), choosing a free MIDI channel for it. You can create up to 16 layers (as many as MIDI channels), each one having an independent effect-chain.
 +
 
 +
Having several layers in the same MIDI channel is not allowed. If you want two or more layers playing unison (like being in the same MIDI channel), you should use the "Clone" feature, which allow you to bind several layers while keeping MIDI CCs and other MIDI messages (Program Change, Channel Pressure, etc.) independent.
  
 
<br clear=all>
 
<br clear=all>
  
 
[[File:Zynthian_ui_layer_options.png|400px|right]]
 
[[File:Zynthian_ui_layer_options.png|400px|right]]
If you bold-press the select switch, the "Layer Options" menu will be displayed for the selected layer. This menu allows you to:
+
If you bold-click the select switch over a layer from the list, the "Layer Options" menu will be displayed for the selected layer. This menu allows you to:
  
* '''Clone''' => clone the '''layer's MIDI channel''' messages (note on/off, pitch-bending, key-press) to other MIDI channels. Note that not all messages are cloned. Some are kept independent: CCs, channel-pressure, program change, ...
+
* '''Clone MIDI to...''' => clone the '''layer's MIDI channel''' messages to other MIDI channels. Note that only note on/off, pitch-bending, and key-press messages are cloned, while the rest are kept independent by default (CC, channel-pressure, program change, ...). You can select what CC will be cloned by bold-clicking on the channel list.
 
* '''Transpose''' => transpose the '''layer's MIDI channel''' up and down, by semitones.
 
* '''Transpose''' => transpose the '''layer's MIDI channel''' up and down, by semitones.
* '''Audio => MOD-UI''' => route the '''layer's engine''' audio output to the MOD-UI audio input, allowing post-processing the audio signal. You can use this feature for creating your own customized FX chains.
+
* '''Audio Routing''' => route the '''layer's''' audio output to the available audio input ports, allowing to process the audio in almost any way you can imagine. You can use this feature for creating your own customized/bizarre FX chains. If this is not enough for you, try MOD-UI engine with the MOD-UI web GUI.
* '''MIDI chan''' => change the assigned MIDI Channel.
+
* '''MIDI chan''' => change the MIDI Channel assigned.
 
* '''Remove Layer''' => Remove the layer.
 
* '''Remove Layer''' => Remove the layer.
 +
 +
* '''Add Effect''' => Add an effect to the FX-chain.
 +
* '''Remove All Effects''' => Clean the FX-chain, deleting all the effects.
 +
* '''Effect List''' => The list of effects in the layer's FX-chain.
 +
<br clear=all>
 +
 +
[[File:Zynthian_ui_layer_effect_options.png|400px|right]]
 +
 +
By bold-clicking on an effect from the list, you will access the Effect's Options:
 +
 +
* '''Replace Effect'''
 +
* '''Effect Presets'''
 +
* '''Move Upchain'''
 +
* '''Move Downchain'''
 +
* '''Remove Effect'''
 +
 +
Note that not all these options will be available all the time. For instance, if there is only one effect in the chain, "Move" options won't be shown.
  
 
<br clear=all>
 
<br clear=all>
  
==Engine Selection==
+
==Engine Selector==
 
[[File:Zynthian_ui_engine_list.png|400px|right]]
 
[[File:Zynthian_ui_engine_list.png|400px|right]]
When you create a new layer, you are asked which synth engine you want to use for the new layer. A list of synth engines to choose from is displayed. The zynthian logo on the right is animated while the engine is being loaded.
+
When you create a new layer, you are asked which engine/plugin you want to use for it. A list of engines to choose from is displayed. They can be synthesizers, effects, generators or special engines, depending on the type of layer you are creating. When you select an element from the list, the zynthian logo on the top-right will be animated while the engine is being started.  
  
 
Some engines have special behavior regarding layers and MIDI channels:
 
Some engines have special behavior regarding layers and MIDI channels:
  
* '''setBfree''': This engine ALWAYS creates 3 layers assigned to different MIDI channels (1, 2 & 3), each one corresponding to the upper, lower and pedals sections of the Hammond B3 emulation.
+
* '''setBfree''': This engine can create 1, 2 or 3 layers assigned to the several MIDI channels starting at selected channel, each one corresponding to the upper, lower and pedals sections of the Hammond B3 emulation.
* '''Pianoteq''': Only one layer is allowed to be created, assigned to the MIDI channel you choose.
+
* '''Pianoteq''': Only one layer can be created, assigned to the MIDI channel you choose.
* '''MOD_UI''': Only one layer is allowed to be created and it's assigned to ALL MIDI channels. If you want to filter the messages by channel, you can do it within the MOD-UI patch. (There are plans for improving this behavior.)
+
* '''Aeolus''': By default, 4 layers are created, assigned to different MIDI channels (1,2,3 & 4), each one corresponding to the 3 manuals + 1 pedal of the Aeolus default instrument definition. You can change the MIDI channel assignments from the Aeolus native UI. If you want to use a different instrument definition, you will have to tweak the engine's code a little bit.
* '''PureData''': Only one layer is allowed to be created and it's assigned to ALL MIDI channels. If you want to filter the messages by channel, you can do it within the PD patch. (There are plans for improving this behavior.)
+
 
* '''Aeolus''': NORMALLY 4 layers are created, assigned to different MIDI channels (1,2,3 & 4), each one corresponding to the 3 manuals + 1 pedal of the Aeolus default instrument definition. You can change the MIDI channel assignments from the Aeolus native UI. When using a different instrument definition, you have to tweak the engine's code a little bit.
+
* '''MOD-UI''': Only one layer of this type is allowed and it will receive ALL MIDI channels. If you want to filter the messages by channel, you can do it within the MOD-UI patch. (There are plans for improving this behavior.)
 +
* '''PureData''': Only one layer of this type is allowed, but it can be assigned to a MIDI channel.
 +
  
 
<br clear=all>
 
<br clear=all>
  
==MIDI Channel selection==
+
==MIDI Channel selector==
 
[[File:Zynthian_ui_midi_channel.png|400px|right]]
 
[[File:Zynthian_ui_midi_channel.png|400px|right]]
This screen is shown after you have chosen the synth engine for a new layer. It is also displayed when you choose to assign the layer to a different MIDI Channel in the Layer Options screen. Choose the MIDI channel you want to assign to the layer. You can assign several layers to the same MIDI Channel. In this case, all the assigned layers will react to the same MIDI messages coming from the assigned MIDI Channel.
+
This screen is shown in various contexts:
 +
 
 +
* After you have selected the engine for a new layer. Only free channels are listed.
 +
* When you change the assigned MIDI channel from the Layer Options. Only free channels are listed.
 +
* When you clone a layer from the Layer Options.
 +
 
 
<br clear=all>
 
<br clear=all>
  
== Bank selection==
+
== Bank selector==
 
[[File:Zynthian_ui_bank_list.png|400px|right]]
 
[[File:Zynthian_ui_bank_list.png|400px|right]]
 
Presets (instruments, patches, or sound designs) for a synth engine are organized into banks. Choose a bank to see the list of presets you can pick from within that bank.  
 
Presets (instruments, patches, or sound designs) for a synth engine are organized into banks. Choose a bank to see the list of presets you can pick from within that bank.  
 
<br clear=all>
 
<br clear=all>
  
==Preset selection==
+
==Preset selector==
 
[[File:Zynthian_ui_preset_list.png|400px|right]]
 
[[File:Zynthian_ui_preset_list.png|400px|right]]
Once you have chosen a bank, Preset Screen will be shown. Choose a preset to load the instrument/sound/patch you want and the Control Instrument screen will be shown.  
+
Once you have chosen a bank, the preset screen will be shown. Choose a preset to load the instrument/sound/patch you want and the Control Instrument screen will be shown.
 +
 
 +
If the '''preload with note-on''' feature is enabled, you can preload the presets by playing notes. When you do so, the highlighted preset will be pre-loaded before clicking select.  
  
If the "pre-load on note-on" feature is enabled, you can pre-load the presets by playing notes. When you do so, the highlighted preset will be pre-loaded before clicking select.  
+
You can return to the control screen directly, without selecting any preset, by clicking '''bold-back'''. In that case, the previously selected instrument will be restored in case you pre-loaded some preset.
  
You can return to the control screen directly, without selecting any preset, by clicking "bold-back". In such a case, the previously selected instrument will be loaded again in case you pre-loaded some preset.
+
Use '''bold-select''' for adding a preset to your favorites. You will see a little '''*''' at left. '''Bold-select''' again for removing the preset from favorites. For listing only your favorite presets, use '''bold-snapshot'''.  
  
 
<br clear=all>
 
<br clear=all>
  
==Instrument Control screen==
+
==Control screen==
 
[[File:Zynthian_ui_instrument_control_01.png|400px|right]]
 
[[File:Zynthian_ui_instrument_control_01.png|400px|right]]
 
This screen is shown after you have chosen a preset. Your instrument is now enabled and playable and you can modify the parameters.
 
This screen is shown after you have chosen a preset. Your instrument is now enabled and playable and you can modify the parameters.
  
Turning any of the 4 knobs changes the values of the synth parameters displayed in the squares at the sides of the screen adjacent to each knob. You also can use the touch interface to change the values. See below.
+
Turning any of the 4 knobs will change the value of the parameter displayed in the boxes adjacent to each knob. You also can use the touch interface to change the values. See below.
 
<br clear=all>
 
<br clear=all>
  
 
[[File:Zynthian_ui_instrument_control_02.png|400px|right]]
 
[[File:Zynthian_ui_instrument_control_02.png|400px|right]]
The central list shows the different pages of parameters that you may alter. You can navigate the page of parameters by clicking short-Select to step by one page.
+
The central list shows the different pages of parameters that you may alter. You can navigate the page of parameters by clicking short-select to step by one page.
 
<br clear=all>
 
<br clear=all>
  
 
[[File:Zynthian_ui_instrument_control_03.png|400px|right]]
 
[[File:Zynthian_ui_instrument_control_03.png|400px|right]]
If the page list is long, you can "bold click" the Select switch to navigate the list using the Select knob.
+
If the page list is long, you can "bold click" the ''select'' switch to navigate the list using the ''select'' knob.
 
<br clear=all>
 
<br clear=all>
  
[[File:Zynthian_ui_xy_controller.png|400px|right]]
+
====XY-Controller====
If you click 2 switches at once, then you will select these 2 parameters for XY-control using the touchscreen (ala Kaoss Pad).
+
[[File:Zynthian_ui_xy_select.png|400px|right]]
 +
 
 +
From the instrument control screen, if you bold-press two knobs at once, you should enter the XY-select mode.
 +
 
 +
The 2 controllers you pushed will be green, indicating they are pre-selected for XY-control. You can change the pre-selection by rotating any knob, navigating through the controller pages if needed.
 
<br clear=all>
 
<br clear=all>
  
You can press the Layer switch to step over the layer list. If you bold-press, the layer list will be shown.
+
[[File:Zynthian_ui_xy_controller.png|400px|right]]
 +
Once you have selected the parameters you want, touch the display to enter the XY-control pad and use the touchscreen ala Kaoss-Pad.
  
Press the Back switch to return to previous screen. If you press bold-Back, then you will go 2 screens backwards.
+
Click ''back'' to return to XY-select and ''back'' again to return to the control screen.
 
<br clear=all>
 
<br clear=all>
  
Line 141: Line 279:
 
[[File:Zynthian_ui_snapshot_load.png|400px|right]]
 
[[File:Zynthian_ui_snapshot_load.png|400px|right]]
 
[[File:Zynthian_ui_snapshot_save.png|400px|right]]
 
[[File:Zynthian_ui_snapshot_save.png|400px|right]]
Click the Snapshot switch to enter the Load Snapshot screen. Another click and you will be in the Save Snapshot screen. You can also use bold-click to go directly to the Save Snapshot screen.
+
Snapshots are used for saving and restoring the status of Zynthian. A snapshot includes the full state, including layers, effects, parameter values, MIDI-learning, etc.
  
Obviously, before loading any snapshot, you should save one. Snapshots are organized in banks, so if you don't have any banks, you should create one.
+
You can enter the ''Load Snapshot'' screen with '''bold-snapshot'''. It works from any place. A second click and you will be at the ''Save Snapshot'' screen.
Zynthian UI will use numbers for naming the banks and snapshots. Later, using the webconf tool you can rename the banks and snapshots to something more explicit.
+
  
If you want to go up one level, from snapshots to banks, you should use the ".." entry in the list. The Back button won't work here.
+
Before loading any snapshot, you should save one, and to save a snapshot, you should create some layers, etc. The Zynthian UI will use numbers for naming the banks and snapshots. You can rename the snapshots to something more specific using the webconf tool.
  
===Default Snapshot===
+
====Snapshot Banks====
You can save a "Default Snapshot". This snapshot will be loaded automatically at startup. To delete it, you should use the webconf tool.
+
By default, snapshots are stored as a single list and bank-related stuff is not shown by Zynthian-UI. If you want to use banks for organizing your snapshots, you simply create a second bank using the webconf tool and the hidden bank functionality will be enabled.
 +
 
 +
When using snapshot banks, if you want to go up one level (from snapshot list to bank list), you must use the ".." entry. The back button will close the snapshot screen.
 +
 
 +
====Default Snapshot====
 +
You can save the status as "Default Snapshot". This "Default Snapshot" will be loaded automatically at startup. To delete it, you can use the webconf tool or the command line.
 +
 
 +
====Restore Last State====
 +
If "Restore last state on startup" option is enabled on webconf (it's enabled by default), then the state will be saved when powering off (using long-click select or from Admin Menu) and restored on next boot. This option has priority over the "Default Snapshot".
  
 
<br clear=all>
 
<br clear=all>
  
==Admin Menu==
+
==MIDI-learning==
[[File:Zynthian_ui_admin.png|400px|right]]
+
Pressing the Back knob, when you are in the Layer List screen, brings you to the Admin menu.
+
  
The last item is how you safely power off the Zynthian without corrupting data files.
+
MIDI-learning allows you to easily bind specific MIDI events with Zynthian-UI actions. There are 2 types of MIDI events you can learn:
  
* Network Info - displays the IP address (ifconfig inet addr)
+
====MIDI CC====
* Start WIFI - Starts or Stops WIFI (toggle)
+
[[File:Zynthian_ui_midi_cc_learn_01.png|400px|right]]
* Start Audio Recording
+
[[File:Zynthian_ui_midi_cc_learn_02.png|400px|right]]
* Start TouchOSC bridge
+
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.
* Start Audio -> MIDI
+
 
* Test MIDI - plays the test.mid file
+
Learning a MIDI-CC is quite easy:
* Test Audio - plays the (long) test.mp3 file
+
 
* Update Zynthian Software - downloads and installs the latest software
+
'''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.
* Update Zynthian Library - downloads the latest instruments
+
 
* Restart GUI
+
'''2.''' Move a zynthian controller. Its tiny “???” will change to green while the other 3 will go back to normal state.
* Reboot
+
 
* Power Off
+
'''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>
 
<br clear=all>
  
= Touch Screen UI=
+
====MIDI Program Change: ZS3 (SubSnapShots)====
[[File:Zynthian_ui_top_bar.png|400px|right]]
+
[[File:Zynthian_ui_midi_zs3_learn.png|400px|right]]
You can navigate and control the Zynthian UI without knobs/encoders/switches at all, using only the touchscreen.
+
A ZS3 (SubSnapShot) saves the state of the active layer in the context of the current snapshot (layer layout). When recalled, the saved state is restored and the active layer is changed.
 +
 
 +
Every ZS3 includes:
 +
 
 +
    - Layer ID
 +
    - Bank Name
 +
    - Preset Name
 +
    - Controller Values
 +
 
 +
Once a set of layers has been created (i.e. loading a snapshot), ZS3 loading is very fast in comparison with loading snapshots, as no engine have to be started. It take less than 1 second in most of cases, and you can map ZS3s to MIDI programs very easily using MIDI learning.
 +
 
 +
The idea behind this feature is to have a fast preset-change mechanism that can be used on stage. In combination with the “Single Active Layer” feature, it turns Zynthian into a “Stage-Beast”. You can prepare a snapshot for the full performance, and use ZS3s for fast changes from a song to another, or between parts inside the same song.
 +
 
 +
Learning to create a SubSnapShot is obscenely easy:
 +
 
 +
'''1.''' From the Control screen, click the snapshot button '''twice'''. You will see the current list of ZS3s and a message: “Waiting for Program Change…”
 +
 
 +
'''2.''' Push a “Program Change” button in your keyboard/controller and the ZS3 will be stored in memory, associated with the Program Number you selected.
 +
 
 +
After that, you can recall the stored ZS3 by pushing the same Program Change button again. Of course, stored ZS3s will be saved with your snapshot and restored on load.
 +
 
 +
You can update and delete stored ZS3s by bold-clicking on the list. An options menu will be shown with both options.
  
You can "emulate" the switches by tapping the controller widgets (squares in the 4 corners of the screen). There are short, bold and long actions, same behavior than rotary encoders workflow. Selector screens only have 1 controller widget, but you can also click the zynthian logo at top-right for emulating the "snapshot" switch. The only screen that shows the 4 controllers is the "Instrument Control" screen, so some features are only accessible from there. When the "back" widget is not available, you can go back by tapping the top bar.
+
ZS3 behavior depends of the "Single Active Layer" option:
  
You can change the values of the controllers by "sliding" over the widgets. (see the green arrow in the figure here) This is the same as turning the knob. If you are using a mouse, the mouse wheel will modify the parameter value.  
+
* '''Single Active Layer Enabled''': ZS3 list shows all the ZS3s stored, no matter the layer. Recalling a ZS3 changes the active layer, so the layer associated with the recalled ZS3 will receive *ALL* the MIDI input. Only 127 ZS3s can be stored.
 +
* '''Single Active Layer Disabled''': ZS3 list shows only the ZS3 of the currently active layer. Recalling a ZS3 changes the active layer, but every layer receives MIDI input for its channel only. You can use several keyboards on different channels and store 127 ZS3s by MIDI channel.
  
When clicking (tapping/touching) the topbar, a "back" event is triggered. It's a quick & dirty fix and probably it will change in the future, but meanwhile it will enable you to fully control Zynthian using the touchscreen if you don't have knob hardware.
 
 
<br clear=all>
 
<br clear=all>
  
=Global MIDI-learning=
+
==Audio & MIDI Recording==
 +
[[File:zynthian_audio_recorder_01.png|400px|right]]
 +
[[File:zynthian_audio_recorder_02.png|400px|right]]
 +
[[File:zynthian_ui_audio_recorder.png|400px|right]]
 +
[[File:zynthian_ui_midi_recorder.png|400px|right]]
  
This allows you to easily connect any parameter in the Zynthian UI to any CC knob/slider on an external MIDI controller. ''(I intend to extend this feature to other MIDI messages, but currently only CC messages are supported.)'' Anyway, MIDI filter rules can handle any special cases, so it’s not an urgent task.
+
These simple tools allow you to record Audio & MIDI tracks easily, using the internal SD-card or an USB memory stick for storing the files.  
  
This works with ALL the engines, using the engine’s native MIDI-learning capability when available (and convenient) or the Zynthian’s MIDI-learning mechanism, within the MIDI filter. To be more explicit, native MIDI-learning is used for MOD-UI and  ZynAddSubFX OSC parameters. All the other MIDI-mapped parameters are managed by the Zynthian’s MIDI-learning mechanism.
+
For accessing the Audio & MIDI recording tools:
  
You get on-screen feedback during the learning process. When you enable MIDI-learning for a parameter, a small green text displaying "??" appears at the bottom of the controller/parameter area in the Zynthian UI. When the parameter is connected to a CC, the number of the assigned CC is shown in the same place.
+
* From the '''Main menu''', select Audio Recorder
 +
* From any place, '''long-snapshot'''
  
The MIDI-learning configuration is stored in the snapshot.
+
When you are in, '''short-snapshot''' for switching between Audio & MIDI Recorder.
  
==How to use MIDI Learning==
 
  
First, you need a working touch interface in your display. If you don't have a touchscreen, you could use a mouse ...
+
'''WARNING!''' Using the internal SD card to store the captured files will increase the risk of corruption. You should use a USB memory stick instead.
 +
 
 +
===Recording===
 +
 
 +
1. Press "Start Recording" to start a new capture.
 +
 
 +
2. The red circle should appear in the top-right status area, indicating that a recording is going on.
 +
 
 +
3. Press "Stop Recording" for finishing the capture. The red circle will disappear and the recorded file will be added to the list. The filename is generated automatically and should be something like "jack_capture_01". The prefix "SDC" or "USB" indicates where the file is stored.
 +
 
 +
===Playing===
 +
 
 +
You can play files by simply selecting and clicking the file. The "play" symbol will be displayed in the UI status area.
 +
For looping the file, turn on the "Loop Play" switch before playing.
 +
 
 +
'''NOTE:''' You can play a file at any moment. Recording and playing can take place simultaneously.
 +
 
 +
When playing audio, a volume control will be shown. When playing MIDI, a BPM control will be shown for adjusting the transport speed.
 +
 
 +
Recording audio & playback MIDI are transport-bond. If you stop recording audio while playing MIDI, MIDI play will stop, but MIDI playback will remain enabled, so when starting a new audio record, the MIDI playback will start again.
 +
 
 +
===Deleting===
 +
 
 +
A bold press will delete the selected file, but you will be asked to confirm the action.
 +
 
 +
<br clear=all>
 +
 
 +
===Managing recordings from your computer===
 +
 
 +
[[File:Zynthian_webconf_captures_02.png|600px|border|right]]
 +
 
 +
Audio & MIDI recordings can be managed from your computer by accessing the webconf's captures section. From this section you can:
 +
 
 +
* rename recordings
 +
* delete recordings
 +
* convert audio recordings to .ogg format
 +
* downloading recordings to your computer
 +
* reproduce the audio recordings in your browser. If .wav files doesn't work in your browser, try converting to ogg.
 +
 
 +
It is a good idea to rename your recordings so they can be easily identified.
 +
 
 +
<br clear=all>
 +
 
 +
==ALSA Mixer==
 +
 
 +
[[File:zynthian_ui_mixer_control.png|400px|right]]
 +
 
 +
The '''ALSA Mixer''' app is a pseudo-layer that allows to adjust the soundcard output/input levels and other audio-hardware related options. Technically speaking, it's a user interface for the ALSA (Audio Linux Sound Architecture) mixer.
 +
 
 +
For accessing the '''ALSA-Mixer''' app, you have 2 options:
 +
 
 +
* Selecting "ALSA-Mixer" option from the Main menu
 +
* '''Long-pushing the layer knob (CTRL-1)'''
 +
 
 +
You can configure the mixer controllers from the webconf's hardware->audio menu. Simply click the '''+''' button on the "Mixer Controls" text area.
 +
 
 +
<br clear=all>
 +
 
 +
==Step Sequencer==
 +
'''Note: Step Sequencer is alpha software'''
 +
 
 +
Zynthian has a step sequencer which provides:
 +
 
 +
* Pattern editor
 +
* Song editor
 +
* Pad triggers (ZynPad)
 +
 
 +
The step sequencer may be accessed from the main Zynthian screen or by a long press of the SNAPSHOT encoder. Access to the editors and players is via a menu.
 +
 
 +
===Menu Selection===
 +
Short press the LAYER encoder. The menu is displayed.
 +
Use the LAYER or SELECT encoder to highlight a menu entry.
 +
Move beyond the bottom entry to scroll down if more options are available than screen size allows to display.
 +
Short press the LAYER or SELECT encoder to select the menu entry or short press the BACK encoder to cancel.
 +
 
 +
Menu may also be accessed by clicking the top bar (not the status display on the right) with a pointing device. Menu options are selected by clicking on them and the menu may be scrolled by dragging up and down.
 +
 
 +
All patterns and songs are saved to a common file.
 +
 
 +
===Parameter Editor===
 +
 
 +
Some parameters must be adjusted using the ''parameter editor''. This is a control that appears in the top bar showing the parameter being adjusted, its value and some buttons to allow up / down adjustment of the parameter.
 +
 
 +
Access the ''parameter editor'' by selecting a menu entry. The parameter editor is displayed with the current parameter name and value.
 +
Use the LAYER or SELECT encoders to adjust the value. Values may have minimum and maximum limits.
 +
Short press the BACK encoder to cancel and close the editor.
 +
Short press the LAYER or SELECT encoder to assert the value and close the editor.
 +
 
 +
Parameters may be adjusted with a pointing device by clicking on the cancel, up, down and assert buttons.
 +
 
 +
===Save===
 +
Short press LAYER encoder displays a menu.
 +
Select "Save" menu option. All patterns and songs are immediately saved to disk.
 +
 
 +
===Load===
 +
Short press LAYER encoder displays a menu.
 +
Select "Load" menu option. All patterns and songs are immediately loaded from disk.
 +
 
 +
 
 +
===Pattern Editor===
 +
[[File:PatternEditor.png|400px|right]]
 +
 
 +
The pattern editor allows the creation of a sequence of MIDI events within a time-boxed period. This period is defined in ''steps''. The quantity of steps may be selected for each pattern. Any quantity of MIDI events may be added to the pattern at each step. The most common MIDI events are notes. The pattern editor displays a grid with horizontal ''tramlines'' indicating black and white notes. There can be a grid indicating time divisions and octaves. There is a pianoroll on the left with each 'C' note indicated by a legend. Clicking on a note with a pointing device will sound the note briefly. Most common workflows are exposed via rotary encoders, push buttons and pointing device input. More options are available via menus.
 +
 
 +
====Pattern Selection====
 +
There may be up to 999 patterns loaded into the step sequencer. By default pattern 1 is displayed.
 +
Short press LAYER encoder displays a menu.
 +
Select "Pattern" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to select the pattern to edit. The title and grid change to show the pattern that will be selected.
 +
Short press the LAYER or SELECT encoder to select the pattern or short press BACK encoder to cancel.
 +
 
 +
====Adding Notes====
 +
Use the BACK encoder to select the note to add. The screen will scroll at top and bottom edges.
 +
Use the SELECT encoder to select the step at which the note will start.
 +
Use the LAYER encoder to select the duration of the note. Duration is indicated by the length of the highlight border.
 +
Use the SNAPSHOT encoder to select the velocity of the note. Velocity is indicated by a yellow bar in the bottom left of the screen.
 +
Short press the SELECT encoder to add the note. The note is indicated by a shaded block starting at the required start step with length indicating duration and opacity indicating velocity.
 +
 
 +
Notes may also be added by clicking on the note / start step if you have a pointing device. To scroll screen with pointing device drag the pianoroll up or down.
 +
 
 +
====Removing Notes====
 +
Use the BACK encoder to select the note to remove.
 +
Use the SELECT encoder to select the step at which the note starts.
 +
Short press the SELECT encoder to remove the note.
 +
 
 +
Notes may also be removed by clicking on the note / start step if you have a pointing device.
 +
 
 +
====Changing Duration====
 +
Use the BACK encoder to select the note to adjust.
 +
Use the SELECT encoder to select the step at which the note starts.
 +
Use the LAYER encoder to adjust the duration of the note.
 +
 
 +
====Changing Velocity====
 +
Use the BACK encoder to select the note to adjust.
 +
Use the SELECT encoder to select the step at which the note starts.
 +
Use the SNAPSHOT encoder to adjust the velocity of the note.
 +
 
 +
====Controlling Playback====
 +
Short press the SNAPSHOT encoder to start playback of the pattern. The pattern will resume playback from its previously stopped step, looping when it reaches the end of the pattern.
 +
Short press the SNAPSHOT encoder to pause playback.
 +
Bold press the SNAPSHOT encoder to stop playback and / or recue to start of pattern.
 +
NOTE: When exiting the ''pattern editor'' playback will stop. This is because the ''pattern editor'' is a design tool and not intended for performance.
 +
 
 +
Playback may also be controlled with a pointing device by pressing the start / pause and stop / recue buttons in the topbar.
 +
 
 +
Playback may also be controlled via external MIDI transport control (start, stop, continue, locate).
 +
 
 +
====Changing Pattern Length====
 +
By default each pattern is 16 steps long. This may be adjusted from 1 to 64 steps in each pattern.
 +
Short press LAYER encoder displays a menu.
 +
Select "Steps in pattern" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to adjust the quantity of steps in the pattern. The quantity of grid columns changes to match the step in pattern.
 +
 
 +
Note: The pattern editor always shows all the steps, i.e. there is no horizontal scrolling or zooming.
 +
 
 +
====Change Time Divisions====
 +
A user may wish to use the concept of time divisions, e.g. beats in a bar, steps in a beat, etc. This is presented by the display of vertical lines. By default the steps per beat is 4. This may be adjusted from 0 to 24.
 +
Short press LAYER encoder displays a menu.
 +
Select "Steps per beat" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to adjust the quantity of steps per beat. The vertical grid lines move to match the steps per beat.
 +
Setting to zero will hide vertical lines.
 +
 
 +
Note: The steps per beat is constrained to the values: 0, 1, 2, 3, 4, 6, 8, 12, 24. This is because it must divide exactly into 24 which is the quantity of clock cycles per beat.
 +
 
 +
====Transpose====
 +
All notes within a pattern may be permanently transposed.
 +
Short press LAYER encoder displays a menu.
 +
Select "Transpose pattern" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to move all notes up or down. The pianoroll scrolls to indicate the transposition.
 +
 
 +
====Vertical Zoom====
 +
By default 16 note are shown on the pianoroll and corresponding 16 rows in the grid.
 +
Short press LAYER encoder displays a menu.
 +
Select "Vertical zoom" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to adjust the vertical zoom. The quantity of rows in grid (and notes in pianoroll) change to match the vertical zoom value.
 +
 
 +
====MIDI channel====
 +
The pattern editor plays its sequence of notes out on a single MIDI channel.
 +
Short press LAYER encoder displays a menu.
 +
Select "MIDI channel" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to adjust the MIDI channel between 1 and 16.
 +
 
 +
====Clocks Per Step====
 +
By default each step within a pattern is advanced after 6 MIDI clock cycles.
 +
Short press LAYER encoder displays a menu.
 +
Select "Clocks per step" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to adjust the clocks per step.
 +
 
 +
Note: Adjusting the steps per beat will automatically set the clocks per step. Adjustment of clocks per step allows fine control and less common time signatures.
 +
 
 +
====Clear Pattern====
 +
A pattern may be cleared of its content.
 +
Short press LAYER encoder displays a menu.
 +
Select "Clear pattern" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Short press the LAYER or SELECT encoder to clear pattern or short press BACK encoder to cancel.
 +
 
 +
====Copy Pattern====
 +
The currently selected pattern may be copied to another pattern location.
 +
Short press LAYER encoder displays a menu.
 +
Select "Copy pattern" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to select the pattern to copy the previous pattern to. The title and grid change to show the pattern that will be overwritten.
 +
Short press the LAYER or SELECT encoder to overwrite pattern with previously selected pattern or short press BACK encoder to cancel.
 +
 
 +
===Song Editor===
 +
 
 +
[[File:SongEditor.png|400px|right]]
 +
The song editor allows the assignment of patterns to a variable quantity of tracks. Each song may have any quantity of tracks. A track represents a sequence of patterns. Each track may have any quantity of patterns and hence be any duration. Each pattern may belong to a group (A, B, C...), has a MIDI channel and a play mode. The track group and number are shown on the left with its MIDI channel in brackets and its play mode shown by an icon. Patterns may not overlap on the same track. A timeline is shown along the bottom of the grid. Bar (or ''sync point'') markers are indicated by vertical lines with its time (in time divisions) at the bottom in the timeline. There may up to 999 songs loaded.
 +
 
 +
====Song Selection====
 +
There may be up to 999 songs loaded into the step sequencer. By default no song is displayed.
 +
Short press LAYER encoder displays a menu.
 +
Select "Song" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to select the song to edit. The title and grid change to show the song that will be selected.
 +
Short press the LAYER or SELECT encoder to select the song or short press BACK encoder to cancel.
 +
 
 +
====Adding Patterns====
 +
Use the BACK encoder to select the track. The screen will scroll at top and bottom edges.
 +
Use the SELECT encoder to select the time at which the pattern will start. The screen will scroll at left and right edges.
 +
Use the LAYER encoder to select the pattern that will be added. Pattern number is shown in the bottom left of the screen. Pattern duration will be indicated by the selection border.
 +
Short press the SELECT encoder to add the sequence. The sequence is indicated by a shaded block starting at the required start step with length indicating pattern duration.
 +
If the pattern overlaps an existing pattern then the existing pattern will be removed.
 +
 
 +
Patterns may also be added by clicking on the track / start time if you have a pointing device. To scroll screen with pointing device drag the track list up or down or timeline left and right.
 +
 
 +
====Removing Patterns====
 +
Use the BACK encoder to select the track.
 +
Use the SELECT encoder to select the time at which the pattern starts.
 +
Short press the SELECT encoder to remove the pattern.
 +
 
 +
Notes may also be removed by clicking on the pattern within the grid if you have a pointing device.
 +
 
 +
====Adding Tracks====
 +
Short press LAYER encoder displays a menu.
 +
Select "Add track" menu option. A new track is added to the end of the track list.
 +
 
 +
====Removing Tracks====
 +
Short press LAYER encoder displays a menu.
 +
Select "Add track" menu option. A new track is added to the end of the track list.
 +
 
 +
====Controlling Playback====
 +
Short press the SNAPSHOT encoder to start playback of the song. The song will resume playback from its previously stopped step. Playback will continue to run even if playhead passes beyond the end of the last pattern.
 +
Short press the SNAPSHOT encoder to pause playback.
 +
Bold press the SNAPSHOT encoder to stop playback and / or recue to start of song.
 +
 
 +
Playback may also be controlled with a pointing device by pressing the start / pause and stop / recue buttons in the topbar.
 +
 
 +
Playback may also be controlled via external MIDI transport control (start, stop, continue, locate).
 +
 
 +
====Time Divisions====
 +
The timeline is quantised to ''time divisions''. This is the minimum step that may be navigated / pattern positioned.
 +
A user may wish to use the concept of bars (or other larger time divisions). This is presented by the display of vertical lines. By default the time divisions per bar 16. This may be adjusted from 1 to 999. This setting also defines the ''sync point'' for live playout, i.e. the time at which a pattern will start playing after being triggered.
 +
 
 +
Short press LAYER encoder displays a menu.
 +
Select "Bar / sync" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to adjust the quantity of time division per marker. The vertical grid lines move to match.
 +
 
 +
====Transpose **NOT YET IMPLEMENTED**====
 +
All notes within a song may be transposed.
 +
Short press LAYER encoder displays a menu.
 +
Select "Transpose pattern" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to move all notes up or down.
 +
Note: This setting is at song level. Patterns are not individually transposed. Playback is transposed.
 +
 
 +
====Vertical Zoom====
 +
By default up to 16 tracks are shown.
 +
Short press LAYER encoder displays a menu.
 +
Select "Vertical zoom" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to adjust the vertical zoom. The quantity of tracks change to match the vertical zoom value.
 +
 
 +
====Horizontal Zoom====
 +
By default 64 time divisions are shown.
 +
Short press LAYER encoder displays a menu.
 +
Select "Horizontal zoom" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to adjust the horizontal zoom. The quantity of columns change to match the horizontal zoom value.
 +
 
 +
====MIDI channel====
 +
Each track may be assigned a MIDI channel.
 +
Use the BACK encoder to select the track.
 +
Short press LAYER encoder displays a menu.
 +
Select "MIDI channel" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to adjust the MIDI channel between 1 and 16. The track title changes to show the MIDI channel in brackets.
 +
 
 +
====Clocks Per Division====
 +
By default each time division is 6 MIDI clock cycles.
 +
Short press LAYER encoder displays a menu.
 +
Select "Clocks per division" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to adjust the clocks per division.
 +
 
 +
====Clear Song====
 +
A song may be cleared of its content.
 +
Short press LAYER encoder displays a menu.
 +
Select "Clear song" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Short press the LAYER or SELECT encoder to clear song or short press BACK encoder to cancel.
 +
 
 +
====Copy Song====
 +
The currently selected song may be copied to another song location.
 +
Short press LAYER encoder displays a menu.
 +
Select "Copy song" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to select the song to copy the previous song to. The title and grid change to show the song that will be overwritten.
 +
Short press the LAYER or SELECT encoder to overwrite pattern with previously selected song or short press BACK encoder to cancel.
 +
 
 +
====Tempo====
 +
Each song has a master track displayed along the bottom of the screen. The master track may have tempo changes added at any time during the song. By default songs have a tempo of 120 BPM.
 +
Use the SELECT encoder to select the time at which to add a tempo change. The screen will scroll at left and right edges.
 +
Short press LAYER encoder displays a menu.
 +
Select "Tempo" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to select the tempo.
 +
Short press the LAYER or SELECT encoder to add a tempo change to the  selected song or short press BACK encoder to cancel. The tempo is displayed in the master track as red text below the timeline.
 +
 
 +
====Remove Tempo Marker====
 +
Tempo persists until the next ''different'' tempo change. You cannot have consecutive tempo markers with the same value.
 +
Use the SELECT encoder to select the time at which to remove tempo marker. The screen will scroll at left and right edges.
 +
Short press LAYER encoder displays a menu.
 +
Select "Tempo" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to adjust the tempo. The tempo marker changes and will disappear when it is the same as the previous tempo marker.
 +
Short press BACK encoder to cancel.
 +
 
 +
===ZynPad===
 +
[[File:ZynPad.png|400px|right]]
 +
ZynPad is a performance mode for the step sequencer. It presents a grid of pads that my be tapped to trigger sequences. Each pad may be a member of a mutually exclusive group where pressing a pad in the group will cause other group members to stop playing. Each group is allocated an alternating colour (blue / purple) and is identified by the first character of the pad name, e.g. A, B. C, etc.
 +
A pad will start playing at the next ''sync point'', e.g. at the end of the current bar. This maintains synchronisation between sequences (assuming the sequences have been programmed to be synchronous).
 +
 
 +
====Playing ZynPad====
 +
Each pad has a colour which indicates its group. Odd groups are blue whilst even groups are purple.
 +
Click a pad to start the pad's sequence running. If the transport is not running then it will be started and the sequence will begin immediately. If the transport is already running then the sequence will begin at the next ''sync point''.
 +
The pad will change to orange whilst it is waiting to start.
 +
The pad will change to green whilst playing.
 +
Click on a pad to stop the sequence playing.
 +
The pad will change to red whilst waiting to stop.
 +
The pad will change to blue or purple (depending on its group) when stopped.
 +
Click a pad in a different group (with different first letter) will start that pad's sequence running synchronously with existing sequences, starting at the next ''sync point''.
 +
group will stop the currently playing sequence (from this group) and start that pad's sequence running synchronously with existing sequences, starting at the next ''sync point''.
 +
An icon on the pad indicates the play mode:
 +
 
 +
{| class="wikitable" style="background-color:#cccccc;"
 +
|-
 +
!Icon
 +
!Mode
 +
!Description
 +
|-
 +
|||Disabled||No sequence will play
 +
|-
 +
|[[File:ZynPadEndnoline.png]]||Oneshot||Sequence will play only once, stopping immediately when pad clicked
 +
|-
 +
|[[File:ZynPadLoop.png]]||Loop||Sequence will play in a continuous loop, stopping immediately when pad clicked
 +
|-
 +
|[[File:ZynPadEnd.png]]||Oneshot All||Sequence will play only once, stopping at next sync point after pad clicked
 +
|-
 +
|[[File:ZynPadLoopstop.png]]||Loop All||Sequence will play in a continuous loop, stopping at next sync point after pad clicked
 +
|}
 +
 
 +
The play mode and sync point is set in the song editor.
 +
 
 +
====ZynPad ''Song'' Selection====
 +
ZynPad is configured by the song editor. Each pad represents a track in a song.
 +
 
 +
Short press LAYER encoder displays a menu.
 +
Select "Song" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to select the song. ZynPad changes to match the selected song.
 +
Short press LAYER, SELECT to select song.
 +
Short press BACK encoder to cancel.
 +
 
 +
The quantity of pads is defined by the quantity of tracks in the song. There will always be the same quantity of rows as columns. Extra pads required to fill grid (greater than quantity of tracks) are shown disabled. Text and icons scale to match pad size.
 +
 
 +
===MIDI Control===
 +
Zynthian step sequencer may be controlled by external MIDI controllers.
 +
 
 +
====Transport Control====
 +
MIDI START message will start playback of the currently selected song or the pattern in the pattern editor if shown, from the start of the song or sequence.
 +
MIDI STOP message will stop (pause) playback of the currently selected song or the pattern in the pattern editor if shown. ZynPad sequences will also be stopped.
 +
MIDI CONTINUE message will resume playback of the currently selected song or the pattern in the pattern editor if shown, from the point it was previously stopped (paused) of the song or sequence.
 +
 
 +
====Clock====
 +
To use an external MIDI clock to synchronise Zynthian:
 +
Navigate to the ''Admin'' page.
 +
Disable ''MIDI Clock Internal''.
 +
Provide an external MIDI clock.
 +
 
 +
Sequences will only play after receiving MIDI START / STOP / CONTINUE or being triggered from Zynthian user interface and will play at the rate of the external clock. 6 MIDI clock messages are sent for each ''beat''. A beat is often considered to be a crotchet / quarter note.
 +
 
 +
====Trigger Sequence **NOT YET IMPLEMENTED**====
 +
Each sequence (pad) within ZynPad may be triggered by MIDI NOTE ON messages. The MIDI channel is configurable.
 +
 
 +
Short press LAYER encoder displays a menu.
 +
Select "MIDI channel" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to select the MIDI channel for external trigger.
 +
Short press LAYER, SELECT to select channel.
 +
Short press BACK encoder to cancel.
 +
 
 +
Use the BACK encoder to select the track.
 +
Short press LAYER encoder displays a menu.
 +
Select "Trigger note" menu option. The ''parameter editor'' is displayed in the top bar.
 +
Use the LAYER or SELECT encoder to select the note number for external trigger.
 +
Short press LAYER, SELECT to select note.
 +
Short press BACK encoder to cancel.
 +
 
 +
==Admin Menu==
 +
 
 +
[[File:Zynthian_ui_admin.png|400px|right]]
 +
[[File:Zynthian_ui_admin_02.png|400px|right]]
 +
 
 +
The Admin menu gives access to some configuration options (most of them also accessible from the webconf tool). Also includes basic testing options for audio and MIDI.
 +
 
 +
You can access this menu from the Main menu.
 +
 
 +
<br clear=all>
 +
 
 +
= Touch Screen UI=
 +
 
 +
[[File:Zynthian_ui_top_bar.png|400px|right]]
 +
You can navigate and control the Zynthian UI without knobs/encoders/switches at all, using only the touchscreen (or mouse).
 +
 
 +
You can "emulate" the switches by tapping the controller widgets (squares in the 4 corners of the screen). There are short, bold and long actions, same behaviour than rotary encoders work-flow. The only screen having the 4 controller widgets is the "Instrument Control" screen. Most of screens are selectors, which only have 1 controller widget. On those screens you can click the '''zynthian logo''' (top-right) to emulate the "snapshot" switch, and you can go back by tapping the '''top-bar''' area.
 +
 
 +
You can change the controller values by "sliding" up/down over the widgets. (see the green arrow in the figure) This is the same as turning the knob. If you are using a mouse, the mouse wheel also can be used to change the controller value.
 +
 
 +
<br clear=all>
 +
 
 +
====MIDI-CC Learning with a touch interface====
  
 
[[File:Zynthian_ui_midi_learning.png|400px|right]]
 
[[File:Zynthian_ui_midi_learning.png|400px|right]]
Line 209: Line 799:
 
'''Unlearning:'''
 
'''Unlearning:'''
 
  1. In the "Instrument Control" screen, navigate through the parameter screen list until you get to the parameter you want to unlearn.
 
  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.
+
  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, the number will change.
 +
 
 
<br clear=all>
 
<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.
 +
 +
{| class="wikitable"
 +
|-
 +
!Key
 +
!Modifier
 +
!Function
 +
|-
 +
|Enter||None||SELECT
 +
|-
 +
|Enter||Shift||Bold SELECT
 +
|-
 +
|Enter||Ctrl||Long SELECT
 +
|-
 +
|Backspace||None||BACK
 +
|-
 +
|Backspace||Shift||Bold BACK
 +
|-
 +
|Backspace||Ctrl||Long BACK
 +
|-
 +
|Escape||None||BACK
 +
|-
 +
|Escape||Shift||Bold BACK
 +
|-
 +
|Escape||Ctrl||Long BACK
 +
|-
 +
|L||None||LAYER
 +
|-
 +
|L||Shift||Bold LAYER
 +
|-
 +
|L||Ctrl||Long LAYER
 +
|-
 +
|S||None||SNAPSHOT
 +
|-
 +
|S||Shift||Bold SNAPSHOT
 +
|-
 +
|S||Ctrl||Long SNAPSHOT
 +
|-
 +
|A||None||Start audio Record
 +
|-
 +
|A||Shift||Stop audio Record
 +
|-
 +
|A||Alt||Toggle audio Record
 +
|-
 +
|A||Ctrl||Start audio Play
 +
|-
 +
|A||Ctrl+Shift||Stop audio Play
 +
|-
 +
|M||None||Start MIDI Record
 +
|-
 +
|M||Shift||Stop MIDI Record
 +
|-
 +
|M||Ctrl||Start MIDI Play
 +
|-
 +
|M||Ctrl+Shift||Stop MIDI Play
 +
|-
 +
|Space||None||All Notes Off
 +
|-
 +
|Space||Shift||All Sounds Off
 +
|-
 +
|Space||Ctrl||All off
 +
|-
 +
|Home||Shift||Restart UI
 +
|-
 +
|Insert||Ctrl||Reload MIDI Config
 +
|-
 +
|Home||Ctrl||Reboot
 +
|-
 +
|End||Ctrl||Power Off
 +
|-
 +
|Up||None||Listbox Up
 +
|-
 +
|Down||None||Listbox Down
 +
|-
 +
|Left||None||BACK
 +
|-
 +
|Right||None||SELECT
 +
|}
 +
 +
==Controlling the UI with MIDI messages==
 +
 +
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:
 +
 +
0x9F  (Channel 16 Note ON)
 +
0x00  (Note code for POWER_OFF as below)
 +
0x00  (Velocity/parameter)
 +
 +
or play the C-1 key, if your keyboard has it.
 +
 +
This is the full list:
 +
 +
'''Num'''  '''CUIA'''                      '''Note'''        '''System Real-Time'''
 +
0    POWER_OFF                  C-1
 +
1    REBOOT                    C#-1
 +
2    RESTART_UI                D-1
 +
3    RELOAD_MIDI_CONFIG        D#-1
 +
4    RELOAD_KEY_CONFIG          E-1
 +
 +
10    ALL_NOTES_OFF              A#-1
 +
11    ALL_SOUNDS_OFF            B-1
 +
12    ALL_OFF                    C0
 +
 +
23    TOGGLE_AUDIO_RECORD        B0
 +
24    START_AUDIO_RECORD        C1
 +
25    STOP_AUDIO_RECORD          C#1
 +
26    TOGGLE_AUDIO_PLAY          D1
 +
27    START_AUDIO_PLAY          D#1
 +
28    STOP_AUDIO_PLAY            E1
 +
 +
35    TOGGLE_MIDI_RECORD        B1
 +
36    START_MIDI_RECORD          C2
 +
37    STOP_MIDI_RECORD          C#2
 +
38    TOGGLE_MIDI_PLAY          D2
 +
39    START_MIDI_PLAY            D#2          Start/Continue: 0xFA, 0xFB
 +
40    STOP_MIDI_PLAY            E2            Stop: 0xFC
 +
 +
51    SELECT                    D#3
 +
52    SELECT_UP                  E3
 +
53    SELECT_DOWN                F3
 +
 +
64    SWITCH_BACK_SHORT          E4
 +
63    SWITCH_BACK_BOLD          D#4
 +
62    SWITCH_BACK_LONG          D4
 +
 +
65    SWITCH_SELECT_SHORT        F4
 +
66    SWITCH_SELECT_BOLD        F#4
 +
67    SWITCH_SELECT_LONG        G4
 +
 +
60    SWITCH_LAYER_SHORT        C4
 +
61    SWITCH_LAYER_BOLD          C#4
 +
59    SWITCH_LAYER_LONG          B3
 +
 +
71    SWITCH_SNAPSHOT_SHORT      B4
 +
72    SWITCH_SNAPSHOT_BOLD      C5
 +
73    SWITCH_SNAPSHOT_LONG      C#5
 +
 +
80    SCREEN_ADMIN              G#5
 +
81    SCREEN_LAYER              A5
 +
82    SCREEN_BANK                A#5
 +
83    SCREEN_PRESET              B5
 +
84    SCREEN_CONTROL            C6
 +
 +
90    MODAL_SNAPSHOT_LOAD        F#6
 +
91    MODAL_SNAPSHOT_SAVE        G6
 +
92    MODAL_AUDIO_RECORDER      G#6
 +
93    MODAL_MIDI_RECORDER        A6
 +
94    MODAL_ALSA_MIXER          A#6
 +
95    MODAL_STEPSEQ              B6
 +
 +
[[File:2Oct_Keyboard_CUIA.png|600px|Keyboard]]
 +
 +
[[File:Midi-note-chart.jpg]]

Latest revision as of 15:18, 28 May 2020

Contents

General Concepts

Zynthian controllers.png

The physical Zynthian UI is displayed on a display and controlled by 4 knobs (rotary-encoders with push-switches). You can also control the UI with a touch-display, a mouse or keyboard (computer keyboard or MIDI keyboard, both!)

Anyway, the 4 knobs+switches are the primary control mechanism used to navigate the UI: selecting options on menus and adjust the instrument parameters. The knobs can act as assignable MIDI/OSC controllers for the instrument's parameters (frequently lots of them!). You can emulate the knob's behavior using the touch-display, but it's sub-optimal and accessing some features could be tricky.

There are two main screen-layout types:

  • Selector Screen: a list of items that you can scroll and select with the SELECT knob (CTRL-4)
  • Controller Screen: 4 control widgets in the corners (one for each knob), with label and value indicators (graphic and numeric). In the middle there is a list of controller maps, which you can use to change the parameters controlled by the knobs.

Almost every Zynthian UI screen is of one of these 2 types, however, other screen-layouts do exist:

  • Confirmation Screen: It will ask you to confirm some operation.
  • XY Controller Screen: It allows to modify 2 parameters at once using the touch interface.
  • Info Screen: It displays info about an operation, like "Update Software", or "Network Info"

There are 3 types of clicks (push-switch actions) that can be performed, depending on how long you hold down the knob (or hold your finger on the touch-display).

  • short click: less than 0.3 seconds
  • bold click: between 0.3 and 2 seconds
  • long click: more than 2 seconds

These timing values are the default ones. You can adjust them to your personal feeling from the UI options on the webconf tool.

Click actions for each knob are context dependent. The SELECT knob is mainly used to navigate, and a short click on it will select an item on a "Selector Screen". Inside a "Controller Screen", short clicks can be used to rotate between layers (LAYER knob) or between controller pages (SELECT knob). "Bold-clicks" are intended as shortcuts for jumping to some specific screens. Clicking the BACK knob generally jumps to the previous screen in the workflow sequence.

Most of the actions depend of context (current screen), but there are some actions that are global and will work from any screen:

  • bold-back: Main menu
  • bold-snapshot: Load Snapshot menu
  • long-layer: ALSA Mixer app
  • long-back: PANIC! All Notes Off
  • long-snapshot: Audio Recorder
  • long-select: Power Off


Zynthian ui control status.png

The Title Bar

The title bar have 2 functions:

  • Kind of Breadcrumb, normally showing the screen title or layer information: MIDI channel, engine, bank & preset
  • Back-button, when using the touch-interface. I know, it's far from intuitive, but Zynthian-UI was not designed with touch-navigation in mind.

The Status Area

On the top-right corner there is a small area where some useful information is displayed in real time:

Status display.png
  • Audio Peak-meter or CPU-load => 1 or 2 small horizontal bars on the top right.
  • MIDI-IN => Blue M flag
  • Xrun => Red Warning flag
  • Under-voltage => Red Lightning flag
  • Over-temperature => Red Thermometer flag
  • Recording Audio => Red Circle flag
  • Playing Audio => Green Play flag

The Peak-meter

The Audio Peak-meter is shown by default. The meter covers the range -50dBFS to 0dBFS, i.e. maximum permissible level at full scale (far right) down to 50dB below (far left):

  • The green segment covers the range -50dBFS to -10dBFS.
  • The yellow segment covers the range -10dBFS to -3dBFS.
  • The red segment covers the range -3dBFS to 0dBFS.

There are independent meters for left and right channels which monitor the system output, i.e. the mix of audio that feeds the Zynthian output. Level decays with a logarithmic rule, taking one second to decay to -200dBFS so will decay to -50dBFS (the displayed range) in about quarter of a second. Peaks are displayed instantly, i.e. the attack of the meter is immediate(*). The peak hold bar remains for two seconds or until a higher peak is reached.

(*) Meter is updated 5 times per second so there can be 200 ms delay in peak being displayed.

Alternately, CPU-load bar can be enabled from webconf, replacing the Audio Peak-meter. The CPU-load bar shows the CPU usage as calculated by the Jack Audio Server:

This is a running average of the time it takes to execute a full process cycle for all clients as a percentage of the real time available per cycle determined by the buffer size and sample rate. 

The Flags

  • The Blue M flag is shown when MIDI messages pass thru the MIDI router. Not all messages are detected. Only CC, Program Change and Note On/Off.
  • The Red Warning flag is shown when there are Xruns. You should hear clicks and pops too.
  • When the Red Lightning or Red Thermometer flag is shown, your zynthian is working in a degraded state, with the CPU frequency capped to 600-800 MHz, trying to stabilize the system and avoid a system crash. You shouldn't see any of them and if you do so, you should consider looking for a better power source (under-voltage) or using a heat sink (over-temperature).
  • Finally, the Red Circle and Green Play flags show the status of audio/MIDI capture: recording / playing


The Zynthian UI Workflow

The following flowcharts show the different "screens" or "menus" and how to reach each one using the 4 switches. It would be a good idea to print these flowcharts and keep them near your Zynthian Box until you memorize the workflow.

If you want to contribute to improving these flowcharts, you can edit them using the Google Documents Tools:

- Main sequence: zynthian_ui_workflow_main
- Layer Options: zynthian_ui_workflow_layer_options
- Snapshots: zynthian_ui_workflow_snapshots
- MIDI Learning: zynthian_ui_workflow_midi_learning


The UI Screens

Main

Zynthian ui main.png

This is the first screen you would see when you power on your zynthian for first time and no default snapshot or last-state snapshot has been saved yet. The Main menu gives easy and intuitive access to the Zynthian-UI's main features:

  • Layers
  • Snapshots
  • Audio Recorder
  • MIDI Recorder
  • ALSA-Mixer
  • Auto-EQ
  • Admin

You always can access this menu with bold-back.

The Zynthian-UI has a lot of short-cuts and most of the options on the Main menu can be accessed on this way, but until you learn the shortcuts and feel comfortable with them, you will find this menu very useful.


Layers

Layers are a key concept on Zynthian-UI: the first thing you do when you power-on your zynthian is, probably, create a layer.

A layer is an Audio Processing Chain, normally assigned to a MIDI channel, which can be composed of one or more Audio Processing Units. These units are chained in the same order they are created, but you can change the order from the Layer Options menu. The first unit in a layer is the root and it determines the layer's type:

  • Synth Layer => Receives MIDI note-events and generate audio output.
  • FX Layer => Receives audio-input and generates audio-output.
  • Generator Layer => Auto-generate audio output using an algorithm.
  • Special Layer => MOD-UI pedalboard, Pure Data patch, etc.

The rest of units in a layer are usually FX units which process the audio coming from the first unit (root).

All units in a layer receive all the MIDI events coming from the assigned channel. Some special layers (MOD-UI) don't have an assigned MIDI channel and receive all MIDI channels.

You can access the Layer screen:

  • from any place, bold-layer
  • from Main menu
Zynthian ui new layer.png

There are several options on layers screen:

  • NEW Synth Layer => Create a new Synthesizer Layer.
  • NEW Effect Layer => Create a new Effect Layer that will be connected to soundcard's Audio Input. You can route the audio from other layers to an Effect Layer.
  • NEW Generator Layer => Create a new Generator Layer that self-generates audio or midi.
  • NEW Special Layer => Create a new Special Layer (MOD-UI, Pure Data, ...).
  • REMOVE ALL => Remove all Layers & Effects, returning to the initial state.
  • PANIC! All Notes/Sounds Off => Stop All Notes and sounds by sending CC#123 and CC#120 to all channels.

The last option, All Notes/Sounds Off, can be triggered with long-back from any point of the workflow. You can also add a panic-button to your zynthian using the extra pins from the AllInOne circuit or the Zynscreen. Read this for a detailed explanation about how to add a panic button to your Zynthian.


Zynthian ui layers.png

When you select NEW Synth/Effect/Generator/Special Layer, you create a new root-layer (first of a chain), choosing a free MIDI channel for it. You can create up to 16 layers (as many as MIDI channels), each one having an independent effect-chain.

Having several layers in the same MIDI channel is not allowed. If you want two or more layers playing unison (like being in the same MIDI channel), you should use the "Clone" feature, which allow you to bind several layers while keeping MIDI CCs and other MIDI messages (Program Change, Channel Pressure, etc.) independent.


Zynthian ui layer options.png

If you bold-click the select switch over a layer from the list, the "Layer Options" menu will be displayed for the selected layer. This menu allows you to:

  • Clone MIDI to... => clone the layer's MIDI channel messages to other MIDI channels. Note that only note on/off, pitch-bending, and key-press messages are cloned, while the rest are kept independent by default (CC, channel-pressure, program change, ...). You can select what CC will be cloned by bold-clicking on the channel list.
  • Transpose => transpose the layer's MIDI channel up and down, by semitones.
  • Audio Routing => route the layer's audio output to the available audio input ports, allowing to process the audio in almost any way you can imagine. You can use this feature for creating your own customized/bizarre FX chains. If this is not enough for you, try MOD-UI engine with the MOD-UI web GUI.
  • MIDI chan => change the MIDI Channel assigned.
  • Remove Layer => Remove the layer.
  • Add Effect => Add an effect to the FX-chain.
  • Remove All Effects => Clean the FX-chain, deleting all the effects.
  • Effect List => The list of effects in the layer's FX-chain.


Zynthian ui layer effect options.png

By bold-clicking on an effect from the list, you will access the Effect's Options:

  • Replace Effect
  • Effect Presets
  • Move Upchain
  • Move Downchain
  • Remove Effect
Note that not all these options will be available all the time. For instance, if there is only one effect in the chain, "Move" options won't be shown.


Engine Selector

Zynthian ui engine list.png

When you create a new layer, you are asked which engine/plugin you want to use for it. A list of engines to choose from is displayed. They can be synthesizers, effects, generators or special engines, depending on the type of layer you are creating. When you select an element from the list, the zynthian logo on the top-right will be animated while the engine is being started.

Some engines have special behavior regarding layers and MIDI channels:

  • setBfree: This engine can create 1, 2 or 3 layers assigned to the several MIDI channels starting at selected channel, each one corresponding to the upper, lower and pedals sections of the Hammond B3 emulation.
  • Pianoteq: Only one layer can be created, assigned to the MIDI channel you choose.
  • Aeolus: By default, 4 layers are created, assigned to different MIDI channels (1,2,3 & 4), each one corresponding to the 3 manuals + 1 pedal of the Aeolus default instrument definition. You can change the MIDI channel assignments from the Aeolus native UI. If you want to use a different instrument definition, you will have to tweak the engine's code a little bit.
  • MOD-UI: Only one layer of this type is allowed and it will receive ALL MIDI channels. If you want to filter the messages by channel, you can do it within the MOD-UI patch. (There are plans for improving this behavior.)
  • PureData: Only one layer of this type is allowed, but it can be assigned to a MIDI channel.



MIDI Channel selector

Zynthian ui midi channel.png

This screen is shown in various contexts:

  • After you have selected the engine for a new layer. Only free channels are listed.
  • When you change the assigned MIDI channel from the Layer Options. Only free channels are listed.
  • When you clone a layer from the Layer Options.


Bank selector

Zynthian ui bank list.png

Presets (instruments, patches, or sound designs) for a synth engine are organized into banks. Choose a bank to see the list of presets you can pick from within that bank.

Preset selector

Zynthian ui preset list.png

Once you have chosen a bank, the preset screen will be shown. Choose a preset to load the instrument/sound/patch you want and the Control Instrument screen will be shown.

If the preload with note-on feature is enabled, you can preload the presets by playing notes. When you do so, the highlighted preset will be pre-loaded before clicking select.

You can return to the control screen directly, without selecting any preset, by clicking bold-back. In that case, the previously selected instrument will be restored in case you pre-loaded some preset.

Use bold-select for adding a preset to your favorites. You will see a little * at left. Bold-select again for removing the preset from favorites. For listing only your favorite presets, use bold-snapshot.


Control screen

Zynthian ui instrument control 01.png

This screen is shown after you have chosen a preset. Your instrument is now enabled and playable and you can modify the parameters.

Turning any of the 4 knobs will change the value of the parameter displayed in the boxes adjacent to each knob. You also can use the touch interface to change the values. See below.

Zynthian ui instrument control 02.png

The central list shows the different pages of parameters that you may alter. You can navigate the page of parameters by clicking short-select to step by one page.

Zynthian ui instrument control 03.png

If the page list is long, you can "bold click" the select switch to navigate the list using the select knob.

XY-Controller

Zynthian ui xy select.png

From the instrument control screen, if you bold-press two knobs at once, you should enter the XY-select mode.

The 2 controllers you pushed will be green, indicating they are pre-selected for XY-control. You can change the pre-selection by rotating any knob, navigating through the controller pages if needed.

Zynthian ui xy controller.png

Once you have selected the parameters you want, touch the display to enter the XY-control pad and use the touchscreen ala Kaoss-Pad.

Click back to return to XY-select and back again to return to the control screen.

Load/Save Snapshot

Zynthian ui snapshot load.png
Zynthian ui snapshot save.png

Snapshots are used for saving and restoring the status of Zynthian. A snapshot includes the full state, including layers, effects, parameter values, MIDI-learning, etc.

You can enter the Load Snapshot screen with bold-snapshot. It works from any place. A second click and you will be at the Save Snapshot screen.

Before loading any snapshot, you should save one, and to save a snapshot, you should create some layers, etc. The Zynthian UI will use numbers for naming the banks and snapshots. You can rename the snapshots to something more specific using the webconf tool.

Snapshot Banks

By default, snapshots are stored as a single list and bank-related stuff is not shown by Zynthian-UI. If you want to use banks for organizing your snapshots, you simply create a second bank using the webconf tool and the hidden bank functionality will be enabled.

When using snapshot banks, if you want to go up one level (from snapshot list to bank list), you must use the ".." entry. The back button will close the snapshot screen.

Default Snapshot

You can save the status as "Default Snapshot". This "Default Snapshot" will be loaded automatically at startup. To delete it, you can use the webconf tool or the command line.

Restore Last State

If "Restore last state on startup" option is enabled on webconf (it's enabled by default), then the state will be saved when powering off (using long-click select or from Admin Menu) and restored on next boot. This option has priority over the "Default Snapshot".


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

Zynthian ui midi cc learn 01.png
Zynthian ui midi cc learn 02.png

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.


MIDI Program Change: ZS3 (SubSnapShots)

Zynthian ui midi zs3 learn.png

A ZS3 (SubSnapShot) saves the state of the active layer in the context of the current snapshot (layer layout). When recalled, the saved state is restored and the active layer is changed.

Every ZS3 includes:

   - Layer ID
   - Bank Name
   - Preset Name
   - Controller Values

Once a set of layers has been created (i.e. loading a snapshot), ZS3 loading is very fast in comparison with loading snapshots, as no engine have to be started. It take less than 1 second in most of cases, and you can map ZS3s to MIDI programs very easily using MIDI learning.

The idea behind this feature is to have a fast preset-change mechanism that can be used on stage. In combination with the “Single Active Layer” feature, it turns Zynthian into a “Stage-Beast”. You can prepare a snapshot for the full performance, and use ZS3s for fast changes from a song to another, or between parts inside the same song.

Learning to create a SubSnapShot is obscenely easy:

1. From the Control screen, click the snapshot button twice. You will see the current list of ZS3s and a message: “Waiting for Program Change…”

2. Push a “Program Change” button in your keyboard/controller and the ZS3 will be stored in memory, associated with the Program Number you selected.

After that, you can recall the stored ZS3 by pushing the same Program Change button again. Of course, stored ZS3s will be saved with your snapshot and restored on load.

You can update and delete stored ZS3s by bold-clicking on the list. An options menu will be shown with both options.

ZS3 behavior depends of the "Single Active Layer" option:

  • Single Active Layer Enabled: ZS3 list shows all the ZS3s stored, no matter the layer. Recalling a ZS3 changes the active layer, so the layer associated with the recalled ZS3 will receive *ALL* the MIDI input. Only 127 ZS3s can be stored.
  • Single Active Layer Disabled: ZS3 list shows only the ZS3 of the currently active layer. Recalling a ZS3 changes the active layer, but every layer receives MIDI input for its channel only. You can use several keyboards on different channels and store 127 ZS3s by MIDI channel.


Audio & MIDI Recording

Zynthian audio recorder 01.png
Zynthian audio recorder 02.png
Zynthian ui audio recorder.png
Zynthian ui midi recorder.png

These simple tools allow you to record Audio & MIDI tracks easily, using the internal SD-card or an USB memory stick for storing the files.

For accessing the Audio & MIDI recording tools:

  • From the Main menu, select Audio Recorder
  • From any place, long-snapshot

When you are in, short-snapshot for switching between Audio & MIDI Recorder.


WARNING! Using the internal SD card to store the captured files will increase the risk of corruption. You should use a USB memory stick instead.

Recording

1. Press "Start Recording" to start a new capture.

2. The red circle should appear in the top-right status area, indicating that a recording is going on.

3. Press "Stop Recording" for finishing the capture. The red circle will disappear and the recorded file will be added to the list. The filename is generated automatically and should be something like "jack_capture_01". The prefix "SDC" or "USB" indicates where the file is stored.

Playing

You can play files by simply selecting and clicking the file. The "play" symbol will be displayed in the UI status area. For looping the file, turn on the "Loop Play" switch before playing.

NOTE: You can play a file at any moment. Recording and playing can take place simultaneously.

When playing audio, a volume control will be shown. When playing MIDI, a BPM control will be shown for adjusting the transport speed.

Recording audio & playback MIDI are transport-bond. If you stop recording audio while playing MIDI, MIDI play will stop, but MIDI playback will remain enabled, so when starting a new audio record, the MIDI playback will start again.

Deleting

A bold press will delete the selected file, but you will be asked to confirm the action.


Managing recordings from your computer

Zynthian webconf captures 02.png

Audio & MIDI recordings can be managed from your computer by accessing the webconf's captures section. From this section you can:

  • rename recordings
  • delete recordings
  • convert audio recordings to .ogg format
  • downloading recordings to your computer
  • reproduce the audio recordings in your browser. If .wav files doesn't work in your browser, try converting to ogg.

It is a good idea to rename your recordings so they can be easily identified.


ALSA Mixer

Zynthian ui mixer control.png

The ALSA Mixer app is a pseudo-layer that allows to adjust the soundcard output/input levels and other audio-hardware related options. Technically speaking, it's a user interface for the ALSA (Audio Linux Sound Architecture) mixer.

For accessing the ALSA-Mixer app, you have 2 options:

  • Selecting "ALSA-Mixer" option from the Main menu
  • Long-pushing the layer knob (CTRL-1)

You can configure the mixer controllers from the webconf's hardware->audio menu. Simply click the + button on the "Mixer Controls" text area.


Step Sequencer

Note: Step Sequencer is alpha software

Zynthian has a step sequencer which provides:

  • Pattern editor
  • Song editor
  • Pad triggers (ZynPad)

The step sequencer may be accessed from the main Zynthian screen or by a long press of the SNAPSHOT encoder. Access to the editors and players is via a menu.

Menu Selection

Short press the LAYER encoder. The menu is displayed. Use the LAYER or SELECT encoder to highlight a menu entry. Move beyond the bottom entry to scroll down if more options are available than screen size allows to display. Short press the LAYER or SELECT encoder to select the menu entry or short press the BACK encoder to cancel.

Menu may also be accessed by clicking the top bar (not the status display on the right) with a pointing device. Menu options are selected by clicking on them and the menu may be scrolled by dragging up and down.

All patterns and songs are saved to a common file.

Parameter Editor

Some parameters must be adjusted using the parameter editor. This is a control that appears in the top bar showing the parameter being adjusted, its value and some buttons to allow up / down adjustment of the parameter.

Access the parameter editor by selecting a menu entry. The parameter editor is displayed with the current parameter name and value. Use the LAYER or SELECT encoders to adjust the value. Values may have minimum and maximum limits. Short press the BACK encoder to cancel and close the editor. Short press the LAYER or SELECT encoder to assert the value and close the editor.

Parameters may be adjusted with a pointing device by clicking on the cancel, up, down and assert buttons.

Save

Short press LAYER encoder displays a menu. Select "Save" menu option. All patterns and songs are immediately saved to disk.

Load

Short press LAYER encoder displays a menu. Select "Load" menu option. All patterns and songs are immediately loaded from disk.


Pattern Editor

PatternEditor.png

The pattern editor allows the creation of a sequence of MIDI events within a time-boxed period. This period is defined in steps. The quantity of steps may be selected for each pattern. Any quantity of MIDI events may be added to the pattern at each step. The most common MIDI events are notes. The pattern editor displays a grid with horizontal tramlines indicating black and white notes. There can be a grid indicating time divisions and octaves. There is a pianoroll on the left with each 'C' note indicated by a legend. Clicking on a note with a pointing device will sound the note briefly. Most common workflows are exposed via rotary encoders, push buttons and pointing device input. More options are available via menus.

Pattern Selection

There may be up to 999 patterns loaded into the step sequencer. By default pattern 1 is displayed. Short press LAYER encoder displays a menu. Select "Pattern" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to select the pattern to edit. The title and grid change to show the pattern that will be selected. Short press the LAYER or SELECT encoder to select the pattern or short press BACK encoder to cancel.

Adding Notes

Use the BACK encoder to select the note to add. The screen will scroll at top and bottom edges. Use the SELECT encoder to select the step at which the note will start. Use the LAYER encoder to select the duration of the note. Duration is indicated by the length of the highlight border. Use the SNAPSHOT encoder to select the velocity of the note. Velocity is indicated by a yellow bar in the bottom left of the screen. Short press the SELECT encoder to add the note. The note is indicated by a shaded block starting at the required start step with length indicating duration and opacity indicating velocity.

Notes may also be added by clicking on the note / start step if you have a pointing device. To scroll screen with pointing device drag the pianoroll up or down.

Removing Notes

Use the BACK encoder to select the note to remove. Use the SELECT encoder to select the step at which the note starts. Short press the SELECT encoder to remove the note.

Notes may also be removed by clicking on the note / start step if you have a pointing device.

Changing Duration

Use the BACK encoder to select the note to adjust. Use the SELECT encoder to select the step at which the note starts. Use the LAYER encoder to adjust the duration of the note.

Changing Velocity

Use the BACK encoder to select the note to adjust. Use the SELECT encoder to select the step at which the note starts. Use the SNAPSHOT encoder to adjust the velocity of the note.

Controlling Playback

Short press the SNAPSHOT encoder to start playback of the pattern. The pattern will resume playback from its previously stopped step, looping when it reaches the end of the pattern. Short press the SNAPSHOT encoder to pause playback. Bold press the SNAPSHOT encoder to stop playback and / or recue to start of pattern. NOTE: When exiting the pattern editor playback will stop. This is because the pattern editor is a design tool and not intended for performance.

Playback may also be controlled with a pointing device by pressing the start / pause and stop / recue buttons in the topbar.

Playback may also be controlled via external MIDI transport control (start, stop, continue, locate).

Changing Pattern Length

By default each pattern is 16 steps long. This may be adjusted from 1 to 64 steps in each pattern. Short press LAYER encoder displays a menu. Select "Steps in pattern" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to adjust the quantity of steps in the pattern. The quantity of grid columns changes to match the step in pattern.

Note: The pattern editor always shows all the steps, i.e. there is no horizontal scrolling or zooming.

Change Time Divisions

A user may wish to use the concept of time divisions, e.g. beats in a bar, steps in a beat, etc. This is presented by the display of vertical lines. By default the steps per beat is 4. This may be adjusted from 0 to 24. Short press LAYER encoder displays a menu. Select "Steps per beat" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to adjust the quantity of steps per beat. The vertical grid lines move to match the steps per beat. Setting to zero will hide vertical lines.

Note: The steps per beat is constrained to the values: 0, 1, 2, 3, 4, 6, 8, 12, 24. This is because it must divide exactly into 24 which is the quantity of clock cycles per beat.

Transpose

All notes within a pattern may be permanently transposed. Short press LAYER encoder displays a menu. Select "Transpose pattern" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to move all notes up or down. The pianoroll scrolls to indicate the transposition.

Vertical Zoom

By default 16 note are shown on the pianoroll and corresponding 16 rows in the grid. Short press LAYER encoder displays a menu. Select "Vertical zoom" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to adjust the vertical zoom. The quantity of rows in grid (and notes in pianoroll) change to match the vertical zoom value.

MIDI channel

The pattern editor plays its sequence of notes out on a single MIDI channel. Short press LAYER encoder displays a menu. Select "MIDI channel" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to adjust the MIDI channel between 1 and 16.

Clocks Per Step

By default each step within a pattern is advanced after 6 MIDI clock cycles. Short press LAYER encoder displays a menu. Select "Clocks per step" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to adjust the clocks per step.

Note: Adjusting the steps per beat will automatically set the clocks per step. Adjustment of clocks per step allows fine control and less common time signatures.

Clear Pattern

A pattern may be cleared of its content. Short press LAYER encoder displays a menu. Select "Clear pattern" menu option. The parameter editor is displayed in the top bar. Short press the LAYER or SELECT encoder to clear pattern or short press BACK encoder to cancel.

Copy Pattern

The currently selected pattern may be copied to another pattern location. Short press LAYER encoder displays a menu. Select "Copy pattern" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to select the pattern to copy the previous pattern to. The title and grid change to show the pattern that will be overwritten. Short press the LAYER or SELECT encoder to overwrite pattern with previously selected pattern or short press BACK encoder to cancel.

Song Editor

SongEditor.png

The song editor allows the assignment of patterns to a variable quantity of tracks. Each song may have any quantity of tracks. A track represents a sequence of patterns. Each track may have any quantity of patterns and hence be any duration. Each pattern may belong to a group (A, B, C...), has a MIDI channel and a play mode. The track group and number are shown on the left with its MIDI channel in brackets and its play mode shown by an icon. Patterns may not overlap on the same track. A timeline is shown along the bottom of the grid. Bar (or sync point) markers are indicated by vertical lines with its time (in time divisions) at the bottom in the timeline. There may up to 999 songs loaded.

Song Selection

There may be up to 999 songs loaded into the step sequencer. By default no song is displayed. Short press LAYER encoder displays a menu. Select "Song" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to select the song to edit. The title and grid change to show the song that will be selected. Short press the LAYER or SELECT encoder to select the song or short press BACK encoder to cancel.

Adding Patterns

Use the BACK encoder to select the track. The screen will scroll at top and bottom edges. Use the SELECT encoder to select the time at which the pattern will start. The screen will scroll at left and right edges. Use the LAYER encoder to select the pattern that will be added. Pattern number is shown in the bottom left of the screen. Pattern duration will be indicated by the selection border. Short press the SELECT encoder to add the sequence. The sequence is indicated by a shaded block starting at the required start step with length indicating pattern duration. If the pattern overlaps an existing pattern then the existing pattern will be removed.

Patterns may also be added by clicking on the track / start time if you have a pointing device. To scroll screen with pointing device drag the track list up or down or timeline left and right.

Removing Patterns

Use the BACK encoder to select the track. Use the SELECT encoder to select the time at which the pattern starts. Short press the SELECT encoder to remove the pattern.

Notes may also be removed by clicking on the pattern within the grid if you have a pointing device.

Adding Tracks

Short press LAYER encoder displays a menu. Select "Add track" menu option. A new track is added to the end of the track list.

Removing Tracks

Short press LAYER encoder displays a menu. Select "Add track" menu option. A new track is added to the end of the track list.

Controlling Playback

Short press the SNAPSHOT encoder to start playback of the song. The song will resume playback from its previously stopped step. Playback will continue to run even if playhead passes beyond the end of the last pattern. Short press the SNAPSHOT encoder to pause playback. Bold press the SNAPSHOT encoder to stop playback and / or recue to start of song.

Playback may also be controlled with a pointing device by pressing the start / pause and stop / recue buttons in the topbar.

Playback may also be controlled via external MIDI transport control (start, stop, continue, locate).

Time Divisions

The timeline is quantised to time divisions. This is the minimum step that may be navigated / pattern positioned. A user may wish to use the concept of bars (or other larger time divisions). This is presented by the display of vertical lines. By default the time divisions per bar 16. This may be adjusted from 1 to 999. This setting also defines the sync point for live playout, i.e. the time at which a pattern will start playing after being triggered.

Short press LAYER encoder displays a menu. Select "Bar / sync" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to adjust the quantity of time division per marker. The vertical grid lines move to match.

Transpose **NOT YET IMPLEMENTED**

All notes within a song may be transposed. Short press LAYER encoder displays a menu. Select "Transpose pattern" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to move all notes up or down. Note: This setting is at song level. Patterns are not individually transposed. Playback is transposed.

Vertical Zoom

By default up to 16 tracks are shown. Short press LAYER encoder displays a menu. Select "Vertical zoom" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to adjust the vertical zoom. The quantity of tracks change to match the vertical zoom value.

Horizontal Zoom

By default 64 time divisions are shown. Short press LAYER encoder displays a menu. Select "Horizontal zoom" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to adjust the horizontal zoom. The quantity of columns change to match the horizontal zoom value.

MIDI channel

Each track may be assigned a MIDI channel. Use the BACK encoder to select the track. Short press LAYER encoder displays a menu. Select "MIDI channel" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to adjust the MIDI channel between 1 and 16. The track title changes to show the MIDI channel in brackets.

Clocks Per Division

By default each time division is 6 MIDI clock cycles. Short press LAYER encoder displays a menu. Select "Clocks per division" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to adjust the clocks per division.

Clear Song

A song may be cleared of its content. Short press LAYER encoder displays a menu. Select "Clear song" menu option. The parameter editor is displayed in the top bar. Short press the LAYER or SELECT encoder to clear song or short press BACK encoder to cancel.

Copy Song

The currently selected song may be copied to another song location. Short press LAYER encoder displays a menu. Select "Copy song" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to select the song to copy the previous song to. The title and grid change to show the song that will be overwritten. Short press the LAYER or SELECT encoder to overwrite pattern with previously selected song or short press BACK encoder to cancel.

Tempo

Each song has a master track displayed along the bottom of the screen. The master track may have tempo changes added at any time during the song. By default songs have a tempo of 120 BPM. Use the SELECT encoder to select the time at which to add a tempo change. The screen will scroll at left and right edges. Short press LAYER encoder displays a menu. Select "Tempo" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to select the tempo. Short press the LAYER or SELECT encoder to add a tempo change to the selected song or short press BACK encoder to cancel. The tempo is displayed in the master track as red text below the timeline.

Remove Tempo Marker

Tempo persists until the next different tempo change. You cannot have consecutive tempo markers with the same value. Use the SELECT encoder to select the time at which to remove tempo marker. The screen will scroll at left and right edges. Short press LAYER encoder displays a menu. Select "Tempo" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to adjust the tempo. The tempo marker changes and will disappear when it is the same as the previous tempo marker. Short press BACK encoder to cancel.

ZynPad

ZynPad.png

ZynPad is a performance mode for the step sequencer. It presents a grid of pads that my be tapped to trigger sequences. Each pad may be a member of a mutually exclusive group where pressing a pad in the group will cause other group members to stop playing. Each group is allocated an alternating colour (blue / purple) and is identified by the first character of the pad name, e.g. A, B. C, etc. A pad will start playing at the next sync point, e.g. at the end of the current bar. This maintains synchronisation between sequences (assuming the sequences have been programmed to be synchronous).

Playing ZynPad

Each pad has a colour which indicates its group. Odd groups are blue whilst even groups are purple. Click a pad to start the pad's sequence running. If the transport is not running then it will be started and the sequence will begin immediately. If the transport is already running then the sequence will begin at the next sync point. The pad will change to orange whilst it is waiting to start. The pad will change to green whilst playing. Click on a pad to stop the sequence playing. The pad will change to red whilst waiting to stop. The pad will change to blue or purple (depending on its group) when stopped. Click a pad in a different group (with different first letter) will start that pad's sequence running synchronously with existing sequences, starting at the next sync point. group will stop the currently playing sequence (from this group) and start that pad's sequence running synchronously with existing sequences, starting at the next sync point. An icon on the pad indicates the play mode:

Icon Mode Description
Disabled No sequence will play
ZynPadEndnoline.png Oneshot Sequence will play only once, stopping immediately when pad clicked
ZynPadLoop.png Loop Sequence will play in a continuous loop, stopping immediately when pad clicked
ZynPadEnd.png Oneshot All Sequence will play only once, stopping at next sync point after pad clicked
ZynPadLoopstop.png Loop All Sequence will play in a continuous loop, stopping at next sync point after pad clicked

The play mode and sync point is set in the song editor.

ZynPad Song Selection

ZynPad is configured by the song editor. Each pad represents a track in a song.

Short press LAYER encoder displays a menu. Select "Song" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to select the song. ZynPad changes to match the selected song. Short press LAYER, SELECT to select song. Short press BACK encoder to cancel.

The quantity of pads is defined by the quantity of tracks in the song. There will always be the same quantity of rows as columns. Extra pads required to fill grid (greater than quantity of tracks) are shown disabled. Text and icons scale to match pad size.

MIDI Control

Zynthian step sequencer may be controlled by external MIDI controllers.

Transport Control

MIDI START message will start playback of the currently selected song or the pattern in the pattern editor if shown, from the start of the song or sequence. MIDI STOP message will stop (pause) playback of the currently selected song or the pattern in the pattern editor if shown. ZynPad sequences will also be stopped. MIDI CONTINUE message will resume playback of the currently selected song or the pattern in the pattern editor if shown, from the point it was previously stopped (paused) of the song or sequence.

Clock

To use an external MIDI clock to synchronise Zynthian: Navigate to the Admin page. Disable MIDI Clock Internal. Provide an external MIDI clock.

Sequences will only play after receiving MIDI START / STOP / CONTINUE or being triggered from Zynthian user interface and will play at the rate of the external clock. 6 MIDI clock messages are sent for each beat. A beat is often considered to be a crotchet / quarter note.

Trigger Sequence **NOT YET IMPLEMENTED**

Each sequence (pad) within ZynPad may be triggered by MIDI NOTE ON messages. The MIDI channel is configurable.

Short press LAYER encoder displays a menu. Select "MIDI channel" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to select the MIDI channel for external trigger. Short press LAYER, SELECT to select channel. Short press BACK encoder to cancel.

Use the BACK encoder to select the track. Short press LAYER encoder displays a menu. Select "Trigger note" menu option. The parameter editor is displayed in the top bar. Use the LAYER or SELECT encoder to select the note number for external trigger. Short press LAYER, SELECT to select note. Short press BACK encoder to cancel.

Admin Menu

Zynthian ui admin.png
Zynthian ui admin 02.png

The Admin menu gives access to some configuration options (most of them also accessible from the webconf tool). Also includes basic testing options for audio and MIDI.

You can access this menu from the Main menu.


Touch Screen UI

Zynthian ui top bar.png

You can navigate and control the Zynthian UI without knobs/encoders/switches at all, using only the touchscreen (or mouse).

You can "emulate" the switches by tapping the controller widgets (squares in the 4 corners of the screen). There are short, bold and long actions, same behaviour than rotary encoders work-flow. The only screen having the 4 controller widgets is the "Instrument Control" screen. Most of screens are selectors, which only have 1 controller widget. On those screens you can click the zynthian logo (top-right) to emulate the "snapshot" switch, and you can go back by tapping the top-bar area.

You can change the controller values by "sliding" up/down over the widgets. (see the green arrow in the figure) This is the same as turning the knob. If you are using a mouse, the mouse wheel also can be used to change the controller value.


MIDI-CC Learning with a touch interface

Zynthian ui midi learning.png

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.  


Zynthian ui midi unlearning.png

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, the number will change.


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.

Key Modifier Function
Enter None SELECT
Enter Shift Bold SELECT
Enter Ctrl Long SELECT
Backspace None BACK
Backspace Shift Bold BACK
Backspace Ctrl Long BACK
Escape None BACK
Escape Shift Bold BACK
Escape Ctrl Long BACK
L None LAYER
L Shift Bold LAYER
L Ctrl Long LAYER
S None SNAPSHOT
S Shift Bold SNAPSHOT
S Ctrl Long SNAPSHOT
A None Start audio Record
A Shift Stop audio Record
A Alt Toggle audio Record
A Ctrl Start audio Play
A Ctrl+Shift Stop audio Play
M None Start MIDI Record
M Shift Stop MIDI Record
M Ctrl Start MIDI Play
M Ctrl+Shift Stop MIDI Play
Space None All Notes Off
Space Shift All Sounds Off
Space Ctrl All off
Home Shift Restart UI
Insert Ctrl Reload MIDI Config
Home Ctrl Reboot
End Ctrl Power Off
Up None Listbox Up
Down None Listbox Down
Left None BACK
Right None SELECT

Controlling the UI with MIDI messages

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:

0x9F  (Channel 16 Note ON) 
0x00  (Note code for POWER_OFF as below)
0x00  (Velocity/parameter)

or play the C-1 key, if your keyboard has it.

This is the full list:

Num   CUIA                       Note         System Real-Time
0     POWER_OFF                  C-1
1     REBOOT                     C#-1
2     RESTART_UI                 D-1
3     RELOAD_MIDI_CONFIG         D#-1
4     RELOAD_KEY_CONFIG          E-1
10    ALL_NOTES_OFF              A#-1
11    ALL_SOUNDS_OFF             B-1
12    ALL_OFF                    C0
23    TOGGLE_AUDIO_RECORD        B0
24    START_AUDIO_RECORD         C1
25    STOP_AUDIO_RECORD          C#1
26    TOGGLE_AUDIO_PLAY          D1
27    START_AUDIO_PLAY           D#1
28    STOP_AUDIO_PLAY            E1
35    TOGGLE_MIDI_RECORD         B1
36    START_MIDI_RECORD          C2
37    STOP_MIDI_RECORD           C#2
38    TOGGLE_MIDI_PLAY           D2
39    START_MIDI_PLAY            D#2           Start/Continue: 0xFA, 0xFB
40    STOP_MIDI_PLAY             E2            Stop: 0xFC
51    SELECT                     D#3
52    SELECT_UP                  E3
53    SELECT_DOWN                F3
64    SWITCH_BACK_SHORT          E4
63    SWITCH_BACK_BOLD           D#4
62    SWITCH_BACK_LONG           D4
65    SWITCH_SELECT_SHORT        F4
66    SWITCH_SELECT_BOLD         F#4
67    SWITCH_SELECT_LONG         G4
60    SWITCH_LAYER_SHORT         C4
61    SWITCH_LAYER_BOLD          C#4
59    SWITCH_LAYER_LONG          B3
71    SWITCH_SNAPSHOT_SHORT      B4
72    SWITCH_SNAPSHOT_BOLD       C5
73    SWITCH_SNAPSHOT_LONG       C#5
80    SCREEN_ADMIN               G#5
81    SCREEN_LAYER               A5 
82    SCREEN_BANK                A#5
83    SCREEN_PRESET              B5
84    SCREEN_CONTROL             C6
90    MODAL_SNAPSHOT_LOAD        F#6
91    MODAL_SNAPSHOT_SAVE        G6
92    MODAL_AUDIO_RECORDER       G#6
93    MODAL_MIDI_RECORDER        A6
94    MODAL_ALSA_MIXER           A#6
95    MODAL_STEPSEQ              B6

Keyboard

Midi-note-chart.jpg