Midi thru plugin configuration questions and issues

Well, after a whole afternoon of frustration I’ll throw the question here because I can’t figure out with the wiki and what i found in the forum

The situation:

  • A studio rig that has multiple instruments in multiple midi channels

The problem:

  • Midi echo from the zynthian replaying every incoming midi message for every channel

The solution I’m trying to get to work:

  • Disable “Route midi to output ports” (I disable it because I understand this is routing all midi input to all midi output ports)
  • Then use the layer on channel 5 that I actually want to send out and add the “midi thru” effect. This has the intent of only sending through the midi out this messages.

Buuut It does not work, and for the life of me I can’t figure it out. It’s either the setting disabling midi output completely (which would not make much sense if you asked me),
or the midi thru plugin not working.

I can see the messages on the ZynMidiRouter Midi-OUT, but there is no tty:midi-out port to listen to in the midi log page, and the receiving end does not see any messages either (tried multiple devices and everything) So yeah, I’m stuck

also the midi thru plugin in the description says

MIDI Thru MIDI All pass. This plugin has no effect and is intended as example.

Soooo maybe that’s it? I thought it was a midi channel soft thru (midi channel in for layer → midi out ports)

1 Like

Are you on testing or stable? Try with latest testing (update) and select the new zynmaster:midi_out on the MIDI log selector.


I updated to testing and the same stays true, unless the setting is enabled no midi out in tty even with the thru effect.

Also still there is no tty-midi-out

Hi @Pastitas!

I can’t reproduce your issue. It works fine on my zynthian with testing branch updated to the last.
Did you try selecting the “ZynMaster:midi_out” on the webconf’s midi log? It’s been added recently. You should see the layer’s MIDI output there.


I’ll test this today later, but just to make sure, what is the intended behavior of the midi thru plugin, and what exactly does the “Route midi to output ports” admin menu option do?

This is, more or less, the current scheme of Zynthian MIDI routing:

The dotted connections from ZynMidiRouter are controlled by the “Router midi to output” flag on admin menu. You can see that as a kind of “Global Soft-MIDI-Thru”.

Disabling the flag and putting a “MIDI-Thru” on a MIDI-FX layer, will create a “layer MIDI-thru”. When “Stage mode” is enabled and the MIDI-Thru" layer is active. all MIDI input will be routed thru this layer.
If “Multi-timbral” mode is enabled, only the layer’s channel messages will be routed.

Regarding the scheme, there are some areas to improve, specially:

  • per-device input routing should be implemented. We need a dedicated input port per device.
  • per-device output routing should be implemented. This is almost done at the low-level but not at UI level.
  • ctrl-in is not being used. It should replace/complement the “Master Channel” feature.
  • ctrl-out is only used for CC feedback.

Of course, this scheme should be added to the wiki, somewhere, perhaps a new dedicated section for “MIDI routing”.


1 Like

Okay, did some tests and still cannot get this to work as intended.


Have a layer 1, channel 1 midi thru that plays the dexed instance and outputs midi channel 1 input to midi out (to all ports defined as midi out)


Nektar-se49 keboard —USB MIDI—> Zynthian
Squarp Pyramid <—USB MIDI----> Zynthian


  1. Squarp piramid is set as a midi out along with tty_midi_out.
  2. There is an instance of Dexed on layer 1
  3. Added a midi thru effect


  • Sometimes a couple of midi messages make it through (2 or 3 note on/off) but they don’t seem to go through in general.
  • There are midi in messages from the pyramid.
  • There are midi in messages from the keyboard
  • ZynMIdiRouter_out has the output expected.
  • When “Route MIDI to Output Ports:” is enabled, everything works, but all channels are sent to the midi out wich is not ideal

So from this experiments It seems that (at least for me) the thru midi plugin is not working as intended.
I’m using testing branches for everything, default settings for the rest.

On a synth layer, MIDI FX are chained before the synth, and a synth engine doesn’t output MIDI, only audio. So adding a MIDI-thru FX to the dexed layer does nothing. We could add easily a per-layer MIDI-thru flag if there is a use-case.


Could this use-case be implemented by cloning the MIDI between MIDI FX layer and Synth layer?

1 Like

Yes. It can be done with clone:

  • Layer #1: MIDI-thru
  • Layer #2: dexed
  • Clone #1 to #2


I’ll try that setup, it seems that it might be the solution i need, thanks!

edit: After a quick test it seems the solution with the midi clone does not work, it’s the same result, output works only when the flag in the option menu is enabled and then all channels in are sent out

Can you guys confirm if this setup works for you?

Hi Pastitas,
it seems I have exactly the same problem as you.
I am fighting with it since this morning, and I am simply unable to find the path MIDI is using inside the Zynthian to make this “THRU”

Do you confirm that you also have all your synths in the Zynthian reacting to all MIDI channels ?
In my case, synth on layer 1 reacts to MIDI on channel 1 and 2, and synth on layer 2 reacts also to MIDI on channel 1 and 2


Hi Pastitas,

just after sending my previous message, I found the cause of my problem and it may help you.

Can you check if your Zynthian is in “stage mode” or “multi-timbral mode” on the Admin page ?
After switching back to “multi-timbral mode”, the MIDI merging I was facing disappeared and I am able now to play multiple MIDI channels with different engines


1 Like

I tested this setup yesterday and it work perfectly.