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

From ZynthianWiki
Jump to navigation Jump to search
m (Mouse wheel control of a parameter)
(157 intermediate revisions by 5 users not shown)
Line 1: Line 1:
  
=The Zynthian's Hardware User Interface=
+
=General Concepts=
[[File:zynthian_controllers.png|400px|right]]
 
[[File:zynthian_ui_workflow_1.png|400px|thumb]]
 
[[File:zynthian_ui_workflow_2.png|400px|thumb]]
 
  
The Zynthian's Hardware UI is displayed on a touch display and controlled by 4 rotary-encoders with switches (push).
+
[[File:zynthian_controllers.png|430px|right]]
The encoders/switch knobs are used to navigate between the different screens/menus, select options and change the instrument parameters, acting as MIDI/OSC controllers.
 
  
Currently there are two screen types (layouts):
+
The Zynthian UI is displayed on a touch display and controlled by 4 knobs (rotary-encoders with push-switches).
 +
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.
  
# '''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.
 
  
And there are 3 types of clicks (push) that can be performed, depending on how long you hold down the knob:
+
* '''Selector Screen''': a list of items that you can scroll and select with the SELECT (4) knob
* '''short:''' less than 0.3 seconds
+
* '''Controller Screen''': 4 control widgets in the corners (one for each knob), with label and value indicators (graphic and numeric). In the middle there is a list of controller maps, which you can use to change the parameters controlled by the knobs.
* '''bold:''' between 0.3 and 2 seconds
 
* '''long:''' more than 2 seconds
 
  
Actions for each knob and click type are context dependent. Generally, the SELECT knob and a short click is used to navigate and select items on a "Selector Screen". Inside a "Controller Screen", short clicks can be used to rotate between layers (LAYER) or between controller pages (SELECT). "Bold" clicks are intended as shortcuts for jumping to some specific screens. Clicking the BACK knob generally jumps to the previous screen in the sequence.
+
Almost every Zynthian UI screen is one of these 2 types, however, other screen-types do exist:
  
Loading and Saving snapshots: If you click SNAPSHOT (3) once, you get the Load Snapshot menu, another click and you will be in the Save Snapshot menu. If you bold-click SNAPSHOT then you will go directly to the Save Snapshot menu. The Snapshot menu have 2 levels: bank selection (directory) and snapshot (file).
+
* '''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"
  
=The Zynthian UI Workflow=
+
There are 3 types of clicks (push-switch actions) that can be performed, depending on how long you hold down the knob (or hold your finger on the touch-display):
 +
 
 +
* '''short click:''' less than 0.3 seconds
 +
* '''bold click:''' between 0.3 and 2 seconds
 +
* '''long click:''' more than 2 seconds
 +
 
 +
Click actions for each knob are context dependent. The SELECT knob is mainly used to navigate, and a short click on it will select an item on a "Selector Screen". Inside a "Controller Screen", short clicks can be used to rotate between layers (LAYER knob) or between controller pages (SELECT knob). "Bold-clicks" are intended as shortcuts for jumping to some specific screens. Clicking the BACK knob generally jumps to the previous screen in the workflow sequence.
 +
 
 +
Most of the actions depend of context (current screen), but there are some actions that are global and will work from any screen:
 +
 
 +
* '''long-back''': go to the admin menu
 +
* '''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.
 +
 
 +
=The Status Area=
 +
 
 +
<br clear=all>
 +
 
 +
[[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:
 +
 
 +
* Audio Peak-meter or CPU-load => 1 or 2 small horizontal bars on the top right.
 +
* MIDI-IN => Blue '''M''' flag
 +
* Xrun => Red '''warning''' flag
 +
* Under-voltage => Red '''ray''' flag
 +
* Over-temperature => Red '''thermometer''' flag
 +
* Recording Audio => Red '''circle''' flag
 +
* Playing Audio => Green '''play''' flag
 +
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 that at far left:
 +
 
 +
* The green segment covers the range -50dBFS to -10dBFS.
 +
* The yellow segment covers the range -10dBFS to -3dBFS.
 +
* The red segment covers the range -3dBFS to 0dBFS.
 +
 
 +
There are independent meters for left and right channels which monitor the system output, i.e. the mix of audio that feeds the Zynthian output. Level decays with a logarithmic rule, taking one second to decay to -200dBFS so will decay to -50dBFS (the displayed range) in about quarter of a second. Peaks are displayed instantly, i.e. the attack of the meter is immediate(*). The peak hold bar remains for two seconds or until a higher peak is reached.
 +
 
 +
(*) Meter is updated 5 times per second so there can be 200 ms delay in peak being displayed.
 +
 
 +
Alternately, CPU-load bar can be enabled from webconf, replacing the Audio Peak-meter. The CPU-load bar shows the CPU usage as calculated by the Jack Audio Server:
 +
 
 +
This is a running average of the time it takes to execute a full process cycle for all clients as a percentage of the real time available per cycle determined by the buffer size and sample rate.
 +
 
 +
The blue M flag is shown when MIDI messages pass thru the MIDI router. Not all messages are detected. Only CC, Program Change and Note On/Off.
 +
 
 +
The red "warning" flag is shown when there are Xruns. You should hear clicks and pops too.
 +
 
 +
When the red "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).
 +
 
 +
Finally, the red '''circle''' and '''play''' flags show the status of audio/MIDI capture: recording / playing
 +
 
 +
=Layers=
 +
 
 +
[[File:Zynthian_ui_mixer_layers.png|400px|right]]
 +
 
 +
Layers are a key concept on Zynthian-UI: the first thing you do when you power-on your zynthian is create a layer.
 +
 
 +
A layer is an '''Audio Processing Chain''', normally assigned to a MIDI channel, which can be composed of one or more Audio Processing Units. these units are chained by default, although you can customize the audio routing. The first unit in a layer is the '''root''' which determines the layer's type:
 +
 
 +
* '''Synth Layer''' => Receives MIDI note-events and generate audio output.
 +
* '''FX Layer''' => Receives audio-input and generates audio-output.
 +
* '''Generator Layer''' => Auto-generate audio output using an algorithm.
 +
* '''Special Layer''' => MOD-UI pedalboard, Pure Data patch, etc.
 +
 
 +
The rest of units in a layer are usually FX units which process the audio coming from the first unit (root).
 +
 
 +
All units in a layer receive all the MIDI events coming from the assigned channel. Some special layers (MOD-UI) don't have an assigned MIDI channel and receive all MIDI channels.
 +
 
 +
<br clear=all>
 +
 
 +
=Mixer=
  
The next flowcharts show the different "screens" or "functions" and the way to reach each one using the 4 switches.
+
[[File:zynthian_ui_mixer_control.png|400px|right]]
It could be a good idea to print these 2 flowcharts and keep it near of your Zynthian Box until you memorize the flow and the spirit of Zynthian UI got inside of you ;-)
 
  
If you want to contribute improving these flowcharts, you can edit it using the Google Documents Tools:
+
Although the '''MIXER''' is shown in the layer list, it's not a real layer. This pseudo-layer allows to adjust the soundcard output/input levels and other audio-hardware related options. Technically speaking, it's a user interface for the ALSA (Audio Linux Sound Architecture) mixer.
  
- [https://docs.google.com/drawings/d/1jmt3zrJjPkbqj3hpzCIwRgFIKxiX2UptebBA_GN8e5I/edit?usp=sharing Main sequence: zynthian_ui_workflow_1]
+
You can configure the mixer controllers from the webconf's hardware->audio menu. Simply click the '''+''' button on the "Mixer Controls" text area.  
- [https://docs.google.com/drawings/d/1Um1HVCvvb4gZF_X-vcIN9cTxYIBRCtZ5oxniUdSTB3c/edit?usp=sharing Aux. Sequences: zynthian_ui_workflow_2]
 
  
 +
<br clear=all>
  
=The UI Menus=
+
=The Zynthian UI Workflow=
  
Most of actions depends on context (the current menu screen), but there are some actions that are global and will work from any menu screen:
+
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.
  
* '''long-back''': go to the admin menu
+
<gallery mode="slideshow" widths="240" heights="320">
 +
Image:zynthian_ui_workflow__main.svg|''[[commons:Main Sequence|Main Sequence]]''
 +
Image:zynthian_ui_workflow__layer_options.svg|''[[commons:Layer Options|Layer Options]]''
 +
Image:zynthian_ui_workflow__snapshots.svg|''[[commons:Snapshots|Snapshots]]''
 +
Image:zynthian_ui_workflow__midi_learning.svg|''[[commons:MIDI Learning|MIDI Learning]]''
 +
</gallery>
  
* '''long-select''': power off
+
If you want to contribute to improving these flowcharts, you can edit them using the Google Documents Tools:
  
Snapshot actions are also global an will work from any point in the workflow. These actions are explained below.
+
- [https://docs.google.com/drawings/d/1jmt3zrJjPkbqj3hpzCIwRgFIKxiX2UptebBA_GN8e5I Main sequence: zynthian_ui_workflow_main]
 +
- [https://docs.google.com/drawings/d/1C8kfovwXxuabl1u-UlrnHY8xzFFNiqiQWt1mmD5UXak Layer Options: zynthian_ui_workflow_layer_options]
 +
- [https://docs.google.com/drawings/d/1Um1HVCvvb4gZF_X-vcIN9cTxYIBRCtZ5oxniUdSTB3c Snapshots: zynthian_ui_workflow_snapshots]
 +
- [https://docs.google.com/drawings/d/1I0ArYVr3zGtzcSgOy19fHlIh8VF15rmsll9wZi-aXaI MIDI Learning: zynthian_ui_workflow_midi_learning]
  
 
<br clear=all>
 
<br clear=all>
 +
 +
=The UI Screens=
  
 
==Layer List==
 
==Layer List==
 
[[File:Zynthian_ui_new_layer.png|400px|right]]
 
[[File:Zynthian_ui_new_layer.png|400px|right]]
This is the first screen you see when you power on and no screenshots are stored yet. A layer is a synth engine preset assigned to one (or all) MIDI Channel. Choose New Layer to get started.
+
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:
 +
 
 +
* '''NEW Synth Layer''' => Create a new Synthesizer Layer.
 +
* '''NEW Effect Layer''' => Create a new Effect Layer that will be connected to soundcard's Audio Input.
 +
* '''NEW Generator Layer''' => Create a new Generator Layer that self-generates audio or midi.
 +
* '''NEW Special Layer''' => Create a new Special Layer which will receive all MIDI channels.
 +
* '''REMOVE ALL''' => Remove all Layers (Root layers and its associated Effect-Chains), returning to the initial state.
 +
* '''PANIC! All Notes/Sounds Off''' => All notes and sounds are stopped abruptly 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 CTRL-1 twice. 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_layer_list_mixer.png|400px|right]]
You can create up to 16 layers. Several layers can be assigned to the same MIDI Channel.  
+
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 there are MIDI channels), each one having an independent effect-chain.
 +
 
 +
Having several layers in the same MIDI channel is not allowed. If you want two or more layers playing unison (like being in the same MIDI channel), you should use the "Clone" feature, which allow you to bind several layers while keeping MIDI CCs and other MIDI messages (Program Change, Channel Pressure, etc.) independent.
 +
 
 
<br clear=all>
 
<br clear=all>
  
 
[[File:Zynthian_ui_layer_options.png|400px|right]]
 
[[File:Zynthian_ui_layer_options.png|400px|right]]
If you bold-press the select switch, the "Layer Options" menu will be opened for the selected layer. This menu allows 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, ...)
 +
* '''Transpose''' => transpose the '''layer's MIDI channel''' up and down, by semitones.
 +
* '''Audio Routing''' => route the '''layer's''' audio output to the available audio input ports, allowing to process the audio in any way you imagine. You can use this feature for creating your own customized/bizarre FX chains. If this is not enough for you, try MOD-UI engine with the MOD-UI web GUI.
 +
* '''MIDI chan''' => change the MIDI Channel assigned.
 +
* '''Remove Layer''' => Remove the layer.
 +
 
 +
* '''Add Effect''' => Add an effect to the FX-chain.
 +
* '''Remove All Effects''' => Clean the FX-chain, deleting all the effects.
 +
 
 +
* '''Effect List''' => The list of effects in the layer's FX-chain. By bold-clicking on an effect and you will access the Effect's Options:
 +
** '''Effect Presets'''
 +
** '''Move Upchain'''
 +
** '''Move Downchain'''
 +
** '''Remove Effect'''
  
* change the assigned MIDI Channel
 
* transpose the layer up and down, by semitones.
 
* route the layer's engine audio output to MOD-UI audio input, for audio processing
 
* delete the layer
 
 
<br clear=all>
 
<br clear=all>
  
 
==Engine Selection==
 
==Engine Selection==
 
[[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 the engine synth you want to use for the new layer. You will see the list of synth engines to choose from. The zynthian logo on the right is animated while engine is being loaded.
+
When you create a new layer, you are asked which engine/plugin you want to use for it. A list of engines to choose from is displayed. They can be synthesizers, effects, generators or special engines, depending on the type of layer you are creating. When you select an element from the list, the zynthian logo on the top-right will be animated while the engine is being started.
 +
 
 +
Some engines have special behavior regarding layers and MIDI channels:
 +
 
 +
* '''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.
 +
 +
 
 
<br clear=all>
 
<br clear=all>
  
 
==MIDI Channel selection==
 
==MIDI Channel selection==
 
[[File:Zynthian_ui_midi_channel.png|400px|right]]
 
[[File:Zynthian_ui_midi_channel.png|400px|right]]
This screen is shown after you have chosen a synth engine for a new layer. Also when, from the Layer Options screen, you want to assign the layer to a different MIDI Channel. Choose the MIDI channel you want to assign to the layer. You can assign several layers to the same MIDI Channel. In such a case, all the assigned layers will react to MIDI messages coming from the assigned MIDI Channel.
+
This screen is shown in various contexts:
 +
 
 +
* After you have selected the engine for a new layer. Only free channels are listed.
 +
* When you change the assigned MIDI channel from the Layer Options. Only free channels are listed.
 +
* When you clone a layer from the Layer Options.
 +
 
 
<br clear=all>
 
<br clear=all>
  
 
== Bank selection==
 
== Bank selection==
 
[[File:Zynthian_ui_bank_list.png|400px|right]]
 
[[File:Zynthian_ui_bank_list.png|400px|right]]
Presets (instruments, sound designs or patches) for a synth engine are organized into banks. Choose a bank to see the list of presets you can pick from in 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 selection==
 
[[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.
 +
 
 +
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.
  
If the "pre-load on note-on" feature is enabled, you can pre-load the presets by playing notes. The highlighted preset will be pre-loaded before select.
 
 
<br clear=all>
 
<br clear=all>
  
 
==Instrument Control screen==
 
==Instrument 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 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 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.
 +
<br clear=all>
  
Turning each of the 4 knobs change the values of the synth parameters displayed in the squares at the sides of the screen. The list in the center of the screen allows you to choose the page of parameters. You can step one page by clicking select.
+
[[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.
 
<br clear=all>
 
<br clear=all>
  
[[File:Zynthian_ui_instrument_control_03.png|400px|right]]
+
====XY-Controller====
If the page list is long, you can "bold click" the select switch for navigating the list using the select knob.
+
[[File:Zynthian_ui_xy_select.png|400px|right]]
 +
If you click 2 knobs 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. You can also navigate the controller pages by clicking select and so on. So you can select parameters from different pages.
 
<br clear=all>
 
<br clear=all>
  
 
[[File:Zynthian_ui_xy_controller.png|400px|right]]
 
[[File:Zynthian_ui_xy_controller.png|400px|right]]
If you click 2 switches at once, then you will select these 2 parameters for XY-controlling using the touchscreen (ala kaospad).
+
Once you have selected the right parameters, touch the screen to enter the XY-control-pad (using the touchscreen ala Kaoss Pad).
 +
 
 +
Click ''back'' to return to XY-select or bold-click ''back'' to return to the control screen.
 
<br clear=all>
 
<br clear=all>
  
You can press the layer switch to step over the layer list. If bold-press, the layer list will be shown.
+
====Tips====
 +
You can press the Layer switch to step over the layer list. If you bold-press, the layer list screen will be shown.
  
Press the back switch to return to previous screen. If bold-back, then you will go 2 screens backwards.
+
Press the Back switch to return to previous screen. If you press bold-Back, you will go 2 screens backwards.
 
<br clear=all>
 
<br clear=all>
  
==Load/Save Snapshot==
+
==Snapshots==
 
[[File:Zynthian_ui_snapshot_load.png|400px|right]]
 
[[File:Zynthian_ui_snapshot_load.png|400px|right]]
 
[[File:Zynthian_ui_snapshot_save.png|400px|right]]
 
[[File:Zynthian_ui_snapshot_save.png|400px|right]]
Click the snapshot switch for entering the Load Snapshot screen. Another click and you will be in the Save Snapshot screen. You can also use bold-click for going directly to the Save Snapshot screen.
+
Snapshots are used for saving and restoring the status of Zynthian. A snapshot includes the full state, including layers, effects, parameter values, MIDI-learning, etc.
 +
 
 +
You can enter the ''Load Snapshot'' screen by clicking the snapshot switch. From the control screen you have to use bold-click. A second click and you will be at the ''Save Snapshot'' screen. You can also use bold-click to go directly to the Save Snapshot screen (not from control 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.
  
Obviously, before loading any snapshot, you should save one. Snapshot are organized in banks, so if you don't have any bank, you should create one.
+
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.
Zynthian UI will use numbers for naming the banks and snapshots. Later, from the webconf tool you can rename the banks and snapshots to something more explicit.
 
  
If you want to go up one level, from snapshots to banks, you should use the ".." entry in the list. Back button wont work here.
+
====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.
  
===Default Snapshot===
+
====Restore Last State====
You can save a "Default Snapshot". This snapshot will be loaded automatically at startup. For deleting it, you should use the webconf tool.
+
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>
Line 125: Line 263:
 
==Admin Menu==
 
==Admin Menu==
 
[[File:Zynthian_ui_admin.png|400px|right]]
 
[[File:Zynthian_ui_admin.png|400px|right]]
Pressing the Back knob, when you are in the Layer List screen, brings you to the Admin menu. The last item is how you safely power off the Zynthian without corrupting data files.
+
[[File:Zynthian_ui_admin_02.png|400px|right]]
 +
Pressing the Back knob, when you are in the Layer List screen, brings you to the Admin menu.  
 +
 
 +
The last item is how you safely power off the Zynthian without corrupting data files.
 +
 
 +
* Network Info - displays the IP address (ifconfig inet addr)
 +
* Start WIFI - Starts or Stops WIFI (toggle)
 +
* 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>
 +
 
 +
==Audio & MIDI Recording==
 +
[[File:zynthian_audio_recorder_01.png|400px|right]]
 +
[[File:zynthian_audio_recorder_02.png|400px|right]]
 +
[[File:zynthian_ui_audio_recorder.png|400px|right]]
 +
[[File:zynthian_ui_midi_recorder.png|400px|right]]
 +
 
 +
From the Admin menu you can access to the Audio & MIDI recording tools. 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.
 +
 
 +
'''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===
 +
 
 +
Audio & MIDI recordings can be managed from your computer by accessing the webconf's captures section. From this section you can:
 +
 
 +
* rename recordings
 +
* delete recordings
 +
* convert audio recordings to .ogg format
 +
* downloading recordings to your computer
 +
* reproduce the audio recordings in your browser. If .wav files doesn't work in your browser, try converting to ogg.
 +
 
 +
It is a good idea to rename your recordings so they can be easily identified.
 +
 
 +
[[File:Zynthian_webconf_captures_02.png|600px|border|left]]
 +
 
 
<br clear=all>
 
<br clear=all>
  
Line 132: Line 336:
 
You can navigate and control the Zynthian UI without knobs/encoders/switches at all, using only the touchscreen.
 
You can navigate and control the Zynthian UI without knobs/encoders/switches at all, using only the touchscreen.
  
You can "emulate" the switches by tapping the controller widgets (squares in the 4 corners of a Controller screen). There are short, bold and long actions. Exactly the same workflow as with hardware knobs. When the "back" widget is not available, you can go back by tapping the top bar.
+
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 values of the controllers by "sliding" over the widgets. This is the same as turning the knob. If you are using a mouse, the mouse wheel also modifies the parameter.  
+
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.
  
When clicking (tapping/touching) the topbar, a "back" event is triggered. It's a quick & dirty fix and probably it will change in the future, but meanwhile it will enable you to fully control Zynthian using the touchscreen if you don't have knob hardware.
 
 
<br clear=all>
 
<br clear=all>
  
=Global MIDI-learning=
+
=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:
  
It allows to easily bind any parameter from the Zynthian UI to any CC knob/slider from an external MIDI controller. I intend to extend the feature to other MIDI messages, but currently only CC messages are supported. Anyway, MIDI filter rules can handle these special cases, so it’s not an urgent task.
+
====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.
  
It works with ALL the engines, using the engine’s native MIDI-learning when available (and convenient) or the Zynthian’s MIDI-learning mechanism, based in the MIDI filter. To be more explicit, native MIDI-learning is used for MOD-UI and for ZynAddSubFX OSC parameters. All the MIDI-mapped parameters are managed by the Zynthian’s MIDI-learning mechanism.
+
Learning a MIDI-CC is quite easy:
  
You get on-screen feedback during the learning process. When you enable the MIDI-learning for a parameter, a small green text with the string "??" appears on the botton side of the controller/parameter area in the Zynthian UI. When the parameter is bond, the number of the linked CC is shown in the same place.
+
'''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.
  
The MIDI-learning configuration is stored in the snapshot.
+
'''2.''' Move a zynthian controller. Its tiny “???” will change to green while the other 3 will go back to normal state.
  
==How it works?==
+
'''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 "???".
  
First, you need a working touch interface in your display. If not, you could use a mouse ...
+
Of course, MIDI-learning configuration, including CC mappings, is stored and restored with snapshots.
 +
 
 +
'''Technical Note:''' MIDI-CC learning works with all the engines. It uses the engine’s native MIDI-learning capabilities when available. Zynthian’s MIDI-filter mappings are used for the rest. To be more explicit, native MIDI-learning is used for MOD-UI and ZynAddSubFX OSC parameters. All the other parameters are managed by Zynthian’s MIDI-filter mapping.
 +
 
 +
<br clear=all>
 +
 
 +
====MIDI Program Change====
 +
[[File:Zynthian_ui_midi_zs3_learn.png|400px|right]]
 +
You can map "SubSnapshots" (ZS3) to MIDI programs. The idea behind this feature is to have a fast preset-change mechanism that can be used on stage. In combination with the “Single Layer” feature, it turns Zynthian in a “Stage-Beast”. You can prepare a snapshot for the full performance, and use ZS3 for fast changing from a song to another, or between parts inside the same song.
 +
 
 +
Learning a SubSnapShot is obscenely easy:
 +
 
 +
'''1.''' From the control screen, you click the snapshot button '''twice'''. You will see the current list of ZS3s and a message: “Waiting for Program Change…”
 +
 
 +
'''2.''' Simply push a “Program Change” button in your keyboard/controller and the ZS3 will be stored in memory, associated with the Program number you send.
 +
 
 +
After that, you can recall any stored ZS3 by simply pushing the same PC button again. Of course, the memory-stored zs3s will be saved with your snapshot and restored when loaded again.
 +
 
 +
Every zs3 includes:
 +
 
 +
    - Layer ID
 +
    - Bank
 +
    - Preset
 +
    - Controller values
 +
 
 +
As you can see, it has sense in a SnapShot context, where a set of layers are defined. Zs3 changing is very fast, as no engine have to be started.
 +
<br clear=all>
 +
 
 +
====MIDI-CC Learning with a touch interface====
 +
 
 +
First, you need a working touch interface in your display. If you don't have a touchscreen, you could use a mouse.
  
 
[[File:Zynthian_ui_midi_learning.png|400px|right]]
 
[[File:Zynthian_ui_midi_learning.png|400px|right]]
 
'''Learning:'''
 
'''Learning:'''
  1. In the "Instrument Control" screen, navigate the parameter screen list until having the parameter you want to learn.
+
  1. In the "Instrument Control" screen, navigate through the parameter screen list to get to the parameter you want to learn.
  2. On the parameter/controller area, slide with your nail from '''left to right'''. A green "??" should appear in the bottom side.
+
  2. In the parameter/controller area, slide with your fingernail from '''left to right'''. A green "??" should appear at the bottom.
  3. In 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 "boolean" parameters (i.e. on/off).   
+
  3. On your MIDI controller, move the desired knob/slider (or a CC-assigned pad).  The green "??" should be replaced by a tiny number, and the parameter should change when you move the knob/slider or push the pad. CC-assigned pads can be very useful for on/off parameters.   
 
<br clear=all>
 
<br clear=all>
  
 
[[File:Zynthian_ui_midi_unlearning.png|400px|right]]
 
[[File:Zynthian_ui_midi_unlearning.png|400px|right]]
 
'''Unlearning:'''
 
'''Unlearning:'''
  1. In the "Instrument Control" screen, navigate the parameter screen list until having 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. On the parameter/controller area, slide with your nail from '''right to left'''. The tiny number, indicating the current CC bond, should disappear or change. If the parameter is an engine-specific controlled engine, the number will disappear. If the parameter is hardcoded MIDI-mapped parameter, then the number will change.
+
  2. In the parameter/controller area, slide with your fingernail from '''right to left'''. The tiny number, indicating the current CC assignment, should disappear or change. If the parameter is an engine-specific controlled engine, the number will disappear. If the parameter is a hardcoded MIDI-mapped parameter, the number will change.
 
<br clear=all>
 
<br clear=all>
 +
 +
=CUIA: Callable UI Actions=
 +
 +
The Zynthian UI can be controlled remotely using a set of commands called CUIA: Callable UI Actions. These CUIA are available on several interfaces: Key Bindings, MIDI, OSC, etc.
 +
 +
==Key Bindings: Controlling the UI with a computer keyboard==
 +
 +
The user interface may be driven using a USB keyboard, e.g. QWERTY, Dvorak, etc.
 +
 +
{| class="wikitable"
 +
|-
 +
!Key
 +
!Modifier
 +
!Function
 +
|-
 +
|Enter||None||SELECT
 +
|-
 +
|Enter||Shift||Bold SELECT
 +
|-
 +
|Enter||Ctrl||Long SELECT
 +
|-
 +
|Backspace||None||BACK
 +
|-
 +
|Backspace||Shift||Bold BACK
 +
|-
 +
|Backspace||Ctrl||Long BACK
 +
|-
 +
|Escape||None||BACK
 +
|-
 +
|Escape||Shift||Bold BACK
 +
|-
 +
|Escape||Ctrl||Long BACK
 +
|-
 +
|L||None||LAYER
 +
|-
 +
|L||Shift||Bold LAYER
 +
|-
 +
|L||Ctrl||Long LAYER
 +
|-
 +
|S||None||SNAPSHOT
 +
|-
 +
|S||Shift||Bold SNAPSHOT
 +
|-
 +
|S||Ctrl||Long SNAPSHOT
 +
|-
 +
|A||None||Start audio Record
 +
|-
 +
|A||Shift||Stop audio Record
 +
|-
 +
|A||Alt||Toggle audio Record
 +
|-
 +
|A||Ctrl||Start audio Play
 +
|-
 +
|A||Ctrl+Shift||Stop audio Play
 +
|-
 +
|M||None||Start MIDI Record
 +
|-
 +
|M||Shift||Stop MIDI Record
 +
|-
 +
|M||Ctrl||Start MIDI Play
 +
|-
 +
|M||Ctrl+Shift||Stop MIDI Play
 +
|-
 +
|Space||None||All Notes Off
 +
|-
 +
|Space||Shift||All Sounds Off
 +
|-
 +
|Space||Ctrl||All off
 +
|-
 +
|Home||Shift||Restart UI
 +
|-
 +
|Insert||Ctrl||Reload MIDI Config
 +
|-
 +
|Home||Ctrl||Reboot
 +
|-
 +
|End||Ctrl||Power Off
 +
|-
 +
|Up||None||Listbox Up
 +
|-
 +
|Down||None||Listbox Down
 +
|-
 +
|Left||None||BACK
 +
|-
 +
|Right||None||SELECT
 +
|}
 +
 +
==Controlling the UI with MIDI messages==
 +
 +
These actions are available using MIDI messages on the Master Channel (default 16, but configurable with the webconf tool), specifically, note-on messages (0x9) are used so you can use a MIDI keyboard for controlling the Zynthian UI. For instance, to Power Off the zynthian, you send this message:
 +
 +
0x9F  (Channel 16 Note ON)
 +
0x00  (Note code for POWER_OFF as below)
 +
0x00  (Velocity/parameter)
 +
 +
or play the C-1 key, if your keyboard has it.
 +
 +
This is the full list:
 +
 +
'''Num'''  '''CUIA'''                      '''Note'''        '''System'''
 +
0    POWER_OFF                  C-1
 +
1    REBOOT                    C#-1
 +
2    RESTART_UI                D-1
 +
3    RELOAD_MIDI_CONFIG        D#-1
 +
 +
10    ALL_NOTES_OFF              A#-1
 +
11    ALL_SOUNDS_OFF            B-1
 +
12    ALL_OFF                    C0
 +
 +
23    TOGGLE_AUDIO_RECORD        B1
 +
24    START_AUDIO_RECORD        C1
 +
25    STOP_AUDIO_RECORD          C#1
 +
26    START_AUDIO_PLAY          D1
 +
27    STOP_AUDIO_PLAY            D#1
 +
 +
35    TOGGLE_MIDI_RECORD        B2
 +
36    START_MIDI_RECORD          C2
 +
37    STOP_MIDI_RECORD          C#2
 +
38    START_MIDI_PLAY            D2          Start/Continue: 0xFA, 0xFB
 +
39    STOP_MIDI_PLAY            D#2          Stop: 0xFC
 +
 +
51    SELECT                    D#3/Eb3
 +
52    SELECT_UP                  E3
 +
53    SELECT_DOWN                F3
 +
 +
64    SWITCH_BACK_SHORT          E4
 +
63    SWITCH_BACK_BOLD          D#4/Eb4
 +
62    SWITCH_BACK_LONG          D4
 +
 +
65    SWITCH_SELECT_SHORT        F4
 +
66    SWITCH_SELECT_BOLD        F#4/Gb4
 +
67    SWITCH_SELECT_LONG        G4
 +
 +
60    SWITCH_LAYER_SHORT        C4
 +
61    SWITCH_LAYER_BOLD          C#4/Db4
 +
59    SWITCH_LAYER_LONG          B4
 +
 +
71    SWITCH_SNAPSHOT_SHORT      B5
 +
72    SWITCH_SNAPSHOT_BOLD      C5
 +
73    SWITCH_SNAPSHOT_LONG      C#5/Db5
 +
 +
[[File:2Oct_Keyboard_CUIA.png|600px|Keyboard]]
 +
 +
[[File:Midi-note-chart.jpg]]

Revision as of 09:49, 2 February 2020

1 General Concepts

Zynthian controllers.png

The Zynthian UI is displayed on a touch display and controlled by 4 knobs (rotary-encoders with push-switches). 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:

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

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

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

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

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

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

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

  • long-back: go to the admin menu
  • 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.

2 The Status Area


Zynthian ui control status.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 => 1 or 2 small horizontal bars on the top right.
  • MIDI-IN => Blue M flag
  • Xrun => Red warning flag
  • Under-voltage => Red ray flag
  • Over-temperature => Red thermometer flag
  • Recording Audio => Red circle flag
  • Playing Audio => Green play flag

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 that at far left:

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

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

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

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

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

The blue M flag is shown when MIDI messages pass thru the MIDI router. Not all messages are detected. Only CC, Program Change and Note On/Off.

The red "warning" flag is shown when there are Xruns. You should hear clicks and pops too.

When the red "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).

Finally, the red circle and play flags show the status of audio/MIDI capture: recording / playing

3 Layers

Zynthian ui mixer layers.png

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

A layer is an Audio Processing Chain, normally assigned to a MIDI channel, which can be composed of one or more Audio Processing Units. these units are chained by default, although you can customize the audio routing. The first unit in a layer is the root which determines the layer's type:

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

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

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


4 Mixer

Zynthian ui mixer control.png

Although the MIXER is shown in the layer list, it's not a real layer. This pseudo-layer allows to adjust the soundcard output/input levels and other audio-hardware related options. Technically speaking, it's a user interface for the ALSA (Audio Linux Sound Architecture) mixer.

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


5 The Zynthian UI Workflow

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

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

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


6 The UI Screens

6.1 Layer List

Zynthian ui new layer.png

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:

  • NEW Synth Layer => Create a new Synthesizer Layer.
  • NEW Effect Layer => Create a new Effect Layer that will be connected to soundcard's Audio Input.
  • NEW Generator Layer => Create a new Generator Layer that self-generates audio or midi.
  • NEW Special Layer => Create a new Special Layer which will receive all MIDI channels.
  • REMOVE ALL => Remove all Layers (Root layers and its associated Effect-Chains), returning to the initial state.
  • PANIC! All Notes/Sounds Off => All notes and sounds are stopped abruptly 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 CTRL-1 twice. 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 layer list mixer.png

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 there are MIDI channels), each one having an independent effect-chain.

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


Zynthian ui layer options.png

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

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


6.2 Engine Selection

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.



6.3 MIDI Channel selection

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.


6.4 Bank selection

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.

6.5 Preset selection

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.


6.6 Instrument 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.

6.6.1 XY-Controller

Zynthian ui xy select.png

If you click 2 knobs 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. You can also navigate the controller pages by clicking select and so on. So you can select parameters from different pages.

Zynthian ui xy controller.png

Once you have selected the right parameters, touch the screen to enter the XY-control-pad (using the touchscreen ala Kaoss Pad).

Click back to return to XY-select or bold-click back to return to the control screen.

6.6.2 Tips

You can press the Layer switch to step over the layer list. If you bold-press, the layer list screen will be shown.

Press the Back switch to return to previous screen. If you press bold-Back, you will go 2 screens backwards.

6.7 Snapshots

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 by clicking the snapshot switch. From the control screen you have to use bold-click. A second click and you will be at the Save Snapshot screen. You can also use bold-click to go directly to the Save Snapshot screen (not from control 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.

6.7.1 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.

6.7.2 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.

6.7.3 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".


6.8 Admin Menu

Zynthian ui admin.png
Zynthian ui admin 02.png

Pressing the Back knob, when you are in the Layer List screen, brings you to the Admin menu.

The last item is how you safely power off the Zynthian without corrupting data files.

  • Network Info - displays the IP address (ifconfig inet addr)
  • Start WIFI - Starts or Stops WIFI (toggle)
  • 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


6.9 Audio & MIDI Recording

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

From the Admin menu you can access to the Audio & MIDI recording tools. 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.

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.

6.9.1 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.

6.9.2 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.

6.9.3 Deleting

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

6.9.4 Managing recordings from your computer

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

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

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

Zynthian webconf captures 02.png


7 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.

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.


8 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:

8.1 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.


8.2 MIDI Program Change

Zynthian ui midi zs3 learn.png

You can map "SubSnapshots" (ZS3) to MIDI programs. The idea behind this feature is to have a fast preset-change mechanism that can be used on stage. In combination with the “Single Layer” feature, it turns Zynthian in a “Stage-Beast”. You can prepare a snapshot for the full performance, and use ZS3 for fast changing from a song to another, or between parts inside the same song.

Learning a SubSnapShot is obscenely easy:

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

2. Simply push a “Program Change” button in your keyboard/controller and the ZS3 will be stored in memory, associated with the Program number you send.

After that, you can recall any stored ZS3 by simply pushing the same PC button again. Of course, the memory-stored zs3s will be saved with your snapshot and restored when loaded again.

Every zs3 includes:

   - Layer ID
   - Bank
   - Preset
   - Controller values

As you can see, it has sense in a SnapShot context, where a set of layers are defined. Zs3 changing is very fast, as no engine have to be started.

8.3 MIDI-CC Learning with a touch interface

First, you need a working touch interface in your display. If you don't have a touchscreen, you could use a mouse.

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.


9 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.

9.1 Key Bindings: Controlling the UI with a computer keyboard

The user interface may be driven using a USB keyboard, e.g. QWERTY, Dvorak, etc.

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

9.2 Controlling the UI with MIDI messages

These actions are available using MIDI messages on the Master Channel (default 16, but configurable with the webconf tool), specifically, note-on messages (0x9) are used so you can use a MIDI keyboard for controlling the Zynthian UI. For instance, to Power Off the zynthian, you send this message:

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

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

This is the full list:

Num   CUIA                       Note         System
0     POWER_OFF                  C-1
1     REBOOT                     C#-1
2     RESTART_UI                 D-1
3     RELOAD_MIDI_CONFIG         D#-1
10    ALL_NOTES_OFF              A#-1
11    ALL_SOUNDS_OFF             B-1
12    ALL_OFF                    C0
23    TOGGLE_AUDIO_RECORD        B1
24    START_AUDIO_RECORD         C1
25    STOP_AUDIO_RECORD          C#1
26    START_AUDIO_PLAY           D1
27    STOP_AUDIO_PLAY            D#1
35    TOGGLE_MIDI_RECORD         B2
36    START_MIDI_RECORD          C2
37    STOP_MIDI_RECORD           C#2
38    START_MIDI_PLAY            D2           Start/Continue: 0xFA, 0xFB
39    STOP_MIDI_PLAY             D#2          Stop: 0xFC
51    SELECT                     D#3/Eb3
52    SELECT_UP                  E3
53    SELECT_DOWN                F3
64    SWITCH_BACK_SHORT          E4
63    SWITCH_BACK_BOLD           D#4/Eb4
62    SWITCH_BACK_LONG           D4
65    SWITCH_SELECT_SHORT        F4
66    SWITCH_SELECT_BOLD         F#4/Gb4
67    SWITCH_SELECT_LONG         G4
60    SWITCH_LAYER_SHORT         C4
61    SWITCH_LAYER_BOLD          C#4/Db4
59    SWITCH_LAYER_LONG          B4
71    SWITCH_SNAPSHOT_SHORT      B5
72    SWITCH_SNAPSHOT_BOLD       C5
73    SWITCH_SNAPSHOT_LONG       C#5/Db5

Keyboard

Midi-note-chart.jpg