User Manual

MIDI データ フォーマット
282
M7CL 取扱説明書
ここでは、M7CLが解釈して送受信できるデータのフォーマットを説明します。
1 CHANNEL MESSAGE
1.1 NOTE OFF (8n)
《受信》
[OTHER ECHO]がONの場合は、MIDI OUTにECHOします。
[Rx CH]が一致した場合に受信して、Effectの制御に使用されます。
1.2 NOTE ON (9n)
《受信》
[OTHER ECHO]がONの場合は、MIDI OUTにECHOします。
[Rx CH]が一致した場合に受信して、Effectの制御に使用されます。
1.3 CONTROL CHANGE (Bn)
送受信できるControl Changeは、[NRPN] (ノンレジスタードパラメーター)と
任意にアサインした[TABLE](1CH x 110)の2種類あります。[TABLE]と
[NRPN]はどちらかを選択します。
《受信》
[Control Change ECHO]がONの場合は、MIDI OUTにECHOします。
[TABLE] が選択されている場合は、[Control Change Rx]がONで[Rx CH]が一致
したときに受信し、[Control assign table]の設定にしたがって、パラメーターを
制御します。設定できるパラメーターは、P. 270コントロールチェンジにア
サインできるパラメーターリストをご参照ください。
また[NRPN]が選択されている場合は、[ControlChange Rx]がONで[Rx CH]が
一致したときに受信し、NRPNのコントロール番号(62h, 63h)とDATA ENTRY
のコントロール番号(06h, 26h)の4つのメッセージを使って、決められたパラ
メーターを制御します。
《送信》
[TABLE]が選択されている場合は、[Control assign table]で設定されているパ
ラメーターを操作したときに[Control Change Tx]がONであれば、[Tx CH]の
チャンネルで送信します。設定できるパラメーターは、P. 270コントロール
チェンジにアサインできるパラメーターリストをご参照ください。
また[NRPN]が選択されている場合は、決められたパラメーターを操作したと
きに[Control Change Tx]がONであれば、[Tx CH]のチャンネルでNRPNのコン
トロール番号(62h, 63h)とDATA ENTRYのコントロール番号(06h, 26h)の4つ
のメッセージを使って送信します。設定できるパラメーターは、P. 270コン
トロールチェンジにアサインできるパラメーターリストをご参照くださ
い。
なお、M7CL Editorへの送信は、TABLEなどの内容が一致している保証がない
ので、Control Changeを使った送信は行ないません(常にParameter Changeが用
いられます)。
Control Change Number 0と32は、BANK CHANGE用です。
[TABLE]を選択した場合
Control Valueをパラメーターデータに変換する計算式
paramSteps = paramMax – paramMin + 1;
add = paramWidth / paramSteps;
mod = paramWidth – add * paramSteps;
curValue = paramSteps * add + mod / 2;
(1) アサインしたパラメーターが128step未満の場合
paramWidth = 128; rxValue = Control value;
(2) アサインしたパラメーターが128step以上16,384step未満の場合
paramWidth = 16384;
(2-1) HighとLowのデータを受信した場合
rxValue = Control value(High) * 128 + Control value(Low);
(2-2) Lowのデータだけを受信した場合
rxValue = (curValue & 16256) + Control value(Low);
(2-3) Highのデータだけを受信した場合
rxValue = Control value(High) * 128 + (curValue & 127);
(3) アサインしたパラメーターが16,384step以上2,097,152step未満の場合
paramWidth = 2097152;
(3-1) HighとMiddleとLowのデータを受信した場合
rxValue = Control value(High) * 16384 + Control value(Middle) * 128 + Control
value(Low);
(3-2) Lowのデータだけ受信した場合
rxValue = (curValue & 2097024) + Control value(Low);
(3-3) Middleのデータだけ受信した場合
rxValue = (curValue & 2080895) + Control value(Middle) * 128;
(3-4) Highのデータだけ受信した場合
rxValue = (curValue & 16383) + Control value(High) * 16384;
(3-5) MiddleとLowのデータだけ受信した場合
rxValue = (curValue & 2080768) + Control value(Middle) * 128 + Control
value(Low);
(3-6) HighとLowのデータだけ受信した場合
rxValue = (curValue & 16256) + Control value(High) * 16384 + Control value(Low);
(3-7) HighとMiddleのデータだけ受信した場合
rxValue = (curValue & 127) + Control value(High) * 16384 + Control value(Middle)
* 128;
if ( rxValue > paramWidth)
rxValue = paramWidth;
param = ( rxValue – mod / 2) / add;
[NRPN]を選択した場合
MIDI データ フォーマット
STATUS 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)
*0,32, 96〜101は使用できません。
* control number 6, 38は使用できます。
STATUS 1011nnnn Bn
Control change
DATA 01100010 62
NRPN LSB
0vvvvvvv vv
パラメーター番号のLSB
STATUS 1011nnnn Bn
Control change *
DATA 01100011 63
NRPN MSB
0vvvvvvv vv
パラメーター番号のMSB
STATUS 1011nnnn Bn
Control change *
DATA 00000110 06
データエントリーのMSB
0vvvvvvv vv
パラメーターデータのMSB
STATUS 1011nnnn Bn
Control change *
DATA 00100110 26
データエントリーのLSB
0vvvvvvv vv
パラメーターデータのLSB
*2番目以降のSTATUSは、送信時には特に付ける必要はありません。また、受信時
はあってもなくても受信するようにしてください。