Route MIDI via USB [SOLVED!]

I’m trying to get the MIDI routing to send all notes sent by a device (keyboard, emitting only on Channel 1) to be fed back to another device (hardware sequencer, listens on every channel). Is there a setting for this kind of routing? I can copy everything sent on Channel 1 to another channel, but I can’t say that MIDI data on some channels should be sent via USB to some device.

We can only chain MIDI through the DIN OUT and THRU, not the USB midi. If your sequencer can use the DIN

Really? Because after finding the option in webconf this issue was pointing to, I have been able to route all MIDI to my USB-connected sequencer.

Although this is not quite what I want (the sequencer is sent back any note it sends, which makes a mess…). Is there a way (possibly via a script that starts when the Zynthian boots) to route the keyboard device to the sequencer but NOT not the layers. The patching should be:

MIDI-USB keyboard --> MIDI-USB sequencer --> Zynthian Layers

but the keyboard should not trigger any sound on its own. The sequencer will re-send anyway any input it receives from the keyboard (and possibly on a different channel, since keyboard always emits on channel 1).

(I need this kind of patching because my sequencer doesn’t have a USB host port…)


This is not correct, @Baggypants. You can route to any MIDI-USB output port using the webconf tool:


1 Like

Have your tried this:

  • If enabled, disable the “Single Channel Mode” on Zynthian Admin menu
  • If keyboard uses MIDI channel 1, don’t set any layer on MIDI channel 1. Leave it empty.
  • On the sequencer, don’t use MIDI channel 1 for the output …

OK … i’m sure you already catched the concept … :wink:


Yes I did all that. But that doesn’t solve my problem. Maybe I misunderstood you, but my problem is not with the sequencer, it’s with routing the midi data from the keyboard to the sequencer. I can either route all MIDI data received by the layers (all channels, which means the seq will receive back everything it sent on channels 2-16, not just what the keyboard sent on channel 1) or none at all, whereas I would like to route only data from my keyboard, or (as a workaround) only data from channel 1.

OK! Understand … let me think about it … :wink:

The need to visualize routing, both audio & MIDI, is becoming pressing.

Hi @YPares!

I’ve implemented a flag for enable/disable routing from MIDI filter output to MIDI output ports:

If you disable the flag and create a MIDI layer on channel 1 with a simple midi-thru, it should do the task.

Update and test …


Hello ! Yes it worked, although I also had to select the output of the Midi channel 1 in zynth UI.

1 Like

Sis you create a MIDI FX layer on channel 1 and MIDI-OUT was not selected by default on MIDI routing? I will take a look …

OK! It’s fixed. Now, when creating a new MIDI-FX layer, MIDI-OUT will be selected by default.


Thanks a lot :slight_smile:

I do have a small comment: creating these “phantom” layers can become a bit taxing if you want to run several instruments (which is possible given the power of the latest Raspberry Pi).
For instance in my setup I have this layer on channel one which is just for routing MIDI, and one on another channel for audio input (I have to create an audio-fx so the mono audio input can be routed and mixed with the system’s output). The latter is also tied to a midi channel, however it doesn’t need to handle any MIDI data. And I plan to record another mono instrument, which’d mean another MIDI channel “eaten”.
Would it be possible in the future to create layers which aren’t tied to MIDI channels for these routing purposes (at least for the second one, which is purely for audio routing)?

It’s on the list, @YPares, and it will be improved, but … come on!!! You still have 13 free channels for MIDI synthesizers!! This is a lot more than most of people will ever use, my friend!! And your case is quite “interesting”!! You are using the zynthian for:

  • 1 layer => Routing MIDI from your keyboard to your sequencer
  • 1 layer => Synthesizer (you could have 13 of this!!!)
  • 1 layer => Audio input & mixing


  • the current architecture must be improved so “pure” audio layers don’t take a MIDI channel, etc.
  • this doesn’t supose a serious limitation for most of use-cases (>99%), so improving this is not a priority :wink:


Oh yeah :slight_smile: I wasn’t nitpicking, just asking.

So to be clear, I’m not saying “I WANNA RUN 50 INSTRUMENTS AT THE SAME TIME” :wink:
The reason is workflow, as it’s convenient sometimes not to stick to the “1 channel = 1 instrument”. Eg. I sometimes use two MIDI channels for the same instrument but with different sets of effect plugins. These two instruments won’t be played at the same time, I just sometimes send notes to the first channel and sometimes to the second. I could get the same effect with presets/program changes I suppose but when I need just two sets of effects this is much simpler.

There are also some sequencing tricks that I like to do, like CV-style separated notes and gates: notes are output on one channel and gates on another, so I can change the rhythm without changing the notes (or the reverse) on the seq. For now I do the patching with an axoloti, but I’d like to be able to limit the amount of gear I need, and hack around an LV2 plugin to do that if that doesn’t exist.

1 Like

I tend to start assigning audio layers from about 5, somewhere above the quantity of synths I am likely to want. I tend to stick to convention and use channel 10 for percussion which breaks up the contiguous audio channels but mostly works.

Will someone (who understands this) please add details of the new “MIDI Filter Output” admin option to the wiki?

1 Like