Difference between revisions of "Zynthian UI Users Guide (oldstable-2109)"

From ZynthianWiki
Jump to navigation Jump to search
m (Jofemodo moved page Zynthian UI Users Guide to Zynthian UI Users Guide (oldstable-2109): Bump to stable-2210)
 
(207 intermediate revisions by 9 users not shown)
Line 2: Line 2:
 
=General Concepts=
 
=General Concepts=
  
[[File:zynthian_controllers.png|430px|right]]
+
The Zynthian UI is displayed on a display and controlled by 4 knobs with switches. You can also control the UI with a touch-display, a mouse or a keyboard (computer keyboard or MIDI keyboard, both!)
  
The Zynthian UI is displayed on a touch display and controlled by 4 knobs (rotary-encoders with push-switches).
+
The 4 knobs+switches are the primary control mechanism to navigate the UI: selecting options on menus and adjusting 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 behaviour using the touch-display, but it's sub-optimal and accessing some features could be tricky.
The 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 knob's behaviour using the touch-display, but it's sub-optimal and accessing some features could be tricky.
 
  
There are two main screen layout types:
+
[[File:Zynthian v4 top legend.png|600px|center]]
  
* '''Selector Screen''': a list of items that you can scroll and select with the SELECT (4) knob
+
There are two main screen-layout types:
* '''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.
 
  
Almost every Zynthian UI screen is one of these 2 types, however, other screen-types do exist:
+
* '''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 screens, each one mapping 4 controllers which you can use to change the engine parameters.
 +
 
 +
Most of Zynthian UI screens belongs to one of these 2 categories, 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 displays info about an 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 ;-)
+
* '''Key Range & Transpose Screen''': It allows to choose the key range and transpose notes by octaves or semitones.
 +
* etc.
  
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):
+
There are 3 types of push actions that can be performed, depending on how long you hold down the knob/button (or hold your finger on the touch-display).
  
* '''short click:''' less than 0.3 seconds
+
* '''Short push:''' Less than 0.3 seconds
* '''bold click:''' between 0.3 and 2 seconds
+
* '''Bold push:''' Between 0.3 and 2 seconds
* '''long click:''' more than 2 seconds
+
* '''Long push:''' More than 2 seconds (until the long-action is triggered!)
  
Click actions for each knob 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 webconf's UI options.
  
Most of the actions depend of context (current screen), but there are some actions that are global and will work from any screen:
+
Some push actions depends of context. The SELECT knob is mainly used to navigate and a short push on it will select an item on a "Selector Screen". Inside a "Controller Screen", short pushes can be used to rotate between layers (LAYER knob) or between controller pages (SELECT knob). "Bold-pushes" are normally intended as shortcuts for jumping to specific screen like "layer options", "main menu", etc. Pushing the BACK knob generally close the current modal-screen or jumps to the previous screen in the workflow sequence.
  
* '''long-back''': go to the admin menu
+
Although some push actions depend of context (current screen), there are some actions that are global and will work from any screen:
* '''long-select''': power off
 
  
Snapshot actions are almost global and will work from any point of the workflow. If you short-click SNAPSHOT (3) once, you get the Load Snapshot menu, another short-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. When accessing snapshots from Control-Screen context, bold-clicks must be used instead of short clicks and direct access to Save Snapshot menu is not available. These actions are better explained below.
+
* '''Bold-Back''': Main Menu
 +
* '''Long-Layer''': Step Sequencer
 +
* '''Long-Back''': Admin Menu
 +
* '''Long-Learn''': Audio Levels
 +
* '''Long-Select''': Power Off
  
=The Status Area=
+
Latest versions of zynthian kits include 4 extra push buttons, labelled as S1 to S4. By default, these buttons are assigned to MIDI Program Change 1-4, but this can be easily changed from the webconf's [[Configuration_Users_Guide#Wiring_Layout|Wiring Layout menu]].
  
 
<br clear=all>
 
<br clear=all>
  
[[File:zynthian_status_area.png|400px|right]]
+
=The Title Bar=
 +
[[File:zynthian_ui_control_status.png|400px|right]]
  
On the top-right corner there is a small area where some useful information is displayed in real time:
+
The title bar have 2 functions:
  
* Audio Peak-meter or CPU-load => 1 or 2 small horizontal bars on the top right.
+
* Kind of Breadcrumb, normally showing the screen title or current layer information: MIDI channel, engine, bank & preset
* MIDI-IN => Blue '''M''' flag
+
* Back-button, when using the touch-interface. It's far from intuitive, but Zynthian-UI was not designed with touch-navigation in mind.
* Xrun => Red '''warning''' flag
 
* Under-voltage => Red '''ray''' flag
 
* Over-temperature => Red '''thermometer''' flag
 
* Recording Audio => Red '''circle''' flag
 
* Playing Audio => Green '''play''' flag
 
  
By default, Audio Peak-meter is shown. The meter covers the range -50dBFS to 0dBFS, i.e. maximum permissible level at full scale (far right) down to 50dB below that at far left:
+
<br clear=all>
  
* The green segment covers the range -50dBFS to -10dBFS.
+
=The Status Area=
* The yellow segment covers the range -10dBFS to -3dBFS.
+
[[File:Status display.png|400px|right]]
* 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.
+
On the top-right corner there is a small area where some useful information is displayed in real time:
  
(*) Meter is updated 5 times per second so there could be 200 ms delay in peak being displayed.
+
* '''Audio peak-meter''' or '''CPU load-bar''' => 1 or 2 small horizontal bars on the top.
 +
* '''Status Icons''' => Displayed under the peak-meter.
  
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:
+
{| class="wikitable"
 +
!colspan="3"|Status Icons Legend
 +
|-
 +
|style="padding:10px"|<span style="color:#8080FF">'''m'''</span>
 +
|style="padding:10px;width: 200px;|'''MIDI-IN'''
 +
|style="padding:10px"|It's shown when MIDI messages are received.
 +
|-
 +
|style="padding:10px"|<span style="color:#FF0000">{{#fas:exclamation-triangle}}</span>
 +
|style="padding:10px"|'''XRun'''
 +
|style="padding:10px"|It's shown when there are Xruns. If many, you should hear clicks and pops too. This means the CPU can't process audio fast enough and you should consider disabling some CPU-hungry option (like VNC, headphones, etc.) or reducing the complexity of your layer setup.
 +
|-
 +
|style="padding:10px"|<span style="color:#FF0000">{{#fas:bolt}}</span>
 +
|style="padding:10px"|'''Under-voltage'''
 +
|style="padding:10px"|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 that icon and if you do so, you should consider looking for a better power source.
 +
|-
 +
|style="padding:10px"|<span style="color:#FF0000">{{#fas:temperature-high}}</span>
 +
|style="padding:10px"|'''Over-temperature'''
 +
|style="padding:10px"|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 that icon and if you do so, you should improve heat dissipation (using a heat sink, etc.)
 +
|-
 +
|style="padding:10px"|<span style="color:#b00000">{{#fas:circle}}</span>
 +
|style="padding:10px"|'''Recording Audio/MIDI'''
 +
|style="padding:10px"|An audio or MIDI recording is going on.
 +
|-
 +
|style="padding:10px"|<span style="color:#00b000">{{#fas:play}}</span>
 +
|style="padding:10px"|'''Playing Audio/MIDI'''
 +
|style="padding:10px"|An audio or MIDI track is being played.
 +
|}
  
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 Peak-meter===
  
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 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 red "warning" flag is shown when there are Xruns. You should hear clicks and pops too ;-)
+
* The green segment covers the range -50dBFS to -10dBFS.
 
+
* The yellow segment covers the range -10dBFS to -3dBFS.
When the red "ray" or "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).
+
* The red segment covers the range -3dBFS to 0dBFS.
 
 
Finally, the red '''circle''' and '''play''' flags show the status of audio/MIDI capture: recording / playing
 
 
 
=Layers=
 
  
Layers are a key concept on Zynthian-UI: the first thing you do when you power-on your zynthian is create a layer ;-)
+
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.
  
A layer is an '''Audio Processing Chain''', normally assigned to a MIDI channel, that can be composed of one or several Audio Processing Units. This units are chained by default, although you can customize the audio routing. The first unit in a layer is the '''root''' and determines the layer's type:
+
(*) Meter is updated 5 times per second so there can be 200 ms delay in peak being displayed.
 
 
* '''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 some algorithm.
 
* '''Special Layer''' => MOD-UI pedalboard, Pure Data patch, etc.
 
  
The rest of units in a layer normally are FX units that process the audio coming-out from the first unit (root).
+
Alternately, the "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:
  
All units in a layer receive all the MIDI events coming from the assigned channel. Special layers don't have an assigned MIDI channel and receive all MIDI channels.
+
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 Zynthian UI Workflow=
 
=The Zynthian UI Workflow=
  
 
The following flowcharts show the different "screens" or "menus" and how 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 would be a good idea to print these flowcharts and keep them near your Zynthian Box until you memorize the workflow and the spirit of the Zynthian UI gets inside you ;-)
+
It would be a good idea to print these flowcharts and keep them near your Zynthian Box until you memorize the workflow.
  
 
<gallery mode="slideshow" widths="240" heights="320">
 
<gallery mode="slideshow" widths="240" heights="320">
Image:zynthian_ui_workflow__main.svg|''[[commons:Main Sequence|Main Sequence]]''
+
Image:zynthian_ui_workflow_main.png|''[[commons:Main Sequence|Main Sequence]]''
Image:zynthian_ui_workflow__layer_options.svg|''[[commons:Layer Options|Layer Options]]''
+
Image:zynthian_ui_workflow_layer_options.png|''[[commons:Layer Options|Layer Options]]''
Image:zynthian_ui_workflow__snapshots.svg|''[[commons:Snapshots|Snapshots]]''
+
Image:zynthian_ui_workflow_snapshots.png|''[[commons:Snapshots|Snapshots]]''
Image:zynthian_ui_workflow__midi_learning.svg|''[[commons:MIDI Learning|MIDI Learning]]''
+
Image:zynthian_ui_workflow_midi_learning.png|''[[commons:MIDI Learning|MIDI Learning]]''
 
</gallery>
 
</gallery>
  
If you want to contribute to improving these flowcharts, you can edit them using the Google Documents Tools:
+
If you want to contribute to improve these flowcharts, you can edit them using the Google Documents Tools:
  
 
  - [https://docs.google.com/drawings/d/1jmt3zrJjPkbqj3hpzCIwRgFIKxiX2UptebBA_GN8e5I Main sequence: zynthian_ui_workflow_main]
 
  - [https://docs.google.com/drawings/d/1jmt3zrJjPkbqj3hpzCIwRgFIKxiX2UptebBA_GN8e5I Main sequence: zynthian_ui_workflow_main]
Line 110: Line 128:
 
=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 or last-state snapshot has been saved yet.
 +
The Main menu gives easy access to the Zynthian-UI's main features:
 +
 
 +
* '''Layers'''
 +
* '''Sequencer'''
 +
* '''Audio Levels'''
 +
* '''Audio Recorder'''
 +
* '''MIDI Recorder'''
 +
* '''Snapshots'''
 +
* '''Clean All'''
 +
* '''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 with them, 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 after poweron your zynthian is, probably, create a layer.
 +
 
 +
A layer is a '''Processing Chain''', normally assigned to a MIDI channel, which can be composed of one or more Audio or MIDI 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.
 +
* '''Audio FX Layer''' => Receives audio-input and generates audio-output.
 +
* '''MIDI FX Layer''' => Receives MIDI-input and generates MIDI-output.
 +
* '''Generator Layer''' => Auto-generate audio output using an algorithm.
 +
* '''Special Layer''' => MOD-UI pedalboard, Pure Data patch, etc.
 +
 
 +
The root layer can't be re-arranged or changed. When you create pure Audio-FX layers, it's a good idea to use a "Gain" unit as root element, so you can re-arrange/change all the other elements on the chain.
 +
 
 +
All units in a layer's chain 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 should see when you power on your zynthian and no ''snapshots'' have been stored yet. Select '''New Synth Layer''' to get started.
 
  
There are several options on this screen:
+
There are several options on the layers screen:
  
* '''NEW Synth Layer''' => Create a new Synthesizer Layer.
+
* '''NEW Synth Layer''' => Create a Synthesizer Layer.
* '''NEW Effect Layer''' => Create a new Effect Layer that will be connected to soundcard's Audio Input.
+
* '''NEW Audio-FX Layer''' => Create an audio-FX Layer that will be connected to soundcard's Audio Capture. You can route the audio output from other layers to the input of an Audio-FX layer.
* '''NEW Generator Layer''' => Create a new Generator Layer that self-generates audio or midi.
+
* '''NEW MIDI-FX Layer''' => Create a MIDI-FX Layer to process MIDI events. You can route the MIDI output from a MIDI-FX layer to the MIDI input of any other unit or to the zynthian's MIDI output.
* '''NEW Special Layer''' => Create a new Special Layer that will receive all MIDI channels.
+
* '''NEW Generator Layer''' => Create a new Generator Layer that self-generates audio.
* '''REMOVE ALL''' => Remove all Layers (Root layers and its associated Effect-Chains), returning to the initial state.
+
* '''NEW Special Layer''' => Create a new Special Layer (MOD-UI, Pure Data, ...).
* '''PANIC! All Notes/Sounds Off''' => All notes and sounds are stopped abruptly by sending CC#123 and CC#120 to all channels.
+
* '''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 by bold clicking CTRL-1 (layer) from the layer screen (contextual action). You can trigger this actions from any point in the workflow by simply bold-clicking twice CTRL-1. Also, you can add a ''panic-button'' to your zynthian using the extra pins from the AllInOne circuit. [[Adding Extra Switches|Read this for a detailed explanation about how to add a panic button to your Zynthian]].
+
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]]
When you select '''NEW Synth/Effect/Generator 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.
+
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, that allows you to bind several layers while keeping MIDI CCs and other MIDI messages (Program Change, Channel Pressure, etc.) independent.
+
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]]
 +
[[File:Zynthian_ui_layer_options_transpose.png|400px|right]]
 +
[[File:Zynthian_ui_layer_options2.png|400px|right]]
 +
 
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:
 
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 (CC, channel-pressure, program change, ...)
+
* '''Note Range & Transpose''' => Select the '''layer's''' key-range and transpose by octaves or semitones.
* '''Transpose''' => transpose the '''layer's MIDI channel''' up and down, by semitones.
+
* '''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.
* '''Audio Routing''' => route the '''layer's''' audio output to available audio input ports, whats allows processing the audio in any way you imagine. You can use this feature for creating your own customized/bizarre FX chains.
+
* '''Audio Output''' => Route the '''layer's''' audio output to any  available audio input port, 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. This option is not available on MIDI-FX layers.
* '''MIDI chan''' => change the MIDI Channel assigned.
+
* '''Audio Capture''' => Select the soundcard's capture channels used for audio processing. This option is only available on Audio-FX layers.
* '''Remove Layer''' => Remove the layer.
+
* '''MIDI Routing''' => Select the destiny of the layer's MIDI output. This option is only available on MIDI-FX layers.
 +
* '''MIDI Channel''' => Change the assigned MIDI Channel.
 +
* '''Remove Layer''' => Remove the layer, including all chained Audio & MIDI FXs.
  
* '''Add Effect''' => Add an effect to the FX-chain.
+
* '''Add Audio-FX''' => Add an Audio-FX unit to the layer's audio chain.
* '''Remove All Effects''' => Clean the FX-chain, deleting all the effects.
+
* '''Remove All AUdio-FX''' => Clean the Audio-FX chain, deleting all the audio effect units.
 +
* '''Audio-FX List''' => The list of audio effects on the layer's chain.
  
* '''Effect List''' => The list of effects in the layer's FX-chain. By bold-clicking on an effect, you will access the Effect's Options:
+
* '''Add MIDI-FX''' => Add a MIDI-FX to the layer's chain. If the layer is a Synth layer, the MIDI-FX will be inserted just before the synth engine.
** '''Effect Presets'''
+
* '''Remove All MIDI-FX''' => Clean the MIDI-FX chain, deleting all the MIDI effect units.
** '''Move Upchain'''
+
* '''MIDI-FX List''' => The list of MIDI effects on the layer's chain.
** '''Move Downchain'''
 
** '''Remove Effect'''
 
  
 
<br clear=all>
 
<br clear=all>
  
==Engine Selection==
+
[[File:Zynthian_ui_layer_effect_options.png|400px|right]]
 +
 
 +
By bold-clicking on an FX-unit (Audio or MIDI) from the list, you will access the FX's Options:
 +
 
 +
* '''Presets'''
 +
* '''Replace'''
 +
* '''Move Upchain'''
 +
* '''Move Downchain'''
 +
* '''Remove'''
 +
 
 +
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. Same if the FX has not presets, etc.
 +
 
 +
<br clear=all>
 +
 
 +
==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 about 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 click on the list,  
+
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.  
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 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.
 
* '''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.
* '''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. Ask in the forum ;-)
+
* '''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 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.)
+
* '''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 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.)
+
* '''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 in various contexts:
 
This screen is shown in various contexts:
Line 181: Line 258:
 
<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 '''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 such a case, the previously selected instrument will be loaded again in case you pre-loaded some preset.
+
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, click '''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>
  
 
====XY-Controller====
 
====XY-Controller====
 
[[File:Zynthian_ui_xy_select.png|400px|right]]
 
[[File:Zynthian_ui_xy_select.png|400px|right]]
If you click 2 switches at once, you enter XY-control mode. The 2 controllers you clicked are green and you can choose the desired parameters to control by rotating the controller. Of course, you can navigate the controller pages by clicking select, etc. so you can select parameters from different pages.
 
<br clear=all>
 
  
[[File:Zynthian_ui_xy_controller.png|400px|right]]
+
From the instrument control screen, if you bold-press two knobs at once, you should enter the XY-select mode.
Once you have selected the right parameters, touch the screen for entering the XY-control-pad (using the touchscreen ala Kaoss Pad).  
 
  
Click ''back'' for returning to XY-select or bold-click ''back'' for returning to control screen.
+
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. (The knob must be rotated through several values before it will be detected.) Use the ''select'' switch to navigate through the controller pages to select different controllers if needed.
 
<br clear=all>
 
<br clear=all>
  
====Tips====
+
[[File:Zynthian_ui_xy_controller.png|400px|right]]
You can press the Layer switch to step over the layer list. If you bold-press, the layer list screen will be shown.
+
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>
  
==Snapshots==
+
==Load/Save Snapshot==
 
[[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]]
Snapshots are used for saving/restoring the status of Zynthian. A snapshot includes the full state, including layers, effects, parameter values, MIDI-learning, etc.
+
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 by clicking the snapshot switch. From control screen you have to use bold-click. A second click and you will be in the ''Save Snapshot'' screen. You can also use bold-click to go directly to the Save Snapshot screen (not from control screen!).
+
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.
  
Obviously, before loading any snapshot, you should save one, and for saving a snapshot, you should create some layers, etc. Zynthian UI will use numbers for naming the banks and snapshots. Later, using the webconf tool you can rename the snapshots to something more explicit.
+
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====
 
====Snapshot Banks====
Line 246: Line 322:
  
 
====Restore Last State====
 
====Restore Last State====
If "Restore last state on startup" option is enabled on webconf (and it's enabled by default!), then state will be saved when poweroff (using long-click select or from Admin Menu) and restored on next boot. This option has priority over the "Default Snapshot".
+
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]]
+
 
[[File:Zynthian_ui_admin_02.png|400px|right]]
+
MIDI-learning allows you to easily bind specific MIDI events with Zynthian-UI actions. There are 2 types of MIDI events you can learn:
Pressing the Back knob, when you are in the Layer List screen, brings you to the Admin menu.  
+
 
 +
====MIDI CC====
 +
[[File:Zynthian_ui_midi_cc_learn_01.png|400px|right]]
 +
[[File:Zynthian_ui_midi_cc_learn_02.png|400px|right]]
 +
You can map any parameter in the Zynthian UI to a CC knob/slider on your external MIDI controller. I intend to extend this feature to other MIDI messages, but currently only CC messages are supported. Until then, MIDI-filter rules can be used instead.
 +
 
 +
Learning a MIDI-CC is quite easy:
 +
 
 +
'''1.''' From the control screen, you click the snapshot button. You will be in CC MIDI-learn screen. It’s identical to the Control screen except that all the controllers have a tiny yellow “???” in the bottom.
 +
 
 +
'''2.''' Move a zynthian controller. Its tiny “???” will change to green while the other 3 will go back to normal state.
 +
 
 +
'''3.''' Finally, move a knob/fader in your MIDI keyboard/controller and the binding is done. The new CC number should appear in the bottom of the learned controller, replacing the tiny "???".
 +
 
 +
Of course, MIDI-learning configuration, including CC mappings, is stored and restored with snapshots.
 +
 
 +
'''Technical Note:''' MIDI-CC learning works with all the engines. It uses the engine’s native MIDI-learning capabilities when available. Zynthian’s MIDI-filter mappings are used for the rest. To be more explicit, native MIDI-learning is used for MOD-UI and ZynAddSubFX OSC parameters. All the other parameters are managed by Zynthian’s MIDI-filter mapping.
 +
 
 +
<br clear=all>
 +
 
 +
====MIDI Program Change & ZS3 (SubSnapShots)====
 +
[[File:Zynthian_ui_midi_zs3_learn.png|400px|right]]
 +
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 “Stage Mode” 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:
 +
 
 +
'''0.''' Ensure "Program Change ZS3" is enabled in the admin menu.
 +
 
 +
'''1.''' From the Control screen, short click the snapshot button to enter MIDI control learn mode then short click the snapshot button. You will see the current list of ZS3s (initially empty) 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 pushed on your keyboard/controller.
 +
 
 +
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.
  
The last item is how you safely power off the Zynthian without corrupting data files.
+
ZS3 behavior depends of the mode your zynthian is working on:
  
* Network Info - displays the IP address (ifconfig inet addr)
+
* '''Stage Mode''': 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.
* Start WIFI - Starts or Stops WIFI (toggle)
+
* '''Multi-timbral Mode''': ZS3 list shows the ZS3 of the currently active layer only. Recalling a ZS3 changes the active layer, but every layer receives MIDI input from its channel. You can use several keyboards on different channels and store 127 ZS3s by MIDI channel.
* Start Audio Recording
 
* Start TouchOSC bridge
 
* Start Audio -> MIDI
 
* Test MIDI - plays the test.mid file
 
* Test Audio - plays the (long) test.mp3 file
 
* Update Zynthian Software - downloads and installs the latest software
 
* Update Zynthian Library - downloads the latest instruments
 
* Restart GUI
 
* Reboot
 
* Power Off
 
  
 
<br clear=all>
 
<br clear=all>
Line 275: Line 386:
 
[[File:zynthian_audio_recorder_01.png|400px|right]]
 
[[File:zynthian_audio_recorder_01.png|400px|right]]
 
[[File:zynthian_audio_recorder_02.png|400px|right]]
 
[[File:zynthian_audio_recorder_02.png|400px|right]]
[[File:zynthian_audio_recorder_03.png|400px|right]]
+
[[File:zynthian_ui_audio_recorder.png|400px|right]]
[[File:zynthian_audio_recorder_04.png|400px|right]]
+
[[File:zynthian_ui_midi_recorder.png|400px|right]]
 +
 
 +
===Overview===
 +
 
 +
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.
 +
 
 +
It's also used when you want a quick way to upload sound samples to websites via the webconf component detailed below...
 +
 
 +
Most sites would prefer you to upload compressed files and oggs are perhaps the way forward . . .
 +
 
 +
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.
  
From the Admin menu you can access to the Audio & MIDI recording tools. These 2 simple tools allows you to record Audio & MIDI tracks easily, using the internal SD-card or an USB memory stick for storing the files.
 
  
  '''WARNING!''' Using the internal SD card for storing the captured files increase the risk of corruption. You should avoid it by simply plugging an USB memory stick instead.
+
  '''WARNING!''' Using the internal SD card to store the captured files will increase the risk of corruption. You should use a [[External storage|USB memory stick]] instead.
  
 
===Recording===
 
===Recording===
  
1. Press "Start Recording" for starting a new capture.  
+
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.
 
2. The red circle should appear in the top-right status area, indicating that a recording is going on.
Line 295: Line 420:
 
For looping the file, turn on the "Loop Play" switch before playing.
 
For looping the file, turn on the "Loop Play" switch before playing.
  
  '''NOTE:''' You can play a file in any moment. Recording and playing can take place simultaneously.
+
  '''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===
 
===Deleting===
  
 
A bold press will delete the selected file, but you will be asked to confirm the action.
 
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===
 
===Managing recordings from your computer===
 +
 +
[[File:Zynthian_webconf_captures_02.png|400px|border|right]]
  
 
Audio & MIDI recordings can be managed from your computer by accessing the webconf's captures section. From this section you can:
 
Audio & MIDI recordings can be managed from your computer by accessing the webconf's captures section. From this section you can:
Line 307: Line 440:
 
* rename recordings
 
* rename recordings
 
* delete recordings
 
* delete recordings
 +
* convert audio recordings to .ogg format for upload to websites.
 
* downloading recordings to your computer
 
* downloading recordings to your computer
* reproduce the audio recordings in your browser, if it supports wav file playing.
+
* 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>
 +
 
 +
==Audio Levels==
 +
 
 +
[[File:zynthian_ui_mixer_control.png|400px|right]]
 +
 
 +
The '''Audio Levels''' screen allows to adjust the soundcard output/input levels and other audio-hardware related options. Technically speaking, it's a GUI for the ALSA (Audio Linux Sound Architecture) mixer.
 +
 
 +
For accessing the '''ALSA-Mixer''' app, you have 2 options:
 +
 
 +
* Selecting "Audio Levels" option from the Main menu
 +
* '''Long-pushing the snapshot knob (CTRL-3)'''
 +
 
 +
You can configure the Audio Level controllers from the webconf's hardware->audio menu. Simply click the '''+''' button on the "Mixer Controls" text area.
 +
 
 +
<br clear=all>
 +
 
 +
==Step Sequencer==
 +
 
 +
Zynthian has a step sequencer which provides methods to create patterns and arrange them into sequences.
 +
 
 +
The step sequencer may be accessed from the main screen or by clicking long-LAYER.
 +
 
 +
* There may be up to 999 patterns, each with as many simultaneous notes (polphonic) as required over a set of steps and beats that are configurable for each pattern.
 +
* Patterns are arranged into tracks within sequences.
 +
* Sequences may be configured to loop or play once and may be grouped so that starting one sequence stops another. Sequences may start and stop at the start of each bar.
 +
* Note entry can be performed from the Zynthian user interface or using an external MIDI controller.
 +
* Sequences can be started and stopped from the Zynthian user interface or using an external MIDI controller.
 +
 
 +
These are three main views:
  
It is a good idea to rename your recordings so that they can be easily identified.
+
[[File:Zynpad 4x4 playing starting.png|400px|right]]
  
[[File:Zynthian_webconf_captures_01.png|600px|border|left]]
+
'''Pads'''<br>
 +
Grid of pads to launch sequences
  
 
<br clear=all>
 
<br clear=all>
  
= Touch Screen UI=
+
[[File:Arranger.png|400px|right]]
[[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.
+
'''Arranger'''<br>
 +
Track / timeline editor for complex manipulation of sequences
 +
 
 +
<br clear=all>
  
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 selector ones, that only have 1 controller widget. On those screens you can click the '''zynthian logo''' (top-right) for emulating the "snapshot" switch, and you can go back by tapping the '''top-bar''' area.
+
[[File:Zynseq patterneditor notevelocity.png|400px|right]]
  
You can change the controller values by "sliding" up/down 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 also can be used for changing the controller value.
+
'''Pattern Editor'''<br>
 +
Manipulation of individual events within patterns
  
 
<br clear=all>
 
<br clear=all>
  
=MIDI-learning=
+
[[Using ZynSeq]] is a detailed tutorial on the use of the step sequencer.
  
MIDI-learning allows you to easily bind specific MIDI events with Zynthian-UI actions. There are 2 types of MIDI events you can learn:
+
==Admin Menu==
 +
 
 +
[[File:Zynthian_ui_admin.png|400px|right]]
 +
[[File:Zynthian_ui_admin_02.png|400px|right]]
  
====MIDI CC====
+
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.
[[File:Zynthian_ui_midi_cc_learn_01.png|400px|right]]
 
[[File:Zynthian_ui_midi_cc_learn_02.png|400px|right]]
 
You can map any parameter in the Zynthian UI to a CC knob/slider on your external MIDI controller. I intend to extend this feature to other MIDI messages, but currently only CC messages are supported. Until then, MIDI-filter rules can be used instead.
 
  
Learning a MIDI-CC is quite easy:
+
You can access this menu from the Main menu.
  
'''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.
+
<br clear=all>
  
'''2.''' Move a zynthian controller. Its tiny “???” will change to green while the other 3 will go back to normal state.
+
===Touchscreen Calibration===
  
'''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 "???".
+
Zynthian supports touchscreen operation for most operations. To ensure good alignment of the touch interface there is a calibration screen that is accessed from the Admin menu.
  
Of course, MIDI-learning configuration, including CC mappings, is stored and restored with snapshots.
+
[[File:Touchscreen_calibration_1.png|400px|right]]
  
'''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.
+
When the screen opens it shows a target crosshair in the center of the screen and a countdown timer. If the timer expires the screen will close without applying any calibration. Touch the target to detect the screen and begin calibration.
  
 
<br clear=all>
 
<br clear=all>
  
====MIDI Program Change====
+
[[File:Touchscreen_calibration_2.png|400px|right]]
[[File:Zynthian_ui_midi_zs3_learn.png|400px|right]]
+
 
You can map "SubSnapshots" (ZS3) to MIDI programs. The idea behind this feature is to have a fast preset-change mechanism that can be used on stage. In combination with the “Single Layer” feature, it turns Zynthian in a “Stage-Beast”. You can prepare a snapshot for the full performance, and use ZS3 for fast changing from a song to another, or between parts inside the same song.
+
The name of the detected display is shown at the bottom of the screen. Further targets will appear. Touch the screen, drag to centre of target and release.
 +
 
 +
When the screen is pressed the target will show red. When released the measurement is taken and the next crosshair target appears white.
  
Learning a SubSnapShot is obscenely easy:
+
<br clear=all>
  
'''1.''' From the control screen, you click the snapshot button '''twice'''. You will see the current list of ZS3s and a message: “Waiting for Program Change…”
+
[[File:Touchscreen_calibration_3.png|400px|right]]
  
'''2.''' Simply push a “Program Change” button in your keyboard/controller and the ZS3 will be stored in memory, associated with the Program number you send.
+
After releasing the last target, calibration is applied and the screen closes. Touch is ignored if too close to previous touch.
  
After that, you can recall any stored ZS3 by simply pushing the same PC button again. Of course, the memory-stored zs3s will be saved with your snapshot and restored when loaded again.  
+
Use BACK button or wait for timeout to cancel calibration. Timer is reset to 15s when screen is touched and paused until released. The purpose of the timeout is to avoid users of Zynthians without back button being stuck in calibration screen view.
  
Every zs3 includes:
 
  
    - Layer ID
+
{{NoteBox| The resistive touchscreen works better with a stylus. Finger is too coarse. It's strongly recommended to run the calibration using a stylus. }}
    - Bank
 
    - Preset
 
    - Controller values
 
  
As you can see, it has sense in a SnapShot context, where a set of layers are defined. Zs3 changing is very fast, as no engine must be started.
 
 
<br clear=all>
 
<br clear=all>
  
====MIDI-CC Learning with touch interface====
+
= Touch Screen UI=
  
First, you need a working touch interface in your display. If you don't have a touchscreen, you could use a mouse ...
+
[[File:Zynthian_ui_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 385: Line 563:
 
'''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>
  
Line 394: Line 573:
 
==Key Bindings: Controlling the UI with a computer keyboard==
 
==Key Bindings: Controlling the UI with a computer keyboard==
  
The user interface may be driven using a USB keyboard, e.g. QWERTY, Dvorak, etc.
+
The user interface may be driven using a USB keyboard, e.g. QWERTY, Dvorak, etc. Key assignment and their combinations can be modified with the webconf tool.
  
 
{| class="wikitable"
 
{| class="wikitable"
 +
|+ Keyboard shortcuts
 +
|-
 +
! Action !! Modifier !! Key
 +
|-
 +
| ALL_NOTES_OFF || None|| Space
 +
|-
 +
| ALL_OFF || Ctrl || Space
 
|-
 
|-
!Key
+
| ALL_SOUNDS_OFF || Shift || Space
!Modifier
 
!Function
 
 
|-
 
|-
|Enter||None||SELECT
+
| BACK_DOWN || CapsLock || Down
 
|-
 
|-
|Enter||Shift||Bold SELECT
+
| BACK_UP || CapsLock || Up
 
|-
 
|-
|Enter||Ctrl||Long SELECT
+
| LAYER_DOWN || Shift || Down
 
|-
 
|-
|Backspace||None||BACK
+
| LAYER_UP || Shift || Up
 
|-
 
|-
|Backspace||Shift||Bold BACK
+
| POWER_OFF || Ctrl || End
 
|-
 
|-
|Backspace||Ctrl||Long BACK
+
| REBOOT || Ctrl || Home
 
|-
 
|-
|Escape||None||BACK
+
| RELOAD_MIDI_CONFIG || Ctrl || Insert
 
|-
 
|-
|Escape||Shift||Bold BACK
+
| RESTART_UI || Shift || Home
 
|-
 
|-
|Escape||Ctrl||Long BACK
+
| SELECT_DOWN || None || Down
 
|-
 
|-
|L||None||LAYER
+
| SELECT_UP || None || Up
 
|-
 
|-
|L||Shift||Bold LAYER
+
| SNAPSHOT_DOWN || Ctrl || Down
 
|-
 
|-
|L||Ctrl||Long LAYER
+
| SNAPSHOT_UP || Ctrl || Up
 
|-
 
|-
|S||None||SNAPSHOT
+
| START_AUDIO_PLAY || Ctrl || a
 
|-
 
|-
|S||Shift||Bold SNAPSHOT
+
| START_AUDIO_RECORD || None || a
 
|-
 
|-
|S||Ctrl||Long SNAPSHOT
+
| START_MIDI_PLAY || Ctrl || m
 
|-
 
|-
|R||None||Start audio Record
+
| START_MIDI_RECORD || None || m
 
|-
 
|-
|R||Shift||Stop audio Record
+
| STOP_AUDIO_PLAY || Ctrl+Shift|| a
 
|-
 
|-
|M||None||Start MIDI Record
+
| STOP_AUDIO_RECORD || Shift || a
 
|-
 
|-
|M||Shift||Stop MIDI Record
+
| STOP_MIDI_PLAY || Ctrl+Shift || m
 
|-
 
|-
|M||Ctrl||Reload MIDI Config
+
| STOP_MIDI_RECORD || Shift || m
 
|-
 
|-
|Space||None||All Notes Off
+
| SWITCH_BACK_BOLD || Shift || BackSpace, Escape, Left
 
|-
 
|-
|Space||Shift||All Sounds Off
+
| SWITCH_BACK_LONG || Ctrl || BackSpace, Escape, Left
 
|-
 
|-
|Space||Ctrl||All off
+
| SWITCH_BACK_SHORT || None || BackSpace, Escape, Left
 
|-
 
|-
|Insert||None||Restart UI
+
| SWITCH_LAYER_BOLD || Shift|| l
 
|-
 
|-
|Insert||Shift||Reboot
+
| SWITCH_LAYER_LONG || Ctrl || l
 
|-
 
|-
|Insert||Ctrl||Power Off
+
| SWITCH_LAYER_SHORT || None|| l
 
|-
 
|-
|Up||None||Listbox Up
+
| SWITCH_SELECT_BOLD || Shift || Return, Right
 
|-
 
|-
|Down||None||Listbox Down
+
| SWITCH_SELECT_LONG || Ctrl || Return, Right
 
|-
 
|-
|Left||None||BACK
+
| SWITCH_SELECT_SHORT || None || Return, Right
 
|-
 
|-
|Right||None||SELECT
+
| SWITCH_SNAPSHOT_BOLD || Shift || s
 +
|-
 +
| SWITCH_SNAPSHOT_LONG || Ctrl || s
 +
|-
 +
| SWITCH_SNAPSHOT_SHORT || None || s
 +
|-
 +
| TOGGLE_AUDIO_PLAY || CapsLock+Shift || a
 +
|-
 +
| TOGGLE_AUDIO_RECORD || CapsLock || a
 +
|-
 +
| TOGGLE_MIDI_PLAY || CapsLock+Shift || m
 +
|-
 +
| TOGGLE_MIDI_RECORD || CapsLock || m
 
|}
 
|}
  
Line 467: Line 663:
 
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:
 
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)  
+
  0x9F  (Channel 16 Note ON)  
  0x00  ( Note code for POWER_OFF as below )
+
  0x00  (Note code for POWER_OFF as below)
 
  0x00  (Velocity/parameter)
 
  0x00  (Velocity/parameter)
  
or play the C-1 key, if your keyboard has it ;-)
+
or play the C-1 key, if your keyboard has it.
  
This is the full list:
+
Note that you can use the velocity for sending the CUIA parameter when it's required by the action (SELECT & LAYER_CONTROL).
  
"0": "POWER_OFF",                  C-1
+
This is the full map of CUIA to MIDI notes:
"1": "REBOOT",                      C#-1
 
"2": "RESTART_UI",                  D-1
 
"3": "RELOAD_MIDI_CONFIG",          D#-1
 
  
  "10": "ALL_NOTES_OFF",              A#-1
+
  '''Num'''  '''CUIA'''                      '''Note'''        '''System Real-Time'''
  "11": "ALL_SOUNDS_OFF",            B-1
+
0    POWER_OFF                  C-1
  "12": "ALL_OFF",                    C0
+
1    REBOOT                    C#-1
 +
  2    RESTART_UI                D-1
 +
  3    RELOAD_MIDI_CONFIG        D#-1
 +
4    RELOAD_KEY_BINDING        E-1
 +
5    LAST_STATE_ACTION          F-1
  
  "51": "SELECT",                    D#3/Eb3
+
  10    ALL_NOTES_OFF              A#-1
  "52": "SELECT_UP",                  E3
+
  11    ALL_SOUNDS_OFF            B-1
  "53": "SELECT_DOWN",                F3
+
  12    ALL_OFF                    C0
  
  "64": "SWITCH_BACK_SHORT",         E4
+
  23    TOGGLE_AUDIO_RECORD        B0
  "63": "SWITCH_BACK_BOLD",           D#4/Eb4
+
24    START_AUDIO_RECORD        C1
  "62": "SWITCH_BACK_LONG",          D4
+
25    STOP_AUDIO_RECORD         C#1
 +
  26    TOGGLE_AUDIO_PLAY          D1
 +
27    START_AUDIO_PLAY           D#1
 +
  28    STOP_AUDIO_PLAY            E1
  
  "65": "SWITCH_SELECT_SHORT",       F4
+
  35    TOGGLE_MIDI_RECORD        B1
  "66": "SWITCH_SELECT_BOLD",         F#4/Gb4
+
36    START_MIDI_RECORD          C2
  "67": "SWITCH_SELECT_LONG",         G4
+
37    STOP_MIDI_RECORD          C#2
+
38    TOGGLE_MIDI_PLAY          D2
  "60": "SWITCH_LAYER_SHORT",         C4
+
39    START_MIDI_PLAY            D#2          Start/Continue: 0xFA, 0xFB
  "61": "SWITCH_LAYER_BOLD",         C#4/Db4
+
40    STOP_MIDI_PLAY            E2            Stop: 0xFC
  "59": "SWITCH_LAYER_LONG",         B4
+
 
 +
51    SELECT                    D#3
 +
52    SELECT_UP                  E3
 +
53    SELECT_DOWN                F3
 +
54    BACK_UP                    F#3
 +
55    BACK_DOWN                  G3
 +
56    LAYER_UP                  G#3
 +
57    LAYER_DOWN                A3
 +
58    SNAPSHOT_UP                A#3
 +
59    SNAPSHOT_DOWN              B3
 +
 
 +
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_MAIN                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
 +
96    MODAL_ADMIN                C7
  
  "71": "SWITCH_SNAPSHOT_SHORT",      B5
+
  100  LAYER_CONTROL              E7
"72": "SWITCH_SNAPSHOT_BOLD",      C5
 
"73": "SWITCH_SNAPSHOT_LONG"        C#5/Db5
 
  
 
[[File:2Oct_Keyboard_CUIA.png|600px|Keyboard]]
 
[[File:2Oct_Keyboard_CUIA.png|600px|Keyboard]]
 +
 +
[[File:Midi-note-chart.jpg]]
 +
 +
==Controlling the UI with OSC messages==
 +
 +
The same CUIA calls are available using OSC on UDP 1370, with the base prefix "/cuia". Take a look to "[[Accessing_Zynthian_from_your_computer#OSC|Calling CUIA with OSC]]".

Latest revision as of 18:45, 1 November 2022

General Concepts

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

The 4 knobs+switches are the primary control mechanism to navigate the UI: selecting options on menus and adjusting 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 behaviour using the touch-display, but it's sub-optimal and accessing some features could be tricky.

Zynthian v4 top legend.png

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 screens, each one mapping 4 controllers which you can use to change the engine parameters.

Most of Zynthian UI screens belongs to one of these 2 categories, 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".
  • Key Range & Transpose Screen: It allows to choose the key range and transpose notes by octaves or semitones.
  • etc.

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

  • Short push: Less than 0.3 seconds
  • Bold push: Between 0.3 and 2 seconds
  • Long push: More than 2 seconds (until the long-action is triggered!)

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

Some push actions depends of context. The SELECT knob is mainly used to navigate and a short push on it will select an item on a "Selector Screen". Inside a "Controller Screen", short pushes can be used to rotate between layers (LAYER knob) or between controller pages (SELECT knob). "Bold-pushes" are normally intended as shortcuts for jumping to specific screen like "layer options", "main menu", etc. Pushing the BACK knob generally close the current modal-screen or jumps to the previous screen in the workflow sequence.

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

  • Bold-Back: Main Menu
  • Long-Layer: Step Sequencer
  • Long-Back: Admin Menu
  • Long-Learn: Audio Levels
  • Long-Select: Power Off

Latest versions of zynthian kits include 4 extra push buttons, labelled as S1 to S4. By default, these buttons are assigned to MIDI Program Change 1-4, but this can be easily changed from the webconf's Wiring Layout menu.


The Title Bar

Zynthian ui control status.png

The title bar have 2 functions:

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


The Status Area

Status display.png

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

  • Audio peak-meter or CPU load-bar => 1 or 2 small horizontal bars on the top.
  • Status Icons => Displayed under the peak-meter.
Status Icons Legend
m MIDI-IN It's shown when MIDI messages are received.
XRun It's shown when there are Xruns. If many, you should hear clicks and pops too. This means the CPU can't process audio fast enough and you should consider disabling some CPU-hungry option (like VNC, headphones, etc.) or reducing the complexity of your layer setup.
Under-voltage 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 that icon and if you do so, you should consider looking for a better power source.
Over-temperature 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 that icon and if you do so, you should improve heat dissipation (using a heat sink, etc.)
Recording Audio/MIDI An audio or MIDI recording is going on.
Playing Audio/MIDI An audio or MIDI track is being played.

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, the "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 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 improve 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 or last-state snapshot has been saved yet. The Main menu gives easy access to the Zynthian-UI's main features:

  • Layers
  • Sequencer
  • Audio Levels
  • Audio Recorder
  • MIDI Recorder
  • Snapshots
  • Clean All
  • 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 with them, 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 after poweron your zynthian is, probably, create a layer.

A layer is a Processing Chain, normally assigned to a MIDI channel, which can be composed of one or more Audio or MIDI 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.
  • Audio FX Layer => Receives audio-input and generates audio-output.
  • MIDI FX Layer => Receives MIDI-input and generates MIDI-output.
  • Generator Layer => Auto-generate audio output using an algorithm.
  • Special Layer => MOD-UI pedalboard, Pure Data patch, etc.

The root layer can't be re-arranged or changed. When you create pure Audio-FX layers, it's a good idea to use a "Gain" unit as root element, so you can re-arrange/change all the other elements on the chain.

All units in a layer's chain 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 the layers screen:

  • NEW Synth Layer => Create a Synthesizer Layer.
  • NEW Audio-FX Layer => Create an audio-FX Layer that will be connected to soundcard's Audio Capture. You can route the audio output from other layers to the input of an Audio-FX layer.
  • NEW MIDI-FX Layer => Create a MIDI-FX Layer to process MIDI events. You can route the MIDI output from a MIDI-FX layer to the MIDI input of any other unit or to the zynthian's MIDI output.
  • NEW Generator Layer => Create a new Generator Layer that self-generates audio.
  • 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
Zynthian ui layer options transpose.png
Zynthian ui layer options2.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:

  • Note Range & Transpose => Select the layer's key-range and transpose by octaves or semitones.
  • 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.
  • Audio Output => Route the layer's audio output to any available audio input port, 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. This option is not available on MIDI-FX layers.
  • Audio Capture => Select the soundcard's capture channels used for audio processing. This option is only available on Audio-FX layers.
  • MIDI Routing => Select the destiny of the layer's MIDI output. This option is only available on MIDI-FX layers.
  • MIDI Channel => Change the assigned MIDI Channel.
  • Remove Layer => Remove the layer, including all chained Audio & MIDI FXs.
  • Add Audio-FX => Add an Audio-FX unit to the layer's audio chain.
  • Remove All AUdio-FX => Clean the Audio-FX chain, deleting all the audio effect units.
  • Audio-FX List => The list of audio effects on the layer's chain.
  • Add MIDI-FX => Add a MIDI-FX to the layer's chain. If the layer is a Synth layer, the MIDI-FX will be inserted just before the synth engine.
  • Remove All MIDI-FX => Clean the MIDI-FX chain, deleting all the MIDI effect units.
  • MIDI-FX List => The list of MIDI effects on the layer's chain.


Zynthian ui layer effect options.png

By bold-clicking on an FX-unit (Audio or MIDI) from the list, you will access the FX's Options:

  • Presets
  • Replace
  • Move Upchain
  • Move Downchain
  • Remove

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. Same if the FX has not presets, etc.


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, click 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. (The knob must be rotated through several values before it will be detected.) Use the select switch to navigate through the controller pages to select different controllers 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 “Stage Mode” 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:

0. Ensure "Program Change ZS3" is enabled in the admin menu.

1. From the Control screen, short click the snapshot button to enter MIDI control learn mode then short click the snapshot button. You will see the current list of ZS3s (initially empty) 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 pushed on your keyboard/controller.

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.

ZS3 behavior depends of the mode your zynthian is working on:

  • Stage Mode: 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.
  • Multi-timbral Mode: ZS3 list shows the ZS3 of the currently active layer only. Recalling a ZS3 changes the active layer, but every layer receives MIDI input from its channel. 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

Overview

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.

It's also used when you want a quick way to upload sound samples to websites via the webconf component detailed below...

Most sites would prefer you to upload compressed files and oggs are perhaps the way forward . . .

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 for upload to websites.
  • 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.


Audio Levels

Zynthian ui mixer control.png

The Audio Levels screen allows to adjust the soundcard output/input levels and other audio-hardware related options. Technically speaking, it's a GUI for the ALSA (Audio Linux Sound Architecture) mixer.

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

  • Selecting "Audio Levels" option from the Main menu
  • Long-pushing the snapshot knob (CTRL-3)

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


Step Sequencer

Zynthian has a step sequencer which provides methods to create patterns and arrange them into sequences.

The step sequencer may be accessed from the main screen or by clicking long-LAYER.

  • There may be up to 999 patterns, each with as many simultaneous notes (polphonic) as required over a set of steps and beats that are configurable for each pattern.
  • Patterns are arranged into tracks within sequences.
  • Sequences may be configured to loop or play once and may be grouped so that starting one sequence stops another. Sequences may start and stop at the start of each bar.
  • Note entry can be performed from the Zynthian user interface or using an external MIDI controller.
  • Sequences can be started and stopped from the Zynthian user interface or using an external MIDI controller.

These are three main views:

Zynpad 4x4 playing starting.png

Pads
Grid of pads to launch sequences


Arranger.png

Arranger
Track / timeline editor for complex manipulation of sequences


Zynseq patterneditor notevelocity.png

Pattern Editor
Manipulation of individual events within patterns


Using ZynSeq is a detailed tutorial on the use of the step sequencer.

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.


Touchscreen Calibration

Zynthian supports touchscreen operation for most operations. To ensure good alignment of the touch interface there is a calibration screen that is accessed from the Admin menu.

Touchscreen calibration 1.png

When the screen opens it shows a target crosshair in the center of the screen and a countdown timer. If the timer expires the screen will close without applying any calibration. Touch the target to detect the screen and begin calibration.


Touchscreen calibration 2.png

The name of the detected display is shown at the bottom of the screen. Further targets will appear. Touch the screen, drag to centre of target and release.

When the screen is pressed the target will show red. When released the measurement is taken and the next crosshair target appears white.


Touchscreen calibration 3.png

After releasing the last target, calibration is applied and the screen closes. Touch is ignored if too close to previous touch.

Use BACK button or wait for timeout to cancel calibration. Timer is reset to 15s when screen is touched and paused until released. The purpose of the timeout is to avoid users of Zynthians without back button being stuck in calibration screen view.


Note:

The resistive touchscreen works better with a stylus. Finger is too coarse. It's strongly recommended to run the calibration using a stylus.


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 assignment and their combinations can be modified with the webconf tool.

Keyboard shortcuts
Action Modifier Key
ALL_NOTES_OFF None Space
ALL_OFF Ctrl Space
ALL_SOUNDS_OFF Shift Space
BACK_DOWN CapsLock Down
BACK_UP CapsLock Up
LAYER_DOWN Shift Down
LAYER_UP Shift Up
POWER_OFF Ctrl End
REBOOT Ctrl Home
RELOAD_MIDI_CONFIG Ctrl Insert
RESTART_UI Shift Home
SELECT_DOWN None Down
SELECT_UP None Up
SNAPSHOT_DOWN Ctrl Down
SNAPSHOT_UP Ctrl Up
START_AUDIO_PLAY Ctrl a
START_AUDIO_RECORD None a
START_MIDI_PLAY Ctrl m
START_MIDI_RECORD None m
STOP_AUDIO_PLAY Ctrl+Shift a
STOP_AUDIO_RECORD Shift a
STOP_MIDI_PLAY Ctrl+Shift m
STOP_MIDI_RECORD Shift m
SWITCH_BACK_BOLD Shift BackSpace, Escape, Left
SWITCH_BACK_LONG Ctrl BackSpace, Escape, Left
SWITCH_BACK_SHORT None BackSpace, Escape, Left
SWITCH_LAYER_BOLD Shift l
SWITCH_LAYER_LONG Ctrl l
SWITCH_LAYER_SHORT None l
SWITCH_SELECT_BOLD Shift Return, Right
SWITCH_SELECT_LONG Ctrl Return, Right
SWITCH_SELECT_SHORT None Return, Right
SWITCH_SNAPSHOT_BOLD Shift s
SWITCH_SNAPSHOT_LONG Ctrl s
SWITCH_SNAPSHOT_SHORT None s
TOGGLE_AUDIO_PLAY CapsLock+Shift a
TOGGLE_AUDIO_RECORD CapsLock a
TOGGLE_MIDI_PLAY CapsLock+Shift m
TOGGLE_MIDI_RECORD CapsLock m

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.

Note that you can use the velocity for sending the CUIA parameter when it's required by the action (SELECT & LAYER_CONTROL).

This is the full map of CUIA to MIDI notes:

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_BINDING         E-1
5     LAST_STATE_ACTION          F-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
54    BACK_UP                    F#3
55    BACK_DOWN                  G3
56    LAYER_UP                   G#3
57    LAYER_DOWN                 A3
58    SNAPSHOT_UP                A#3
59    SNAPSHOT_DOWN              B3
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_MAIN                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
96    MODAL_ADMIN                C7
100   LAYER_CONTROL              E7

Keyboard

Midi-note-chart.jpg

Controlling the UI with OSC messages

The same CUIA calls are available using OSC on UDP 1370, with the base prefix "/cuia". Take a look to "Calling CUIA with OSC".