Chapter Three: MIDI

9. Non-code MIDI Extensions

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.

  • Type 0: These files consist of one track, with note and other events being tagged with the MIDI channels to which they belong.
  • Type 1: A sequence is saved as separate tracks, even if more than one track is assigned to the same MIDI channel. Track labels are also maintained.
  • Type 2: Same as Type 1 (separate tracks), but each track may have its own tempo.

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.

General MIDI

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.