Other Non-code Extensions to MIDI
Standard MIDI Files
Created in 1988 due to an explosion of different types of MIDI software, a standard, transportable file format for saving MIDI sequences and opening them with other programs was adopted. Today, for example, a composer may save a Standard MIDI File created by a notation program and open it in a MIDI sequencing program, which will understand the various parameters of the file, such as track names, tempo changes, etc.. With the ability to embed and play sequences directly on computer sound cards, standard MIDI files have become commonplace items in web page authoring (particularly the online greeting card market). Also, tens of thousands of playable or downloadable SMF performances are available from sites like Classical Archives.
There are three main types of Standard MIDI Files, and most programs will give the user a choice when saving as an SMF. Not all programs respond to each type, however, so know the capability of the programs you are saving for.
Because SMF's are intended to be as universal as possible, they not only contain note information, but also include the number of MIDI clocks that need to elapse between note events (the time these actually take are relative to the tempo indication). Each event is preceded by a delta time value, which uses two bytes (14-bit precision). Metadata embedded in a standard MIDI file include such things as track names, track General MIDI instrument, tempo change, key signatures, lyrics (which allow many Karaoke machines to read and display them—seriously!), and even system exclusive data.
The fact that users could share Standard MIDI files did not guarantee that those files would be played back with the same sort of timbres they were made with, either by instruments or computers reading web pages. So in 1991 a standard was adopted by the MIDI Manufactures Association (MMA) and the Japan MIDI Standards Cmte. which they called called General MIDI System Level 1 (or just General MIDI or GM). Certain programs of either General MIDI instruments or computer sound cards synthesizers would contain specific instrumental or sound effects patches. In addition, GM-compliant keyboards or sound cards (or now plug-ins) have to meet certain other standards as well. They need to have a minimum of 24 voices, 16 MIDI channels of variable polyphony, percussion assigned to MIDI channel 10, a minimum of 128 programs (using the Program Change Data Byte 0-127 values) and have support for controllers #1,7,10, 64, 121 and 123, velocity, channel pressure and pitch bend (set to +/- 2 semitones). In addition, percussion maps (what percussion instrument sounded on what key#) were standardized, so if your instrument has several GM drum kits they will be mapped as indicated below on the GM Percussion Keymap link.
General MIDI Level 1 Instrument Patch Map with Families
|Piano||Organ||Bass||Ensemble||Reed||Synth Lead||Synth Effects||Percussive|
|1.||Acoustic Grand Piano||17.||Drawbar Organ||33.||Acoustic Bass||49.||String Ensemble 1||65.||Soprano Sax||81.||Lead 1 (square)||97.||FX 1 (rain)||113.||Tinkle Bell|
|2.||Bright Acoustic Piano||18.||Percussive Organ||34.||Electric Bass (finger)||50.||String Ensemble 2||66.||Alto Sax||82.||Lead 2 (sawtooth)||98.||FX 2 (soundtrack)||114.||Agogo|
|3.||Electric Grand Piano||19.||Rock Organ||35.||Electric Bass (pick)||51.||SynthStrings 1||67.||Tenor Sax||83.||Lead 3 (calliope)||99.||FX 3 (crystal)||115.||Steel Drums|
|4.||Honky-tonk Piano||20.||Church Organ||36.||Fretless Bass||52.||SynthStrings 2||68.||Baritone Sax||84.||Lead 4 (chiff)||100.||FX 4 (atmosphere)||116.||Woodblock|
|5.||Electric Piano 1||21.||Reed Organ||37.||Slap Bass 1||53.||Choir Aahs||69.||Oboe||85.||Lead 5 (charang)||101.||FX 5 (brightness)||117.||Taiko Drum|
|6.||Electric Piano 2||22.||Accordion||38.||Slap Bass 2||54.||Voice Oohs||70.||English Horn||86.||Lead 6 (voice)||102.||FX 6 (goblins)||118.||Melodic Tom|
|7.||Harpsichord||23.||Harmonica||39.||Synth Bass 1||55.||Synth Voice||71.||Bassoon||87.||Lead 7 (fifths)||103.||FX 7 (echoes)||119.||Synth Drum|
|8.||Clavi||24.||Tango Accordion||40.||Synth Bass 2||56.||Orchestra Hit||72.||Clarinet||88.||Lead 8 (bass + lead)||104.||FX 8 (sci-fi)||120.||Reverse Cymbal|
|Chromatic Percussion||Guitar||Strings||Brass||Pipe||Synth Pad||Ethnic||Sound Effects|
|9.||Celesta||25.||Acoustic Guitar (nylon)||41.||Violin||57.||Trumpet||73.||Piccolo||89.||Pad 1 (new age)||105.||Sitar||121.||Guitar Fret Noise|
|10.||Glockenspiel||26.||Acoustic Guitar (steel)||42.||Viola||58.||Trombone||74.||Flute||90.||Pad 2 (warm)||106.||Banjo||122.||Breath Noise|
|11.||Music Box||27.||Electric Guitar (jazz)||43.||Cello||59.||Tuba||75.||Recorder||91.||Pad 3 (polysynth)||107.||Shamisen||123.||Seashore|
|12.||Vibraphone||28.||Electric Guitar (clean)||44.||Contrabass||60.||Muted Trumpet||76.||Pan Flute||92.||Pad 4 (choir)||108.||Koto||124.||Bird Tweet|
|13.||Marimba||29.||Electric Guitar (muted)||45.||Tremolo Strings||61.||French Horn||77.||Blown Bottle||93.||Pad 5 (bowed)||109.||Kalimba||125.||Telephone Ring|
|14.||Xylophone||30.||Overdriven Guitar||46.||Pizzicato Strings||62.||Brass Section||78.||Shakuhachi||94.||Pad 6 (metallic)||110.||Bag pipe||126.||Helicopter|
|15.||Tubular Bells||31.||Distortion Guitar||47.||Orchestral Harp||63.||SynthBrass 1||79.||Whistle||95.||Pad 7 (halo)||111.||Fiddle||127.||Applause|
|16.||Dulcimer||32.||Guitar harmonics||48.||Timpani||64.||SynthBrass 2||80.||Ocarina||96.||Pad 8 (sweep)||112.||Shanai||128.||Gunshot|
On MIDI Channel 10, each MIDI Note number ("Key#") corresponds to a different drum sound, as shown below. GM-compatible instruments must have the sounds on the keys shown here. While many current instruments also have additional sounds above or below the range show here, and may even have additional "kits" with variations of these sounds, only these sounds are supported by General MIDI Level 1 devices.
|General MIDI Level 1 Percussion Key Map (with Key # and Pitch (60=middle C)|
|35||B||Acoustic Bass Drum||45||A||Low Tom||55||G||Splash Cymbal||65||F||High Timbale||75||D#||Claves|
|36||C||Bass Drum 1||46||A#||Open Hi-Hat||56||G#||Cowbell||66||F#||Low Timbale||76||E||Hi Wood Block|
|37||C#||Side Stick||47||B||Low-Mid Tom||57||A||Crash Cymbal 2||67||G||High Agogo||77||F||Low Wood Block|
|38||D||Acoustic Snare||48||C||Hi-Mid Tom||58||A#||Vibraslap||68||G#||Low Agogo||78||F#||Mute Cuica|
|39||D#||Hand Clap||49||C#||Crash Cymbal 1||59||B||Ride Cymbal 2||69||A||Cabasa||79||G||Open Cuica|
|40||E||Electric Snare||50||D||High Tom||60||C||Hi Bongo||70||A#||Maracas||80||G#||Mute Triangle|
|41||F||Low Floor Tom||51||D#||Ride Cymbal 1||61||C#||Low Bongo||71||B||Short Whistle||81||A||Open Triangle|
|42||F#||Closed Hi Hat||52||E||Chinese Cymbal||62||D||Mute Hi Conga||72||C||Long Whistle|
|43||G||High Floor Tom||53||F||Ride Bell||63||D#||Open Hi Conga||73||C#||Short Guiro|
|44||G#||Pedal Hi-Hat||54||F#||Tambourine||64||E||Low Conga||74||D||Long Guiro|
The Roland Corporation created a superset of GM Level 1 called GS. GM files will play on a GS instrument or sound card, but GS files may use additional banks of sounds that more specifically capture what a composer had in mind. GS files will 'default' to GM patches if necessary to play on a GM instrument. The ubiquitous Roland Sound Canvas and Sound Brush were GS modules.
In 2003, the MMA came out with a significant extension of GM called GM level 2 (or just GM2), which adds many more controllers, bank control, etc. Click here for a complete summary (after free registration). Many new standards, such a GM Lite, XMF (Extensible Music File), SP-MIDI (Scalable Polyphony MIDI Spec.), DLS (Downloadable Sounds Specification) can be found at the MIDI Manufacturers Associate website (http://www.midi.org/).
For updated charts, GM Lite and any other new additions, please check with The MIDI Association. Membership is free.