What is MIDI ?

MIDI (Musical Instrument Digital Interface) is a means by which a computer can control an electronic instrument (i.e. a soundcard, an external synthesizer or sound module, an electronic piano, or any electronic instrument which can 'understand' MIDI). A computer file contains codes which tell the instrument everything it has to know regarding the performance of a musical composition - which note to play, which sounds to use, which effects to use, how loud etc. A program, either a sequencer or a special player program, transmits this information, and controls the timing.

Much very effective music has been produced in this manner, and stored on computer files. The music can then be recorded on tape or CD, or performed live. The quality of the final result is totally dependant upon the quality of the MIDI sequence, AND the quality of sound of the instrument (synthesizer, sound module etc.) used. In terms of computers, one of the major advantages of this system is that a great deal of music can be stored in a relatively small amount of disk space.

How, one might ask, can one send MIDI music to others on the internet ? This problem is solved by the development of the Standard MIDI File (SMF), and General MIDI (GM). The SMF is a standardized file structure, usually with the extension (.mid), which contains all the MIDI data necessary for the electronic instrument to interpret. There are many programs out there that can read and interpret SMF's (e.g. Microsoft's Media Player). GM is a standardized sequence of MIDI patches (i.e. sounds), which many sound sources can interpret (e.g. Patch #1 in GM is Acoustic Grand Piano). Therefore, when the SMF specifies any patch number, all GM synthesizers will reference the same patch.

What are the disadvantages of MIDI ? SMF's can be sent out to thousands, or millions, of computers and synthesizers around the world. These machines are not equivalent in quality. For example, a clarinet may sound totally different when produced on different synthesizers, although both instruments claim that this is the clarinet patch. Therefore, the results in sound will differ widely when different machines are driving the same SMF's. Of course, the quality of one's speaker system will also affect the resulting sound, although this has nothing particularly to do with MIDI.

The limitation of GM is the fact that the instrument list is restricted to a fixed number of available sounds. Although the number of sounds available seems like quite a lot (128, plus another 128 percussion sounds), in the case of most standard instruments, there is a restriction of one sound per instrument. Some of these sounds may be unsatisfactory, but only the sounds within the GM set can be used. When not working with GM, it is possible to find and use a much wider range of sounds, with more than one patch per instrument. However, that's the trade-off involved with standardization.


Glossary of Terms
Channel There are 16 MIDI channels available per synthesizer. Each Program Change, Control Change etc., is linked to a particular channel. Several Tracks may reference the same channel number, and, therefore, use the same sound.
Control Change This refers to setting or re-setting the value of any given Controller for a specific Channel.
Controller Each instrument (soundcard, sound module etc.) recognizes a specified number of Controllers. Each Control Change affects a specific Channel, and may modify the sound (volume, pan etc.) or be a more general instruction (select bank, reset all controllers etc.).
Drum Kit In GM, Channel 10 is reserved for a Drum Kit (i.e. all manner of percussion sounds). It works differently from the other channels, in that each note (or key) specifies a different percussion instrument. A Program Change on Channel 10 would specify a different Drum Kit.
Patch A particular sound, as specified by Program Change.Different synthesizers use different techniques to create the Patch. In a WaveTable device, the sound is a digitized 'snapshot' of the real sound.
Pitchbend A re-tuning of a given pitch either sharp or flat. This can be done on a continuously changing basis to achieve a bending of a note, or a sliding up or down (glissando). The normal range of a pitchbend is 2 semitones, but this can be expanded using RPN.
Preset See Patch
Program Change This refers to specifying a new Patch on any given Track, for any given Channel.
Sequence When used as a noun, a Sequence refers to the MIDI data that comprises a whole piece of music. When used as a verb, it refers to the process of creating the MIDI data. The term 'Sequencer' usually refers to the type of computer program one uses to create MIDI sequences.
Track Simply a way to organize the music to be presented through MIDI. Generally speaking, each Track could represent a different instrumental part (Polyphony), but not necessarily a unique instrumental sound. It may also contain other types of data. Several musical parts could also be contained on a single track. The number of musical parts a synthesizer can handle varies according to its hardware capability (32, 64 etc.)
Velocity This actually refers to the loudness or softness of any sound in a range of 1-127. The term Velocity literally refers to the speed with which a key is depressed, and this information is sent to the internal computer on the instrument.
WaveTable This refers to a synthesizer or sound module, in which the sounds are sampled; that is, they are digitized sound waves created directly from the actual sound.


List of Controllers
Each synthesizer, whether it is an external instrument, or is part of a soundboard, has a specific set of controllers that it recognizes. An electronic piano may have only two: sustaining pedal, and soft pedal. The possible range on each controller is from 0 to 127. Some controllers use all the values, others require only two - On (usually 127) and Off (usually 0), some need only one - usually 0. The following is a list of the most common and standardized controllers:
No. Description Remarks Value
0 Bank select Different sets of sounds are stored in different banks 0-127
1 Modulation This refers to Amplitude Modulation - a form of vibrato 0-127
6, 38 Data Entry Some controllers require further input - 6=MSB, 38=LSB 0-127
7 Master Volume This can control the volume, either static or changing, over and above the effect of velocity 0-127
10 Pan This affects the Left/Right location of the sound. Can also be continuously changed. 0-127
11 Expression The effect is the same as Master Volume. Usually used in a changing fashion.0-127
64 Damper Pedal This is a sustaining pedal. It is most useful when used with an electronic piano. 0,127
67 Soft Pedal This is a soft pedal. It is most useful when used with an electronic piano. 0,127
91 Reverb Depth This controls the amount of Reverb on a particular channel. Synthesizers also provide for a variety of Reverb sources.0-127
93 Chorus Depth This controls the amount of Chorus on a particular channel. Synthesizers also provide for a variety of Chorus sources.0-127
98 NRPN LSB Non-Registered-Parameter-Number (least significant byte). Requires additional Data Entry (Controllers 6,38). Can be used to modify existing Patches.0-127
99 NRPN MSB Non-Registered-Parameter-Number (most significant byte). Requires additional Data Entry (Controllers 6,38). Can be used to modify existing Patches.127
100 RPN LSB Registered-Parameter-Number (least significant byte). Requires additional Data Entry (Controllers 6,38). Mostly used to expand Pitchbend range.0
101 RPN MSB Registered-Parameter-Number (most significant byte). Requires additional Data Entry (Controllers 6,38). Mostly used to expand Pitchbend range.0
120 All Sounds Off Turns all sounds off for specified channel.0
121 Reset All Controllers Will reset Controllers to their default values. May not affect ALL controllers (e.g. 7, 10, 91, 93).0


GM Patches
The following is the list of names and numbers of the General MIDI set of sounds. In a MIDI file, a Program Change will reference one of these numbers, and the music will switch to that sound as stored for the soundboard, external synth, or sound module.
Category Prog# Preset Prog# Preset Prog# Preset Prog# Preset
Piano 1 Acoustic Grand Piano 2 Bright Acoustic Piano 3 Electric Grand Piano 4 Honky-tonk Piano
5 Electric Piano 1 6 Electric Piano 2 7 Harpsichord 8 Clavi
Chromatic Percussion 9 Celesta 10 Glockenspiel 11 Music Box 12 Vibraphone
13 Marimba 14 Xylophone 15 Tubular Bells 16 Dulcimer
Organ 17 Drawbar Organ 18 Percussive Organ 19 Rock Organ 20 Church Organ
21 Reed Organ 22 Accordian 23 Harmonica 24 Tango Accordian
Guitar 25 Acoustic Guitar (nylon) 26 Acoustic Guitar (steel) 27 Electric Guitar (jazz) 28 Electric Guitar (clean)
29 Electric Guitar (muted) 30 Overdriven Guitar 31 Distortion Guitar 32 Guitar Harmonics
Bass 33 Acoustic Bass 34 Electric Bass (finger) 35 Electric Bass (pick) 36 Fretless Bass
37 Slap Bass 1 38 Slap Bass 2 39 Synth Bass 1 40 Synth Bass 2
Strings/ orchestra 41 Violin 42 Viola 43 Cello 44 Contrabass
45 Tremolo Strings 46 Pizzicato Strings 47 Orchestral Harp 48 Timpani
Ensemble 49 String Ensemble 1 50 String Ensemble 2 51 SynthStrings 1 52 SynthStrings2
53 Choir Aahs 54 Voice Oohs 55 Synth Voice 56 Orchestra Hit
Brass 57 Trumpet 58 Trombone 59 Tuba 60 Muted Trumpet
61 French Horn 62 Brass Section 63 SynthBrass 1 64 SynthBrass 2
Reed 65 Soprano Sax 66 Alto Sax 67 Tenor Sax 68 Baritone Sax
69 Oboe 70 English Horn 71 Bassoon 72 Clarinet
Pipe 73 Piccolo 74 Flute 75 Recorder 76 Pan Flute
77 Blown Bottle 78 Shakuhachi 79 Whistle 80 Ocarina
Synth lead 81 Lead 1 (square) 82 Lead 2 (sawtooth) 83 Lead 3 (calliope) 84 Lead 4 (chiff)
85 Lead 5 (charang) 86 Lead 6 (voice) 87 Lead 7 (fifths) 88 Lead 8 (bass + lead)
Synth pad etc. 89 Pad 1 (new age) 90 Pad 2 (warm) 91 Pad 3 (polysynth) 92 Pad 4 (choir)
93 Pad 5 (bowed) 94 Pad 6 (metallic) 95 Pad 7 (halo) 96 Pad 8 (sweep)
Synth SFX 97 FX 1 (rain) 98 FX 2 (soundtrack) 99 FX 3 (crystal) 100 FX 4 (atmosphere)
101 FX 5 (brightness) 102 FX 6 (goblins) 103 FX 7 (echoes) 104 FX 8 (sci-fi)
Ethnic 105 Sitar 106 Banjo 107 Shamisen 108 Koto
109 Kalimba 110 Bagpipe 111 Fiddle 112 Shanai
Percussive 113 Tinkle Bell 114 Agogo 115 Steel Drums 116 Woodblock
117 Taiko Drum 118 Melodic Tom 119 Synth Drum 120 Reverse Cymbal
SFX 121 Guitar Fret Noise 122 Breath Noise 123 Seashore 124 Bird Tweet
125 Telephone Ring 126 Helicopter 127 Applause 128 Gunshot


Standard Drum Kit
GM interprets Channel 10 as a Drum Kit. Program Change 1 on Channel 10 is the Standard Drum Kit. Each instrument or sound in the Standard Drum Kit is selected and played on a specific note number. For example, Snare Drum 1 sounds when the note D2 is played.
Octave Note Note Number Instrument
1 Eb 27 High Q
E 28 Slap
F 29 Scratch Push
F# 30 Scratch Pull
G 31 Sticks
Ab 32 Square Click
A 33 Metronome Click
Bb 34 Metronome Bell
B 35 Kick Drum 2
2 C 36 Kick Drum 1
C# 37 Side Stick
D 38 Snare Drum 1
Eb 39 Hand Clap
E 40 Snare Drum 2
F 41 Low Tom 2
F# 42 Closed Hi-Hat
G 43 Low Tom 1
Ab 44 Pedal Hi-Hat
A 45 Mid Tom 2
Bb 46 Open Hi-Hat
B 47 Mid Tom 1
3 C 48 High Tom 2
C# 49 Crash Cymbal 1
D 50 High Tom 1
Eb 51 Ride Cymbal 1
E 52 Chinese Cymbal
F 53 Ride Bell
F# 54 Tambourine
G 55 Splash Cymbal
Ab 56 Cowbell
A 57 Crash Cymbal 2
Bb 58 Vibra Slap
B 59 Ride Cymbal 2
4 C 60 High Bongo
C# 61 Low Bongo
D 62 Mute High Conga
Eb 63 Open High Conga
E 64 Low Conga
F 65 High Timbale
F# 66 Low Timbale
G 67 High Agogo
Ab 68 Low Agogo
A 69 Casaba
Bb 70 Maracas
B 71 Short High Whistle
5 C 72 Long Low Whistle
C# 73 Short Guiro
D 74 Long Guiro
Eb 75 Claves
E 76 High Wood Block
F 77 Low Wood Block
F# 78 Muted Cuica
G 79 Open Cuica
Ab 80 Mute Triangle
A 81 Open Triangle
Bb 82 Shaker
B 83 Jingle Bell
6 C 84 Belltree
C# 85 Castanets
D 86 Mute Surdo
Eb 87 Open Surdo


What is MP3 ?

MP3 is a format for creating a digital recording, similar to a CD. This would eliminate the problem inherent in MIDI, where the sound one hears is totally dependant on equipment on each hearer's computer (the soundboard or external synthesizer or other instrument attached to the computer).

Of course, the ideal situation is to simply create a CD type file, which is called a Wave (.wav) file. A Wave file can be created from a MIDI file, or a live performance, or from any kind of a sound source. The problem with this is simply the practical one of space. Wave files occupy huge amounts of space, and if you were to try to store a number of Wave files on your hard disk, it would be filled up before long. Also, it would take forever to upload it to the Internet, or to download it from the Internet onto your computer.

MP3 (.mp3) is a sort of compromise. It is a compression of a Wave file, eliminating aspects of the sound that apparently can't be heard anyhow. And it only occupies about one tenth of the space of a Wave file, but is still many times larger than a MIDI file. The size of .mp3 and .wav files are strictly dependant upon the length of the music, whereas the size of a .mid file is also dependant upon its complexity (number of tracks, number of notes etc.). Here are two examples to display relative sizes (in bytes):
A MIDI File Its MP3 File Its Wave File
86,016 3,933,959 43,384,832
45,056 4,382,848 48,332,846

A rule of thumb to estimate the size of an MP3 file, is that it takes about one Meg of disk space for each minute of sound.