Computer Music (MUSC 216)

MIDI Running Status

The MIDI spec allows for a MIDI message to be sent without its Status byte (just data bytes are sent) as long as the previous, transmitted message had the same Status. This is referred to as running status. Running status is simply a way to maximize the efficiency of MIDI transmission by removing Status bytes which are not needed. For running status to work, a device must always remember the last Status byte that it received (except for RealTime), and if it doesn't receive a Status byte when expected (on subsequent messages), it should assume that it's dealing with a running status situation. A device that generates MIDI messages should always remember the last Status byte that it sent (except for RealTime), and if it needs to send another message with the same Status, the Status byte may be omitted.

For example:


$90 #60 #127

$90 #63 #127

$90 #70 #127


Using Running Status, these commands could be sent as follows:


$90 $60 #127 #63 #127 #70 #127 [or $90 60 127 63 127 70 127]


... thereby eleminating two bytes of data. This might not seem like much, but if you are dealing with thousands of data bytes, it will add up!!


Main Page