MIDI Basics

The amount of information that is available on MIDI is quite large and can sometimes seem a little intimidating, and to the uninitiated, the language and concepts behind MIDI may seem somewhat arcane. To help you better understand some of the basic ideas associated with MIDI, we've prepared this short article on the MIDI standard and General MIDI. We've also included a reference of the MIDI controllers and a short description of what they do.

Last updated:  Friday, 09 November 2018

MIDI: The Standard

MIDI is an acronym that stands for Musical Instrument Digital Interface. It is simply a standard developed in the early eighties to allow electronic instruments made by different manufacturers to communicate using a common language. One of the misconceptions about MIDI is that the standard is more complex than it actually is. The information that MIDI sends is simply an instruction to a device to perform a certain event. For example, if you press middle C on your keyboard, it sends a message to your sound module which says 'turn on middle C'. When you take your finger off middle C, it sends a message to the sound module which says 'turn off middle C'. We should point out at this juncture that MIDI doesn't actually generate sound, it sends information. The sounds that you hear are really generated by your software synth.

General MIDI

MIDI was very good at informing a sound module which note to play and how loudly it should be played, but it wasn't very good at determining which instrument to play. Imagine writing music for strings and then hearing the music performed on Japanese Taiko drums and you start to get the picture. This brings us to another standard, General MIDI (GM). General MIDI was developed a number of years after MIDI itself in an attempt to standardize instrument names among vendors of MIDI equipment. The basic premise being that if you selected a guitar sound for one of your tracks in a sequencer like PowerTracks Pro Audio, your sound module should play a guitar, and not a piano or a tin can. General MIDI then is simply a number to instrument reference that most major keyboard manufacturers have agreed upon. Other standards that have been developed in the industry are Roland's GS standard and Yamaha's XG standard.

General MIDI instrument and Drum Kit lists.

MIDI Controllers

You can send MIDI messages that do more than just play a particular note. MIDI can also send information about other events such as volume, pan, pitch modulation, or selecting a different bank of instruments. There are 128 controller numbers (0 to 127).

Controller messages essentially have two parts - the first is the controller number, and the second is the value that it is being set to. The first 63 controllers are called Continuous Controllers, and can have any value from 0-127 (Ex. Volume). Some other controllers are only "on" or "off" (Ex. Soft Pedal). For controllers that are only on or off, 0-63 is usually interpreted as "off", while 64-127 is usally interpreted as "on".

The continuous controllers have two controller numbers for coarse (MSB) and fine (LSB) adjustments of the same effect. MSB stands for Most Significant Byte and LSB stands for Least Significant Byte. Controllers 0-31 (MSB) are coarse adjustments, and Controllers 32-63 (LSB) are the equivalent fine adjustments. For example, Volume can be set to 128 different values from 0 to 127 using Controller 7 (Volume MSB), and each of those steps can be divided into 128 steps by using Controller 39 (Volume LSB). So in theory you can have 128 X 128 = 16384 possible volume levels. In practice, most synths ignore the volume LSB message and it is not often used.

Below is a general reference of the 128 MIDI controllers (0-127), accompanied by a brief description of each one. Note that some controller numbers are not yet defined, and that some controllers have different effects on different MIDI units.

Controller
Number
Function Description
0 Bank Select (MSB) Changes to a new bank of instruments if possible.
1 Modulation Wheel (MSB) Sends a command to add modulation (vibrato) to the current sound.
2 Breath Controller (MSB) Much like modulation, but it is triggered by a device that you blow into. The device measures the pressure of the wind, and adds modulation accordingly.
3 Undefined -
4 Foot Controller (MSB) Sends a control from a foot pedal device. The effect is usually programmable by the user on a particular synth.
5 Portamento Time (MSB) Used to change the time of the portamento on the current channel (the time it takes to slide in pitch from one note to the next).
6 Data Entry (MSB) Common on many MIDI devices. The effect varies from unit to unit.
7 Channel Volume (MSB) Controls the main volume of a channel.
8 Balance (MSB) Controls the stereo balance.
9 Undefined -
10 Pan (MSB) Controls where the current instrument will appear in the stereo spectrum.
11 Expression (MSB) Like the Channel Volume controller, however the Controller 7 is used to set the overall volume on a particular channel, while Controller 11 is used to adjust the volume dynamics within that channel to a percentage of the overall volume.
12 Effect Control 1 (MSB) Controls some aspect of the MIDI unit's effects.
13 Effect Control 2 (MSB) Controls an alternate aspect of the unit's effects.
14 Undefined -
15 Undefined -
16 General Purpose Controller 1 Programmable on most units.
17 General Purpose Controller 2 Programmable on most units.
18 General Purpose Controller 3 Programmable on most units.
19 General Purpose Controller 4 Programmable on most units.
20 Undefined -
21 Undefined -
22 Undefined -
23 Undefined -
24 Undefined -
25 Undefined -
26 Undefined -
27 Undefined -
28 Undefined -
29 Undefined -
30 Undefined -
31 Undefined -
32 Bank Select (LSB) Changes to a different bank of instruments if available.
33 Modulation Wheel (LSB) Sends a command to add modulation (vibrato) to the current sound.
34 Breath Controller (LSB) Much like modulation, but it is triggered by a device that you blow into. The device measures the pressure of the wind, and adds modulation accordingly.
35 Undefined -
36 Foot Controller (LSB) Sends a control from a foot pedal device. The effect is usually programmable by the user on a particular synth.
37 Portamento Time (LSB) Used to change the time of the portamento on the current channel (the time it takes to slide in pitch from one note to the next).
38 Data Entry (LSB) Common on many MIDI devices. The effect varies from unit to unit.
39 Channel Volume (LSB) Controls the main volume of a channel.
40 Balance (LSB) Controls the stereo balance.
41 Undefined -
42 Pan (LSB) Controls where the current instrument will appear in the stereo spectrum.
43 Expression (LSB) Like the Channel Volume controller, however the Controller 7 is used to set the overall volume on a particular channel, while Controller 11 is used to adjust the volume dynamics within that channel to a percentage of the overall volume.
44 Effect Control 1 (LSB) Controls some aspect of the MIDI unit's effects.
45 Effect Control 2 (LSB) Controls an alternate aspect of the unit's effects.
46 Undefined -
47 Undefined -
48 General Purpose Controller 1 Programmable on most units.
49 General Purpose Controller 2 Programmable on most units.
50 General Purpose Controller 3 Programmable on most units.
51 General Purpose Controller 4 Programmable on most units.
52 Undefined -
53 Undefined -
54 Undefined -
55 Undefined -
56 Undefined -
57 Undefined -
58 Undefined -
59 Undefined -
60 Undefined -
61 Undefined -
62 Undefined -
63 Undefined -
64 Sustain Pedal Sustains any notes that are playing (on/off).
65 Portamento On/Off Changes the state of the portamento to on or off.
66 Sostenuto Controls the sostenuto of the current instrument. Like the Sustain Pedal, but only sustains notes that are already ON when the message is sent (on/off).
67 Soft Pedal Lowers the volume the current instrument (on/off).
68 Legato Pedal Applies or removes legato (on/off).
69 Sustain Pedal 2 Lengthens the time that it takes for a note to fade-out when it's released (on/off).
70 Sound Controller 1 Programmable, the default is 'Sound Variation'.
71 Sound Controller 2 Programmable, the default is 'Timbre'.
72 Sound Controller 3 Programmable, the default is 'Release Time'.
73 Sound Controller 4 Programmable, the default is 'Attack Time'.
74 Sound Controller 5 Programmable, the default is 'Brightness'.
75 Sound Controller 6 Programmable, no default.
76 Sound Controller 7 Programmable, no default.
77 Sound Controller 8 Programmable, no default.
78 Sound Controller 9 Programmable, no default.
79 Sound Controller 10 Programmable, no default.
80 General Purpose Controller 1 Programmable on most units (on/off).
81 General Purpose Controller 1 Programmable on most units (on/off).
82 General Purpose Controller 1 Programmable on most units (on/off).
83 General Purpose Controller 1 Programmable on most units (on/off).
84 Portamento Control Changes the Portamento if available.
85 Undefined -
86 Undefined -
87 Undefined -
88 Undefined -
89 Undefined -
90 Undefined -
91 Effects Depth: Reverb 0 (no effect) to 127
92 Effects Depth: Tremolo 0 (no effect) to 127
93 Effects Depth: Chorus 0 (no effect) to 127
94 Effects Depth: Celeste (Detune) 0 (no effect) to 127
95 Effects Depth: Phaser 0 (no effect) to 127
96 Data Increment -
97 Data Decrement -
98 NRPN (Non-Registered Parameter Number) LSB -
99 NRPN (Non-Registered Parameter Number) MSB -
100 RPN (Registered Parameter Number) LSB -
101 RPN (Registered Parameter Number) MSB -
102 Undefined -
103 Undefined -
104 Undefined -
105 Undefined -
106 Undefined -
107 Undefined -
108 Undefined -
109 Undefined -
110 Undefined -
111 Undefined -
112 Undefined -
113 Undefined -
114 Undefined -
115 Undefined -
116 Undefined -
117 Undefined -
118 Undefined -
119 Undefined -
120 All Sound Off Mutes all sound.
121 All Controllers Off Turns off controllers or sets them to default, usually 0.
122 Local keyboard on/off If set to off, a keyboard won't generate sound internally.
123 All Notes Off Turns all notes off.
124 Omni Mode Off Turns Omni Mode off.
125 Omni Mode On Turns Omni Mode on.
126 Mono Mode Turns Monophonic operation on.
127 Poly Mode Turns Polyphonic operation on.
Live Help
Contact Info

PG Music Inc.
29 Cadillac Ave Victoria BC Canada V8Z 1T3

Sales: 800-268-6272, 250-475-2874,+ 800-4746-8742*
* Outside USA & Canada where International Freephone service is available. Access Codes

Tech Support: Live Chat, support@pgmusic.com

Chat online Online now

Need Help?

Customer Sales & Support

Phones (Pacific Time)
1-800-268-6272 1-250-475-2874
Live Chat
OPEN Online Ordering
24/7
OPEN Forums, email, web support
Message from PGMusic.com sales and support team
Hi, have any questions? We're available to text chat.
Message from PGMusic.com sales and support team
Hi, have any questions? We're available to text chat.