Distributing MIDI over IP with zynthian


I suspect for most people one zynthian is enough for the moment, and there are a lot of clever people concentrating on the aspects of what that one machine can do.

If I have a skill, it is that I look at how far successful things can develop before they hit the next problem. Failure is easy to manage. Success simply throws up a succession of problems that all reveal themselves as the best parts of a system hit their limits, and then you have to work out how to surpass those limits.

I have been considering two or more zynth’s as a natural state for a while now, with the ability for it to provide a control layer that allows performances on multiple devices to be aggregated centrally for midi recording.

In the process of investigating that simple requirement I have looked a lot at how easy that sort of thing is to set up for people who just do music and generally fear or loath technology, regarding their own mechanical instruments as far more reliable than those pesky computer things.

Well congratulations

I have watched such people use the zynthian and most of the results are pretty positive They get it. They can use it. They don’t care; it just works.
They play two or three hour rehearsals without issue, caring not at all that the zynth that their MIDI keyboard is plugged into is not the same one that is connected to the speakers they are hearing their notes from.

Once you have that degree of disconnect established then you have something very valuable.
Now setting all this up especially in the world of aj2mid was a right nightmare. It works in my room but I can’t take it out on the road yet.
Surprisingly flute players who play keyboards don’t have any great affection for qmidictl and PuTTY is not something they will use under any circumstances. So somebody used to set up all of this before hand and just hope that it didn’t fail I have tested it from the perspective of ruggedness. And good musical ears have not heard anything in the performances that lead them to doubt it.

It works.

But it needs reliable visual confirmation and repeatable and reliable set up. So that the display is a confirmation for disinterested players not a road map for investigation.

Now other use cases will occur to other people and the ability to extend control outside of the one box will be, hopefully, used and abused by other people, who are probably a lot more technical that both my technophobic musical friends and myself ( my git inadequacies are up there for all to see ). And that’s great but you don’t win musical allies with technical complexity.
They want simple and that is what I am trying to describe.

I don’t know what plans are held for these devices. Perhaps multiple zynthians is an anathema to the vision, and my attempts are just undermining something. I hope not because I think there is real value here.

Many more units would exist if this value was developed.

Apologies if this all just sounds like injured misplaced pride.


OK! QMidiNet is official right now. I’ve integrated your changes, @wyleu, but simplifying things a little bit by now:

  • Only 1 QmidiNet port is created by default. You can create more by tweaking the systemd script, but the first port is the only one that will be connected by zynthian autoconnector.
  • Webconf MIDI ports popup will show the new QmidiNet ports: 1 input, 1 output
  • Autoconnector will connect automatically engines to QmidiNet. When the Qmidinet outport is enabled (webconf), the MIDI router output will be forwarded to it.



QmidiNet testing:

  • I’ve tested QmidiNet MIDI-IN and it works perfectly. No perceptible latency. Really fine!!
  • I can’t get working the QmidiNet MIDI-OUT. I don’t know if the problem is in the Zynthian’s side or if it’s in the other side. Some tip with this, @wyleu? :wink:



Very much approve of the 1 QmidiNet port.
An open pool rather than independent channels.
Everything routed by MIDI channel :smiley:

Makes everything simple.

Kiss Kiss.

I’ve had MIDI out working.
I used two zynthians.

MIDI keyboard on USB plugged into zynth. Play’s locally fine (audio Injector zero )
Routed zynthian out to Qmidinet channel 2 in using qjackctl. Playing breathy bassoon

On the other zynthian ( hifiberry amp + ) selected qmidinet channel two output into zynthian input. (GM piano)

Pressed key on Nord keyboard, heard Piano AND Bassoon. (Only errors I heard in performance were the one’s I put in)

I am at home tomorrow I will try with the new merge.


Does this mean we don’t actually need the Network ID’s ?
Simply enabling MIDI network turn’s on the one channel pool.
How do we stop midi feedback loops?


No. We don’t need it :wink:

I’m working on it :wink:
By now, keep in mind that Network input will be forwarded to Network output



All seems ok here, once I’ve mapped the zynth in and out into qmidinet’s outs’ and ins and made sure qmidinet is running.
Not sure that the systemd component is waiting for the right things. on the initial startup.

In fact it players layerless !
You can remove all the layers from the keyboard zynth and you get to play on another zynthian.

image Whilst being given a bit of fairly heavy usage by son who happens to be passing and plays a lot better than I do.
You would expect this but it’s nice to confirm it.

Jack generating lot’s of xrun’s all of a sudden. rebooting.


Do you like it? It’s a nice “feature” :sunglasses:


[quote=“wyleu, post:47, topic:1412”]
Whilst being given a bit of fairly heavy usage by son…[/quote]
You only see 2% cpu for the jackd process?
I am over 50%
Is mine not normal?


I was running with no layer defined.
The piano was being played on a remote zynth!

This is something to do with any old pi 2 that isn’t doing much . . .


I made update_zynthian, but I had to install manually qt5-default to build qmidinet. It works now.

Same experiences here.


I can’t get working the QmidiNet MIDI-OUT.

How is your test hardware configured.?

qjackctl seems to have several new sources and destinations. . . .

zyncoder: master (3e47ce0)
zynthian-ui: master (bae73f4)
zynthian-sys: master (1e87b96)
zynthian-data: master (80a6459)
zynthian-webconf: master (5b70cee)

If I try to make a connection from Zyncoder output to QmidiNet IN 1 it drops it from the gui after a second or so.

Same behaviour at receiver end.


Yes. This was added to the Omega upgrade after the official publication, so if you upgraded before your system lost this “package installation”. Zynthian upgrading system is far from perfect :disappointed_relieved:
In that case, i strongly recommend to get the last SD image Omega.



Hi @wyleu!

This is a feature :wink:
You have to enabled the output port from the webconf and save the MIDI profile.



Second machine came up beautifully.

Started up with no layers.

and the MIDI 1 transmitting Akai keyboard on zynthian-amp2.local
played the MIDI 1 layer on zynthian-amp.local

Very nice.

Three machines, however, get into a gravelly row.


“gravelly row” ??? I don’t know the meaning of this expression. Could you enlighten me? :wink:


a sound being constantly re-triggered by it’s own MIDI data coming back at itself…
MIDI Feedback.

Was silent on start up but then, gravelly row, when one key pressed…

Granular might have been a better description!


Jeje! Could you send an audio recording of this phenomenon? :grin:


The three zynth orchestra. This was recorded off zynthian-amp.local (Green, Roland 88 note kbd)

All keyboards generate the effect.
shutting Down one remote zynth doesn’t fix it.
But both remotes off allow the remaining zynth to return to normal.


Just to confirm I can get MIDI data from qmidinet remotely. This is only against One zynth on the network


I’m not sure what norbim & jofemodo meant by ‘I can’t get working the QmidiNet MIDI-OUT.’