MIDI setup messages: their types and function

The tables below show the type and function of messages commonly placed in the first measure of a MIDI file. These messages are sent before any note-related data to setup the equipment (hardware or software) for correct playback.

General MIDI 1 (GM1)


SMF:Key SignatureSets the key of the song. For details on how you can interpret this message, please check this guide.
Sysex Message F0 7E 7F 09 01 F7Turns the General MIDI System ON.
Sysex Message F0 41 10 42 12 40 00 7F 00 41 F7GS Reset message. Sets GS devices to the proper state for MIDI playback.
CC 0 & CC 32Bank Select MSB & LSB. Sent as a pair to define the bank to be used.
CC 6 & CC 38Data Entry MSB & LSB. Used in conjunction with RPNs or NRPNs to define the new value for a controller. For example, to set the pitch bend range to 5 semitones, we have to send CC 101 with a value of 0, CC 100 with a value of 0, and follow them with CC 6 with a value of 5.
CC 7Main Volume. Sets the channel volume of each instrument track.
CC 10Pan. Defines where each instrument is located in the stereo field. A value of 64 means that it’s centered, 0 that it’s hard-panned left, and 127 that it’s hard-panned right.
CC 11Expression. Used to fine tune volume changes and create natural dynamics. Used mostly for string and brass passages.
CC 91Effects 1 Depth. Controls the reverb amount.
CC 93Effects 3 Depth. Controls the chorus depth.
CC 101 & CC 100RPN (Registered Parameter Number) MSB & LSB. Sent as a pair to allow control of various parameters such as pitch bend range and master tuning.
Program ChangeSets the instrument to be used for a specific track in conjunction with Bank Select (CC 0 & 32). For a list of all the instruments and their program change numbers please click here.

General MIDI 2 (GM2)


SMF:Key SignatureSets the key of the song. For details on how you can interpret this message, please check this guide.
Sysex Message F0 7E 7F 09 01 F7Turns the General MIDI System ON.
Sysex Message F0 41 10 42 12 40 00 7F 00 41 F7GS Reset message. Sets GS devices to the proper state for MIDI playback.
CC 0 & CC 32Bank Select MSB & LSB. Sent as a pair to define the bank to be used.
CC 1Modulation. Used to change the nature of the sound in a natural way, create tremolo and vibrato effects etc.
CC 5Portamento. Used to create a gliding effect between notes. A portamento message affects only the following Note On message.
CC 6 & CC 38Data Entry MSB & LSB. Used in conjunction with RPNs or NRPNs to define the new value for a controller. For example, to set the pitch bend range to 5 semitones, we have to send CC 101 with a value of 0, CC 100 with a value of 0, and follow them with CC 6 with a value of 5.
CC 7Main Volume. Sets the channel volume of each instrument track.
CC 8Balance. Controls the volume balance between two different sound sources. A value of 0 means full volume for the left/lower part and a value of 127 means full volume for the right/upper part.
CC 10Pan. Defines where each instrument is located in the stereo field. A value of 64 means that it’s centered, 0 that it’s hard-panned left, and 127 that it’s hard-panned right.
CC 11Expression. Used to fine tune volume changes and create natural dynamics. Used mostly for string and brass passages.
CC 64Sustain. Simulates the use of a sustain pedal.
CC 65Portamento On/Off. Sets the portamento either ON or OFF.
CC 67Soft Pedal. Simulates the use of a soft pedal.
CC 68Legato Footswitch. Turns monophonic legato response ON or OFF.
CC 91Effects 1 Depth. Controls the reverb amount.
CC 93Effects 3 Depth. Controls the chorus depth.
CC 99 & 98NRPN (Non-Registered Parameter Number) MSB & LSB → Sent as a pair to allow control of parameters not defined by the MIDI specification.
CC 101 & CC 100RPN (Registered Parameter Number) MSB & LSB→ Sent as a pair to allow control of various parameters such as pitch bend range and master tuning.
CC 121Reset All Controllers. Resets the condition of all controllers to an ideal initial state.
Program ChangeSets the instrument to be used for a specific track in conjunction with Bank Select (CC 0 & 32). For a list of all the instruments and their program change numbers please click here.