PD layers + routing audio and data between layers in Zynthian OS?

hi folks! a few questions on Zynthian OS if you don’t mind. i would be using this with PureData and i know there’s a PD layer available. i would imagine that external objects/libraries are supported as long as they can be compiled for 32 bit ARM? my setup is mostly vanilla but i do have a few libraries i’m using with external objects.

currently my instrument setup consists of a couple of instances of Fluidsynth running as external object in PD, but i know that it’s possible to create layers with Fluidsynth LV2 plugins in them. so this makes me wonder if you could route data between layers (MIDI data is fine, but OSC data routing would also be needed via ethernet). can incoming OSC and MIDI data be routed to specific layers as well? essentially i’d want the PD layer to be the only receiving layer for external MIDI or OSC data outside of the Zynthian, but be able to control parameters on other layers from the PD layer patch. the Zynthian wiki on PD seems to indicate that OSC support on a PD layer isn’t implemented yet, but could be.

but i am a bit curious - as far as audio signal routing is concerned, can a PD layer take a audio input signal from several specific layers, or does Zynthian OS basically handle all of that? like does the input to PD show up like an interface where layer 1 and layer 2 Fluidsynths can come in as inputs on a virtual multichannel device?

any assistance welcome but definitely feedback from anyone who’s used PD in Zynthian especially would be very helpful. thanks!


1 Like

Hi @metaphysician!

I don’t see any problem on adding your own custom libraries.

Currently there is no routing of OSC on zynthian. Current OSC implementation includes:

  • TouchOSC, that converts incoming OSC to MIDI, that is routed normally, like any other MIDI source.

  • CUIA OSC interface, that allows to call a bunch of UI actions:

This is the current documentation about the OSC interfaces:


The list of avilable CUIA is here:



1 Like

thanks very much @jofemodo! very helpful. from what you’re saying this is OSC control of Zynthian parameters. so this means OSC support is enabled at least to an extent.

although control of the Zynthian itself would be nice, i was thinking if a particular layer (i.e. the PD layer) could accept OSC messages from outside - effectively device to device, without really involving control of the ZynthianOS itself that would be fine. like a blackbox where PD knows it’s on a device with a particular IP and TCP/UDP port and just receives and sends messages over the ethernet.

based on what you’re saying it seems like the functionality is built in because networking is built in to Linux - you don’t need a special OSC daemon or driver, though of course you do have to parse the messages and format them. but my setup is already configured to send and receive those messages. so it seems the only real issue would be to open the ports if they are closed.

is my reasoning correct here?

Of course, you can setup your PD patch for listening/sending OSC on the port you want. Zynthian has no firewall by default …

1 Like

excellent! that’s what i was hoping - thanks!


1 Like