[sdiy] Processing Midi - Dropping Notes

phillip m gallo philgallo at attglobal.net
Fri Jul 16 19:14:43 CEST 2004


Dave,
 
For ref on MIDI messages:
 
http://www.midi.org/about-midi/table1.shtml
 
referring to this table you can see that all "real-time" messages are
one byte.
 
Instead of "replacing" data within any one message they can "interleave"
within a message.   The MIDI Timing Clock (0xF8) being the typical byte
that can interleave a message.    Your interface must handle this
interleaving so any of the following can occur:
 
Say a Note 16d is reported  on;  for Channel 1; with a Velocity of 64d;
You could see: (in hex)
 
90 10 40 (no interleave)
90 F8 10 40 (clock between Status and Data)
90 10 F8 40 (clock between note spec and velocity)
 
If you don't use the clock, have the "Get Next Byte" portion of your
parser "drop it on the floor" and not return it to message framing. 
 
regards,
p
 
 
 
 
 
-----Original Message-----
From: owner-synth-diy at dropmix.xs4all.nl
[mailto:owner-synth-diy at dropmix.xs4all.nl] On Behalf Of David Brown
Sent: Friday, July 16, 2004 9:14 AM
To: synth-diy at dropmix.xs4all.nl
Subject: Re: [sdiy] Processing Midi - Dropping Notes


At 09:34 PM 7/13/2004, you wrote:


For even more fun there is also "real time messages" that can come
in-between the bytes of other messages.
 
The real time messages are one byte only.
So just check if a message is real time, then do something with it, like
nothing at all.


Can you clarify the real time messages?  I'm writing my own MIDI parser
and I don't know if I have handled it correctly.  Specifically, can a
real time message replace the expected data in a message?  For example
...

Note on command
Note value
Real time message
Note velocity

In this case, is the real time message always guaranteed to be one byte?

Thanks. - Dave 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20040716/62c98213/attachment.htm>


More information about the Synth-diy mailing list