MIDI-2.0 is under construction



…I see bad things arising.
The crowd crown it king; which the elders would ban.
I see blood and destruction,
Our elimination because of one… new standard :rofl:

( https://www.youtube.com/watch?v=lN4TxOd9I8Q&feature=youtu.be&t=151 )

Hello to all Zynthianists,

for those who were following our common work about RTP-MIDI and noticed I became suddenly silent, the reason is very simple… I was extremely busy with something called MIDI 2.0.

Simply said, I belong to the MMA MIDI 2.0 Working Group, but up to now, group members were not allowed to publish anything related to MIDI 2.0.
Now that MIDI 2.0 is officially released (see here https://www.midi.org/articles-old/details-about-midi-2-0-midi-ci-profiles-and-property-exchange, I can explain what I am doing :wink:

In two words, I am currently writing a JACK gateway to make the Zynthian one of the first (if not the first) MIDI 2.0 compatible synthesizers.
Why JACK ? Because JACK is “de facto” compatible with MIDI 2.0 (it has never been intended to be like that in JACK’s coder, but the fact is JACK handles MIDI 2.0 packets without any problems)
Of course, for now, Zynthian’s internal engines are still MIDI 1.0, but one marvel of the open source is that we don’t have to wait until software editors decide to change their products.

I plan to release the MIDI 2.0 gateway before end of March (if everything goes well), but if any Zynthianist wants to start to work on porting some engines to MIDI 2.0 and needs explanation about MIDI 2.0, just ask me :grinning:



I hope Kawai will be the first selling a Midi2 stage piano…take my money already.
With Pianoteq…Hmmmm…

That makes an interesting read, and we seem to be at an interesting crossroads in something I have great love for !

Many zynthian concepts make cleanly in this world. Given we now have conversations not monologues at what level do we talk? Do we establish a zynthian control plane at the MIDI 2.0 level? ( lot’s more Midi channels that are presumably enabled since we are no longer tied to 16 channels.)

https://www.midi.org/articles-old/roland-announces my old A-88 has had a revamp.

Presumably we can put all our error messages and events up on MIDI2.0 channel 5555 and spread great joy around a swamp of zynths :smiley:


There is an important thing to know about MIDI 2.0, called UMP (for Universal MIDI Packet). Technically, MIDI 2.0 can carry MIDI 1.0 in a totally transparent way (I mean, with the exact same data, not even translated. The only change is that MIDI 1.0 in UMP is based on 32 bits packets rather than a byte stream)

So it’s quite easy to implement first something which handles MIDI 1.0 in UMP, then add required functionnalities (if needed) to have a full MIDI 2.0 system (when you switch to MIDI 2.0, all controllers become at least 16 bits, if not 32 bits - depending on the type of CC you need - programs are numbered on 16 bits too, with bank MSB/LSB in the same message, etc…)


Yes it’s certainly worth reading the link you shared.

It looks pretty well considered.
How can we help?

Any news on the MIDI 2.0 front?

Yes, I am actively working on it. I have almost finished a RTP-UMP daemon for the Zynthian, which should be ready in 2 or 3 weeks (the Zynthian may then become the very first synthesizer officially supporting MIDI 2.0 :star_struck:)

However, the biggest problem is that there is currently no software supporting it natively (at least officially). So I am also preparing a software bridge which allows any sequencer (Linux and Windows for now, Mac should come later) to control the Zynthian over MIDI 2.0 protocol.

I hope this will give the impulse to have soon plugins inside the Zynthian which support natively MIDI 2.0 and its expanded capabilities.



Any update on your progress?

Hi Riban,

yes, I am still actively working on it. I am a MIDI Manufacturers Association member and I wrote the first drafts for the new transport protocol (UMP aka MIDI 2.0 will not use RTP-MIDI in any cases). But there are a lot of discussion with other members, so the definitive network protocol layer for UMP is still not 100% defined.
But a few weeks ago, we have reached a consensus across members, and the first prototypes are being coded with the “last” (or at least current) version of the protocol, to be sure we don’t have any traps hidden somewhere which would force some deep change in the protocol at last minute.

Now, to be honest, there is a second difficulty : there is currently no driver on Windows, Mac or Linux to provide MIDI2.0 stream from any sequencer. The solution I found is to write a special driver for Windows and a daemon for Linux which acts as a bridge/translator between existing applications and networked UMP. I will release them soon (they are now in final tests) along with a test tool I call UMP-OX (in “memory” of MIDI-OX :slightly_smiling_face:). UMP-OX will be released as open-source (and I am also evaluating to release the bridge driver also as open-source, at least for the Linux version)

If everything goes like I plan for now, the first beta prototypes should be ready for beginning of September.
Keep an eye here, I will announce here when I will release them


By the way, just to avoid confusion : MIDI 2.0 is a part of a more generic specification, called UMP (for Universal MIDI Packet). UMP includes both MIDI 1.0 and MIDI2.0. You can find all the specifications here : MIDI 2.0 specifications
(And yes, the specifications are public and open… I have read on some forums that MIDI2.0 was proprietary and reserved to MMA members : this is absolutely false, as you can see)

And I just noticed I forgot to show you how the driver bridge prototypes look (for Windows and for Linux Debian)



And here are some news after quite a long time…
Sorry for staying silent so long, but things were a bit hard in the working group defining the Ethernet protocol. To keep long story short, it was quite hard to reach a consensus between all members.
But finally, we see the light at the end of the tunnel :grinning: : an “official” protocol draft now exists (still restricted to MMA members for now, as it is not officially published) and prototyping has started.

The biggest problem is that the protocol draft differs from the first draft I worked on (and I implemented in my driver), so I needed to rewrite completely the protocol stack

I am currently working on a UMP daemon for the Zynthian with the latest protocol version (I needed first to modify the rtpUMP driver running on Windows machine, the one you see on the screenshot). The nice thing is that the driver allows to send MIDI commands from sequencers or MIDI-OX using the UMP protocol, not RTP-MIDI anymore.
If everything goes like I want, I plan to have a working prototype for the Zynthian in a few days (I am in “full coding” mode right now)


Kernel support is coming


And some more informations about this :

  • in parallel with the USB implementation, another protocol is being discussed internally within the MMA, based on Ethernet. The first “public” draft is being written, and we should expect to have an official document for UMP over Ethernet (equivalent to RTP-MIDI for MIDI 2.0) in the coming weeks
  • the UMP daemon for the Zynthian is ready (called jacknetumpd) but I am not yet allowed to publish it (as the MMA has not yet published officially the protocol specification). The source code of this daemon will be public, like what I did for the RTP-MIDI driver
  • there is also a free Windows driver (called rtpUMP). This driver creates virtual MIDI ports on Windows and connect them. For the same reason as before, we are not allowed to make it yet available publicly, but it is ready and will be available as soon as the protocol document is published by the MMA
  • last but not least : tests have been made with JACK and it appeared that it is compatible with the 32-bit messages used by UMP, without needing any change in the JACK core :heart_eyes:. The “only” thing needed now is applications able to read the UMP protocol from JACK (or from kernel driver)



Thank you very much for these promising news :+1:

1 Like

Just seen this video about the first (?) MIDI 2.0 master keyboard: https://youtu.be/n9S5ML0J9lM?feature=shared


The Keystage only have USB implementation of MIDI2.0 (as this is the only existing “official” transport layer). The Ethernet and Serial transport layers are still being discussed within the MMA (I cross my fingers as the Ethernet specification is really near of being officially released, I hope it will be in 2023…)

The problem is that USB MIDI driver 2.0 only exists on Mac OS (it does not yet exist on iOS, as far as I know). It does not exist yet on Windows, nor Linux (even if Microsoft and ALSA have announced things). And as far as I know, the few software running on MacOS able to deal with the new API only provide MIDI 1.0 data encapsulated into UMP (Universal MIDI Protocol), they don’t yet provide access to the MIDI 2.0 part of the protocol with the higher resolution for example.

I am convinced that the Open Source community has a strong part to play in the adoption of MIDI 2.0, but due to licensing issues with USB, things will probably start to move only when “open” protocols (Ethernet and Serial) specifications will be released by the MMA.