In 1983, the manufacturers of electronic musical instruments formed a group called the MIDI Manufacturers Association (MMA) and published the MIDI 1.0 Specification. The purpose of the specification was to standardize the way in which musical instruments operate, in order that a keyboard from one manufacturer would be able to be used with a tone generator from another. While different manufacturers had already worked out ways for their own instruments to perform these functions, a common method would advance the interests of the industry as a whole.
This was the time in history when Japanese manufacturers were beginning to dominate the industry. Before that time, music synthesizers had been an American invention, with the main companies (Moog and Buchla) having begun as small start-ups much like the now-famous Hewlett Packard and Apple Computer. The main Japanese manufacturers were Yamaha (the dominant force in the industry), Roland and Korg, and the main American ones were Moog Music, Oberheim, Sequential Circuits, E-mu, and Ensoniq (just beginning). In addition, the New England Digital company, manufacturer of the Synclavier, had long dominated the high-end market (along with the Australian company Fairlight). Kurzweil, now a major company, did not yet exist, and Sequential Circuits and Oberheim were soon bought out by Japanese companies. (Yamaha also bought out Korg but decided to keep it as a separate group because of their innovative ideas.) The personal computer industry was also beginning to flourish, and the data unit of the byte had become standardized and implemented in ever-cheaper and more powerful memory chips. This was also the time when manufacturers were beginning to convert their internal circuitry from analog to digital form, even when they were manufacturing "analog" synthesizers, and to embody the structure of their machines into integrated circuits.
The MIDI specification has now been implemented in millions of instruments and other devices, such as computer sound cards. While often criticized as being slow or inadequate for purposes not envisioned at the time it was designed, no major revisions to the standard have been adopted, in spite of some major proposals made by researchers. (See below for a discussion of General Midi 1 and 2, which are the main revisions to the standard.) If an another standard is ever developed, it could possibly make obsolete all the equipment now owned, which is a daunting prospect to consider.
Another point worth bearing in mind is that the manufacturers of electronic instruments at that time were generally producing keyboards, and the MIDI specification is heavily biased towards keyboard playing, at the expense of other forms of live performance. However, devices based on wind, string, guitar and percussion performance have now been adapted to the MIDI specification, so that this is not now regarded as a major impediment.
There used to be a MIDI users' group called the International MIDI Association (IMA), but it does not appear to be active now. The MMA is reachable at www.midi.org.
2. The MIDI 1.0 Specification
The MIDI 1.0 specification is a communications protocol for transmitting information between control devices (principally keyboards) and tone generators. The keyboard synthesizer is thus conceived as a combination of a controller and a tone generator, with the keyboard being able to control other tone generators and the tone generator capable of being controlled by external keyboards. The transmission protocol selected by the MMA is one widely used in the computer industry (in modems, for example), namely the serial transmission of data in bytes by a Universal Asynchronous Receiver-Transmitter (UART, also known as an RS-232-C interface) at a rate of 31.25 kilobaud, with a start bit, 8 data bits, and stop bit. This makes a total of 10 bits for a period of 320 microseconds per serial byte. The only unusual aspect of this system is the baud rate, which is not used by any other standard devices.
The MIDI cable uses a 5-pin DIN plug, but only the middle three pins are used. (I believe that this was chosen because it was not used by any other standard audio device at that time.) All MIDI instruments are supposed to have MIDI In, Out, and Thru (sic) connectors, although some devices that are not intended to connect to anything else (like the MIDI displays) only have In jacks. The In port is intended to receive data, Out to transmit back to the controller, and Thru to transmit the data on to other instruments. Thus, the original idea was to connect instruments together in a daisy-chain fashion, with each instrument in turn transmitting data on until it reaches the correct device. This process could take a conceivably perceptible amount of time, and most studios now employ MIDI switching devices that transmit data to different instruments simultaneously.
It is important to keep in mind that the MIDI specification only describes control information, which is basically performance data. There is no detailed description of the sounds produced, and unless the same type of equipment is used with the same information transmitted, the sounds produced by different instruments may not be the same, since not all devices respond the same way to the control information. In order to use MIDI intelligently, the user must be aware of the characteristics of the tone generators being used.
3. Message Types
Since all data are transmitted in the form of bytes, a system for organizing the messages was created. First, some preliminary decisions had to be made. The MIDI specification defines 16 channels, each of which can refer to a different instrument. At this time in history, synthesizers were capable of playing only a single program at once, the remarkable advance from monophonic to polyphonic synthesizers having only just been made. Similarly, when values began to be specified in digital rather than analog form, there were a relatively small number of positions that could be used, like 32, 64, or 99 in Yamaha's DX-7. So the 128 different positions (0-127) seemed to be sufficient. The system of 16 instruments in a MIDI set-up and 128 data values became the prescribed limitations.
All bytes with the high bit set to 1 (128 to 255 or 80 to FF in hexadecimal) are status bytes, and all bytes with values of 0 to 127 are data that provide the values to which the parameters specified are set. Status bytes are divided into two types, channel and system messages, and these are in turn divided into further categories.
All channel messages contain a 4-bit value that addresses one of the 16 MIDI channels, and they are divided into two types:
Voice messages control the instrument's voices, in order to produce sounds. There are many types, and indeed these constitute the bulk of all MIDI messages.
Mode messages define the instrument's response to voice messages. These are discussed in the next section immediately below.
System messages do not address specific channels. There are three types:
Common messages are intended for all units in a system.
Real-Time messages are also intended for all units. There is actually little difference between common and real-time messages, except that different things are described.
Exclusive messages can contain any number of data bytes, and are not defined in the MIDI system. Each manufacturer is assigned a unique code number (ID), after which they can treat the data any way they want. This is the method that MIDI allows for devices to connect to one another for purposes of a bulk dump or a computer editing program.
4. Channel Modes
The individual sounds played on synthesizers are called voices. The way in which the instrument generates the sound and the number and quality of sounds it produces are not defined in the MIDI system. Channel modes are described by two parameters, referred to as Omni and Poly, and they can be either on or off to create four ways in which the synthesizer can respond.
Poly refers to the whether the synthesizer is capable of playing more than one sound at a time. If poly is off, the synthesizer is said to be in mono mode. In mono mode, only one sound can be played at a time, and if multiple keys are played only the last one will sound.
Omni refers to whether the synthesizer responds only to messages on a single channel or to messages on all channels. If omni is on, then the synthesizer will play messages received on any channel, whereas if it is off, then only messages received on the one channel to which it is set will be played.
5. Channel Voice Messages
These are the most important messages sent between MIDI instruments, and they are divided into seven types. Each message consists of a status byte (the channel message itself) followed by one or two data bytes, the number required being determined by the type of channel message. Thus, it would seem that data would be sent in groups of two or three bytes, the first of which was always the status byte; except that the designers implemented something known as Running Status which vastly simplifies the amount of data required. Running status applies only to channel voice and mode messages, and basically it states that, once an initial status byte has been sent, it can be followed by any number of data bytes (either singly or in pairs as required by the type of status byte) until another status byte is sent. Thus, when in the midst of playing an instrument, if the performer is simply playing new notes, only note on/off information needs to be sent, until some other type of event occurs; and since note on with velocity zero is taken to be the same as note off, only note on messages may be sent for a considerable length of time. The message types are as follows:
Value Message Type Bytes Meaning 8n Note Off 2 key, velocity 9n Note On 2 key, velocity An Polyphonic Key Pressure/After Touch 2 key, pressure value Bn Control Change 2 controller number, value Cn Program Change 1 program number Dn Channel Pressure/After Touch 1 pressure value En Pitch Bend 2 bend value (lsb, msb)
Let us note some properties of the items defined here.
The "theoretical" MIDI keyboard is conceived of as having 128 different keys, with values of 0 to 127. Many synthesizers have only 61 keys, and the grand piano has 88, which means that there are 40 additional possible keys. While no instruments produce such values, they are easily generated by computer sequencers, and many instruments will respond to these values. Since the assumption is that most instruments will be playing equally-tempered notes, this may seem like an excessive value; but if we were playing a quarter-tone keyboard, for example, the entire span would cover just over five octaves. The span of pitches denoted by the keys is as follows: middle C is key 60; C two octaves below that, which is the lowest key on a five-octave keyboard and the lowest note playable on the cello, is 36. C three octaves above middle C, the highest key on a five-octave keyboard, is 96. The lowest C on the piano is 24, and the highest is 108. The lowest note on the piano, an A, is key 21. The total range of notes possible is indicated as C-2 to G8 in sequencer programs (the octave designations are taken from the piano keyboard, with C-2 being two octaves off the bottom end).
MIDI defines 128 different velocities, but velocity zero is taken to be silence, and a note on message with velocity zero is taken to be the same as a note off message. (Therefore, the entire note off message is superfluous!) The middle value is 64, and non-velocity-sensitive keyboards produce this value for all velocities. There is no defined meaning to the different velocity values, although the middle value is indicated as being between mezzo piano and mezzo forte. Players are not generally aware of the velocities that are actually produced when they strike keyboards in particular ways, and different keyboards may respond differently, as indeed they may use different sensing mechanisms. It is the case that higher values will always produce higher amplitudes, although you may not be able to tell the difference between two values unless there is a noticeable difference between them. In sequencer performances, I have found that almost any reasonable system, such as assigning different dynamics to values 12 or 16 apart, will work.
It was noted above that note off is not really necessary, and it is even stranger that the manufacturers have assigned a note off velocity to this message. To the best of my knowledge, no use has ever been made of this value, although some sequencer programs do use the note off message rather than note on with velocity zero.
Polyphonic key pressure or after touch is the pressure you apply to the keyboard after the initial key has been struck, and it is different from the velocity. MIDI defines two different types of pressure messages: polyphonic key pressure produces a different value for each key, whereas channel pressure produces one value for all keys. Let us note, first of all, that the type of keyboard playing that uses after touch is unique to synthesizers, and neither pianists nor organists play their keys in this way, even though organists do claim to play with different types of touch responses. Second, playing with polyphonic key pressure is truly complex, and probably beyond the scope of most players, except in some rudimentary way. Finally, if it is used, it can clog the MIDI transmitters with thousands of messages, which can sometimes overload the system and cause a crash. (This problem can also occur with other messages, such as controller changes.) Sequences stored on the computer can be huge, with most of the messages not causing audible changes in the sound anyway. Some programs provide a method for "thinning out" these and other types of data, or they may allow the entire parameter not to be recorded. Some keyboards are not pressure sensitive, but more recent models have attempted to implement the entire MIDI specification. Later descriptions of the MIDI specification state that channel pressure is sent by pressing down on the key after it "bottoms out," and that it sends the single greatest pressure value. The pressure or after touch system is basically the MIDI manufacturer's sop to the players of other types of instruments besides keyboards, such as wind and string players. Using it allows some tones to include various kinds of expression similar to what these players achieve with breath or bow pressure, even though it is produced by the keyboard. Some wind controllers produce data that are mapped into after touch values. In any case, most synthesizer programs have to be tweaked to make them respond to pressure in the proper way.
The original MIDI specification defined two types of controllers: switches (on/off), and continuous controllers. Controllers are basically devices other than the keys that the player uses during a performance, such as foot pedals; but the average synthesizer contains several devices that go even beyond acoustic instruments, such as the modulation wheel, breath controllers, and the pitch bender, which is placed in a category all its own. Each type of controller is given a number, which is the first data value indicated, but the original MIDI specification defined only a small number of controllers, and it reserved messages 122-127 (now changed to 120-127) for channel mode messages. The list of defined controllers has been expanded, but there are still many undefined values. Switches are given controller numbers from 64 up, and controllers from 0-63 can respond to data values from 0 to 127. The most important controllers are as follows:
Control # Device Control # Device 0 Bank select 64 Damper (sustain) pedal 1 Modulation wheel 65 Portamento on/off 2 Breath control 66 Sostenuto on/off 4 Foot controller 67 Soft pedal on/off 5 Portamento time 68 Legato footswitch 6 Data entry 7 Channel Volume (*) 96 Data increment (+1) 8 Balance 97 Data decrement (-1) 10 Pan
(*) This was originally the main volume for the entire keyboard, but revised to the volume for a specific channel.
A program is a defined setting on the synthesizer, in which it is prepared to play in a given configuration. There are 128 different possible programs, but not all synthesizers have implemented all these values, and some have implemented even more through a system of bank switching. Most programs are given names descriptive of the sound produced, and the General MIDI Specification (see below), which was adopted in 1991, attempts to standardize them, although not all instruments have followed these suggestions. A program change message simply directs the synthesizer to change to a program with a specific number on the channel indicated.
All MIDI keyboards now include a pitch bender, which is a wheel at the left of the keyboard that "bends" the pitch up or down (the wheel comes to rest in the middle). Since our ears are extremely sensitive to pitch data, it was recognized that any effort to have this respond only to 128 different values would be fruitless, so the manufacturers decided to use two data bytes, which gives the bender 16,384 different possible values. Depending on how the program is set, the bender can produce from no change to a very small change to a change of several octaves.
6. Other Messages
There are several other types of messages produced by MIDI devices. These include channel mode, system common, and system real-time messages.
Channel mode messages include the indications for omni and poly on and off, as mentioned above, as well as a couple of other items. The complete list is as follows:
Cntrl # Meaning 120 All sound off (*). 121 Reset all controllers (*). 122 Local control on/off (interrupts the messages from the keyboard and its internal tone generator). 123 All notes off (a “panic” button used in case a note gets “stuck,” which can happen when a note on message is sent without a note off). 124 Omni mode off (+ all notes off). 125 Omni mode on (+ all notes off). 126 Poly mode on/off (+ all notes off) (data value indicates number of channels). 127 Poly mode on (mono off, + all notes off).
(*) These items were added with the adoption of General MIDI 1 standard.
There are four system common messages as well as three undefined ones, as follows:
Message Meaning 240 System exclusive, followed by manufacturer’s ID number and any number of bytes, whose meaning is undefined by MIDI itself. 242 Song position pointer, a 14-bit value holding the number of MIDI beats (1 beat = six MIDI ticks) since the start of the song. 243 Song select, specified which sequence (0-127) is to be played. 246 Tune request. 247 End of system exclusive.
There are six defined system real time messages, which are concerned with synchronizing the system for use in real time and for (hardware) sequencers. The list is as follows:
Message Meaning 248 Timing clock is a metronome, which is sent at a rate of 24 ticks per quarter note (this allows the quarter note to be evenly divided into 2, 3, 4, 6, 8, or 12 units). 250 Start the current sequence playing. 251 Continue from where the current sequence stopped. 253 Stop the current sequence. 255 Active sensing, a dummy status byte that can be sent at a maximum of every 300 milliseconds when there is no other activity occurring. 256 Reset all receivers in system to power-up status.
7. The MIDI File Specification
The "Standard MIDI Files 1.0" specification was adopted in 1988 as a method of exchanging information between different sequencer programs and different computers. In addition to adopting a variety of standard methods to encode text and other data, it adds the one important aspect that was missing from the original MIDI specification: encoding of time values. All MIDI files are intended to include a tempo and time signature (if not specified, they are set to defaults of 4/4 and 120 beats per measure).
Three types of files are defined:
0 the file contains a single multi-channel track 1 the file contains one or more simultaneous tracks of a sequence 2 the file contains one or more sequentially independent single-track patterns
Some programs only recognize files of the first two types.
Files are made up of chunks. Each chunk has a 4-character (byte) type and 32-bit length, which is the number of bytes in the chunk. There are two types of chunks: header chunks and track chunks. A track chunk contains a sequential stream of MIDI data which may contain information for up to 16 channels. Each track chunk is simply a stream of MIDI events (and non-MIDI events) preceded by delta-time values. These can be diagramed as follows:
[Track chunk] = [chunk type] [length] [MTrk event] [MTrk event] = [delta-time] [event] [event] = [MIDI event] | [sysex event] | [meta-event]
Delta-time is a variable-length quantity, representing the amount of time before the following event. If the first event occurs at the beginning of a track, a delta-time of zero is used. Delta-times are always present, and they represent some fraction of a beat. Events are standard MIDI channel messages, and "sysex events" are system exclusive messages.
Meta-events define aspects of the overall sequence. They are not necessary, and some programs may not recognize some of them. Defined meta-events are as follows:
Values Meta-Event FF 00 02 ssss Sequence Number (indicated by “ssss”) FF 01 ken text Text Event. It can describe anything, including comments FF 02 len text Copyright Notice FF 03 len text Sequence/Track Name FF 04 len text Instrument Name FF 05 len text Lyric FF 06 len text Marker FF 07 len text Cue Point FF 20 01 cc MIDI Channel Prefix (predefines track, may be overridden by data) FF 2F 00 End of Track FF 51 03 tttttt Set Tempo, in microseconds per quarter note FF 54 05 hr mn se fr ff SMPTE Offset FF 58 04 nn dd cc bb Time Signature. nn, dd = numerator, denominator. cc indicates the denominator as a power of 2 (2=quarter note, 3=eighth, etc.). bb expresses the number of 32nd notes per quarter note. For example, 6/8 time would be indicated as: FF 58 04 06 03 24 08 (values in hexadecimal). FF 59 02 sf mi Key Signature. sf= number of sharps (negative=flats), mi=major/minor. FF 7F len data Sequencer-Specific Meta-Event
8. Problems, Extensions, and Changes
Since the MIDI specification was adopted, there have been several problems and changes to the system. In fact, the entire conception has evolved into something a bit different. In this section I will attempt to cover some of the more important of these aspects.
(a) Unimplemented Aspects: Ever since the beginning, not all manufacturers have implemented all aspects of the MIDI system. The most important unimplemented aspect is non-velocity-sensitive keyboards, of which there are many. Originally, this was used as a price differential (i.e, you would pay more for getting velocity sensitivity). The other item used to create the price differential was the number of voices in the keyboard: some keyboards could play only 4, 8, or 16 voices, with more voice-stealing on the tone generators with fewer voices. Another problem was that some manufacturers (i.e. Casio) used undefined controller numbers to address specific items on their keyboards, but the controllers were later defined as being something different, with the result that these keyboards may produce incorrect results.
(b) Voice Stealing: Early tone generators produced a smaller number of voices, such as 4 or 8 tones. When the fifth note is struck on a 4-tone generator, the tone is robbed from the first key that had been struck, so that there are never more than four voices sounding. This is a problem on all synthesizers, no matter how many voices they produce. When the sustain pedal is used, numerous tones can be extended, even though the player isn't touching all those keys. Because MIDI is a serial transmission protocol, nothing is truly transmitted simultaneously.
(c) Sample Dumps: When samplers started to be introduced, which was a few years after the MIDI specification was introduced, manufacturers wanted to transmit sample data between computer programs or other samplers via the MIDI interface; but samples may take megabytes of data, and the transmission rate is very slow for this purpose, sometimes taking minutes to load the data. Nevertheless, no other method has been developed. In 1999, the MMA introduced the "DLS Level 1" specification for downloadable sounds to standardize this process.
(d) Extending the number of Programs: The limit of 128 programs has proven to be too much for some manufacturers, so they have developed bank-switching methods of bringing a larger number of programs into the synthesizer. Since this limit is built into MIDI, these programs can only be accessed either by manual switching or by system exclusive processes.
(e) Multi Mode: When MIDI was adopted, synthesizers played only one program at a time; but soon thereafter, manufacturers began to conceive of multi-timbral synthesizers much in the same way that they had conceived of polyphonic keyboards to replace the formerly monophonic keyboards. Even though the performer can play keyboards in only one channel at a time, if driven by a remote controller, the tone generator can play multi-timbrally. The system that was used allowed the tone generator to play a different program on each of the 16 MIDI channels. Many instruments now work in this way, and others allow 8 different channels to play different programs. Some keyboards also have a split point so that it can transmit in more than one channel from different regions.
(f) Sound cards: Many personal computers now include sound cards that allow the playback of wave files. In addition to this capability, most of them also include an internal multi-channel synthesizer and MIDI interface, although many users don't use it (some don't even know about it). Instead of connecting to a MIDI jack, an adapter connecting to the joystick port must be employed to connect to a MIDI jack. In no keyboard input is present, users can't play in sequencer data, but they can enter it manually and play it back through the internal synthesizer.
9. General MIDI
In order to provide a measure of compatibility among MIDI instruments, in 1991 the MMA adopted the General MIDI System Level 1 (GM1), and in 1999 there was another revision, General MIDI Level 2 (GM2). There were two overall purposes for adopting these new systems: to ensure that instruments would include certain voice and multi-timbral capabilities, and to group the programs into families (the GM1 Instrument Patch Map) so that users would not have to reset all their program numbers when playing their sequences on different synthesizers. The multi-timbral capabilities have been widely adopted, but the patch map is less popular.
The capabilities implemented by GM1 are as follows:
Voices: Instruments must be capable of playing at least 24 separate voices simultaneously, or 16 voices for "melody" and 8 for percussion.
Channels: All 16 MIDI channels are supported. Each channel can play a variable number of voices (polyphony). Each channel can play a different instrument (program). Key-based percussion is always on channel 10.
Instruments: A minimum of 16 simultaneous and different timbres playing various instruments, and a minimum of 128 preset instruments conforming to the GM1 Instrument Patch Map and 47 percussion sounds conforming to the GM1 Percussion Key Map (see below).
Channel Messages: Continuous controllers 1, 7, 10, 11, 64, 121 and 123 (see above) as well as channel pressure and pitch bend.
The General MIDI Level 1 Sound Set organizes the synthesizer patches into families. The problem with this idea is that the standard says nothing about the sound, only its name. Some of the names are traditional acoustic instruments, and others exist only in certain synthesizers. The families are as follows (PC# means "MIDI Program Change Number"):
PC# Family PC# Family 1-8 Piano 65-72 Reed 9-16 Chromatic Percussion 73-80 Pipe 17-24 Organ 81-88 Synth Lead 25-32 Guitar 89-96 Synth Pad 33-40 Bass 97-104 Synth Effects 41-48 Strings 105-112 Ethnic 49-56 Ensemble 113-120 Percussive 57-64 Brass 121-128 Sound Effects
The complete GM1 Instrument Patch Map is as follows:
PC# Instrument PC# Instrument 1. Acoustic Grand Piano 65. Soprano Sax 2. Bright Acoustic Piano 66. Alto Sax 3. Electric Grand Piano 67. Tenor Sax 4. Honky-tonk Piano 68. Baritone Sax 5. Electric Piano 1 69. Oboe 6. Electric Piano 2 70. English Horn 7. Harpsichord 71. Bassoon 8. Clavi 72. Clarinet 9. Celesta 73. Piccolo 10. Glockenspiel 74. Flute 11. Music Box 75. Recorder 12. Vibraphone 76. Pan Flute 13. Marimba 77. Blown Bottle 14. Xylophone 78. Shakuhachi 15. Tubular Bells 79. Whistle 16. Dulcimer 80. Ocarina 17. Drawbar Organ 81. Lead 1 (square) 18. Percussive Organ 82. Lead 2 (sawtooth) 19. Rock Organ 83. Lead 3 (calliope) 20. Church Organ 84. Lead 4 (chiff) 21. Reed Organ 85. Lead 5 (charang) 22. Accordion 86. Lead 6 (voice) 23. Harmonica 87. Lead 7 (fifths) 24. Tango Accordion 88. Lead 8 (bass + lead) 25. Acoustic Guitar (nylon) 89. Pad 1 (new age) 26. Acoustic Guitar (steel) 90. Pad 2 (warm) 27. Electric Guitar (jazz) 91. Pad 3 (polysynth) 28. Electric Guitar (clean) 92. Pad 4 (choir) 29. Electric Guitar (muted) 93. Pad 5 (bowed) 30. Overdriven Guitar 94. Pad 6 (metallic) 31. Distortion Guitar 95. Pad 7 (halo) 32. Guitar harmonics 96. Pad 8 (sweep) 33. Acoustic Bass 97. FX 1 (rain) 34. Electric Bass (finger) 98. FX 2 (soundtrack) 35. Electric Bass (pick) 99. FX 3 (crystal) 36. Fretless Bass 100. FX 4 (atmosphere) 37. Slap Bass 1 101. FX 5 (brightness) 38. Slap Bass 2 102. FX 6 (goblins) 39. Synth Bass 1 103. FX 7 (echoes) 40. Synth Bass 2 104. FX 8 (sci-fi) 41. Violin 105. Sitar 42. Viola 106. Banjo 43. Cello 107. Shamisen 44. Contrabass 108. Koto 45. Tremolo Strings 109. Kalimba 46. Pizzicato Strings 110. Bag pipe 47. Orchestral Harp 111. Fiddle 48. Timpani 112. Shanai 49. String Ensemble 1 113. Tinkle Bell 50. String Ensemble 2 114. Agogo 51. SynthStrings 1 115. Steel Drums 52. SynthStrings 2 116. Woodblock 53. Choir Aahs 117. Taiko Drum 54. Voice Oohs 118. Melodic Tom 55. Synth Voice 119. Synth Drum 56. Orchestra Hit 120. Reverse Cymbal 57. Trumpet 121. Guitar Fret Noise 58. Trombone 122. Breath Noise 59. Tuba 123. Seashore 60. Muted Trumpet 124. Bird Tweet 61. French Horn 125. Telephone Ring 62. Brass Section 126. Helicopter 63. SynthBrass 1 127. Applause 64. SynthBrass 2 128. Gunshot
On MIDI Channel 10, each MIDI note number ("key#") corresponds to a different drum sound. The complete General MIDI Level 1 Percussion Key Map is as follows:
Key # Drum Sound Key # Drum Sound 35 Acoustic Bass Drum 59 Ride Cymbal 2 36 Bass Drum 1 60 Hi Bongo 37 Side Stick 61 Low Bongo 38 Acoustic Snare 62 Mute Hi Conga 39 Hand Clap 63 Open Hi Conga 40 Electric Snare 64 Low Conga 41 Low Floor Tom 65 High Timbale 42 Closed Hi Hat 66 Low Timbale 43 High Floor Tom 67 High Agogo 44 Pedal Hi-Hat 68 Low Agogo 45 Low Tom 69 Cabasa 46 Open Hi-Hat 70 Maracas 47 Low-Mid Tom 71 Short Whistle 48 Hi Mid Tom 72 Long Whistle 49 Crash Cymbal 1 73 Short Guiro 50 High Tom 74 Long Guiro 51 Ride Cymbal 1 75 Claves 52 Chinese Cymbal 76 Hi Wood Block 53 Ride Bell 77 Low Wood Block 54 Tambourine 78 Mute Cuica 55 Splash Cymbal 79 Open Cuica 56 Cowbell 80 Mute Triangle 57 Crash Cymbal 2 81 Open Triangle 58 Vibraslap
The GM2 specification is far less inclusive than GM1. The main change is the adoption of 32 simultaneous notes with polyphonic capabilities on all 16 channels, and two simultaneous percussion kits on channels 10 and 11. Beyond this, the standard supports several additional controllers, registered parameter numbers (for features such as pitch bend sensitivity), universal system exclusive messages, and an expanded percussion sound set. In addition, the industry has created a "GM2 Logo" to be displayed on synthesizers that adhere to the standard.