MIDI Message Decoder
Decode MIDI status and data bytes into readable musical events.
Output appears here as you type — decoded on your device.
Input is processed on your device. Nothing you paste is sent anywhere.
What is the MIDI Message Decoder?
A MIDI decoder interprets MIDI message bytes — a status byte carrying the message type and channel, followed by one or two data bytes — as the note, velocity, controller or program change event they represent.
MIDI is a byte protocol from 1983 that has never needed replacing. A status byte always has its high bit set: the upper nibble is the message type (0x9 note on, 0x8 note off, 0xB control change, 0xC program change, 0xE pitch bend) and the lower nibble is the channel, 0–15. Data bytes always have the high bit clear, so their range is 0–127 — which is why MIDI velocity, controller values and note numbers all top out at 127.
Note numbers map to pitches with middle C at 60, and each semitone is one step. Velocity 0 on a note-on is, by convention, a note-off — a bandwidth trick that lets a stream of notes reuse a single status byte under running status, where repeated status bytes are omitted entirely.
MIDI 2.0 adds higher resolution and bidirectional negotiation, but MIDI 1.0 byte streams remain what most hardware and software actually exchange.
MIDI Message Decoder at a glance
- Status byte
- High bit set: type in upper nibble, channel in lower
- Data bytes
- High bit clear — values 0–127
- Note 60
- Middle C
- Note on, velocity 0
- Equivalent to a note off
How to use the MIDI Message Decoder
- 1Paste the MIDI bytes as hex, for example 90 3C 64.
- 2Read the decoded message type, channel, note and velocity.
- 3Watch for running status, where a status byte is omitted and inherited.
When you would reach for it
- Debugging a controller that sends the wrong channel or CC number.
- Learning the MIDI byte format while writing a parser or plugin.
- Verifying what a sequencer actually transmits versus what it displays.
MIDI Message Decoder — frequently asked questions
Last reviewed · questions or corrections: contact@decoder.tools