MIDI SysEx #1
まず始めに
SysExサンプル (GSリセット)
エクスクルーシブ・ステータス (Exclusive status)
F0 41 10 42 12 40 00 7F 00 41 F7
IDナンバー (Manufacturer's ID Number)
F0 41 10 42 12 40 00 7F 00 41 F7
- どのメーカーのエクスクルーシブ・メッセージであるかの識別に使用
-
値が00Hの場合は後に続く2バイトデータとあわせて3バイトがIDとなる
例) 00H 00H 74H
-
7EH~7FHはUniversal SysEx
7E |
Universal Non-Real Time SysEx |
7F |
Universal Real Time SysEx |
-
Japanese Group例
40 |
KAWAI MUSICAL INSTRUMENTS MFG.CO.,LTD |
41 |
ROLAND CORPORATION |
42 |
KORG INC. |
43 |
YAMAHA CORPORATION |
44 |
CASIO COMPUTER CO.,LTD. |
46 |
KAMIYA STUDIO CO.,LTD. |
47 |
AKAI ELECTRIC CO.,LTD. |
-
詳細は以下を参照
http://www.midi.org/about-mma/mfr_id.shtml
デバイスID (Device ID)
F0 41 10 42 12 40 00 7F 00 41 F7
-
MIDI機器を複数の使用する場合、特定の機器をコントロールする場合に使用(機器は同じデバイスIDナンバーのエクスクルーシブ・メッセージを受信する)
-
通常の識別用の00H-0FH(1-32)と、ブロードキャスト(全てのデバイス)用の7FHなどから選択
-
初期設定値は10H(17)
※Roland社のマニュアルによると
「ローランドSMFミュージック・データで演奏させるときは、デバイスIDの番号を必ず17にしてください」
との注意書きがあります。
sub-ID#1 (Model ID)
F0 41 10 42 12 40 00 7F 00 41 F7
-
通常は42Hを指定
42 |
GSフォーマットを指定 |
45 |
SC-55(/88)等LCD表示 |
sub-ID#2 (Command ID)
F0 41 10 42 12 40 00 7F 00 41 F7
-
RQ1:相手の機器に対してデータを送ることを要求をするメッセージ(メッセージに含まれるアドレスとサイズで要求するデータの種類や量を指定)
-
DT1:実際のデータの転送を行なうメッセージで、機器に対してデータを設定したい場合に使用
11 |
データリクエスト1(RQ1) |
12 |
データセット1(DT1) |
アドレス (Address High / Middle / Low)
F0 41 10 42 12 40 00 7F 00 41 F7
-
sub-ID#2/コマンドIDでRQ1/DT1を指定してデータ転送を行う際のアドレス、サイズ、データの設定できる範囲、パラメーター(データの種類)、説明、初期設定値を記述
データ (Data)
F0 41 10 42 12 40 00 7F 00 41 F7
Roland チェックサム
F0 41 10 42 12 40 00 7F 00 41 F7
-
Roland社の場合チェックサムは、アドレス[40 00
7F]とデータ[00]とチェックサムの合計した値の下位1Byteが00になるように記述
40 + 00 + 7F + 00 + [cs] = xxxx00
Check Sum 計算例
※16進数の表記であるHを省略しています
-
まず、40 + 00 + 7F + 00を計算して合計の下2桁の値を求めます
40 + 00 + 7F + 00 = xxxxBF
-
最後に、100 - BFからChecksumを求めます
[cs] = 100 - BF = 41
※あえて10進数で計算すると……
-
数値を合計します
64 + 0 + 127 + 0 = 191
-
256で割って「余り」を求めます
191 ÷ 256 = 0 余り 191
-
最後に、256 - 191からChecksumを求めます
[cs] = 256 - 191 = 65 =41H
EOX (エンド・オブ・エクスクルーシブ/End of
Exclusive)
F0 41 10 42 12 40 00 7F 00 41 F7