MIDI Message Utility

MIDI Message Decoder

Decode raw MIDI hexadecimal bytes and inspect status, message type, MIDI channel, note number, note name, velocity, controller, program number, channel pressure, pitch bend and common system messages.

✓ Note On / Off ✓ Control Change ✓ Program Change ✓ Pitch Bend ✓ System Messages ✓ Note Names
MIDI
MIDI Message Decode
● Ready
Enter one complete MIDI message. Spaces, commas, colons, hyphens, line breaks, continuous hexadecimal and 0x-prefixed values are accepted.
MIDI channel messages: status bytes from 80 through EF contain the message type in the high nibble and channel number in the low nibble. MIDI data bytes use only seven bits and therefore range from 0 through 127.
MIDI Decode Result Message Decoded
Decoded MIDI Message
Status Byte
Message Type
MIDI Channel
Message Length
Data Byte 1
Data Byte 2
Note
Velocity / Value
Controller
Program
Pitch Bend
Validation
Message Interpretation
Byte Breakdown
Protocol Notes

What Is a MIDI Message?

MIDI, or Musical Instrument Digital Interface, represents musical events and device-control information as compact byte messages. A MIDI message normally begins with a status byte whose most significant bit is one.

Channel Voice messages use status bytes from 0x80 through 0xEF. The high nibble identifies the message type while the low nibble identifies one of 16 MIDI channels.

MIDI Status Byte Format

Example: 90 3C 64 90: Status byte 9: Note On message type 0: Channel index 0 Displayed MIDI Channel = 1 3C: Note number 60 64: Velocity 100

Common MIDI Channel Message Types

Status High Nibble Message Data Bytes
8Note Off2
9Note On2
APolyphonic Key Pressure2
BControl Change2
CProgram Change1
DChannel Pressure1
EPitch Bend Change2

MIDI Note Number to Note Name

MIDI note numbers range from 0 through 127. With the common convention where MIDI note 60 is middle C, note 60 is displayed as C4.

MIDI Note: 60 60 mod 12: 0 Pitch Class: C Octave: 4 Result: C4

MIDI Note On

90 3C 64 Status: 90 Type: Note On Channel: 1 Note: 3C = 60 = C4 Velocity: 64 hex = 100 decimal

A Note On message with velocity zero is commonly treated as the equivalent of a Note Off event.

MIDI Note Off

Note Off normally uses status high nibble 8. The first data byte is the note number and the second is the release velocity.

80 3C 40 Note: 60 = C4 Release Velocity: 64 decimal

MIDI Control Change

Control Change messages use status high nibble B. The first data byte identifies the controller and the second data byte gives its value from 0 through 127.

B0 01 40 Channel: 1 Controller: 1 = Modulation Wheel Value: 64

Common MIDI Controllers

CC Controller
1Modulation Wheel
2Breath Controller
7Channel Volume
10Pan
11Expression Controller
64Sustain Pedal
65Portamento
71Resonance / Timbre
74Brightness
120All Sound Off
121Reset All Controllers
123All Notes Off

MIDI Program Change

Program Change messages use only one data byte after the status byte. The raw MIDI program value ranges from 0 through 127.

C0 28 Status: C0 Channel: 1 Program Value: 40 decimal Human one-based program number: 41

MIDI Pitch Bend

Pitch Bend Change uses two seven-bit data bytes to create one 14-bit value. The first data byte contains the least-significant seven bits and the second contains the most-significant seven bits.

E0 00 40 LSB: 0 MSB: 64 Pitch Bend: (64 × 128) + 0 = 8192 Center: 8192 Signed displacement: 0

The numerical range is 0 through 16,383, with 8,192 representing the center position.

MIDI System Real-Time Messages

Status Message
F8Timing Clock
FAStart
FBContinue
FCStop
FEActive Sensing
FFSystem Reset

MIDI System Common Messages

Status Message Data Bytes
F1MIDI Time Code Quarter Frame1
F2Song Position Pointer2
F3Song Select1
F6Tune Request0
F7End of SysEx0

MIDI Data Byte Range

Normal MIDI data bytes have their top bit clear. Therefore, their numeric range is 0 through 127.

Valid data byte: 0xxxxxxx Range: 00 through 7F

Bytes with the high bit set are status bytes or system-status values rather than ordinary data bytes.

MIDI Message Decoder FAQs

What does MIDI message 90 3C 64 mean?
It is a Note On message on MIDI Channel 1. Note 0x3C is decimal 60, commonly displayed as C4, and velocity 0x64 is decimal 100.
How many MIDI channels are there?
MIDI 1.0 Channel Voice status bytes encode 16 channels, commonly displayed as channels 1 through 16.
What does Note On velocity 0 mean?
It is conventionally interpreted as a Note Off event for that note.
How is MIDI pitch bend calculated?
Combine the two seven-bit data bytes as LSB + (MSB × 128). The resulting 14-bit value ranges from 0 to 16,383 with 8,192 at center.
What is MIDI note 60?
Using the common note-number convention, MIDI note 60 is C4.
What does MIDI status B0 mean?
B0 is a Control Change message on MIDI Channel 1.
What does MIDI F8 mean?
0xF8 is the MIDI Timing Clock System Real-Time message.
Does this tool decode MIDI files?
No. This tool decodes individual MIDI byte messages. Standard MIDI Files add track chunks, delta times, variable-length quantities and other file-level structures.
Scroll to Top