
CTK-671 MIDI インプリメンテーション
8
1 ....... SYSEX : System Exclusive message Status
Format : 11110000
System Exclusive message Status = F0H
2 ....... MAN : Manufacturer's ID
Format : 01000100
CASIO Manufacturer's ID = 44H
3 ....... MOD : Model ID
Format : 00010001, 00000001 (MSB, LSB)
本機の Model ID を MSB,LSB の 2bytes の並びで表わします。
CTK-671 Model ID MSB = 11H
LSB = 01H
4 ....... dev : MIDI DeviceID 00H ∼ 1FH,7FH
Format : 0ddddddd
受信したメッセージのこのフィールドと本体のMIDI DeviceIDを比較し、一致し
た場合にのみメッセージを認識します。
デフォルトで 10H の値をもちます。
7FH を受信したときは、本体の設定に寄らず常に認識します。
MIDI Deveice ID は Patch Parameter の 1 つであり、System Exclusive Message
で変更することができます。
この場合の MIDI System Exclusive Message の Deveice ID は 7FH に設定して送
信するべきです。
5/6 .... act/cat : Action/Category
Format : 0aaacccc
aaa = Action (3bit)
System Exclusive Message の動作を表します。
0H.....IPC Individual Parameter Change
1H.....IPR Individual Parameter Request
2H.....BDS Oneway Parameter Set Bulk Send
3H.....BDR Oneway Parameter Set Bulk Request
4H.....HDS Handshake Parameter Set Bulk Send
5H.....HDR Handshake Parameter Set Bulk Request
6H.....Reserved
7H.....HDA,HDJ,HDE,NOP Communication Control (for Handshake)
cccc = Category (4bit)
System Exclusive Message で取り扱う情報の種類を表します。
これらの Category に対応する ModelID 及び通信機能を右側に併記します。
index length (ii) はindex フィールドの長さを表わし、act(Action) の値に寄らず常
に以下のようになります。
ii .... index byte size - 1 (4Byte なら 3)
ddddd は <data> フィールドの 1 データ(パラメータ)単位のサイズを表します。
データを持たない Request, Control メッセージでは 0 になります。
・ Act = 3(BDR), 5(HDR)または7(Control)のとき
ddddd .... 0
・ Act = 0 のとき (Individual Parameter Change)
ddddd .... data bit size - 1 (1bit なら 00000, 32bit なら 11111)
・ Act = 2 または 4 のとき (Parameter Set Bulk Send)
16bit 単位の転送なので常に以下のようになります。
ddddd .... data bit size - 1 = 01111
10 ..... ps : Parameter Set Number
Format : 0nnnnnnn, 0mmmmmmm (LSB, MSB)
通信対象とする Parameter Set の番号(00mmmmmmmnnnnnnn)を LSB,MSB の
2bytes の並びで表わします。
11 ..... <index> Parameter Index Number (option)
・ Act = 0(IPC) または 1(IPR) のとき
Parameterが配列となっているとき、何番目のデータかを特定するのに必要な補
助的な番号です。
そのフォーマットは cat で表されるカテゴリと prm で表される Parameter ID に
よって個別に定義され、長さは 1 ∼ 4 バイトのいずれかとなります。
たとえば同じIDを持つParameterでもプリセット番号、パート番号、キー番号毎
に存在するものもあり、これらの値を<index>で指定することで Parameterが特
定できます。
・ Act = 2(BDS) または 4(HDS) のとき
3バイト固定のフィールドであり、1つのParameter Setを転送するのに分割され
た Packet の通し番号(先頭は 00)と、このフィールドの後につづく <data> フィー
ルドのサイズを表します。
i[0] ... 0nnnnnnn Packet Number LSB (NNNNNNNnnnnnnn = Packet Number)
i[1] ... 0NNNNNNN Packet Number MSB
<data>フィールドの説明にある通り、 1Packetで送ることができるの
は 128 バイトなので、受信したデータを
<Parameter Set 先頭アドレス > + <Packet Number> * 128
に格納すればよいことになります。
i[2] ... 0LLLLLLL data length / 3
<data>フィールドの説明にある通り、Dataは必ず3の倍数となるので、
その値を 3 で割った数で表します。
・ Act = 3(BDR) または 5(HDR)のとき
このフィールドは空となります。
・ Act = 7(HDA,HDJ,HDE,NOP) のとき
1バイト固定のフィールドであり、Handshakeで使用するための以下に示すよう
なコントロールメッセージを表します。
この働きについては「Bulk Dump」の項目で説明します。
i[0] = 0000cccc
cccc Control Message
------
0000 EOD Oneway/Handshake Bulk Dump End of Data (データ終了)
0001 HDA Handshake Bulk Dump Acknowledge (Handshake データ受信成功)
0010 HDR Handshake Bulk Dump Reject (Handshake データ拒否)
0011 HDE Handshake Bulk Dump Error (Handshake データエラー)
:
1111 NOP No Operation (無動作)
ID Action
c Category act = 0 1 2 3 4 5 6 7
--------------------------------------------------------------------------------
0H .... Command A A - - - - - -
1H .... Patch A A - - - - - -
2H .... User Tone - - A A A A - A
9H .... User DSP A A A A A A - A
AH .... Song Data - - A A A A - A
BH .... Rhythm Pattern - - A A A A - A
CH .... Registration - - A A A A - A
A ...... Available
- ....... Not Available
7 ....... prm : Parameter ID
Format : 0ppppppp
Parameter IDはパラメータの種類を表わすものです。 (後述のParameter List参照)
Parameter個別転送の時に転送対象となるParameterをこのフィールドのParam-
eter ID によって表します。
それ以外のときは 00H を代入してください。
8/9 .... ilen/dlen : index length / data length
Format : 0iiddddd
この後に続く 11の<index> と12の <data>フィールドのサイズを示すものです。
Comentarios a estos manuales