MIDI Control Change Messages

All MIDI status byte and data byte values are in hexadecimal


MIDI Control Change Messages
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
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


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.
DecimalHexController Name
000hBank Select (Controller # 32 more commonly used)
101hModulation Wheel
202hBreath Contoller
404hFoot Controller
505hPortamento Time
606hData Entry MSB
707hMain Volume
120ChEffect Control 1
130DhEffect Control 2
16-1910-13hGeneral Purpose Controllers (Nos. 1-4)
32-6320-3FhLSB for Controllers 0-31 (rarely implemented)
6440hDamper Pedal (Sustain) [Data Byte of 0-63=0ff, 64-127=On]
6743hSoft Pedal
6844hLegato Footswitch
6945hHold 2
7046hSound Controller 1 (default: Sound Variation)
7147hSound Controller 2 (default: Timbre/Harmonic Content)
7248hSound Controller 3 (default: Release Time)
7349hSound Controller 4 (default: Attack Time)
744AhSound Controller 5 (default: Brightness)
75-794B-4FhSound Controller 6-10 (no defaults)
80-8350-53hGeneral Purpose Controllers (Nos. 5-8)
8454hPortamento Control
915BhEffects 1 Depth (previously External Effects Depth)
925ChEffects 2 Depth (previously Tremolo Depth)
935DhEffects 3 Depth (previously Chorus Depth)
945EhEffects 4 Depth (previously Detune Depth)
955FhEffects 5 Depth (previously Phaser Depth)
9660hData Increment
9761hData Decrement
9862hNon-Registered Parameter Number LSB
9963hNon-Registered Parameter Number LSB
10064hRegistered Parameter Number LSB
10165hRegistered Parameter Number MSB
Channel Mode Messages
12179hReset All Controllers
1227AhLocal Control
1237BhAll Notes Off
1247ChOmni Off
1257DhOmni On
1267EhMono On (Poly Off)
1277FhPoly On (Mono Off)