An open reference
The field guide to MIDI.
How MIDI works, down to the byte, from MIDI 1.0 to 2.0. It comes with tools that run in your browser and 470+ open-source libraries, each one checked against its repository.
New to MIDI? Start with MIDI in five minutes →
Start here
Short chapters, with tables to scan and examples worked out byte by byte. All 17 chapters →
- MIDI in five minutes What MIDI is (and isn’t), what travels down the cable, and how gear connects.
- Messages Status and data bytes, channel voice & mode messages, system common & real-time, running status.
- Notes & Pitch Note numbers, octave naming, frequencies, velocity, and pitch bend math.
- Control Change All 128 controller numbers, 14-bit pairs, and channel mode messages.
- Standard MIDI Files Header and track chunks, delta times, variable-length quantities, meta events.
- MIDI 2.0 & UMP Universal MIDI Packet formats, message types, groups, and higher resolution.
| Status | Message | Data |
|---|---|---|
| 8n | Note Off | note, velocity |
| 9n | Note On | note, velocity |
| An | Poly Pressure | note, pressure |
| Bn | Control Change | controller, value |
| Cn | Program Change | program |
| Dn | Channel Pressure | pressure |
| En | Pitch Bend | LSB, MSB |
| F0 | System Exclusive | … F7 |
n = channel − 1 (0–F). Full tables in Messages.
Tools
Everything runs in your browser, and your files never leave it. All 12 tools →
- MIDI Reader Open a .mid file and see every part explained, from tracks and tempo down to the raw bytes. Then play it with sampled instruments.
- Web MIDI monitor Plug in a controller and watch every incoming message decoded live, with a keyboard view and meters.
- CC map All 128 Control Change numbers: what the spec, GM and GM2 say, how synths use them, and the bytes to send. Move a knob to find its number.
Libraries
477 open-source projects in 33 languages, each checked against its repository on GitHub or Codeberg. Browse all 13 categories →
- Samples Play 20 free instruments Openly licensed sounds to play from your keyboard or a MIDI controller, plus SoundFont and SFZ libraries.
- Community 98 places to ask Forums, subreddits, Discords and mailing lists, plus 41 places to find MIDI files.
- Reference Cookbook & glossary Runnable recipes in JavaScript, Python, C++ and Rust, plus plain-language definitions.