I don't know how deep you want to dig into the MIDI issue but it's good
to see some solid facts appearing. As Tony Decap says, the "running
status" option included in the MIDI spec. does enable a significant
increase in the potential speed. Most commercial software, such as
Cakewalk, exploit this and go even further. There are two ways to stop a
note playing in MIDI, you can send a "note off" or you can send "note on
at zero velocity". It's common practice to use the latter because this
method, in conjunction with running status, makes it virtually
unnecessary to send more than one "note on" command. By using the
"running status" capability, you kick off with a single "note on"
followed by the data but using "velocity zero" to stop notes playing.
This saves even more bytes.
I chose my words carefully when I said that "the worst implementation of
the MIDI standard" is plenty fast enough to operate a single piano.
MIDI allows you to waste time sending redundant "note on" and "note off"
data but even if you use it like that it can *still* provide adequate
performance.
Incidentally, if anyone wants to ensure that their files will exploit
the "running status" feature, simply load them into Cakewalk or similar
and re-save them. Virtually all of these commercial packages tidy up
the data without asking, converting it to an efficient form in the
process.
Richard Stibbons
Cromer England
|