Yamaha LS9-32 Owner's Manual - Page 260
MIDI Data Format, CHANNEL MESSAGE
View all Yamaha LS9-32 manuals
Add to My Manuals
Save this manual to your list of manuals |
Page 260 highlights
MIDI Data Format MIDI Data Format This section explains the format of the data that the LS9 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 COMMAND ECHO] is ON. They are received if [Rx CH] matches, and used to control effects. STATUS DATA 1000nnnn 8n Note off message 0nnnnnnn nn Note number 0vvvvvvv vv Velocity(ignored) 1.2 NOTE ON (9n) Reception These messages are echoed to MIDI OUT if [OTHER COMMAND ECHO] is ON. They are received if [Rx CH] matches, and used to control effects. STATUS DATA 1001nnnn 9n Note on message 0nnnnnnn nn Note number 0vvvvvvv vv Velocity (1-127:on, 0:off) 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 CHANGE EVENT LIST]. For the parameters that can be assigned, refer to "Parameters that can be assigned to control changes" on page 249. 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 CHANGE EVENT LIST], 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 249. 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 249. CONTROL CHANGE messages are not used for transmission to LS9 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. STATUS DATA STATUS DATA 1011nnnn Bn Control change 00 Control number (00) 0vvvvvvv vv Control Value (0-127) 1011nnnn Bn Control change 20 Control number (32) 0vvvvvvv vv Control Value (0-127) If [TABLE] is selected 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. Equation for converting a Control Value to parameter data paramSteps add mod curValue = paramMax-paramMin + 1; = paramWidth / paramSteps; = paramWidth-add * paramSteps; = 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 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. 260 LS9-16/32 Owner's Manual