Status byte (of a MIDI message)

According to the MIDI protocol a MIDI event is a piece of data sent to a MIDI device to prompt it to do something at a certain time. The MIDI event contains two pieces of information: 1) the MIDI tick, which specifies at what time something should be done; and 2) the MIDI message, which specifies what should be done.

The status byte of a MIDI message is the first byte of the MIDI message, the value of which defines the type of the MIDI message.

The following are possible status bytes.

Status byte MIDI message MIDI message category MIDI device action
0x80 to 0x8F Note off Voice Release a note and stop playing it
0x90 to 0x9F Note on Voice Play a note and start sounding it
0xA0 to 0xAF Aftertouch / key pressure Voice Apply pressure to a note playing, similar to applying pressure to electronic keyboard keys
0xB0 to 0xBF Controller Voice Affect a controller, such as a slider, knob, or switch
0xC0 to 0xCF Program change Voice Assign a program to a MIDI channel, such as an instrument, patch, or preset
0xD0 to 0xDF Channel pressure Voice Apply pressure to a MIDI channel, similar to applying pressure to electronic keyboard keys
0xE0 to 0xEF Pitch / modulation wheel Voice Change a channel pitch up or down
0xF0 System exclusive (sysex) message System common Perform some device specific task
0xF1 MIDI time code quarter frame System common Set the MIDI time to keep in line with some other device
0xF2 Song position pointer System common Cue to a point in the MIDI sequence to be ready to play
0xF3 Song select System common Set a sequence for playback
0xF6 Tune request System common Tune
0xF8 MIDI clock System realtime Understand the position of the MIDI clock (when synchronized to another device)
0xFA MIDI start System realtime Start playback of some MIDI sequence
0xFB MIDI continue Systemreal time Resume playback of some MIDI sequence
0xFC MIDI stop System realtime Stop playback of some MIDI sequence
0xFE Active sense System realtime Understand that a MIDI connection exists (if there are no other MIDI messages)
0xFF Reset System realtime Reset to default state

Note on status byte 0xFF

Sent over MIDI ports, the 0xFF status byte describes a "reset" message. The MIDI device that receives this message will reset itself to a default state, which usually means stopping all playback, resetting the song position to zero, and so on.

In a MIDI file, however, the 0xFF status byte means a "meta" message. Meta messages carry meta information about the MIDI song, including track names, end of track events, various text events, and other.

"Reset" messages and "meta" messages are completely different, even though they have the same status byte. One can distinguish between the two, however. The reset message is sent over MIDI ports and is usually user generated (e.g., by pressing a button, rather than stored in a MIDI song). The meta message is stored in MIDI files, but never sent over MIDI ports.

See also:
Musical Instrument Digital Interface (MIDI)

Add new comment

Filtered HTML

  • Freelinking helps you easily create HTML links. Links take the form of [[indicator:target|Title]]. By default (no indicator): Click to view a local node.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.