The MIDI language consists of two types of MIDI message, Channel Messages and System Messages ...
A channel message is sent on a specific MIDI channel and communicates information to devices set to receive on this channel. There are two types ...
System messages communicate non-performance information. They are not channel specific and thus intended for all devices in a MIDI chain. However only some devices will understand these messages such as those to which a specific System Exclusive message is addressed by means of a manufactures ID device number. These ID device numbers are not the same as MIDI channels but allow specific devices to receive data specific to it. There are three types of System Message ...
Whenever a MIDI instrument is played, its controllers (keyboard, pitch wheel etc) transmit channel voice messages. There are 7 channel voice message types ...
1. Note-On This message indicates the beginning of a MIDI note and consists of 3 bytes. The 1st byte (Status byte) specifies a note-on event and channel. The 2nd byte specifies the number of the note played. The 3rd byte specifies the velocity with which the note was played.
2. Note-off This message indicates the end of a MIDI note. The 1st byte (Status byte) specifies a note-off event and channel. The 2nd byte specifies the number of the note played. The 3rd byte specifies the release velocity.
3. Polyphonic key pressure Key pressure or aftertouch, with each key sending its own independent message
4. Aftertouch This message is similar to polyphonic key pressure but is sent when additional pressure is applied to a key that is already being held down. Also, there is only one sensor for the whole keyboard i.e. it’s monophonic aftertouch
5. Program change These messages will change the programs of devices responding on the channel on which they are sent.
6. Control change These messages alter the way a note sounds by sliding it, sustaining it, modulating it etc.
Here are the numbers for all defined MIDI control change controllers. The first 32 numbers (0 to 31) are coarse adjustments for various parameters. The numbers from 32 to 63 are their respective fine adjustments (ie, add 32 to the coarse adjust number to get the fine adjust number, except for the General Purpose Sliders which have no fine adjust equivalents). For example, the coarse adjustment for Channel Volume is controller number 7. The fine adjustment for Channel Volume is controller number 39 (7+32). Many devices use only the coarse adjustments, and ignore the fine adjustments.
0 Bank Select (coarse)
1 Modulation Wheel (coarse)
2 Breath controller (coarse)
4 Foot Pedal (coarse)
5 Portamento Time (coarse)
6 Data Entry (coarse)
7 Volume (coarse)
8 Balance (coarse)
10 Pan position (coarse)
11 Expression (coarse)
12 Effect Control 1 (coarse)
13 Effect Control 2 (coarse)
16 General Purpose Slider 1
17 General Purpose Slider 2
18 General Purpose Slider 3
19 General Purpose Slider 4
32 Bank Select (fine)
33 Modulation Wheel (fine)
34 Breath controller (fine)
36 Foot Pedal (fine)
37 Portamento Time (fine)
38 Data Entry (fine)
39 Volume (fine)
40 Balance (fine)
42 Pan position (fine)
43 Expression (fine)
44 Effect Control 1 (fine)
45 Effect Control 2 (fine)
64 Hold Pedal (on/off)
65 Portamento (on/off)
66 Sustenuto Pedal (on/off)
67 Soft Pedal (on/off)
68 Legato Pedal (on/off)
69 Hold 2 Pedal (on/off)
70 Sound Variation
71 Sound Timbre
72 Sound Release Time
73 Sound Attack Time
74 Sound Brightness
75 Sound Control 6
76 Sound Control 7
77 Sound Control 8
78 Sound Control 9
79 Sound Control 10
80 General Purpose Button 1 (on/off)
81 General Purpose Button 2 (on/off)
82 General Purpose Button 3 (on/off)
83 General Purpose Button 4 (on/off)
91 Effects Level
92 Tremolo Level
93 Chorus Level
94 Celeste Level
95 Phaser Level
96 Data Button increment
97 Data Button decrement
98 Non-registered Parameter (fine)
99 Non-registered Parameter (coarse)
100 Registered Parameter (fine)
101 Registered Parameter (coarse)
120 All Sound Off
121 All Controllers Off
122 Local Keyboard (on/off)
123 All Notes Off
124 Omni Mode Off
125 Omni Mode On
126 Mono Operation
127 Poly Operation
7. Pitch bend These messages are transmitted whenever an instruments pitch wheel is moved.
Controller numbers 121-127 are reserved for Channel Mode Messages. They are ...
121 Reset all controllers
122 Local On/Off
123 All notes Off
124 Omni Mode Off
125 Omni Mode On
126 Mono Mode On
127 Poly Mode On
System Exclusive, or Sys Ex, messages can be addressed to an individual hardware devices. Every manufacturer of MIDI hardware has a unique Manufacturer ID assigned to it.
For example Akais number is 71 (47H). Rolands is 65 (41H). Manufacturers can also assign a device number to each of the devices they manufacture.
Thus Sys Ex data transmitted on a MIDI chain will be interpreted only by the hardware device to which it is addressed, regardless of MIDI channel settings. System Exclusive messages are primarily used for three reasons ...
There are 5 types ...
These are time critical and therefore have priority over other system messages. They may occur at any time, even in the middle of another MIDI message. They include.
Running status is a condition in which the transmission of duplicate status bytes is suspended until the status changes.
If many data bytes of the same type (status) are being transmitted consecutively normally each would be proceeded by an identical status byte. Under running status it is possible to send the first status byte only. The system will then assume all following data bytes are of the same status until a different status byte is transmitted. In this way the transmission time may be reduced.
There are four MIDI modes, usually set from the front panel of a sound creating device such as a synthesiser. These modes are no longer as important as they were when MIDI was first specified ...