User Manual
資料編
リファレンスマニュアル
264
MIDI データフォーマット
ここでは、CL シリーズが解釈して送受信できるデータのフォー
マットを説明します。
1 CHANNEL MESSAGE
1.1 NOTE OFF (8n)
《受信》
[OTHERCOMMANDECHO]がONの場合は、MIDIOUTにECHOします。
[RxCH]が一致した場合に受信して、Effectの制御に使用されます。
1.2 NOTE ON (9n)
《受信》
[OTHERCOMMANDECHO]がONの場合は、MIDIOUTにECHOします。
[RxCH]が一致した場合に受信して、Effectの制御に使用されます。
1.3 CONTROL CHANGE (Bn)
送受信できるCONTROLCHANGEは、[NRPN](ノンレジスタードパラメーター)と
任意にアサインした[TABLE](1CHx110)の2種類あります。[TABLE]と[NRPN]はど
ちらかを選択します。
《受信》
[CONTROLCHANGEECHO]がONの場合は、MIDIOUTにECHOします。
[TABLE]が選択されている場合は、[CONTROLCHANGERx]がONで[RxCH]が一
致したときに受信し、[CONTROLCHANGEEVENTLIST]の設定に従って、パラ
メーターを制御します。設定できるパラメーターは、「コントロールチェンジにアサ
インできるパラメーターリスト」(→P.248)をご参照ください。
また[NRPN]が選択されている場合は、[CONTROLCHANGERx]がONで[RxCH]が
一致したときに受信し、NRPNのコントロール番号(62h,63h)とDATAENTRYのコ
ントロール番号(06h,26h)の4つのメッセージを使って、決められたパラメーターを
制御します。
《送信》
[TABLE]が選択されている場合は、[CONTROLCHANGEEVENTLIST]で設定さ
れているパラメーターを操作したときに[CONTROLCHANGETx]がONであれば、
[TxCH]のチャンネルで送信します。設定できるパラメーターは、「コントロール
チェンジにアサインできるパラメーターリスト」(→P.248)をご参照ください。
また[NRPN]が選択されている場合は、決められたパラメーターを操作したときに
[CONTROLCHANGETx]がONであれば、[TxCH]のチャンネルでNRPNのコント
ロール番号(62h,63h)とDATAENTRYのコントロール番号(06h,26h)の4つのメッ
セージを使って送信します。設定できるパラメーターは、「コントロールチェンジに
アサインできるパラメーターリスト」(→P.248)をご参照ください。
なお、CLEditorへの送信は、TABLEなどの内容が一致している保証がないので、
CONTROLCHANGEを使った送信は行ないません(常にPARAMETERCHANGE
が用いられます)。
CONTROLCHANGENumber0と32は、BANKCHANGE用です。
[TABLE]を選択した場合
ControlValueをパラメーターデータに変換する計算式
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]を選択した場合
1.4 PROGRAM CHANGE (Cn)
《受信》
[PROGRAMCHANGEECHO]がONの場合には、BANKSELECTもMIDIOUTに
ECHOします。
SINGLECHが選択されている場合、[PROGRAMCHANGERx]がONで、[RxCH]が
一致したときに受信します。ただし[OMNI]がONの場合には、チャンネルに関係な
く受信します。受信したら[PROGRAMCHANGEEVENTLIST]の設定に従って、
シーンメモリー、エフェクトライブラリー、プレミアムラックライブラリーをリ
コールします。
《送信》
[PROGRAMCHANGETx]がONの場合、シーンメモリー、エフェクトライブラ
リー、プレミアムラックライブラリーがリコールされたときに[PROGRAM
CHANGETable]の設定に従って送信します。
SINGLECHが選択されている場合、[TxCH]のチャンネルで送信します。
MULTICHが選択されている場合、リコールしたシーンメモリー、エフェクトライ
ブラリー、プレミアムラックライブラリーが複数のPROGRAMNUMBERに割り当
てられているときは、MIDICHごとに一番小さいPROGRAMNUMBERで送信しま
す。
なお、CLEditorへの送信は、TABLEなどの内容が一致している保証がないので、
PROGRAMCHANGEを使った送信は行ないません(常にPARAMETERCHANGE
が用いられます)。
MULTIMIDICHかSINGLECHかを選択できます。
SINGLEの場合
RxCHとOMNICH、TxCHを選べます。
BANKSELECT付きにするかどうかを選べます。
BANKは16まで設定できます。
MULTIの場合
RxとTxCHは同じになります。
アサイン表はMIDICHごとの設定になります。BANKSELECTは付きません。
MIDICHは16まで設定できます。
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は使用できません。
* controlnumber6,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は、送信時には特に付ける必要はありません。
また、受信時はあってもなくても受信するようにしてください。
STATUS 1100nnnn Cn
Program change
DATA 0nnnnnnn nn
Program number (0-127)