Table 1: MIDI 1.0 Specification Message Summary Updated 1995 By the MIDI Manufacturers Association Status Data Byte(s) Description D7----D0 D7----D0 ------------------------------------------------------------------------- Channel Voice Messages [nnnn = 0-15 (MIDI Channel Number 1-16)] ------------------------------------------------------------------------- 1000nnnn 0kkkkkkk Note Off event. 0vvvvvvv This message is sent when a note is released (ended). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity. 1001nnnn 0kkkkkkk Note On event. 0vvvvvvv This message is sent when a note is depressed (start). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity. 1010nnnn 0kkkkkkk Polyphonic Key Pressure (Aftertouch). 0vvvvvvv This message is most often sent by pressing down on the key after it "bottoms out". (kkkkkkk) is the key (note) number. (vvvvvvv) is the pressure value. 1011nnnn 0ccccccc Control Change. 0vvvvvvv This message is sent when a controller value changes. Controllers include devices such as pedals and levers. Controller numbers 120-127 are reserved as "Channel Mode Messages" (below). (ccccccc) is the controller number. (vvvvvvv) is the new value (0-119). 1100nnnn 0ppppppp Program Change. This message sent when the patch number changes. (ppppppp) is the new program number. 1101nnnn 0vvvvvvv Channel Pressure (After-touch). This message is most often sent by pressing down on the key after it "bottoms out". This message is different from polyphonic after-touch. Use this message to send the single greatest pressure value (of all the current depressed keys). (vvvvvvv) is the pressure value. 1110nnnn 0lllllll Pitch Wheel Change. 0mmmmmmm This message is sent to indicate a change in the pitch wheel. The pitch wheel is measured by a fourteen bit value. Center (no pitch change) is 2000H. Sensitivity is a function of the transmitter. (llllll) are the least significant 7 bits. (mmmmmm) are the most significant 7 bits. ------------------------------------------------------------------------- Channel Mode Messages (See also Control Change, above) ------------------------------------------------------------------------- 1011nnnn 0ccccccc Channel Mode Messages. 0vvvvvvv This the same code as the Control Change (above), but implements Mode control and special message by using reserved controller numbers 120-127. The commands are: All Sound Off. When All Sound Off is received all oscillators will turn off, and their volume envelopes are set to zero as soon as possible. c = 120, v = 0: All Sound Off Reset All Controllers. When Reset All Controllers is received, all controller values are reset to their default values. (See specific Recommended Practices for defaults). c = 121, v = x: Value must only be zero unless otherwise allowed in a specific Recommended Practice. Local Control. When Local Control is Off, all devices on a given channel will respond only to data received over MIDI. Played data, etc. will be ignored. Local Control On restores the functions of the normal controllers. c = 122, v = 0: Local Control Off c = 122, v = 127: Local Control On All Notes Off. When an All Notes Off is received, all oscillators will turn off. c = 123, v = 0: All Notes Off (See text for description of actual mode commands.) c = 124, v = 0: Omni Mode Off c = 125, v = 0: Omni Mode On c = 126, v = M: Mono Mode On (Poly Off) where M is the number of channels (Omni Off) or 0 (Omni On) c = 127, v = 0: Poly Mode On (Mono Off) (Note: These four messages also cause All Notes Off) Table 3: Control Changes and Mode Changes (Status Bytes 176-191) (adapted from "MIDI by the Numbers" by D. Valenti-Electronic Musician 2/88) Updated 1995/1999 By the MIDI Manufacturers Association ------------------------------------------------------------------------------ 2nd Byte Value | Function | 3rd Byte Binary |Hex|Dec | | Value | Use - - - - -|- -|- - | - - - - - - - - - - - - - - - - - - - -|- - - - | - - - - 00000000= 00= 0 | Bank Select | 0-127 | MSB 00000001= 01= 1 | Modulation wheel | 0-127 | MSB 00000010= 02= 2 | Breath control | 0-127 | MSB 00000011= 03= 3 | Undefined | 0-127 | MSB 00000100= 04= 4 | Foot controller | 0-127 | MSB 00000101= 05= 5 | Portamento time | 0-127 | MSB 00000110= 06= 6 | Data Entry | 0-127 | MSB 00000111= 07= 7 | Channel Volume (formerly Main Volume) | 0-127 | MSB 00001000= 08= 8 | Balance | 0-127 | MSB 00001001= 09= 9 | Undefined | 0-127 | MSB 00001010= 0A= 10 | Pan | 0-127 | MSB 00001011= 0B= 11 | Expression Controller | 0-127 | MSB 00001100= 0C= 12 | Effect control 1 | 0-127 | MSB 00001101= 0D= 13 | Effect control 2 | 0-127 | MSB 00001110= 0E= 14 | Undefined | 0-127 | MSB 00001111= 0F= 15 | Undefined | 0-127 | MSB 00010000= 10= 16 | General Purpose Controller #1 | 0-127 | MSB 00010001= 11= 17 | General Purpose Controller #2 | 0-127 | MSB 00010010= 12= 18 | General Purpose Controller #3 | 0-127 | MSB 00010011= 13= 19 | General Purpose Controller #4 | 0-127 | MSB 00010100= 14= 20 | Undefined | 0-127 | MSB 00010101= 15= 21 | Undefined | 0-127 | MSB 00010110= 16= 22 | Undefined | 0-127 | MSB 00010111= 17= 23 | Undefined | 0-127 | MSB 00011000= 18= 24 | Undefined | 0-127 | MSB 00011001= 19= 25 | Undefined | 0-127 | MSB 00011010= 1A= 26 | Undefined | 0-127 | MSB 00011011= 1B= 27 | Undefined | 0-127 | MSB 00011100= 1C= 28 | Undefined | 0-127 | MSB 00011101= 1D= 29 | Undefined | 0-127 | MSB 00011110= 1E= 30 | Undefined | 0-127 | MSB 00011111= 1F= 31 | Undefined | 0-127 | MSB 00100000= 20= 32 | Bank Select | 0-127 | LSB 00100001= 21= 33 | Modulation wheel | 0-127 | LSB 00100010= 22= 34 | Breath control | 0-127 | LSB 00100011= 23= 35 | Undefined | 0-127 | LSB 00100100= 24= 36 | Foot controller | 0-127 | LSB 00100101= 25= 37 | Portamento time | 0-127 | LSB 00100110= 26= 38 | Data entry | 0-127 | LSB 00100111= 27= 39 | Channel Volume (formerly Main Volume) | 0-127 | LSB 00101000= 28= 40 | Balance | 0-127 | LSB 00101001= 29= 41 | Undefined | 0-127 | LSB 00101010= 2A= 42 | Pan | 0-127 | LSB 00101011= 2B= 43 | Expression Controller | 0-127 | LSB 00101100= 2C= 44 | Effect control 1 | 0-127 | LSB 00101101= 2D= 45 | Effect control 2 | 0-127 | LSB 00101110= 2E= 46 | Undefined | 0-127 | LSB 00101111= 2F= 47 | Undefined | 0-127 | LSB 00110000= 30= 48 | General Purpose Controller #1 | 0-127 | LSB 00110001= 31= 49 | General Purpose Controller #2 | 0-127 | LSB 00110010= 32= 50 | General Purpose Controller #3 | 0-127 | LSB 00110011= 33= 51 | General Purpose Controller #4 | 0-127 | LSB 00110100= 34= 52 | Undefined | 0-127 | LSB 00110101= 35= 53 | Undefined | 0-127 | LSB 00110110= 36= 54 | Undefined | 0-127 | LSB 00110111= 37= 55 | Undefined | 0-127 | LSB 00111000= 38= 56 | Undefined | 0-127 | LSB 00111001= 39= 57 | Undefined | 0-127 | LSB 00111010= 3A= 58 | Undefined | 0-127 | LSB 00111011= 3B= 59 | Undefined | 0-127 | LSB 00111100= 3C= 60 | Undefined | 0-127 | LSB 00111101= 3D= 61 | Undefined | 0-127 | LSB 00111110= 3E= 62 | Undefined | 0-127 | LSB 00111111= 3F= 63 | Undefined | 0-127 | LSB 01000000= 40= 64 | Damper pedal on/off (Sustain) | <63=off|>64=on 01000001= 41= 65 | Portamento on/off | <63=off|>64=on 01000010= 42= 66 | Sustenuto on/off | <63=off|>64=on 01000011= 43= 67 | Soft pedal on/off | <63=off|>64=on 01000100= 44= 68 | Legato Footswitch | <63=off|>64=on 01000101= 45= 69 | Hold 2 | <63=off|>64=on 01000110= 46= 70 | Sound Cont. 1 (Sound Variation) | 0-127 | LSB 01000111= 47= 71 | Sound Cont. 2 (Timbre/Harmonic Intens.)| 0-127 | LSB 01001000= 48= 72 | Sound Cont. 3 (Release Time) | 0-127 | LSB 01001001= 49= 73 | Sound Cont. 4 (Attack Time) | 0-127 | LSB 01001010= 4A= 74 | Sound Cont. 5 (Brightness) | 0-127 | LSB 01001011= 4B= 75 | Sound Cont. 6 (Decay Time) | 0-127 | LSB 01001100= 4C= 76 | Sound Cont. 7 (Vibrato Rate) | 0-127 | LSB 01001101= 4D= 77 | Sound Cont. 8 (Vibrato Depth) | 0-127 | LSB 01001110= 4E= 78 | Sound Cont. 9 (Vibrato Delay) | 0-127 | LSB 01001111= 4F= 79 | Sound Cont. 10 | 0-127 | LSB 01010000= 50= 80 | General Purpose Controller #5 | 0-127 | LSB 01010001= 51= 81 | General Purpose Controller #6 | 0-127 | LSB 01010010= 52= 82 | General Purpose Controller #7 | 0-127 | LSB 01010011= 53= 83 | General Purpose Controller #8 | 0-127 | LSB 01010100= 54= 84 | Portamento Control | 0-127 |Source Note 01010101= 55= 85 | Undefined | 0-127 | LSB 01010110= 56= 86 | Undefined | 0-127 | LSB 01010111= 57= 87 | Undefined | 0-127 | LSB 01011000= 58= 88 | Undefined | 0-127 | LSB 01011001= 59= 89 | Undefined | 0-127 | LSB 01011010= 5A= 90 | Undefined | 0-127 | LSB 01011011= 5B= 91 | Reverb Send Level | 0-127 | LSB 01011100= 5C= 92 | Effects 2 Depth (Tremolo Depth) | 0-127 | LSB 01011101= 5D= 93 | Chorus Send Level | 0-127 | LSB 01011110= 5E= 94 | Effects 4 Depth (Celeste/Detune Depth) | 0-127 | LSB 01011111= 5F= 95 | Effects 5 Depth (Phaser Depth) | 0-127 | LSB 01100000= 60= 96 | Data entry +1 | N/A 01100001= 61= 97 | Data entry -1 | N/A 01100010= 62= 98 | Non-Registered Parameter Number LSB | 0-127 | LSB 01100011= 63= 99 | Non-Registered Parameter Number MSB | 0-127 | MSB 01100100= 64= 100 | Registered Parameter Number LSB* | 0-127 | LSB 01100101= 65= 101 | Registered Parameter Number MSB* | 0-127 | MSB 01100110= 66= 102 | Undefined | ? 01100111= 67= 103 | Undefined | ? 01101000= 68= 104 | Undefined | ? 01101001= 69= 105 | Undefined | ? 01101010= 6A= 106 | Undefined | ? 01101011= 6B= 107 | Undefined | ? 01101100= 6C= 108 | Undefined | ? 01101101= 6D= 109 | Undefined | ? 01101110= 6E= 110 | Undefined | ? 01101111= 6F= 111 | Undefined | ? 01110000= 70= 112 | Undefined | ? 01110001= 71= 113 | Undefined | ? 01110010= 72= 114 | Undefined | ? 01110011= 73= 115 | Undefined | ? 01110100= 74= 116 | Undefined | ? 01110101= 75= 117 | Undefined | ? 01110110= 76= 118 | Undefined | ? 01110111= 77= 119 | Undefined | ? ----------------- 01111000= 78= 120 | All Sound Off | 0 01111001= 79= 121 | Reset All Controllers | 0 01111010= 7A= 122 | Local control on/off | 0=off 127=on 01111011= 7B= 123 | All notes off | 0 01111100= 7C= 124 | Omni mode off (+ all notes off) | 0 01111101= 7D= 125 | Omni mode on (+ all notes off) | 0 01111110= 7E= 126 | Poly mode on/off (+ all notes off) | ** 01111111= 7F= 127 | Poly mode on | 0 (incl mono=off +all notes off) **Note: This equals the number of channels, or zero if the number of channels equals the number of voices in the receiver. *Table 3a: Registered Parameter Numbers [CC# 65H,64H] ------------------------------------------------------------ CC#65 (MSB) | CC#64 (LSB) | Function Hex|Dec| | Hex|Dec| | - - - - - - | - - - - - - |- - - - - - - - - - - - - - - - 00 = 0 | 00 = 0 | Pitch Bend Sensitivity 00 = 0 | 01 = 1 | Channel Fine Tuning 00 = 0 | 02 = 2 | Channel Coarse Tuning 00 = 0 | 03 = 3 | Tuning Program Change 00 = 0 | 04 = 4 | Tuning Bank Select