User Manual

MIDI データフォーマット
332
PM5D/PM5D-RH 取扱説明書 リファレンス編
MIDI データフォーマット
ここでは、PM5D が解釈して送受信できるデータのフォーマットを説明します。
この他にも、MIDI REMOTE ファンクションや SCENE ファンクションの MIDI EVENT を利用すると、どのようなコマンドでも送
信できます。
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](16CH x 110)の2種類あります。[TABLE]と
[NRPN]はどちらかを選択します。
《受
[Control Change ECHO]がONの場合は、MIDI OUTにECHOします。
[TABLE MULTI]が選択されている場合は、[Control Change Rx]がONで受
信し、[Control assign table]の設定にしたがって、パラメーターを制御しま
す。[TABLE SINGLE] が選択されている場合は、[Control Change Rx]がON
で[Rx CH]が一致したときに受信し、[Control assign table]の設定にしたがっ
て、パラメーターを制御します。設定できるパラメーターは、P.308をご参照
ください。
また[NRPN]が選択されている場合は、[Control Change Rx]がONで[Rx CH]
が一致したときに受信し、NRPNのコントロール番号(62h, 63h)とDATA
ENTRYのコントロール番号(06h, 26h)の4つのメッセージを使って、決めら
れたパラメーターを制御します。
《送
[TABLE MULTI]が選択されている場合は、[Control assign table]で設定され
ているパラメーターを操作したときに[Control Change Tx]がONであれば送
信します。[TABLE SINGLE]が選択されている場合は、[Control assign table]
で設定されているパラメーターを操作したときに[Control Change Tx]がON
であれば、[Tx CH]のチャンネルで送信します。設定できるパラメーターは、
P.308をご参照ください。
また[NRPN]が選択されている場合は、決められたパラメーターを操作した
ときに[Control Change Tx]がONであれば、[Tx CH]のチャンネルでNRPNの
コントロール番号(62h, 63h)とDATA ENTRYのコントロール番号(06h, 26h)
の4つのメッセージを使って送信します。
なお、PM5D 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 = parm * 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]を選択した場合
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-31,33-95,102-119) *
0vvvvvvv vv
Control Value (0-127)
*032、96〜101は使用できません。
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は、信時には特に付ける必要はありません。また、受信時
はあってもなくても受信するようにしてください。