MIDI is a 7-bit serial protocol sending note and control events on up to 16 channels, not audio
MIDI (Musical Instrument Digital Interface, standardized 1983) is a serial protocol for transmitting musical performance instructions between electronic instruments and computers — it carries no audio, so the receiving device uses each message to trigger and shape its own sound. Messages run at 31.25 kbaud: a status byte (MSB = 1) followed by data bytes (MSB = 0), which limits data values to 0–127. The status byte encodes both the message type (note on/off, control change, program change, pitch bend, etc.) and the channel number (1–16). Note 60 is middle C, note 69 is A440. Velocity encodes how hard a note is played (1–127). A separate note-off (or note-on with velocity 0) is required to end a sustained note. The 7-bit resolution (128 steps) is coarse for continuous parameters like pitch bend, which combine two bytes for 14-bit resolution; OSC was designed as a more flexible, higher-resolution successor. MIDI remains dominant and has been extended over USB and Ethernet.
Examples
Note-on message: status 0x90, pitch 60, velocity 64 = middle C at half velocity on channel 1. Control change 74 = filter cutoff on most synths. In Max/MSP: kslider → makenote 100 500 → noteout plays a note at velocity 100 for 500 ms, makenote generating the paired note-off so the note stops.
Assessment
Why are MIDI values restricted to 0–127, and how does MIDI represent pitch bend with more than 7-bit resolution? Explain why note-off (or note-on velocity 0) is sent as a separate message and what makenote does to solve the ‘note never stops’ problem. Name one MIDI limitation OSC was designed to address.