MIDI 'events' are transmitted using strings of bytes. Each event can be sent as a MIDI status-byte (value 128 to 255 decimal) followed by one or more MIDI data-bytes (value 0 to 127).

The purpose of the status-byte is to describe the kind of data that is about to be sent. Generally, the same number of data-bytes is sent after each particular status-byte

Often, the same kind of data is sent repeatedly, and sending the status-byte repeatedly would be redundant and reduce the bandwidth of the MIDI stream. Examples would include a series of MIDI note-ons or MIDI pitch-bend events.

So most modern MIDI hardware (e.g. synths) and software use 'running-status'. It's assumed that, once the expected number of data-bytes has been sent/received, IF the next byte is *not* a status-byte, THEN the last status-byte received should be used to decipher the following data bytes.

Typically this results in about a 1/3 reduction in the number of bytes sent.

Log in or register to write something here or to contact authors.