On Jul 24, 2006, at 7:43 AM, Forest Bond
<forest(a)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
application
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
built
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:
http://www.soundonsound.com/sos/jul05/articles/tiger.htm#3
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
http://www.cs.berkeley.edu/~lazzaro
lazzaro [at] cs [dot] berkeley [dot] edu
---