Re: CoreMIDI behavior?
Re: CoreMIDI behavior?
- Subject: Re: CoreMIDI behavior?
- From: Doug Wyatt <email@hidden>
- Date: Mon, 7 Jan 2002 05:13:45 -0800
On Monday, January 7, 2002, at 02:31 , Kurt Revis wrote:
(Somewhat tangentially: If you take a look at the MIDI over USB
specification, you'll find that their idea of "packet" maps quite
closely to what you see in CoreMIDI's packets.
http://www.usb.org/developers/data/devclass/midi10.pdf
I find that analogy a little confusing -- it implies that you might see
a stream of 4-byte USB-over-MIDI packets, which is definitely not the
case; it's a valid MIDI stream with a few additional constraints (as
mentioned in my last email) to simplify parsing.
It's exactly like OMS if that helps anyone :-P
I figure that running status should be treated as, essentially, a
method of data compression. Since physical MIDI is so slow, it's by far
the bottleneck, and it's really the only place where it's worth going
to so much trouble to save one lousy byte per event. So I am assuming
that the MIDI interface hardware (or perhaps the driver) will
transparently compress and uncompress using running status. I have no
idea if this really happens, since I don't have any hardware which will
let me see what exactly is on the wire, but it seems like the only sane
way to do things.
Right, in the case of USB-MIDI, the driver doesn't need to handle
running status in converting to and from USB-MIDI, but the interface
probably does. In the case of a serial port driver, it can and should
add and remove running status.
Doug
--
Doug Wyatt
work: email@hidden (CoreAudio)
personal: email@hidden
http://www.sonosphere.com
"to be nobody but yourself in a world which is doing its best night and
day to make you like everybody else means to fight the hardest battle
any human being can fight and never stop fighting."
-- e. e. cummings