A Beginner's Guide To MIDI 8

Member of the Music HyperBanner !

Is There Anything Else You Need To Tell Me?

When a key is pressed on the master keyboard, and instruction is sent to any receiving device to play the corresponding note, but there are other sorts of information besides the note numbers that need to be transmitted and received. For instance, it is possible for Programme Changesto be sent via M.I.D.I.
In addition, the speed, or velocity at which the key is pressed is used to convey how hard the note was struck, whilst movement of the pitch bend and modulation wheels can be transmitted via M.I.D.I.
This sort of information comes under the heading of M.I.D.I. Controller Data, some of which is pre-defined as being volume data, or pan data, and some which can be defined by the user so that the receving instrument may map the data to an unspecified parameter.
What the receiving instrument will do with the incoming controller data is determined by that instrument, not by the transmitting device, so that if you were playing a keyboard on which full downwards pitch bend only produced a shift of a semi-tone, you may find that the receiving instrument shifted its pitch by an octave, unless it was set up to respond in the same way.
When the transmitting device sends a M.I.D.I. message it begins by saying what sort of message it is. Each of the controller types is numbered, so that if the receiving isnstrument receives a message labelled as Controller 7 it knows that this will be intended to set the instrument's volume.
Most instruments should conform to the controller assignments shown here:

Control Number | Function
0 | Undefined
1 | Modulation Wheel
2 | Breath Controller
3 | Undefined
4 | Foot Pedal
5 | Portamento Time
6 | Data Entry MSB
7 | Main Volume Control
8 | Balance
9 | Undefined
10 | Pan
11 | Expression Controller
12-15 | Undefined
16-19 | General Purpose Controls
20-31 | Undefined
32-63 | LSB For Controls 0 to 31
64 | Sustain Pedal
65 | Portamento
66 | Sostenuto
67 | Soft Pedal
68 | Undefined
69 | Hold 2
70-79 | Undefined
80-83 | General Purpose Controls
84-90 | Undefined
91 | External Effects Depth
92 | Tremelo Depth
93 | Chorus Depth
94 | Celeste Depth
95 | Phase Depth
96 | Data Entry Increment
97 | Data Entry Decrement
98 | Non-Registered Parameter MSB
99 | Non-Registered Parameter LSB
100 | Registered Parameter MSB
101 | Registered Parameter LSB
102-120 | Undefined
121-127 | Channel Mode Messages