The Complete MIDI 1.0 Detailed Specification
The Complete MIDI 1.0 Detailed Specification is the definitive book on MIDI for developers, musicians, hobbyists, technicians, or just about anyone who wants to know about the inner workings of MIDI, and includes sections on the following topics:
- MIDI 1.0
- General MIDI 1 (including GM Developer Guidelines)
- Standard MIDI Files
- MIDI Show Control
- MIDI Machine Control
- MIDI Time Code
The document also includes a tutorial on music synthesis and MIDI for those who may be unfamiliar with musical instrument design.
Document Revision History
Though the MIDI Specification is still called "MIDI 1.0" there have been many enhancements and updates made by MMA since the original specification was written in 1982. Besides new MIDI messages for Machine Control and Show Control applications, there have also been improvements to the "basic" protocol for musical instruments, adding features such as Bank Select, All Sound Off, and other new controller commands.
Until 1995 there were five separate documents: the "Detailed MIDI" specification (including MIDI Time Code), MIDI Show Control, MIDI Machine Control, Standard MIDI Files, and General MIDI. The version of the Detailed MIDI specification prior to 1995 was version 4.2. Version 95.1 integrated these documents and fixed some minor errors in the various documents.
Version 95.2 - September 1995
- Added text for redefinition of Device-ID proposal (MMA-0015)
- Rewrote Universal SysEx ID description which was unclear
- Moved EOF message (MMA-0011) from p44 into Sample Dump Standard Generic Handshaking Messages (P35-36)
- Rewrote File Dump Handshaking Flags (p42-44) so as not to duplicate Sample Dump text on same message
- Replaced all names referring to the Device ID message with the correct name "<Device ID>"
- Moved MIDI Implementation Chart from back of section to before Tables
- Rewrote the notes to Table 7 (SysEx Messages) to be more clear
- Updated Table of Manufacturer ID's
Version 96.1 - March 1996:
- Changed Table 7 (SysEx Messages) to include reference to Universal SysEx messages and correct ID assignments
- Fixed omission on Page 35 re: number of Generic Handshaking Messages
- Added clarifications to SMF text on MIDI timing
- Updated MSC Specification from 1.0 to 1.1
Version 96.1 Second Edition - November 2001:
- Added GM1 Developer Guidelines (1996), previously available only as a free download
Next Edition
- The next edition (schedule TBD) will include all changes/additions
approved by MMA/AMEI since the last publication, including:
- Response to Reset All Controllers
- SMF Lyric Events Definition
- Response to Data Increment/Decrement Controller
- SMF Device/Program Name Meta-events
- Scale/Octave Tuning w/Defaults
- Sound Controller Defaults (Revised)
- Renaming of CC91 and CC93
- SMF Language and Display Extensions
- File Reference SysEx Message (.pdf)
- Sample Dump Size/Rate/Name Extensions (.pdf)
- MIDI Tuning Bank/Dump Extensions
- Controller Destination SysEx Message (.pdf)
- Key-based Instrument Controller SysEx Message (.pdf)
- Global Parameter Control SysEx Message (.pdf)
- Master Fine/Course Tuning SysEx Message (.pdf)
- Redefinition of RPN01 and RPN02 (Channel Fine/Course Tuning)
- RPN05 Modulation Depth Range (.pdf)
- Extension 00-01 to File Ref SysEx Message (.pdf)
- Maximum Instantaneous Polyphony (MIP) Message (.pdf)
- Default Pan Formula
