M7CL Owner’s Manual
MIDI Data Format
282
This section explains the format of the data that the M7CL is able to understand, send, and
receive.
1 CHANNEL MESSAGE
1.1 NOTE OFF (8n)
Reception
These messages are echoed to MIDI OUT if [OTHER ECHO] is ON.
They are received if [Rx CH] matches, and used to control effects.
1.2 NOTE ON (9n)
Reception
These messages are echoed to MIDI OUT if [OTHER ECHO] is ON.
They are received if [Rx CH] matches, and used to control effects.
1.3 CONTROL CHANGE (Bn)
Two types of control change can be transmitted and received; [NRPN] (Non-
Registered Parameter Numbers) and freely-assigned [TABLE] (1CH x 110)
messages. Select either [TABLE] or [NRPN].
Reception
These messages are echoed to MIDI OUT if [Control Change ECHO] is ON.
If [TABLE] is selected, these messages are received when [Control Change Rx] is
ON and [Rx CH] matches, and will control parameters according to the settings
of the [Control assign table]. For the parameters that can be assigned, refer to
“Parameters that can be assigned to control changes” on page 270.
If [NRPN] is selected, these messages are received when [Control Change Rx] is
ON and the [Rx CH] matches; the four messages NRPN control number (62h,
63h) and DATA ENTRY control number (06h, 26h) are used to control the
specified parameter.
Transmission
If [TABLE] is selected, and if [Control Change Tx] is ON when you operate a
parameter that is assigned in the [Control assign table], these messages will be
transmitted on the [Tx CH] channel. For the parameters that can be assigned,
refer to “Parameters that can be assigned to control changes” on page 270.
If [NRPN] is selected, and if [Control Change Tx] is ON when you operate a
specified parameter, the four messages NRPN control number (62h, 63h) and
DATA ENTRY control number (06h, 26h) are transmitted on the [Tx CH]
channel. For the parameters that can be assigned, refer to “Parameters that can
be assigned to control changes” on page 270.
Control Change messages are not used for transmission to M7CL Editor because
there is no guarantee that the contents of the assignment tables will match.
(Parameter Change messages are always used.)
Control Change numbers 0 and 32 are for selecting banks.
If [TABLE] is selected
Equation for converting a Control Value to parameter data
paramSteps = paramMax - paramMin + 1;
add = paramWidth / paramSteps;
mod = paramWidth - add * paramSteps;
curValue = paramSteps * add + mod / 2;
(1) If the assigned parameter has fewer than 128 steps
paramWidth = 128; rxValue = Control value;
(2) If the assigned parameter has 128 or more but less than
16,384 steps
paramWidth = 16384;
(2-1) When High and Low data is received
rxValue = Control value (High) * 128 + Control value (Low);
(2-2) When only Low data is received
rxValue = (curValue & 16256) + Control value (Low);
(2-3) When only High data is received
rxValue = Control value (High) * 128 + (curValue & 127);
(3) If the assigned parameter has 16,384 or more but less than
2,097,152 steps
paramWidth = 2097152;
(3-1) When High, Middle, and Low data is received
rxValue = Control value (High) * 16384 + Control value (Middle) * 128 + Control
value (Low);
(3-2) When only Low data is received
rxValue = (curValue & 2097024) + Control value (Low);
(3-3) When only Middle data is received
rxValue = (curValue & 2080895) + Control value (Middle) * 128;
(3-4) When only High data is received
rxValue = (curValue & 16383) + Control value (High) * 16384;
(3-5) When only Middle and Low data is received
rxValue = (curValue & 2080768) + Control value (Middle) * 128 + Control value
(Low);
(3-6) When only High and Low data is received
rxValue = (curValue & 16256) + Control value (High) * 16384 + Control value (Low);
(3-7) When only High and Middle data is received
rxValue = (curValue & 127) + Control value (High) * 16384 + Control value (Middle)
* 128;
if ( rxValue > paramWidth)
rxValue = paramWidth;
param = ( rxValue - mod / 2) / add;
If [NRPN] is selected
MIDI Data FormatSTATUS 1000nnnn 8n Note off message
DATA 0nnnnnnn nn Note number
0vvvvvvv vv Velocity (ignored)
STATUS 1001nnnn 9n Note on message
DATA 0nnnnnnn nn Note number
0vvvvvvv vv Velocity (1-127:on, 0:off)
STATUS 1011nnnn Bn Control change
DATA 00 Control number (00)
0vvvvvvv vv Control Value (0-127)
STATUS 1011nnnn Bn Control change
DATA 20 Control number (32)
0vvvvvvv vv Control Value (0-127)
STATUS 1011nnnn Bn Control change
DATA 0nnnnnnn nn Control number (1-5, 7-31, 33-37, 38-95,
102-119) *
0vvvvvvv vv Control Value (0-127)
* Numbers 0, 32, and 96–101 cannot be used.
* Control number 6, 38 can be used.
STATUS 1011nnnn Bn Control change
DATA 01100010 62 NRPN LSB
0vvvvvvv vv Parameter number LSB
STATUS 1011nnnn Bn Control change *
DATA 01100011 63 NRPN MSB
0vvvvvvv vv Parameter number MSB
STATUS 1011nnnn Bn Control change *
DATA 00000110 06 Data entry MSB
0vvvvvvv vv Parameter data MSB
STATUS 1011nnnn Bn Control change *
DATA 00100110 26 Data entry LSB
0vvvvvvv vv Parameter data LSB
* The STATUS byte of the second and subsequent messages need not
be added during transmission. Reception must occur correctly
whether or not the status byte is omitted.