Music 726.1: Electronic Music Studio 1

MIDI: The Musical Instrument Digital Interface

by Hubert Howe

1. Background

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

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.