MIDIで色々とお話できる(SYSEX情報)


1.MIDI で、もっとやりとりできる?

パッチやチューナーモードの切り替え以外にも、SYSEX(システムエクスクルーシブ:System Exclusive)情報をMIDIでやりとりすることで、エフェクタの動作を変化させることができる様です。MS-50Gを例にzoom-ms-utility/midimessage.md  に詳しく書いてありますが、要するになんでもできそうです。私が理解しづらかったことを少し補足します。

2.ID要求とパラメータエディットイネーブル

 ID要求はどの機種でも同じ内容のデータを送ると返信を返してくれるので、MIDI接続テストとしては、まずID要求を送るといいです。
 また、「パラメータエディットイネーブル」というコマンド(データ)を送信することで、ZOOMのエフェクタは色々な情報を送信してくれるようになりますが、このコマンドには機種固有IDを含めて送る必要があるので、機種固有IDを返してくれるID要求で未知のエフェクタ解析のきっかけにもなります。

(1)ID要求

System Exclusives
IDENTITY REQUEST
[0xf0,0x7e,0x00,0x06,0x01,0xf7] : Identity Request

機種固有ID番号を取得するためのリクエストです。本リクエストを送信すると返事があり、返事の7バイト目が機種固有のIDになります。MS-50Gや60B以外でも返事が返り、私の手持ちの機種でやった結果は以下です。(16進数)

MS-50G : [f0,7e,00,06,02,52,58,00,00,00,33,2e,30,30,f7]
MS-60B : [f0,7e,00,06,02,52,5f,00,00,00,31,2e,30,30,f7]
  A3 : [f0,7e,00,06,02,52,50,00,00,00,31,2e,30,30,f7]
  G3 : [f0,7e,00,06,02,52,5a,00,00,00,31,2e,30,30,f7]

機種固有IDは以下と思われます。
  MS-50G:0x58、MS-60B:0x5f、A3:0x50、G3:0x5a

 機種固有IDがわかれば「パラメータエディット有効」のコマンドが送信できるようになります、私の手持ちの機種ではID要求で返される機種固有IDに変えて上手くいっています。このコマンドを受けるとZOOMのマルチエフェクタは饒舌(笑)になるので、通信して情報を得る&セットするには大切な手順といえます。

(2)パラメータエディットイネーブル

Parameter Edit Enable
[0xf0,0x52,0x00,0x58,0x50,0xf7]
Parameter value edit enable. This is needed before Parameter Editing.

4バイト目が機種固有IDでMS-50Gでは「0x58]です。ここを接続している機種のIDに変えて送ります。返事はありませんが、これを受けてはじめて、エフェクタのつまみの変化(Parameter Edit)の送信や、カレントバッチ要求(Request Current Program)等の各種コマンドに応答するようになります。

3.Patch Data Formatの”1p2b3”等の読み方

このフォーマット図の意味がわからずに悩みました。わかってみればドキュメントの説明文通りなんですが、これを解析された方の努力はすばらしいと思います。

 (ドキュメントの説明文)
  In the following table, the notation like ‘1p2b3’ means :
  [Effect number(0-5)] p [Parameter number(0-8)] b [bit(0-7)].

 左端の縦の数字が返信されたデータのバイト位置、横がビット位置です。例として「エフェクト番号0番のパラメーター0番のパラメーター値」が格納されているビットは、黒囲みの位置に対応します。
 つまり、エフェクト番号0番のパラメーター0番のパラメーター値0は11ビットで構成されているのですが、1ー11ビット目がお行儀よく並んでいるわけではなく、5バイトの3ビット目が2ビット目で、5バイトの2ビット目が10ビット目で・・・と飛び飛びで格納されているということでした。以下、他のパラメータも同様に飛び飛びに格納されているものが多いので返信データは一見しただけでは理解がしづらいです。

4.機種固有IDをSYNCTRLで要求してみた例 (MS-50G)

MIDI出力欄にID要求コマンドを入力して、送信を押すとエフェクタにコマンドが送られ、その返信がMIDI入力に表示される。という例です。
こんな感じでZOOMのエフェクタとの通信テストができますが、パッチの切替やパッチの編集、エフェクトのON/OFF等などほとんどの事ができると思われます。

おわり