What is MIDI
This article is a brief introduction to the MIDI Protocol and it's history
(short for Musical Instrument Digital Interface) is a music industry standard communications protocol
that lets MIDI instruments and sequencers
(or computers running sequencer software) talk to each other to play and record music. More and more of the music we hear every day is written with and played by MIDI sequencers.
History of MIDI
As electronic instruments began to go digital a number of manufacturers, including Roland, Oberheim, Sequential Circuits and Fender developed digital interfaces which allowed their own digital instruments to work together, but these proprietary interfaces did not permit interworking between devices developed by different manufacturers.
In 1981, audio engineer and synthesizer designer Dave Smith of Sequential Circuits, Inc. proposed a digital
standard for musical instruments in a paper for the Audio Engineering Society. Over the two years from autumn 1981 to 1983 most of the major manufacturers collaborated in the development of the first version of the MIDI standard, which was published in October 1983. There were by this time already MIDI devices in the marketplace, the first of which was Sequential's Prophet 600 which first shipped in December 1982.
Contrary to what many believe, MIDI files
are not music files. They are files simply containing data. Take a Player Piano Roll. It's just a piece of paper with holes in them. But it tells the piano what to play. Well, a MIDI file can be compared to a digital
Standard MIDI File (SMF) Format
MIDI messages (along with timing information) can be collected and stored in a computer file system, in what are commonly called MIDI files
, or more formally, a Standard MIDI File (SMF). The SMF specification was developed by, and is maintained by, the MIDI Manufacturers Association (MMA). MIDI files are typically created using computer-based sequencing software (or sometimes a hardware-based MIDI instrument or workstation) that organizes MIDI messages into one or more parallel "tracks" for independent recording and editing. In most sequencers, each track is assigned to a specific MIDI channel and/or a specific General MIDI instrument patch. Although most current MIDI sequencer software uses proprietary "session file" formats rather than SMF, almost all sequencers provide export or "Save As..." support for the SMF format.
An SMF consists of one header chunk and one or more track chunks. There exist three different SMF formats; the format of a given SMF is specified in its file header. A Format 0 file contains a single track and represents a single song performance. Format 1 may contain any number of tracks, enabling preservation of the sequencer track structure, and also represents a single song performance. Format 2 may have any number of tracks, each representing a separate song performance. Sequencers do not commonly support Format 2.
Large collections of SMFs can be found on the web, most commonly with the extension .mid
. These files are most frequently authored with the assumption that they will be played on General MIDI players.
This is the language that is used to create what we call . The language does not contain the actual note but rather sends instructions or messages to another device. This language is automatically translated through sequencing software or devices (such as a sound module or keyboard). Some examples of MIDI messages are:
- Note On - signals that a key has been pressed or a note on another instrument (like a MIDI guitar or clarinet) has been played. The Note On message includes instructions for what key was pressed and at what velocity (how hard the note was played).
- Note Off - signals that the key has been released or the note is done playing.
- Control Change - indicates that a controller -- perhaps a foot pedal or a fader knob -- has been pressed or turned. The control change message includes the number assigned to the controller and the value of the change (0-127).
- Patch Change - signals that a different instrument will be used.
- Pitch Wheel Change - signals that the pitch of the note has been bent with the keyboard's pitch wheel.
- Velocity - is a measurement of how hard a key is pressed once it "bottoms out." On some keyboards, this adds vibrato or other effects to the note.
There are two different methods of synchronisation: SMTPE and MTC. SMTPE originates in the movie industry and uses a frame as the unit of time. To give the extra precision needed for music, MIDI timings make use also of subframes. MTC is midi's own timing method based on 24ths of a quarter note. This is the frequency with which midi time clock messages are sent out for synchronization. Time stamps for the relative timing of messages in a midi file are also specified using fractions of a quarter note, but this will usually be a smaller unit than a 24th of a quarter note.
MIDI oftentimes gets a bad rap, mostly by people that don't know any better. The sound of a MIDI file is only as good as the soundcard or synth on one's computer. Most computers are shipped with average quality soundcards - or no soundcards at all (laptops). Playing a MIDI file through these computers results in a sound one can only called "cheeesy". However, playing that MIDI file through high quality soundcards, soundfonts, or modules can recreate music with astonishing results.
MIDI technology is not restricted to synthesizers and sound. It is not unusual to find other stage equipment, such as lighting banks, under the control of MIDI-compatible computers. Each light may be assigned a specific MIDI channel and turned on or off according to a master program. MIDI programs may also control effects pedals for guitarists or pre-recorded sequences to supplement the sound onstage. MIDI is also a very popular protocol in video games, mobile phones, teaching programs, and much more.
For more information and additional links on this subject, please read MIDI Specifications.