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.
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. |
Unconditional 30-Day Money Back Guarantee on all PG Music products purchased from PG Music Inc.
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
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 |