Difference between revisions of "Notes on Oram: some differences and new features"

From ZynthianWiki
Jump to navigation Jump to search
(Created page with "==Introduction== This is a guide to the x64 Oram testing image version of Zynthian based on 64-bit Debian 12 (Bookworm) that will become the eventual new stable version. Ther...")
 
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
==Introduction==
 
==Introduction==
  
This is a guide to the x64 Oram testing image version of Zynthian based on 64-bit Debian 12 (Bookworm) that will become the eventual new stable version. There are numerous changes to the UI and lots of refactoring under the hood according to the devs. This guide will aim to summarise the important changes or things to note about the testing version from forum discussions. As ever, this guide will be wrong in places or fall out of date so check the [discourse.zynthian.org | forum] if the guidance here isn't working for you. Feel free to contribute if you've found something relevant to add here, if you don't have an account, ask in the forum.
+
This is a guide to the x64 Oram testing image version of Zynthian. Based on 64-bit Debian 12 (Bookworm), it will eventually become the new stable version. There are numerous changes to the UI and lots of refactoring under the hood according to the devs. This guide will aim to summarise the important changes or things to note about the testing version from forum discussions. As ever, this guide will be wrong in places or fall out of date so check the [https://discourse.zynthian.org forum] if the guidance here isn't working for you. Feel free to contribute if you've found something relevant to add here, if you don't have an account, ask in the forum.
 +
 
 
==Getting started==
 
==Getting started==
  
Line 7: Line 8:
 
===Compatibility===
 
===Compatibility===
  
So far, Raspberry Pi 3 and 4 are compatible. Pi 5 is a work in progress (possible but may require troubleshooting to get it functioning).
+
So far, Raspberry Pi3, Pi4 and Pi5 are compatible. Pi5 has some issues to solve, but it's mostly working OK.
  
 
===Installing Oram===
 
===Installing Oram===
Line 14: Line 15:
 
https://os.zynthian.org/test/2024-03-01-zynthianos-bookworm-aarch64-oram-2403.zip
 
https://os.zynthian.org/test/2024-03-01-zynthianos-bookworm-aarch64-oram-2403.zip
  
==Changes of Note==
+
===Updating the Software===
 +
When new updates are available, the green heart is replaced by the '''green recycle symbol''' and the update entry is shown (see image below). Please note that the update entry is not shown in the admin menu if no updates are available (aka you are updated to the last).
 +
 
 +
===Improvements to VNC===
 +
Good news for those with headless/barebones setups, there are noticeable improvements to the speed and quality of the VNC connection to Zynthian.
 +
 
 +
===Wifi Setup & Accessing Webconf===
 +
 
 +
As of writing, it is not possible to set wifi directly in Webconf. It must be set from within the ADMIN > Wi-Fi Config menu.
 +
 
 +
The password for access (Webconf, VNC UI & Engines) is now: '''opensynth'''
 +
==The Zynthian UI Workflow==
 +
==Chains==
 +
 
 +
===An update on chains (and mixbus) for Oram===
 +
A chain may have audio and/or MIDI input. It may have any quantity of MIDI processors, a synth / generator processor and any quantity of audio processors, in that order, e.g. MIDI Input → MIDI Chord processor → Pianoteq → Bollie Delay. (The processors may be in any mix of parallel and series and there is no forced limit to the quantity of processors in the chain except there can only be a maximum of one synth processor.)
 +
 
 +
If the end of this chain has an audio output, e.g. it is a synth or audio chain then it feeds into a mixer input. The mixer has a channel strip that implements the phase, mono, mute, solo, fader, M/S encoding, etc. The output of this channel strip is by default routed internally (this is called normalisation) to the main mix bus. This is defined by the chain’s audio output configuration, i.e. if “Main Mixbus” is selected then this internal routing is enabled. (See below for an exception.)
  
====Updates to Native UI====
+
Each channel strip has an (stereo) audio output which by default is not routed. This can be routed to other chains and direct physical audio outputs using the chain audio output menu. It is possible to add post-fader effects to a chain. This routes the chains direct output to the post fader effect which is then routed to the targets enabled in the chain’s audio outputs. By default this results in the channel strip’s output being routed to the post-fader effects and the output of those post fader effects being routed to the main mixbus input. The internal normalisation is then disabled.
====Navigation====
+
 
 +
The main mixbus can also have pre and post fader effects. If it has prefader effects then any chains routed to the main bus will use their direct outputs to feed the main mixbus pre fader effects.
 +
 
 +
It is a bit complex in implementation and can lead to some unexpected results but it is quite flexible whilst keeping the technical implementation as low-cost as we can. (Lower CPU usage.)
 +
 
 +
==Navigation==
 
[[File:Zynthian oram add chain.png|500px|frameless|right]]
 
[[File:Zynthian oram add chain.png|500px|frameless|right]]
 
'''''The processors are now in categories.''''' There are a few ways to navigate to make your selection:
 
'''''The processors are now in categories.''''' There are a few ways to navigate to make your selection:
Line 25: Line 48:
 
*Or you could try a midi device and assign the UI navigation to buttons you have available See [[Zynthian_UI_User_Guide_-_V1/V4#CUIA:_Callable_UI_Actions | the CUIA page of the user guide]] for more on this.
 
*Or you could try a midi device and assign the UI navigation to buttons you have available See [[Zynthian_UI_User_Guide_-_V1/V4#CUIA:_Callable_UI_Actions | the CUIA page of the user guide]] for more on this.
  
Note also a '''circular green arrow''' in the top right corner of the screen to indicate that an update is available to download.
+
Note also a '''green recycle symbol''' in the top right corner of the screen to indicate that an update is available to download.
 
<br clear=all>
 
<br clear=all>
  
====Mixer Screen====
+
==Midi Input==
 +
There are some changes to the midi options, now there are only two 'modes':
 +
* '''ACTI''' (Active) mode is used to accept midi input to the currently selected chain.
 +
* '''MULTI''' (Multitimbral) mode is used to select the individual chains you wish to accept midi from the given device. This can be one chain or multiple. E.g. mimi-d synth can be assigned to accept midi from both a keyboard and sequencer at once.
 +
 
 +
<blockquote>
 +
===Cloning (Layering) Explained===
 +
I would like to explain a little bit how “clone” (aka layering sounds to play unison) works in the new testing version “oram-bookworm”.
 +
 
 +
First, you may note that the “clone” option does not exist anymore. We have better mechanisms in oram because several chains can use the same MIDI channel.
 +
 
 +
#If you are using ACTI mode for your input device
 +
#*A. THE EASY WAY
 +
#**Enable “Active MIDI chanel” in the admin menu. With this enabled, all chains in the same MIDI channel will receive the MIDI stream from the input when some of them is selected (active).
 +
#**Setup your “cloned” chains in the same MIDI channel.
 +
#*B. THE COOL WAY
 +
#**Disable “Active MIDI chanel” in the admin menu. With this disabled, only the selected (active) chain will receive MIDI from the input, not matter the MIDI channel.
 +
#**Setup your “cloned” chains in the same MIDI channel.
 +
#**Create a MIDI+Audio chain in the same MIDI channel. We call this chain the “GROUP” chain. You don’t need to add any processor, so you can select None from the list.
 +
#**From the GROUP chain options, access “MIDI out” and select your “cloned” chains. This will route MIDI from the GROIUP chain to the cloned chains.
 +
#**Finally, access “Audio Out” submenu on each cloned chain: uncheck the Main Bus and check the “GROUP chain”. With this you are routing audio from your cloned chains to the GROUP chain, so you can control de mixed audio with the GROUP’s fader.
 +
#**Nice, true? I really love this way, but there is a little problem with it. Latency. When you route-back audio from chain’s output to the GROUP chain, you add latency. This is a general rule in digital audio processing: If you feed-back the signal, you add 1-period delay. The MIDI stream is not delayed because there is no real feed-back and it’s processed linearly.
 +
#If you are using MULTI mode for your input device
 +
#*Simply setup your “cloned” chains in the same MIDI channel. That’s all.
 +
 
 +
 
 +
The cool way (B) means that you can select each chain individually and audition its sound or select the group chain to play them all simultaneously / layered. You will have full control of each chain (fader, pan, mono, etc.), be able to insert effects and see each peak meter and also have overall control of the group with the same control and monitoring (fader, pan, mono, etc. DPM, effects).
 +
 
 +
You don’t have to do both audio and MIDI grouping, each works individually and not doing the audio will reduce latency by one period net doing both audio and MIDI is super cool giving an flexible and intuitive interface.
 +
 
 +
 
 +
</blockquote>
 +
 
 +
 
 +
==Midi learning/binding==
 +
There are two modes available for midi learning:
 +
*Chain mode - The first learn mode (green) is for chain mode, i.e. the CC will control the parameter only when the chain is selected.
 +
*Global mode - The second mode (yellow) is for global mode, i.e. the CC will control the parameter all the time. Absolute mode uses the MIDI channel of the hardware controller for its mapping as well as the CC number.
 +
 +
 
 +
==The UI Screens==
 +
==Mixer Screen==
 
[[File:Zynthian oram ui mixer icons.png|right|200px|New icons for chains]]
 
[[File:Zynthian oram ui mixer icons.png|right|200px|New icons for chains]]
 
Some subtle changes to the mixer screen include icons at the bottom of the chain's volume to show the midi channel used and new icons: notes for a midi device and a microphone for audio based chains
 
Some subtle changes to the mixer screen include icons at the bottom of the chain's volume to show the midi channel used and new icons: notes for a midi device and a microphone for audio based chains
 
<br clear=all>
 
<br clear=all>
  
====Midi Options====
+
==Main Menu==
There are some changes to the midi options. Currently the ACTI (Active) mode is used to accept midi input to the currently selected chain. The MULTI (Multitimbral) mode is used to select the individual chains you wish to accept midi from the given device. This can be one chain or multiple. E.g. mimi-d synth can be assigned to accept midi from both a keyboard and sequencer at once. More to come....
 
  
====Improvements to VNC====
+
==Audio Recording and Playback==
Good news for those with headless/barebones setups, there are noticeable improvements to the speed and quality of the VNC connection to Zynthian.
+
Zynthian can record a multitrack audio file with stereo tracks for each record channel. This single multitrack WAV file can then be imported into a DAW which can split the tracks on import.
 +
 
 +
'''Configure Zynthian for multitrack recording:'''
 +
*Add an audio chain for each track you want to record, selecting the appropriate inputs with the “Chain Option” menu (bold SELECT), “Audio In” submenu
 +
*For each chain, enable “Record Chain” by accessing its “Chain Options” menu, “Audio Out” submenu
  
Riban: The fixes were in later versions of VNC libraries that we benefit from by moving to Debian 12 Bookworm. The previous versions were horrible with screen tearing, etc.
+
Any audio recordings will now create a multitrack WAV file. You can also enable “Record Chain” in the main mixbus to also record the main mix within the multitrack WAV file.
  
====Wifi Setup & Accessing Webconf====
 
  
As of writing, it is not possible to set wifi directly in Webconf. It must be set from within the ADMIN > Wi-Fi Config menu.
+
'''A warning on selecting storage destination for recording:'''
  
The password for access (Webconf, VNC UI & Engines) is now: '''opensynth'''
+
MicroSD storage is generally quite slow compared to other options such as external USB storage (whether flash memory, hard disk or solid state drive). Recording directly to the MicroSD can cause problems via bottlenecks in disk writes which in turn can cause issues with overal resouce availability and also because of the risk of filling the internal storage (multitrack recording compounds this problem). It's strongly encouraged to use external USB storage for audio recordings by inserting a USB storage device before starting recording. Running Zynthian from an SSD drive directly (as a Pi 5 can enable, though not supported) is likely to be fast enough to avoid these problems.
  
 
==Webconf Changes==
 
==Webconf Changes==

Latest revision as of 21:26, 26 July 2024

1 Introduction

This is a guide to the x64 Oram testing image version of Zynthian. Based on 64-bit Debian 12 (Bookworm), it will eventually become the new stable version. There are numerous changes to the UI and lots of refactoring under the hood according to the devs. This guide will aim to summarise the important changes or things to note about the testing version from forum discussions. As ever, this guide will be wrong in places or fall out of date so check the forum if the guidance here isn't working for you. Feel free to contribute if you've found something relevant to add here, if you don't have an account, ask in the forum.

2 Getting started

2.1 Compatibility

So far, Raspberry Pi3, Pi4 and Pi5 are compatible. Pi5 has some issues to solve, but it's mostly working OK.

2.2 Installing Oram

The link for the image follows. If you need a guide you can follow along at No Hardware Build Guide and come back to this page to fill in the gaps where there are changes. https://os.zynthian.org/test/2024-03-01-zynthianos-bookworm-aarch64-oram-2403.zip

2.3 Updating the Software

When new updates are available, the green heart is replaced by the green recycle symbol and the update entry is shown (see image below). Please note that the update entry is not shown in the admin menu if no updates are available (aka you are updated to the last).

2.4 Improvements to VNC

Good news for those with headless/barebones setups, there are noticeable improvements to the speed and quality of the VNC connection to Zynthian.

2.5 Wifi Setup & Accessing Webconf

As of writing, it is not possible to set wifi directly in Webconf. It must be set from within the ADMIN > Wi-Fi Config menu.

The password for access (Webconf, VNC UI & Engines) is now: opensynth

3 The Zynthian UI Workflow

4 Chains

4.1 An update on chains (and mixbus) for Oram

A chain may have audio and/or MIDI input. It may have any quantity of MIDI processors, a synth / generator processor and any quantity of audio processors, in that order, e.g. MIDI Input → MIDI Chord processor → Pianoteq → Bollie Delay. (The processors may be in any mix of parallel and series and there is no forced limit to the quantity of processors in the chain except there can only be a maximum of one synth processor.)

If the end of this chain has an audio output, e.g. it is a synth or audio chain then it feeds into a mixer input. The mixer has a channel strip that implements the phase, mono, mute, solo, fader, M/S encoding, etc. The output of this channel strip is by default routed internally (this is called normalisation) to the main mix bus. This is defined by the chain’s audio output configuration, i.e. if “Main Mixbus” is selected then this internal routing is enabled. (See below for an exception.)

Each channel strip has an (stereo) audio output which by default is not routed. This can be routed to other chains and direct physical audio outputs using the chain audio output menu. It is possible to add post-fader effects to a chain. This routes the chains direct output to the post fader effect which is then routed to the targets enabled in the chain’s audio outputs. By default this results in the channel strip’s output being routed to the post-fader effects and the output of those post fader effects being routed to the main mixbus input. The internal normalisation is then disabled.

The main mixbus can also have pre and post fader effects. If it has prefader effects then any chains routed to the main bus will use their direct outputs to feed the main mixbus pre fader effects.

It is a bit complex in implementation and can lead to some unexpected results but it is quite flexible whilst keeping the technical implementation as low-cost as we can. (Lower CPU usage.)

5 Navigation

Zynthian oram add chain.png

The processors are now in categories. There are a few ways to navigate to make your selection:

  • Use the second encoder to switch between categories
  • Swipe left or right to shift categories for touchscreen users
  • On a USB keyboard you can use the arrow keys
  • Or you could try a midi device and assign the UI navigation to buttons you have available See the CUIA page of the user guide for more on this.

Note also a green recycle symbol in the top right corner of the screen to indicate that an update is available to download.

6 Midi Input

There are some changes to the midi options, now there are only two 'modes':

  • ACTI (Active) mode is used to accept midi input to the currently selected chain.
  • MULTI (Multitimbral) mode is used to select the individual chains you wish to accept midi from the given device. This can be one chain or multiple. E.g. mimi-d synth can be assigned to accept midi from both a keyboard and sequencer at once.

6.1 Cloning (Layering) Explained

I would like to explain a little bit how “clone” (aka layering sounds to play unison) works in the new testing version “oram-bookworm”.

First, you may note that the “clone” option does not exist anymore. We have better mechanisms in oram because several chains can use the same MIDI channel.

  1. If you are using ACTI mode for your input device
    • A. THE EASY WAY
      • Enable “Active MIDI chanel” in the admin menu. With this enabled, all chains in the same MIDI channel will receive the MIDI stream from the input when some of them is selected (active).
      • Setup your “cloned” chains in the same MIDI channel.
    • B. THE COOL WAY
      • Disable “Active MIDI chanel” in the admin menu. With this disabled, only the selected (active) chain will receive MIDI from the input, not matter the MIDI channel.
      • Setup your “cloned” chains in the same MIDI channel.
      • Create a MIDI+Audio chain in the same MIDI channel. We call this chain the “GROUP” chain. You don’t need to add any processor, so you can select None from the list.
      • From the GROUP chain options, access “MIDI out” and select your “cloned” chains. This will route MIDI from the GROIUP chain to the cloned chains.
      • Finally, access “Audio Out” submenu on each cloned chain: uncheck the Main Bus and check the “GROUP chain”. With this you are routing audio from your cloned chains to the GROUP chain, so you can control de mixed audio with the GROUP’s fader.
      • Nice, true? I really love this way, but there is a little problem with it. Latency. When you route-back audio from chain’s output to the GROUP chain, you add latency. This is a general rule in digital audio processing: If you feed-back the signal, you add 1-period delay. The MIDI stream is not delayed because there is no real feed-back and it’s processed linearly.
  2. If you are using MULTI mode for your input device
    • Simply setup your “cloned” chains in the same MIDI channel. That’s all.


The cool way (B) means that you can select each chain individually and audition its sound or select the group chain to play them all simultaneously / layered. You will have full control of each chain (fader, pan, mono, etc.), be able to insert effects and see each peak meter and also have overall control of the group with the same control and monitoring (fader, pan, mono, etc. DPM, effects).

You don’t have to do both audio and MIDI grouping, each works individually and not doing the audio will reduce latency by one period net doing both audio and MIDI is super cool giving an flexible and intuitive interface.



7 Midi learning/binding

There are two modes available for midi learning:

  • Chain mode - The first learn mode (green) is for chain mode, i.e. the CC will control the parameter only when the chain is selected.
  • Global mode - The second mode (yellow) is for global mode, i.e. the CC will control the parameter all the time. Absolute mode uses the MIDI channel of the hardware controller for its mapping as well as the CC number.


8 The UI Screens

9 Mixer Screen

New icons for chains

Some subtle changes to the mixer screen include icons at the bottom of the chain's volume to show the midi channel used and new icons: notes for a midi device and a microphone for audio based chains

10 Main Menu

11 Audio Recording and Playback

Zynthian can record a multitrack audio file with stereo tracks for each record channel. This single multitrack WAV file can then be imported into a DAW which can split the tracks on import.

Configure Zynthian for multitrack recording:

  • Add an audio chain for each track you want to record, selecting the appropriate inputs with the “Chain Option” menu (bold SELECT), “Audio In” submenu
  • For each chain, enable “Record Chain” by accessing its “Chain Options” menu, “Audio Out” submenu

Any audio recordings will now create a multitrack WAV file. You can also enable “Record Chain” in the main mixbus to also record the main mix within the multitrack WAV file.


A warning on selecting storage destination for recording:

MicroSD storage is generally quite slow compared to other options such as external USB storage (whether flash memory, hard disk or solid state drive). Recording directly to the MicroSD can cause problems via bottlenecks in disk writes which in turn can cause issues with overal resouce availability and also because of the risk of filling the internal storage (multitrack recording compounds this problem). It's strongly encouraged to use external USB storage for audio recordings by inserting a USB storage device before starting recording. Running Zynthian from an SSD drive directly (as a Pi 5 can enable, though not supported) is likely to be fast enough to avoid these problems.

12 Webconf Changes

12.1 Library

12.1.1 Snapshots

Zynthian oram webconf snapshots.png

Snapshots page now shows the names of individual chains (and effects) saved within the snapshot along with a list of configurations used. Clicking on the 'i' for each chain in the snapshot will show information about the settings of the patch.

12.2 Hardware

12.3 Software

12.3.1 Engines page improved information

Zynthian oram webconf engines.png
  • The engines page now shows descriptions and ratings for quality/complexity for Synth + Effects + Midi Tools + Audio Generator + Special Category. Start editing your own ratings by clicking on the line to expand and use the drop-down menus to set as desired.
  • Adding and removing engines requires only checking the box, no need to save. Engines added in addition to the default set will show as 'toggled'

12.4 Interface

12.5 System