tulamide wrote:DIN Midi is fixed at 31250 bits per second. One MIDI message takes about 1 millisecond. If you send a "chord" of 7 notes, the 7th note arrives with the beginning of the 8th millisecond.
1mS is certainly true for a single note, but a chord goes much faster under Running Status. Here's how it works :
'MIDI bytes' comprise a start bit, an 8-bit number, and then a stop bit = 10 bits per package. So a package gets transmitted in (1 / 31250 * 10) mS, = 0.32mS. A single Note-On comprises Status Byte, Note Number, Velocity, so gets transmitted in 3 * 0.32 = 0.96mS, call it 1mS.
Now I suspect some confusion may have crept in about Running Status. It has nothing
directly to do with that 'Note-On, Velocity = 0' thing; but it does indirectly .. back to that in a mo.
Running Status allows way fewer Status bytes to be sent, and it tells the MIDI receiver "if you're expecting a Status Byte next, and none turns up, just continue with the last one you received". So .. for the 7-note chord, instead of sending
Status, Number, Velocity;
Status, Number, Velocity;
Status, Number, Velocity; .. etc, = 21 MIDI bytes
it just sends
Status, Number, Velocity; Number, Velocity; Number, Velocity; Number, Velocity; .. etc. Only 15 MIDI bytes.
Therefore under Running Status our 7-note chord gets transmitted in 15 * 0.32 = 4.8mS.
So, adding "Note-On with Velocity=0" into the scheme of things means that
only Note-On status bytes ever get sent - no Note-Off status bytes getting in the way. Once it's received just a single 'Note-On' byte, Running Status can continue uninterrupted ad infinitum, just Number, Velocity; Number, Velocity; Number, Velocity .......
Until you go and use the Pitch Wheel. Or Aftertouch. Dang!
C'mon MIDI 2.0
H