Re: It cannot be done under OS X !!
Re: It cannot be done under OS X !!
- Subject: Re: It cannot be done under OS X !!
- From: Doug Wyatt <email@hidden>
- Date: Mon, 29 Mar 2004 12:27:41 -0800
On Mar 27, 2004, at 11:50, Herbie Robinson wrote:
At 10:04 AM -0800 3/27/04, John Lazzaro wrote:
From: http://www.borg.com/~jglatt/tech/midifile/evts.htm
Really oddball midi units send a system exclusive message as a
series of small "packets" (with a time delay inbetween transmission
of each packet). The first packet begins with an F0, but it doesn't
end
with an F7. The subsequent packets don't start with an F0 nor end
with
F7. The last packet doesn't start with an F0, but does end with the
F7.
So, between the first packet's opening F0 and the last packet's
closing F7,
there's 1 SYSEX message there. [... see URL above for more info ...]
Referring to such devices as oddball gives the impression that they
are doing something wrong. I'm sure that John is aware of this, but
some other may not be: The MIDI standard intentionally allows the
intermingling of SYSEX with other MIDI data under the assumption that
SYSEX is low priority data. This may not get done a lot, but it is
something the standard writers intended to happen.
Any piece of gear that cannot deal with broken up or intermittent
SysEx data is not compliant with the MIDI standard.
Umm, what do you mean by "broken up" and "intermingling"? I know this
probably isn't what you meant, but an incorrect interpretation seemed
possible :-) To prevent misunderstandings .... This MIDI stream:
F0 <manufID> 00 01 02 03 04 05 (beginning of sysex)
90 40 40 (note on)
06 07 08 09 F7 (end of sysex)
should be parsed into the following commands:
F0 <manufID> 00 01 02 03 04 05 F7 (complete sysex)
90 40 40 (note on)
90 06 07 (note on, running status)
90 08 09 (note on, running status)
F7 (no-op)
This MIDI stream can and should be handled as is:
F0 <manufID> 00 01 02 03 04 05 F7 (one sysex)
90 40 40 (note on)
F0 <manufID> 06 07 08 09 F7 (one sysex)
Anyhow, we're on a tangent.
My understanding of what TC is doing is that they are sending:
F0 <header> <8-bit binary data> F7
and expecting CoreMIDI, the MIDI driver, the MIDI interface, and any
other MIDI mergers in the path to not alter the stream in any way (even
though its meaning according to the MIDI spec becomes something other
than a single sysex message as soon as a status byte appears).
If this works anywhere, it's because the entire software/hardware path
between the sending app and the receiver happens not to have any MIDI
parsers in it.
Doug
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.