Official MIDI Specifications

MIDI 1.0

The MIDI 1.0 Detailed Specification captured the state of MIDI as of 1996 and is for developers, hobbyists, technicians, and others who want to know about the inner workings of MIDI.
It included sections on the following extensions to MIDI which have been separated for individual download.
  • General MIDI
  • Standard MIDI Files
  • MIDI Show Control
  • MIDI Machine Control
  • MIDI Time Code
The General MIDI Specifications (GM 1, GM 2, and GM Lite) define specific features and behaviors for compliant MIDI devices. In particular, files created for GM devices all use the same GM Sound Set which helps provide for more consistant playback among different MIDI devices.

Note: The GM 1 specification was superceded in 1999 by General MIDI 2 which added support for additional features and capabilities which had become commonly available since GM 1 devices first appeared. However, GM 1 remains a popular format and is still commonly used for music distributed in Standard MIDI File (*.mid) format.
The following changes/additions became part of the MIDI 1.0 Specification after the "96.1" publication and should be consulted to have a current understanding of MIDI technology.
M1 v4.2.1 MIDI 1.0 Detailed Specification 96-1-4
MIDI logonobgrd copyMIDI, the Musical Instrument Digital Interface, was established as a hardware and software specification which would make it possible to exchange information (musical notes, program changes, expression control, etc.) between different musical instruments or other devices such as sequencers, computers, lighting controllers, mixers, etc. This ability to transmit and receive data was originally conceived for live performances, although subsequent developments have had enormous impact in recording studios, audio and video production, and composition environments.

The latest revision of the basic MIDI 1.0 specification which defines the core layout of MIDI 1.0 messages and the classic MIDI 1.0 tranport of 5 pin DIN connectors.

MIDI Machine Control is a general purpose protocol which initially allows MIDI systems to communicate with and to control some of the more traditional audio recording and production systems. Applications may range from a simple interface through which a single tape recorder can be instructed to PLAY, STOP, FAST FORWARD or REWIND, to complex communications with large. time code based and synchronized systems of audio and video recorders. digital recording systems and sequencers. Considerable expansion of the MIDI Machine Control protocol is realizable in the future, and many diverse audio, visual and mixed media devices may thus be brought together under a single general purpose control umbrella.
The purpose of MIDI Show Control is to allow MIDI systems to communicate with and to control dedicated intelligent control equipment in theatrical, live performance, multi-media, audio-visual and similar environments.

Applications may range from a simple interface through which a single lighting controller can be instructed to GO, STOP or RESUME, to complex communications with large, timed and synchronized systems utilizing many controllers of all types of performance technology.

MIDI Time Code
 81.09 KB


For device synchronization, MIDI Time Code uses two basic types of messages, described as Quarter Frame and Full. There is also a third, optional message for encoding SMPTE user bits.
RP 50 MIDI Visual Control

This specification defines a way for MIDI to be used for control of visual presentation devices or systems. MIDI has expanded far beyond its original intention of being a control language for musical instruments. The robust nature of MIDI and wide support makes MIDI a suitable control system for visual performance or presentation devices.
rp53 MIDI Polyphonic Expression.pdf
This specification is designed for MIDI controllers that allow the performer to vary the pitch and timbre of individual notes while playing polyphonically. In many of these controllers, pitch is expressed by lateral motion on a continuous playing surface, while individual timbre changes are expressed by varying pressure, or moving fingers towards and away from the player.

The MPE specification defines a MMA/AMEI Recommended Practice for hardware and software manufacturers to communicate multidimensional control data between MIDI controller instruments, synthesizers, digital audio workstations, and other products, using MIDI 1.0 messages.

The specification describes a recommended way of using individual MIDI Channels to achieve per-note control without requiring Mono Mode (which would restrict polyphony to a maximum of 16 notes). This enables richer communication between increasingly expressive MIDI hardware and software.