Following with this development, I’ve implemented a new approach and i’m so satisfied that i’ve pushed it to testing so it can be tested by the community. You will enjoy! Here we go!!
First of all, global Stage/Multi-timbral mode is dead!!
I will repeat it:
GLOBAL STAGE/MULTI-TIMBRAL MODE IS DEAD!
The new approach is MIDI CAPTURE DEVICES and ACTI / OMNI / MULTI modes.
-
Each MIDI capture device can be checked/unchecked for each chain (chain options => MIDI capture)
-
Each MIDI capture device can be in any of this 4 modes:
- ACTI => Active Channel. MIDI events are translated to the active (currently selected!) chain, if routed. Zynthian behaves as Stage Mode for this device. It’s the default/initial mode for all devices.
- OMNI => MIDI events are translated to routed chains, “cloning” the events to each routed chain. So you can have a given device assigned to one or more chains and it works not matter what MIDI channel is using the device or the chains. You can play several chains unison with this, etc.
- MULTI => MIDI events are not translated at all. They reach routed chains that match the event’s MIDI channel. Zynthian behaves as Multi-Timbral Mode for this input device and the assigned chains.
- Captured by the device manager (UI) (aka. used by a device driver to control some part of the UI, like the zynpad or mixer). It can’t be routed to chains and it’s shown grayed.
The first 3 modes can be rotated by bold-clicking. When a device is captured by the device manager, rotating modes and checking/unchecking is disabled.
Mode is global for a given device. I mean, it can’t be configured as OMNI for chain 1 and as MULTI for chain 4.
Of course, everything is saved in snapshots and also in ZS3s, so you can change your MIDI capture configuration with a tap!
I must say i’m very proud of this change, as it solve a lot of limitations, allowing zynthian to match a lot of new and complex use cases in a straightforward way.
I’m thinking of removing “Clone MIDI to” option, but it could be still useful under some scenarios. What do you think?
As i told you, all this is only available in testing branch, so if you want to test it, simply change to testing branch and update.
Enjoy!