Home

MIDIStatus

MIDIStatus is a term used to describe the status information of a MIDI data stream as indicated by the status byte of MIDI messages. The status byte determines how the following data bytes should be interpreted and which channel or system context applies. In typical MIDI streams, most messages are channel voice messages that carry data for a single channel, with status bytes ranging from 0x80 to 0xEF. Each status byte encodes a command (such as note on, note off, control change, program change, or pitch bend) and a channel number, while data bytes (0x00–0x7F) carry the associated parameters.

System and real-time messages form another class of MIDIStatus. System common messages use the 0xF0–0xF7 range,

Running status is an important optimization related to MIDIStatus. When consecutive messages share the same status,

In practice, MIDIStatus is a core concept used by software and hardware to parse, route, and synchronize

while
real-time
messages
use
0xF8–0xFF
and
can
be
interleaved
with
other
messages.
A
System
Exclusive
(SysEx)
block
begins
with
0xF0
and
ends
with
0xF7,
allowing
devices
to
exchange
manufacturer-specific
data.
Real-time
messages
such
as
0xF8
(Timing
Clock),
0xFA
(Start),
0xFB
(Continue),
0xFC
(Stop),
0xFE
(Active
Sensing),
and
0xFF
(System
Reset)
are
designed
to
be
transmitted
independently
of
the
current
channel
voice
status.
the
status
byte
can
be
omitted
for
subsequent
messages,
with
only
the
data
bytes
following.
This
reduces
bandwidth
in
streaming
MIDI
data
streams.
MIDI
data.
Implementations
typically
maintain
a
currentStatus,
track
the
expected
data
byte
count,
and
properly
handle
running
status
alongside
interleaved
system
and
real-time
messages.
See
also
MIDI
protocol,
MIDI
channels,
and
SysEx.