MIDI Control Change Messages

All MIDI status byte and data byte values are in hexadecimal

 

MIDI Control Change Messages
Status
Byte
Data
Bytes
Message Description
Bn cc nn Controller Change Sent when a change is made in a footswitch, expression pedal, slider, or other controller.
  n 0-F MIDI Channel (note 1) 0 = Ch 1
  cc 00-77 Controller Number
00-1F Continuous Controllers, MSB
20-3F Continuous Controllers, LSB corresponding to controllers 00-31 (note 2)
40-5F Single-byte controllers
60-65 Increment/Decrement and Parameter numbers
66-77 Undefined Single-byte controllers
  nn 00-7F Controller Value (note 3) Continuous Controllers
00=min, 40=center, 7F=max
Switched Controllers
00-3F=off, 40-7F=on
Controller
(cc)
Function Description
00 Bank Select, MSB The Bank Select message allows the user to switch between different 'banks' of programs (instrument sets), thereby expanding the range of the Program Change message.

The messages Bank Select MSB, Bank Select LSB, Program Change must be sent as a sequence, with minimal delay between them.

The Bank Select should not come into effect until the subsequent Program Change message is received.

20 Bank Select, LSB
01 Modulation Wheel or Lever  
02 Breath Controller  
04 Foot Controller  
05 Portamento time  
06 Data Entry, MSB  
07 Channel Volume  
08 Balance  
0A Pan  
0B Expression Controller  
0C Effect Control 1  
0D Effect Control 2  
10-13 General Purpose Controllers 1-4  
20-3F LSB for controllers 00-1F  
40 Damper Pedal (sustain)  
41 Portamento On/Off  
42 Sostenuto  
43 Soft pedal  
44 Legato footswitch Puts the receiver into a monophonic mode, where if a note-on message is received before the previous note's note-off message, the pitch is shifted without restarting the envelope.
45 Hold 2  
46-4F Sound Controllers 1-10 Controller default function
1 Sound Variation
2 Timbre/Harmonic Intensity
3 Release Time
nn: 00=shortest, 40=unchanged, 7F=longest,
4 Attack Time
nn: 00=shortest, 40=unchanged, 7F=longest,
5 Brightness
6-10 No default
50-53 General Purpose Controllers 5-8  
54 Portamento control nn = note from which to start glide of next note.
Affects only the next Note-On message on the same MIDI channel as this message. This makes the next note glide from the value specified in this message, nn to the value of the Note-On message.
5B-5F Effects 1-5 Depth Effect default function
1 External Effects Depth
2 Tremelo Depth
3 Chorus Depth
4 Celeste (Detune) Depth
5 Phaser Depth
60 Data Increment  
61 Data Decrement  
62 Non-registered Parameter number, LSB Non-registered parameters may be used as needed by manufacturers. They should be described in the owner's manual

The parameter value is specified by a subsequent Data entry, Data Increment or Data Decrement message.

63 Non-registered Parameter number, MSB
64 Registered Parameter number, LSB 00 00 Pitch Bend sensitivity
00 01 Fine Tuning
00 02 Corse Tuning
00 03 Tuning Program Select
00 04 Tuning Bank Select
The parameter value is specified by a subsequent Data entry, Data Increment or Data Decrement message.
65 Registered Parameter number, MSB
03
09
0E
0F
14-1F
55-5A
66-77
Undefined  

Footnotes

Note 1
If a MIDI device in Channel Mode 4 (Omni off, Mono), it is possible to control all channels simultaneously, by sending the control message on the MIDI Channel:
 
n = (basic channel) - 1

This is known as a Global Control meesage. If the Basic Channel is 0, the Global Channel is n=F (MIDI Channel 16)

 

Note 2
The LSB is optional, and need not be sent if fine control is not required. If not sent, the LSB is assumed to be zero.

Furthermore, once both MSB and LSB control messages have been sent, fine adjustments can be made by sending subsequent LSB control messages only. It is not necessary to re-send the MSB if it is unchanged.

 

Note 3
Switched controller transmitters should generate 00=off, and 7F=on.

Switched control receivers must respond to the value range 00-3F=off, and 40-7F=on, since the transmitter may be a continuous controller.

 

 
Previous midi_channel_voice.html Up Contents Next midi_channel_mode.html  
MIDI Controller Numbers
The table below presents a summary of the MIDI Standard Controller codes in decimal and hexadecimal (h) form.
Decimal Hex Controller Name
0 00h Bank Select (Controller # 32 more commonly used)
1 01h Modulation Wheel
2 02h Breath Contoller
3 03h Undefined
4 04h Foot Controller
5 05h Portamento Time
6 06h Data Entry MSB
7 07h Main Volume
8 08h Balance
9 09h Undefined
10 0Ah Pan
11 0Bh 0Ch
12 0Ch Effect Control 1
13 0Dh Effect Control 2
14-15 0E-0Fh Undefined
16-19 10-13h General Purpose Controllers (Nos. 1-4)
20-31 14-1Fh Undefined
32-63 20-3Fh LSB for Controllers 0-31 (rarely implemented)
64 40h Damper Pedal (Sustain) [Data Byte of 0-63=0ff, 64-127=On]
65 41h Portamento
66 42h Sostenuto
67 43h Soft Pedal
68 44h Legato Footswitch
69 45h Hold 2
70 46h Sound Controller 1 (default: Sound Variation)
71 47h Sound Controller 2 (default: Timbre/Harmonic Content)
72 48h Sound Controller 3 (default: Release Time)
73 49h Sound Controller 4 (default: Attack Time)
74 4Ah Sound Controller 5 (default: Brightness)
75-79 4B-4Fh Sound Controller 6-10 (no defaults)
80-83 50-53h General Purpose Controllers (Nos. 5-8)
84 54h Portamento Control
85-90 55-5Ah Undefined
91 5Bh Effects 1 Depth (previously External Effects Depth)
92 5Ch Effects 2 Depth (previously Tremolo Depth)
93 5Dh Effects 3 Depth (previously Chorus Depth)
94 5Eh Effects 4 Depth (previously Detune Depth)
95 5Fh Effects 5 Depth (previously Phaser Depth)
96 60h Data Increment
97 61h Data Decrement
98 62h Non-Registered Parameter Number LSB
99 63h Non-Registered Parameter Number LSB
100 64h Registered Parameter Number LSB
101 65h Registered Parameter Number MSB
102-120 66-78h Undefined
Channel Mode Messages
121 79h Reset All Controllers
122 7Ah Local Control
123 7Bh All Notes Off
124 7Ch Omni Off
125 7Dh Omni On
126 7Eh Mono On (Poly Off)
127 7Fh Poly On (Mono Off)