The MIDI program change message tells a MIDI device that at a certain time certain program should be selected for one of the MIDI channels.
Usually this means that an instrument will be selected for the MIDI channel and notes that follow this message will be played with the selected instrument. Occasionally a program change could mean something else such as the selection of a drum beat in a MIDI drum machine.
This message belongs to the category of MIDI voice messages.
The MIDI program change message consists of two bytes of data. The first byte is the status byte and has hexadecimal values between 0xC0 and 0xCF. The high nibble of the status byte is C, which tells the MIDI device that this is a "program change" message. The low nibble of the status byte is between 0 and F (0 and 15 in decimal values) and points to one of the 16 MIDI channels. One byte follows the status byte and has values between 0x00 and 0x7F (0 and 127 in decimal values). It signifies the program that should be selected. A list of the standard programs is provided below.
The following is an example of a MIDI program change message.
0xC6 0x07
The status byte 0xC6 shows that this is a program change message for channel 6. The selected program is 0x07, which for most devices means that a clavinet was selected as the instrument for this channel.
If the status byte is 0xC9, then the program change message has a special meaning. MIDI channel 9 (starting from 0) is the MIDI percussion channel and plays percussion instruments. Thus, a program change message will usually select a specific set of percussion instruments depending on the MIDI device. A list of the percussion instruments is provided below.
The following is a list of defined standard program changes.
Hexadecimal value |
Decimal value |
Program change |
Piano | ||
0x00 | 0 | Acoustic grand piano |
0x01 | 1 | Bright acoustic piano |
0x02 | 2 | Electric grand piano |
0x03 | 3 | Honky tonk piano |
0x04 | 4 | Electric piano 1 |
0x05 | 5 | Electric piano 2 |
0x06 | 6 | Harpsicord |
0x07 | 7 | Clavinet |
Chromatic percussion | ||
0x08 | 8 | Celesta |
0x09 | 9 | Glockenspiel |
0x0A | 10 | Music box |
0x0B | 11 | Vibraphone |
0x0C | 12 | Marimba |
0x0D | 13 | Xylophone |
0x0E | 14 | Tubular bell |
0x0F | 15 | Dulcimer |
Organ | ||
0x10 | 16 | Hammond / drawbar organ |
0x11 | 17 | Percussive organ |
0x12 | 18 | Rock organ |
0x13 | 19 | Church organ |
0x14 | 20 | Reed organ |
0x15 | 21 | Accordion |
0x16 | 22 | Harmonica |
0x17 | 23 | Tango accordion |
Guitar | ||
0x18 | 24 | Nylon string acoustic guitar |
0x19 | 25 | Steel string acoustic guitar |
0x1A | 26 | Jazz electric guitar |
0x1B | 27 | Clean electric guitar |
0x1C | 28 | Muted electric guitar |
0x1D | 29 | Overdriven guitar |
0x1E | 30 | Distortion guitar |
0x1F | 31 | Guitar harmonics |
Bass | ||
0x20 | 32 | Acoustic bass |
0x21 | 33 | Fingered electric bass |
0x22 | 34 | Picked electric bass |
0x23 | 35 | Fretless bass |
0x24 | 36 | Slap bass 1 |
0x25 | 37 | Slap bass 2 |
0x26 | 38 | Synth bass 1 |
0x27 | 39 | Synth bass 2 |
Strings | ||
0x28 | 40 | Violin |
0x29 | 41 | Viola |
0x2A | 42 | Cello |
0x2B | 43 | Contrabass |
0x2C | 44 | Tremolo strings |
0x2D | 45 | Pizzicato strings |
0x2E | 46 | Orchestral strings / harp |
0x2F | 47 | Timpani |
Ensemble | ||
0x30 | 48 | String ensemble 1 |
0x31 | 49 | String ensemble 2 / slow strings |
0x32 | 50 | Synth strings 1 |
0x33 | 51 | Synth strings 2 |
0x34 | 52 | Choir aahs |
0x35 | 53 | Voice oohs |
0x36 | 54 | Synth choir / voice |
0x37 | 55 | Orchestra hit |
Brass | ||
0x38 | 56 | Trumpet |
0x39 | 57 | Trombone |
0x3A | 58 | Tuba |
0x3B | 59 | Muted trumpet |
0x3C | 60 | French horn |
0x3D | 61 | Brass ensemble |
0x3E | 62 | Synth brass 1 |
0x3F | 63 | Synth brass 2 |
Reed | ||
0x40 | 64 | Soprano sax |
0x41 | 65 | Alto sax |
0x42 | 66 | Tenor sax |
0x43 | 67 | Baritone sax |
0x44 | 68 | Oboe |
0x45 | 69 | English horn |
0x46 | 70 | Bassoon |
0x47 | 71 | Clarinet |
Pipe | ||
0x48 | 72 | Piccolo |
0x49 | 73 | Flute |
0x4A | 74 | Recorder |
0x4B | 75 | Pan flute |
0x4C | 76 | Bottle blow / blown bottle |
0x4D | 77 | Shakuhachi |
0x4E | 78 | Whistle |
0x4F | 79 | Ocarina |
Synth lead | ||
0x50 | 80 | Synth square wave |
0x51 | 81 | Synth saw wave |
0x52 | 82 | Synth calliope |
0x53 | 83 | Synth chiff |
0x54 | 84 | Synth charang |
0x55 | 85 | Synth voice |
0x56 | 86 | Synth fifths saw |
0x57 | 87 | Synth brass and lead |
Synth pad | ||
0x58 | 88 | Fantasia / new age |
0x59 | 89 | Warm pad |
0x5A | 90 | Polysynth |
0x5B | 91 | Space vox / choir |
0x5C | 92 | Bowed glass |
0x5D | 93 | Metal pad |
0x5E | 94 | Halo pad |
0x5F | 95 | Sweep pad |
Synth effects | ||
0x60 | 96 | Ice rain |
0x61 | 97 | Soundtrack |
0x62 | 98 | Crystal |
0x63 | 99 | Atmosphere |
0x64 | 100 | Brightness |
0x65 | 101 | Goblins |
0x66 | 102 | Echo drops / echoes |
0x67 | 103 | Sci fi |
Ethnic | ||
0x68 | 104 | Sitar |
0x69 | 105 | Banjo |
0x6A | 106 | Shamisen |
0x6B | 107 | Koto |
0x6C | 108 | Kalimba |
0x6D | 109 | Bag pipe |
0x6E | 110 | Fiddle |
0x6F | 111 | Shanai |
Percussive | ||
0x70 | 112 | Tinkle bell |
0x71 | 113 | Agogo |
0x72 | 114 | Steel drums |
0x73 | 115 | Woodblock |
0x74 | 116 | Taiko drum |
0x75 | 117 | Melodic tom |
0x76 | 118 | Synth drum |
0x77 | 119 | Reverse cymbal |
Sound effects | ||
0x78 | 120 | Guitar fret noise |
0x79 | 121 | Breath noise |
0x7A | 122 | Seashore |
0x7B | 123 | Bird tweet |
0x7C | 124 | Telephone ring |
0x7D | 125 | Helicopter |
0x7E | 126 | Applause |
0x7F | 127 | Gunshot |
The following is a list of percussion instruments played on MIDI channel 9.
Hexadecimal value |
Decimal value |
Note | Instrument |
0x23 | 35 | B | Acoustic bass drum |
0x24 | 36 | C | Bass drum 1 |
0x25 | 37 | C#/Db | Side stick |
0x26 | 38 | D | Acoustic snare |
0x27 | 39 | D#/Eb | Hand clap |
0x28 | 40 | E | Electric snare |
0x29 | 41 | F | Low floor tom |
0x2A | 42 | F#/Gb | Closed hihat |
0x2B | 43 | G | High floor tom |
0x2C | 44 | G#/Ab | Pedal hihat |
0x2D | 45 | A | Low tom |
0x2E | 46 | A#/Bb | Open hihat |
0x2F | 47 | B | Low-mid tom |
0x30 | 48 | C | High-mid tom |
0x31 | 49 | C#/Db | Crash cymbal 1 |
0x32 | 50 | D | High tom |
0x33 | 51 | D#/Eb | Ride cymbal 1 |
0x34 | 52 | E | Chinese cymbal |
0x35 | 53 | F | Ride bell |
0x36 | 54 | F#/Gb | Tambourine |
0x37 | 55 | G | Splash cymbal |
0x38 | 56 | G#/Ab | Cowbell |
0x39 | 57 | A | Crash cymbal 2 |
0x3A | 58 | A#/Bb | Vibraslap |
0x3B | 59 | B | Ride cymbal 2 |
0x3C | 60 | C | High bongo |
0x3D | 61 | C#/Db | Low bongo |
0x3E | 62 | D | Mute high conga |
0x3F | 63 | D#/Eb | Open high conga |
0x40 | 64 | E | Low conga |
0x41 | 65 | F | High timbale |
0x42 | 66 | F#/Gb | Low timbale |
0x43 | 67 | G | High agogo |
0x44 | 68 | G#/Ab | Low agogo |
0x45 | 69 | A | Cabasa |
0x46 | 70 | A#/Bb | Maracas |
0x47 | 71 | B | Short whistle |
0x48 | 72 | C | Long whistle |
0x49 | 73 | C#/Db | Short guiro |
0x4A | 74 | D | Long guiro |
0x4B | 75 | D#/Eb | Claves |
0x4C | 76 | E | High wood block |
0x4D | 77 | F | Low wood block |
0x4E | 78 | F#/Gb | Mute cuica |
0x4F | 79 | G | Open cuica |
0x50 | 80 | G#/Ab | Mute triangle |
0x51 | 81 | A | Open triangle |
Comments
Older comments
admin: First posted on 2013 03 21
anonymous, 2013 03 21: this is really good - especially the comment about percussion on channel 9 instead of 10. It depends on if you start counting up from 0 or 1. This tidbit saved me some problems with the program I was working on.
Hi recordingblogs.com admin,
Hi recordingblogs.com admin, Thanks for the great post!
To the recordingblogs.com
To the recordingblogs.com admin, Your posts are always well-supported and evidence-based.
Add new comment