So what is this MIDI that started it all? MIDI stands for Musical Instrument Digital Interface. MIDI is a hardware/software combination.
The hardware is a MIDI cable. The MIDI cable looks like a 5-pin cable, but it is not an ordinary 5-pin cable. It is specially grounded and shielded for efficient data transmission, critical for music interpretation. It is an asynch serial x, with baud rate 31.25 kbaud. This is not a speed that can be created by the PC; hence, the PC controlling MIDI instruments must be fitted with a MIDI card. This sound card creates the special 31.25-baud rate. The interface is 10 bits - 1 start bit, 8 data bits, and 1 stop bit. These move at 320 microseconds per serial byte, in a current loop of 5 mA. The MIDI cable's stated maximum length is 50 feet, but for optimal data transmission, 20 feet is the effective maximum. Most MIDI cables are 5 or 10 feet.
A MIDI enabled instrument has three MIDI ports - the MIDI in (listen and perform the commands), and MIDI out (as a musician plays the instrument, the MIDI out contains the MIDI command file describing the music played). The MIDI thru simply passes the command file to the next MIDI instrument in the chain.
Even though the individual cables themselves are limited length, any number of MIDI devices can be chained together to produce a virtually unlimited length chain. A 'virtual orchestra' chain is 16 MIDI synthesizers chained together and driven by a PC playing a MIDI software command file, or sequence.
This software file is a set of MIDI commands, that when transmitted to a MIDI controlled instrument, instruct it how to make sound. This contrasts to a .wav file, which is created first by a tape recording of the sounds and then an electronic description of these sounds. MIDI is commands, not sound descriptions. In MIDI, in a series of 8 bit bytes, the musical instrument can be told when to start and stop a note, which note to play, and how loud or varying in loudness to play the note.
The MIDI command starts with a status byte. The status byte tells which function to perform (such as note on or note off) and which MIDI channel should perform the function. There are 16 MIDI channels. Each synthesizer receiving the commands is tuned to a different channel. The signal transmitted through the MIDI cable can contain commands for all 16 channels. Each instrument 'listens' for commands for its own channel only and ignores all the other channels' instructions. That is how in a MIDI chain of different instruments, each sound producer plays only its own part of the music.
Following the status byte will be one or two bytes relevant to the function in the status byte. For example, Note on will be followed by a pitch byte and a velocity byte which controls loudness.
MIDI will also allow the musician to specify the type of sound - such as concert grand piano, flute, and various percussions. This assumes the synthesizer to be played can support the various sounds described. To standardize the various instrument manufacturers and allow a MIDI file to be played on virtually any of the modern new synthesizers, GM or General MIDI was developed as an extension or superset of the basic MIDI. For example, in GM, drums are channel 10. The sound types are defined by a series of "patch lists". For example, patch 0 is always a grand piano sound in GM MIDI command files and music instruments.
The current MIDI and GM specifications may be obtained from the MIDI Manufacturers Association (MMA) at the following address: