Zynthian OSC CUIA over Open Stage Control - template

Hi all zynthianist,

I started learning the make template for Open Stage Control which sending OSC messageses.
I don’t know if I will be able to make a template for SooperLooper on Zynthian, but the first attempts are here in the form of basic CUIA commands.
Maybe this template will help those like me who have a encoderless Zynthian.

zynthianCUIA.json (110.8 KB)
P.S.: These three commands are missing from the template


Fantastic ! Thanks a lot @ToFF .

I’ve discovered OSC and its creator last year. But I haven’t tried it yet, it was a bit complicated for me.

For me too, i’m familiar with python simple scripting and html/css code, it’s all.

Jean help me when I was trying his loop192 looper. I had some issue convert midi signal to correct osc commands.

I wonder how many zynthianist use open stage control and OSC?

I have new version of template with Zynthian OSC CUIA. I was learning how to script for Open Stage Control, and I regretted not including the three missing commands. So here is the result.

zynthianCUIA_v2.json (120.2 KB)

I have prepared a template for the mixer as well, but currently the registration of the address from which the call came does not work in the test version.
I created a bug report about this

Before creating the masterpiece, i.e. the Superlooper template, I am now warming up on the template controlling the routing of controllers and synthesizers via BomeBox.

Stay tuned


Hallo to all zynthianist,

I prepared OSC template for zynthian mixer. Here is results:
mixer_zynthian.zip (3.6 KB)

  • download and unpack to selected place
  • in file mixer.js change adress on your zynthian - edit var zyn_host = '192.XXX.YYY.ZZZ'
  • run Open stage control server
  • i using this start command:
node ~/ProductionMusic/open-stage-control-1.17.0-node 
-s 192.XXX.YYY.ZZZ:1370
-l /home/patch/ProductionMusic/Zynthian_Mixer/mixer_zynthian.json
-c /home/patch/ProductionMusic/Zynthian_Mixer/mixer.js`
--osc-port 1370

where -s is zynthian address, -l path to file with tempate for mixer mixer_zynthian.json, which automatically will be open in browserr, -c path to custom module mixer.js, which starting listening of zynthian, and most important is --osc-port 1370 setting osc server to listening of zynthian.

or lunch application

There is sumarized OSC Commands for this template:

  • Numbering of chains are X (0…15) or 256 for main chain
  • /mixer/faderX float - Chain X fader level [0.0…1.0]
  • /mixer/balanceX float - Chain X balance value [-1.0…1.0]
  • /mixer/muteX integer - Chain X mute [0|1]
  • /mixer/soloX integer - Chain X solo [0|1]
  • /mixer/monoX integer - Chain X mono/stereo [0|1]
  • /mixer/dpmXa float - Chain X peak programme level A-leg (left) - Notification-only - display values in range [-60, 0]
  • /mixer/dpmXb float - Chain X peak programme level B-leg (right) - Notification-only - display values in range [-60, 0]
  • /mixer/dpmA float - Main peak programme level A-leg (left) - Notification-only - display values in range [-60, 0]
  • /mixer/dpmB, float- Main peak programme level B-leg (right) - Notification-only - display values in range [-60, 0]
  • /mixer/heartbeat - Null message used to keep client registration active *Send every 60s to receive notifications

The strips are numbered based on the chain’s MIDI channel. (This caught me out because I didn’t have MIDI channels 1 or 2 populated so had to adjust the third strip to change the first displayed strip.

Yes, the numbers of strips are fixed from 0 to 15 (and shows as 1 to 16), main strip has number 256.

I can imagine extending OSC with the commands:

  • whether a specific chain exists - for non-existent ones, the display would be suppressed
  • chain selection, turning it on in omni mode of zynthian as is working on stage version of mixer

This would be a good enhancement but I suggest waiting until we refactor the base code so that chains are not (necessarily) linked with MIDI channels.

I have now run this on a machine that can get the feedback and see some distortion of meters. I don’t know if it is intentional but a blue line at the top (peak hold?) wiggles and top of the green bars have a similar effect.

I haven’t been able to display the current volume value using a bar(or level) in OSC yet. A graph is used that gradually plots values over time and moves. By narrowing it, I give the impression that it is a bar, but in reality it is not. If I come across a better display I will make improvements. Or someone more experienced in Open Stage Control could advise.

I managed to find a few examples of how to make a bar view that uses a fader widget. So here is a version that is already comparable to the original Zynthian mixer UI. Please change mixer_zynthian.json file to the new:
mixer_zynthian.json (47.0 KB)


That looks much better - well done! Your next challenge is to show different coloured bars, e.g.

  • under -18dB = green
  • -18dB … -10dB = orange/yellow
  • over -10dB = red

challenge accepted :slight_smile:

1 Like

Challenge completed. Now bars change collor.

Last version of Mixer tempalte I loaded on GitHub - GitHub - ToFFmashines/Zynthian-OSC: Tempate for Open Stage Control with controll of Zynthian synt

Templates are available for CUIA, Mixer and joint Mixer+CUIA.

Download and edit as you like.


Can the Open Stage Control server run alongside Zynthian on the same Raspberry Pi 4?

Theoreticaly yes, but I didn’t tried it. I have its on my do list. In the first you must install node and make some script for start of OSC, maybe best will be daemon service.