The Old Crow just gave me one of those "why didn't I think of that!" moments!
Now we're getting into something dangerously close to my "day job" so I may babble a
bit; you have been warned...
None of the MIDI guys understood anything about networking in the very early 80s.
After all, they were a bunch of analog engineers who had just discovered
microprocessors a few years back;) [OK, I'm generalizing.]
MIDI over IP is a cool idea but I wouldn't use TCP. I don't think you could get a
good TCP implementation small enough yet to make it cost effective. TCP has all the
reliability and retransmission stuff so it is where the complexity lives. Besides
retransmission isn't really what you want. You want to detect corrupt messages but
you don't want to wait for the retransmission of that "note on" message. Most of
the "realtime" protocols such as video and voice tend to work best directly over IP
or over UDP (User Datagram Protocol).
Just encapsulating MIDI messages over IP would add 20 bytes of IP header plus the
MAC layer stuff (14 bytes for Ethernet plus the preamble off the top of my head).
This is quite a bit of overhead for a 2 byte message but livable at 10Mbps or
100Mbps. You would probably want to add a few more header bytes to increase the
number of channels (call it a virtual MIDI port or something similar). Ethernet
CRCs would detect errors and so would the IP checksum so that would get rid of
corrupted packets. You can still have stuck note problems of today's MIDI but you
wouldn't have the wrong messages going through.
The biggest code piece would be the Ethernet driver. The IP encapsulation of the
MIDI data would be trivial. There might be a tad bit more latency but less than
there was with some traditional MIDI implementations.
A single LAN connecting all of your MIDI devices...It would be the end of the
computer MIDI interface, just buy Ethernet hubs/switches for your studio. Existing
instruments could be upgraded with a small board or perhaps an inline connector that
went from MIDI to RJ-45. I don't know if it could be made to run on the low power
availble from MIDI though...
I'd be willing to help design the protocol, write an Internet Draft and get a
protocol number for something like this if anyone is interested. It shouldn't be
hard to get it into an RFC (Request for Comments, the specifications for Internet
protocols and the like), it would just take time.
Some of this just seems so obvious that I wonder if it has already been done. A
quick check of the Internet Assigned Numbers shows no reference to MIDI or musical.
Hmmph, I'm kind of amazed.
Eric
--- The Old Crow <
oldcrow@...> wrote:
>
> Analog control woes notwithstanding, the main reason I view MIDI with
> some considerable criticism is that for a networking protocol, it ∗blows∗.
> I never will understand why they didn't go with some Manchester scheme to
> provide collision and drop error handling. It is not that difficult to
> implement: the Apple Desktop Bus used on Macs to this day (and nearly as
> old as MIDI) achieve it.
>
> These days, (starting in 1990 or so) plenty of sources of cheap MII
> transcevier chips to fashion ethernet connections exist: it would cost
> next to nothing to cram one in a keyboard and use a ∗real∗ network
> protocol like TCP/IP to run the show. You don't even have to abandon the
> MIDI message structure--just encapsulate it in the IP packets.
>
> I hope that one day a true network physical layer like ethernet makes it
> into new instruments. And for the millions of old instruments--an
> ethernet to MIDI-hardware adapter (which are cheap and easy to make, look
> at the dinky little thing from www.picoweb.net!) is no problem.
>
>
> --Crow, dreaming of the day they put real LAN hardware into the gear
>
> /∗∗/
>
>
__________________________________________________
Do You Yahoo!?
Kick off your party with Yahoo! Invites.
http://invites.yahoo.com/