[linux-audio-dev] Re: Language fanboys [was Re: light C++ set for WAV]

lazzaro lazzaro at eecs.berkeley.edu
Mon Jul 24 20:43:06 UTC 2006

On Jul 24, 2006, at 7:43 AM,  Forest Bond  
<forest at alittletooquiet.net> wrote:

> I assume that RTP MIDI could be wrapped in a nice library that  
> makes working
> with it a lot more pleasant?  Couldn't someone implement a protocol  
> over RTP
> MIDI sysex/NRPN/something that feels something like OSC at the code  
> level?  Or
> would that just not be very useful?

My suggestion would be ...

If you're creating a system where you are sending OSC and receiving
OSC, just use OSC.  To handle loss and reordering, use the suggestions
people have made during this thread -- resilient data encoding, or  
level retransmission, or engineering an essentially loss-free  
network, or
some combination of the three.

The question that brought me into the discussion originally was, if you
in fact have a MIDI device, like one you bought in a store, and you
want to send its data stream over a lossy network (say, Wi-Fi or the
public Internet) what to do?  In this case, I think having RTP MIDI  
into your environment at some level makes sense.  The question is, how?

One way to go is to model Apple -- Tiger added networked MIDI cables
to CoreMIDI, so that applications use the standard CoreMIDI API
and see both direct-connect MIDI cables (via USB, Firewire, etc)
and networked MIDI cables as the same thing.  See:


for a description of how it works in OS X Tiger.  For Linux, I assume
this means building virtual MIDI cables into ALSA.

Another option is to use a middle-ware package that has already
implemented virtual MIDI cables over networks, like MIDIShare.
Perhaps Dominique Fober or one of his collaborators can chime
in with more details.

John Lazzaro
lazzaro [at] cs [dot] berkeley [dot] edu

More information about the Linux-audio-dev mailing list