'events' are transmitted using strings of byte
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-on
s or MIDI pitch-bend
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.