ガイド
-
Mac の IAC ドライバは MIDI 2.0? アプリ間で送る MIDI に起きていること
IAC ドライバのプロトコルを調べ、MIDI 1.0 と 2.0 の変換結果を測定しました。ベロシティや CC の変換、NRPN の途中の値、重複して届くメッセージを紹介します。
更新日
-
macOS 27 で MIDI の設定が再起動で元に戻るのはなぜ?
macOS 27 で Audio MIDI 設定の変更が保存されない問題を調べました。構成ファイルと USB MIDI 機器のポート名に含まれる NUL 文字が関係しており、機器を外して構成を作り直すと保存できました。
更新日
-
Mac を経由すると、USB 機器どうしの MIDI-CI が成立しないのはなぜ?
Keystage と opsix module を USB で Mac につなぐと、MIDI-CI の接続が成立しない場合がありました。macOS の中継を調べた記録と、DIN ケーブルで直接つなぐ回避策をまとめます。
更新日
-
Mac の音楽アプリで、MIDI が突然止まるのはなぜ?
MIDIServer を終了すると、起動中のアプリはエラーを表示せずに MIDI を送受信できなくなりました。再起動による復旧方法と、MIDIServer の起動時刻を調べるコマンドを紹介します。
更新日
-
MIDI 2.0 で受け取る Mac のアプリで、NRPN が最初に違う値で届くのはなぜ?
Core MIDI で NRPN を MIDI 2.0 に変換すると、CC 6 の時点で不完全な値が届き、CC 38 の後に完全な値が届きました。測定結果と、受信側での対処を説明します。
更新日
-
Roland の SysEx(RQ1 / DT1)の送り方と、チェックサムの計算方法は?
Roland の RQ1・DT1 を JUNO-D のバイト列で説明します。チェックサムの計算例、7 ビットのアドレス計算、大きなデータを送受信するときの分割と間隔をまとめました。
更新日
開発記録
-
MIDIFabric と AI を MCP でつなぐ: localhost と認証の設計
MIDIFabric と AI クライアントを MCP で接続する設計について。API や CLI の呼び出しを採用しなかった理由と、localhost、アクセストークン、読み取り権限の役割を説明します。
更新日
-
AI に MIDI の記録を読ませる: 許可の決め方
AI がモニタの記録とルーティングを読み取れるよう、MIDIFabric に MCP ツールを追加しました。初期設定をオフにした理由、権限を切り替えるタイミング、記録の欠落を伝える方法をまとめます。
更新日
-
AI に頼んだエフェクトを、AI が自分で確かめる:「強く弾くほど、反復が長く続く」
Claude Code に反復エフェクトを作ってもらい、演奏後の MIDI を AI 自身に調べてもらいました。反復回数、Note Off、音程の変更を確認した記録と、実際の会話を掲載しています。
更新日
-
CC 102 が「OP1 Level」と読めるまで: MIDI モニタとデバイス定義
opsix の CC 102 を「OP1 Level」と表示し、Prophet Rev2 の NRPN を名前付きの 1 行にまとめます。MIDIFabric のデバイス定義を例に、番号と名前の対応、元メッセージの確認、定義の編集を説明します。
更新日
-
Core MIDI で MIDI 2.0 を扱うときに見つかった 4 つの挙動
macOS 27.0 で調べた Core MIDI の 4 つの挙動です。Stream Message の送信、UMP Endpoint の列挙、仮想ポートの応答、入力の再接続について、試験結果と回避策を記録しました。
更新日
-
JUNO-D の SysEx を名前で送り、名前で読む: アドレスマップ
JUNO-D の SysEx を「tone:1 lfo:2」などの名前で入力できるよう、デバイス定義にアドレスマップを追加しました。7 ビットのアドレス計算、補完候補の生成、受信した DT1 との照合を説明します。
更新日
-
Lua で書いたアルペジエーター: コードと操作パネル
Rust に組み込んでいたアルペジエーターを、編集可能な Lua エフェクトに移しました。操作パネル、発音時刻の予約、Note Off の処理と、移植時に決めた動作を紹介します。
更新日
-
MIDI Debugger で JUNO-D の設定を読み出す
JUNO-D に RQ1 を送り、返ってきた DT1 を MIDI Debugger で確認した記録です。CLI の入力補完、チェックサムの生成、SysEx の詳細表示、比較・記録・再送の機能を説明します。
更新日