General MIDI numbers


General MIDI patch numbers

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

 


General MIDI Percussion (on Channel 9)

Bass  KeyNumSound  Treble  KeyNumSound
A_ 33 Metronome Click          
B_b 34 Metronome Bell   
B_ 35 Acoustic Bass Drum   
C 36 Bass Drum 1  C 60 Hi Bongo
C# 37 Side Stick  C# 61 Low Bongo
D 38 Acoustic Snare  D 62 Mute Hi Conga
Eb 39 Hand Clap  D# 63 Open Hi Conga
E 40 Electric Snare  E 64 Low Conga
F 41 Low Floor Tom  F 65 High Timbale
F# 42 Closed Hi-Hat  F# 66 Low Timbale
G 43 High Floor Tom  G 67 High Agogo
G# 44 Pedal Hi-Hat  G# 68 Low Agogo
A 45 Low Tom  A 69 Cabasa
Bb 46 Open Hi-Hat  Bb 70 Maracas
Bn 47 Low-Mid Tom  Bn 71 Short Whistle
c 48 Hi-Mid Tom  c 72 Long Whistle
c# 49 Crash Cymbal 1  c# 73 Short Guiro
d 50 High Tom  d 74 Long Guiro
eb 51 Ride Cymbal 1  d# 75 Claves
e 52 Chinese Cymbal  e 76 Hi Wood Block
f 53 Ride Bell  f 77 Low Wood Block
f# 54 Tambourine  f# 78 Mute Cuica
g 55 Splash Cymbal  g 79 Open Cuica
g# 56 Cowbell  g# 80 Mute Triangle
a 57 Crash Cymbal 2  a 81 Open Triangle
bb 58 Vibraslap   82
bn 59 Ride Cymbal 2   83

 


MIDI Controller numbers

0    Bank Select (MSB) 32    Bank Select (LSB) 64    Sustain Pedal 96    Data Increment
1    Modulation (MSB) 33    Modulation (LSB) 65    Portamento on/off 97    Data Decrement
2    Breath Control (MSB) 34    Breath Control (LSB) 66    Sostenuto Pedal 98    non-reg param lsb
        67    Soft Pedal 99    non-reg param msb
4    Foot Control (MSB) 36    Foot Control (LSB) 68    Legato Pedal 100    Reg-Param (LSB)
5    Portamento Time MSB   37    Portamento Time LSB   69    Hold 2 101    Reg-Param (MSB)
6    Data Entry (MSB) 38    Data Entry (LSB) 70    Sound Variation    
7    Channel Volume MSB 39    Channel Volume LSB 71    Resonance    
8    Balance (MSB) 40    Balance (LSB) 72    Release Time    
        73    Attack Time    
10    Pan (MSB) 42    Pan (LSB) 74    Cut-off Frequency    
11    Expression (MSB) 43    Expression (LSB) 75    Decay Time    
12    Effects Controller 1     76    Vibrato Rate    
13    Effects Controller 2     77    Vibrato Depth    
        78    Vibrato Delay    
               
16    Gen Purpose 1 (MSB) 48    Gen Purpose 1 (LSB) 80    Gen Purpose 5    
17    Gen Purpose 2 (MSB) 49    Gen Purpose 2 (LSB) 81    Gen Purpose 6    
18    Gen Purpose 3 (MSB) 50    Gen Purpose 3 (LSB) 82    Gen Purpose 7    
19    Gen Purpose 4 (MSB) 51    Gen Purpose 4 (LSB) 83    Gen Purpose 8    
        84    Portamento Control    
               
            120    All Sound Off
            121    Reset All Controllers
            122    Local Control
        91    Reverb Depth 123    All Notes Off
        92    Tremolo Depth 124    Omni Off
        93    Chorus Depth 125    Omni On
        94    Celeste (De-tune) 126    Mono On (Poly Off)
        95    Phaser Depth 127    Poly On (Mono Off)

Controller numbers 64 to 69 are ON/OFF; if the 3rd byte is 64 or greater that means ON.

To set a Registered Parameter, first send controllers 101 and 100 with the required Number, then send controllers 6 and 38 with the two bytes of data, then send controllers 101 and 100 with the numbers 127.
Some useful Registered Parameters are:
Pitch Bend Sensitivity: cc101=0, cc100=0, cc6=0..24 semitones, cc38=0, cc101=127, cc100=127
Modulation Depth Range: cc101=0, cc100=5, cc6=0..6, cc38=0..127, cc101=127, cc100=127


The patches and percussion lists came from the MIDI-Perl module (you need to install MIDI-Perl anyway, to get muscript's MIDI output working) using a little Perl script such as the following . . .
#! /usr/bin/perl
use MIDI;
print "\nGeneral MIDI patch numbers:\n";
foreach (sort {$a<=>$b} keys %MIDI::number2patch) {
   print "$_ $MIDI::number2patch{$_}\n";
}
print "\nGeneral MIDI Percussion (on Channel 9):\n";
foreach (sort {$a<=>$b} keys %MIDI::notenum2percussion) {
   print "$_ $MIDI::notenum2percussion{$_}\n";
}

See also:   www.pjb.com.au   www.pjb.com.au/midi   www.pjb.com.au/muscript