更新日:
確認環境: MIDIFabric 開発版(macOS)。画面は 2026-10-06、Roland JUNO-D8 を MIDI インターフェース経由で接続

JUNO-D のシーン設定を読むため、MIDI Debugger に sysex data request 1 (rq1) scene common と入力して Send を押しました。返ってきた 63 バイトの SysEx には、「Temporary Scene / Scene Common」という名前が表示されました。

MIDI Debugger では、メッセージの送信、応答の確認、詳細表示を一つの画面で行えます。機器固有の名前による入力補完とデコードには、モニタと共通のデバイス定義を使っています。

CLI 入力と補完

画面の下に、送り先、チャンネル、入力欄(CLI)、HEX の欄があります。入力欄には、短いコマンドでメッセージを書きます。

note on C4 100
cc 74 96 ch2
nrpn 0:36 8
sysex data request 1 (rq1) scene common

コマンドは note、cc、pc、pb、cp、pp、rpn、nrpn、sysex、panic、reset です。入力に合わせて、入力欄のすぐ上に候補が並びます。Tab かクリックで確定でき、候補を選んだだけでは送信しません。

MIDI Debugger の入力欄に「sysex data request 1 (rq1) scene」まで入力し、JUNO-D のシーンの区分(common、part:1〜7、eq、mfx など)がアドレスとサイズ付きで候補に並んでいる画面

候補は、送り先に割り当てたデバイス定義から作られます。

  • 音名と値。 ノートは C-1〜G9(C4 = 60)の音名で入力できます。値には min、center、max も使えます。
  • CC と RPN、NRPN の名前。 定義にある名前で入力できます。番号での入力もそのまま使えます。
  • SysEx。 共通のメッセージに加えて、送り先の機器のメッセージと、アドレスマップの区分とブロックが候補に出ます。上の画面では、JUNO-D のシーンの区分が、アドレスとサイズ付きで並んでいます。

入力した内容は、すぐ下の HEX の欄にバイト列で表示されます。HEX の欄に直接バイト列を書いて送ることもできます。

送信時の処理

Send を押すと送信を開始します。NRPN は 4 つの CC、長い SysEx は複数のパケットになりますが、どちらも 1 回の操作として、まとめて受け付けます。入力の誤りや送り先の問題で受け付けられないときは、一部だけを送ることはせず、1 件も送りません。Roland のチェックサムなど、機器固有の値も定義に従って生成します。

一覧の Tx 行には、実際に送信を観測したメッセージを表示します。受付が成功しただけでは Tx 行を追加しません。機器からの応答は Rx 行で確認でき、入力エラーや送信失敗はダイアログで通知します。

受信した SysEx の詳細を読む

DT1 の詳細表示では区分とブロックの名前を確認できます。データを個々のパラメータの値に分ける表示には対応していません。

送ったメッセージと届いたメッセージは、時刻、方向(Rx / Tx)、送り元、種類、チャンネル、長さ、データの列で、同じ一覧に並びます。冒頭の例では、17 バイトの RQ1 が Tx、63 バイトの DT1 が Rx として続いています。

送った RQ1 と届いた DT1 が一覧に並び、右の Message Detail に DT1 の解読結果(Roland、JUNO-D、Data Set 1、Temporary Scene / Scene Common)と Hex Dump が表示されている画面

行を選ぶと、右の Message Detail に中身が出ます。DT1 なら、メーカー、機種、メッセージの種類、アドレスとその名前(「Temporary Scene / Scene Common」)、全体の Hex Dump です。Hex Dump の右側には文字も表示されるので、この例ではシーンの名前「Studio Piano」が読めます。

デコード処理はモニタと共通なので、同じメッセージには同じ名前が表示されます。

差分の比較と値の追跡

  • Compare。 一覧で 2 件を選ぶと、同じ位置のバイトを並べて比べ、違うバイトを赤で示します。違うバイトの数と割合、長さの差も出ます。挿入されたバイトを探して位置をずらす比較ではありません。
  • Watch。 CC 74 や Pitch Bend などを登録しておくと、一覧が流れても最新の値と時刻が残ります。観測が欠けたときは、値を確定せずに「不確定」と示します。
  • Channel State。 選んだメッセージのチャンネルについて、押されたままのノート、Bank Select、Program、Pitch Bend、Sustain などの最新の観測値を並べます。観測したものだけを表示し、機器の状態を推測はしません。

記録して、送り直す

Record で、選んだ機器との送受信を記録し、Take として保存できます。Replay では、記録から選んだメッセージを、送り先を明示して、まとめて 1 回、または 1 つずつ送り直せます。返事が来なかったときに、同じ要求をもう一度送ることもできます。

送信と応答確認を一つの画面に

MIDI を調べるときは、メッセージを送り、届いたものを確かめ、また少し変えて送る、の繰り返しになります。送る道具と見る道具が別だと、そのたびに画面を行き来し、送った内容と返事を自分で突き合わせることになります。MIDI Debugger は、その往復を一つの画面に収めました。

機器固有の情報はデバイス定義にまとめています。定義を更新すると、モニタの表示と MIDI Debugger の入力補完の両方に反映されます。この考え方は「CC 102 が「OP1 Level」と読めるまで」に、JUNO-D のアドレスマップの作り方は「JUNO-D の SysEx を名前で送り、名前で読む」に書きました。

← 開発ノートの一覧