Sign up ×
Music: Practice & Theory Stack Exchange is a question and answer site for musicians, students, and enthusiasts. It's 100% free, no registration required.

I have been spoiled by the ease with which I can connect my iPad up to MIDI applications on my Macbook using the native support for midi-over-the-network provided by the CoreMIDI subsystem in both OS X and iOS.

Is there a compatible Linux implementation? I have found some tantalizing references out there that indicate there may be one, but I haven't been able to find any concrete information.

share|improve this question
I think this is on-topic but you are probably more likely to get a (better) answer at AskUbuntu or Unix&Linux. –  Matthew Read Jan 7 '12 at 19:07
I think you're probably right, but I figured it was worth a shot. –  larsks Jan 8 '12 at 1:45
What do you exactly mean by Linux implementation? Do you want to connect your iPad to a Linux machine? Have a look at All proper production music software on Linux goes with JACK. It supports CoreMidi somehow, so maybe it works. –  Turion Apr 4 '12 at 10:00
By "Linux implementation" I mean "Linux software that speaks the CoreMIDI protocol". JACK does not implement CoreMIDI; it support CoreMIDI connectivity when running on OS X. –  larsks Apr 4 '12 at 10:47
Also see this related question:… –  Pierz Jan 21 at 15:55

6 Answers 6

up vote 3 down vote accepted

There is no such thing as a "CoreMIDI network" protocol per se. Apple chose to implement the RTP MIDI standard for MIDI network communication in OS X and iOS, but replaced the somewhat complicated part of the protocol which deals with session discovery and initiation with its own protocol based on Bonjour.

Unfortunately, there is no RTP MIDI implementation for Linux that I know of, which is compatible with Apple's implementation of the protocol. There is a reference implementation by the creators of the standard at UC Berkeley, but it's not a ready-to-use library and it wouldn't interoperate with Apple's version anyway.

There is an implementation for Windows called rtpMIDI, already mentioned in another answer, but it's not free software and so unlikely to be ported to Linux. There is also a Java implementation for Android, called nmj Network MIDI, which is, AFAICS, also only released in binary form under a CC-by-nc-nd license. Both claim to be compatible with devices which use Apple's RTP MIDI implementation.

If you are looking for cross-platform MIDI network communication, I would suggest you look into JACK. Besides audio, JACK also routes MIDI between clients and a JACK server can use another JACK server as a backend over the network instead of an audio/MIDI interface. There are now JACK distributions for Mac OS X and Windows as well and they integrate well with CoreAudio/MIDI resp. ASIO/MMS on these platforms.

Another new contender in the field is CopperLan, which looks very promising, and extends the ability for MIDI network communication (and more) to embedded devices and has lot of other features to offer. It remains to be seen how this will catch on.

share|improve this answer

RoseGarden could contain something that you might be looking for.

If you can find something within this mostly-notation software, please try it. Otherwise qsynth is, to the extent of my knowledge, a synth but not exactly what you may be looking for.

I'm limited in experience with midi that works. Feedback TOTALLY welcome.


share|improve this answer

RtMidi should be able to bridge a jack on Linux to CoreMIDI on OSX. rtpMIDI supports Windows and iOS. Between the two you might be able to get something working. If you do, please do post back, I do my audio connectivity via headphone jacks at the moment.

share|improve this answer
Hi ダルセン テイス. Thanks for the link. It doesn't seem to mention iOS though, nor CoreMIDI on Linux. Are you sure that can help with iPad<->Linux? –  naught101 Sep 17 '12 at 11:56
RtMidi is only a cross-platform library for interfacing with the low-level MIDI frameworks on Linux (ALSA, JACK), Mac OS X (CoreMIDI, JACK) and Windows (MMS, Windows Kernel Streaming). Support for MIDI network communication depends entirely on the low-level MIDI framework of each OS. I.e. with RtMidi on Linux, neither the ALSA or JACK backend has any support for talking RTP MIDI (see my other answer) to OS X/iOS devices. Whereas on OS X, with the CoreMIDI backend, you can of course use a network MIDI session and open it from RtMidi like any other (hardware) MIDI interface. –  Chris Arndt Sep 17 '12 at 18:54

RTP-MIDI support in Linux has been reactivated in February 2013 (I have seen a demo on a Raspberry Pi somewhere on the web made by a guy from KissBox who is also making RTP-MIDI embedded devices) I think there will be a Linux driver quite soon this year, fully compatible with Apple and rtpMIDI implementation. And no problem to use RTP-MIDI in Linux open source world, since it's completely open and free (not like some other protocols which require licensing...)

share|improve this answer

This appears to be a bit tricky. I would like to use existing iPad sequencing apps to control MIDI synths wirelessly w/o having to have a laptop in the mix to do the translation. A Raspberry PI solution would be ideal. The Kiss-Box would do it but it appears to be over 400 Euros. I've already got a Missing Link which is great but it's not COREMIDI, it uses OSC and only works with control surface programs. For now I'm probably going to stick with a wired MIDI, but that sucks...

share|improve this answer

In order to make host that can talk to RT-MIDI devices (devices cannot initiate a session), you need to have knowledge of the Apple session process. While RTP-MIDI is a open standard, Apple modified it. The specification is not available. This is like most things the fruit company does to take open standards people worked on very hard, create their own -closed - anti innovation- proprietary - implementation by changing a few bytes. For Linux, just give up. Under Windows there is an RTP-MIDI bridge and I found it unstable, sometimes the MIDI port does not show up or it does not connect. Success !!

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.