MIDI WORLD
protocol · sequencing · mapping · control
Section 02
MIDI Protocol Explorer
Click any byte to reveal its role. Adjust the sliders to send virtual MIDI messages and watch the bytes update live.
NOTE ON / NOTE OFF
90
STATUS
→
3C
NOTE
→
64
VELOCITY
← Click a byte to learn what it means
Channel1
NoteC4 (60)
Velocity100
CONTROL CHANGE (CC)
B0
STATUS
→
01
CTRL#
→
40
VALUE
← Click a byte to learn what it means
Controller
Value64
MIDI CLOCK — 24 PULSES PER QUARTER NOTE
Single byte: 0xF8 — fires 24× per beat at current BPM
Section 03
Piano Roll Sequencer
16-step sequencer across 2 octaves (C3–B4). Click cells to toggle notes. Drag velocity bars. WebAudio playback.
BPM
120
PRESETS:
Step: — |
Notes active: 0
Section 04
CC Mapping Lab
Drag from a source controller to a destination parameter. Set curve and invert per mapping. LagFilter-smoothed real-time response.
SOURCE CONTROLLERS
DESTINATIONS
Active mappings — drag sources above to see arrows update
CURVE TYPE PER MAPPING
Section 05
MIDI Clock & Sync
24 pulses per quarter note. Tap tempo, SPP, jitter visualization, and MIDI vs. audio clock drift over 60 seconds.
120
BPM
SPP: 0 beats
JITTER COMPARISON — PERFECT vs. MIDI CLOCK
CLOCK DRIFT OVER 60 SECONDS
MIDI clock accumulates timing error vs. audio clock reference. Blue = MIDI, Green = audio reference.
Section 06
MIDI Controller Gallery
Six controller archetypes — click/drag to generate MIDI data. Watch the monitor for live hex output.
MIDI MONITOR — LIVE OUTPUT
Section 07
MIDI Over Network
Five transport methods compared — from DIN-5 serial to MIDI 2.0 UMP. Animated packets travel at relative real-world speeds.
DIN-5 / TRS MIDI
31,250 baud serial · 3-byte Note On = 0.96ms · Unidirectional · Current-loop opto-isolation · Simple, universal
~1ms latency
USB MIDI (Class-Compliant)
4-byte USB packets · Wrapped in USB MIDI Event Packet · Full-speed USB (12Mbps) · Plug & play, no driver · Bidirectional
~0.25ms latency
RTP-MIDI (AppleMIDI)
UDP/IP · Real-Time Protocol · Recovery journal for dropped packets · Session negotiation via Apple Bonjour · Network jitter buffered
~5–20ms (LAN)
MIDI 2.0 / UMP
32-bit Universal MIDI Packets · 65,536 channels · 32-bit velocity/CC resolution · Backwards-compatible via MIDI-CI · Profile & Property Exchange
~0.1ms (USB)
OSC — Open Sound Control (comparison)
UDP or TCP · Floating-point values (no 7-bit limit) · Arbitrary address patterns /synth/osc1/freq · No standard channel/note model · Higher resolution but no universal device support · Common in live coding, VJing, research
~1–5ms (LAN) · Higher resolution than MIDI 1.0
Section 08
MIDI Pioneers & Artists
Artists who shaped MIDI as a creative medium — from the protocol's inventors to gesture-controlled performance.
Herbie Hancock
Electronic Jazz Pioneer
"Rockit" (1983) featured the first MIDI performance at the Grammy Awards. Pioneered electronic jazz, integrating synthesizers and MIDI into live performance.
Peter Gabriel
Studio Innovator
Early Fairlight CMI adopter; wove MIDI sequencing into groundbreaking album productions. Brought MIDI orchestration to mainstream rock songwriting.
Daft Punk
Analog/MIDI Hybrid
Mastered MIDI-based sequencing layered with analog hardware. Their workflow — tight MIDI grids controlling vintage gear — defined electronic music production aesthetics.
Imogen Heap
Gesture-MIDI Pioneer
Developed Mi.Mu gloves — wearable instruments converting hand gestures to MIDI. Redefined what a controller can be, turning the body itself into an instrument.
Keith McMillen
Expressive Controller Design
Inventor of the SoftStep MIDI foot controller. Pioneered multi-dimensional, pressure-sensitive MIDI performance using smart fabric sensor technology.
Roger Linn
Groove & Timing
Created the LinnDrum and MPC sampler. Invented "groove quantize" — humanizing MIDI timing by studying feel rather than forcing mechanical grids.
Dave Smith
MIDI Co-Creator
Sequential Circuits Prophet-5 designer and key architect of the MIDI specification. Proposed the standardized 5-pin DIN connection and serial protocol in 1981.
Ikutaro Kakehashi
MIDI Co-Creator · Roland
Founded Roland Corporation; co-developed MIDI alongside Dave Smith. Created the TR-808 drum machine and TB-303 bass synthesizer — machines that define electronic music.
Section 09
MIDI Glossary
22 essential terms — from protocol fundamentals to advanced performance concepts.
Aftertouch
Pressure applied to a key after initial strike. Channel aftertouch affects all notes; polyphonic aftertouch per-note. MIDI byte: 0xA0/0xD0.
Bank Select
CC0 (MSB) + CC32 (LSB) used to select from 128×128 = 16,384 patch banks before a Program Change. Expands GM's 128 patches.
CC (Continuous Controller)
MIDI message type 0xBn carrying a controller number (0–127) and value (0–127). Used for modulation, volume, pan, filter, and any continuous parameter.
Channel
MIDI has 16 independent channels per port. Each channel can carry a different instrument. The channel number is encoded in the lower nibble of the status byte.
Clock
MIDI Timing Clock (0xF8). Single-byte system real-time message sent 24 times per quarter note to synchronize tempo between devices.
DAW
Digital Audio Workstation. Software (Ableton Live, Logic Pro, Pro Tools, Reaper) that records, edits, and sequences MIDI and audio. The primary hub of modern MIDI workflows.
DIN MIDI
The original 5-pin DIN connector carrying MIDI at 31,250 baud over a current loop (5mA). Still widely used in hardware synthesizers and drum machines.
Expression
CC11 — a secondary volume control often mapped to breath, foot pedal, or mod wheel. Distinguished from CC7 Volume; affects dynamics within a phrase.
GM (General MIDI)
A standardized set of 128 instrument patches and 16 channels (ch.10 = drums) ensuring MIDI files sound consistent across any GM-compliant device.
MPE (MIDI Polyphonic Expression)
Assigns each note to its own MIDI channel, enabling per-note pitch bend, pressure, and slide. Used in Roli Seaboard, Linnstrument, and Expressive E Osmose.
Note Off
Status 0x8n — signals key release. Note number + release velocity (rarely used). Can also be sent as Note On with velocity 0 for running status efficiency.
Note On
Status 0x9n — signals key press. Note number (0–127, where 60=C4) + attack velocity (0–127, where 0 = Note Off). The most fundamental MIDI message.
Patch
A specific synthesizer sound or preset, selected via Program Change (0xCn) and Bank Select. In GM, patch 1 = Acoustic Grand Piano, patch 40 = Violin.
Pitch Bend
Status 0xEn — 14-bit resolution (two 7-bit bytes) for smooth pitch variation. Center = 0x40 0x00. Range set per-device, typically ±2 or ±12 semitones.
PPQN
Pulses Per Quarter Note. MIDI clock uses 24 PPQN. DAWs internally use 480 or 960 PPQN. Higher PPQN = finer timing resolution for quantization.
Program Change
Status 0xCn — single data byte selects one of 128 patches on a channel. Typically paired with Bank Select (CC0/CC32) to access extended sound libraries.
RPN (Registered Parameter Number)
Standardized two-CC protocol (CC101/100) for tuning, pitch bend range, and fine tuning. Unlike NRPN, RPNs are universal across devices.
Running Status
MIDI bandwidth optimization: if the status byte is identical to the previous message, it can be omitted. Reduces a stream of Note Ons from 3 bytes to 2 each.
SysEx (System Exclusive)
Status 0xF0 — manufacturer-specific data of arbitrary length, terminated by 0xF7. Used for patch dumps, firmware updates, and deep device configuration.
Timestamp
MIDI 2.0 UMP and RTP-MIDI carry per-message timestamps for sub-millisecond accuracy. MIDI 1.0 relies on byte-stream ordering with no embedded time data.
Velocity
The second data byte of Note On/Off — how fast (hard) the key was pressed or released. Maps to loudness, brightness, or other expressive parameters.
Voice
A single simultaneously sounding note. Polyphony = number of voices. MIDI allows 16 channels × multiple voices per channel, hardware limits apply per synth.