home/ atoms/ midi-protocol

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: kslidermakenote 100 500noteout 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.

“MIDI is a protocol for communicating between electronic and/or digital musical instruments and computers.”
corpus · electronic-music-and-sound-design-vol-1-cipriani-and-giri-of · chunk 25
“Because data bytes are effectively 7 bit, values are restricted to the region of 0-127; this is also the origin of the MIDI Note number pitch range in twelve note equal temperament”
corpus · nick-collins-introduction-to-computer-music-free-author-edit · chunk 22