Windows MIDI Services の内蔵ループバックで内部 MIDI ルーティング — loopMIDI / MIDI Yoke なしで

Published: May 25, 2026 by mewlist

Windows でアプリからアプリへ MIDI を流したいとき、これまでは MIDI YokeloopMIDI、LoopBe といった、サードパーティ製の「仮想 MIDI ケーブル」ドライバを入れるのが定番でした。OS 自体には、アプリ間を内部で繋ぐ仕組みがなかったためです。

2026 年 2 月、Windows MIDI Services が Windows 11 に正式提供され、この内部ルーティング(ループバック)が OS 標準の機能になりました。サードパーティ製ドライバを入れなくても、Windows だけでアプリ間に MIDI を通せます。

この記事では、winget でのインストールから、MIDI Settings アプリでループバックを作り、自作アプリ同士(MewMMLPad → MewFM)を繋ぐところまでを、実際にやった手順で紹介します。

Windows MIDI Services とは(ざっくり)

Windows MIDI Services は、Microsoft が開発しているオープンソースの次世代 MIDI スタックです。MIDI 1.0 と MIDI 2.0 の両方に対応し、複数アプリからの同時アクセス(マルチクライアント)や、今回扱う内蔵ループバックなどをサポートします。

2026 年 2 月 17 日に GA(一般提供)となり、サポート対象の製品版 Windows 11 へ段階的に展開されています。コア部分は OS に組み込まれていて、設定用のアプリや SDK は別途インストールするかたちです。

MIDI 2.0 や UMP(Universal MIDI Packet)といった中身には踏み込まず、ここでは内部ルーティングに絞って紹介します。

インストール

設定アプリと関連ツールは winget で入ります。

winget install Microsoft.WindowsMIDIServicesSDK

これで MIDI Settings アプリ(正式名「Windows MIDI and Musician Settings」)が追加されます。スタートメニューで「MIDI Settings」と検索すると見つかります。

スタートメニューの検索結果に出てくる MIDI Settings アプリ

手元の環境では、このインストールだけで内部ルーティングまで使えました(別途サービスプラグインを入れたり、再起動したりは不要でした)。

この MIDI Settings アプリを開くと、下のスクリーンショットのように、左側のメニューに Loopback Endpoints の項目があります。

MIDI Settings アプリの画面。左メニューの Loopback Endpoints を選ぶ

なお、この記事のスクリーンショットはプレビュー版(Installed MIDI Runtime 1.0.14-rc)のものです。ツールの UI は今後変わる可能性があります。

ループバックを作る

インストール直後から Default App Loopback (A) / (B) という既定のペアが用意されているので、すぐに試せます。独自に名前を付けたペアを作りたい場合は、Loopback Endpoints の画面から作成します。

Create MIDI Loopback Endpoints ダイアログ。A と B のクロス接続を図解している

ここが少しややこしいところです。MIDI 2.0 ではすべてのエンドポイントが双方向です。そのため「ループバック」を成立させるには、A と B という 2 つのエンドポイントを作り、たすき掛け(クロス)に繋ぎますA から出たものは B の入力に届き、B から出たものは A の入力に届く、という関係です。

作成時のルールも、このダイアログに書かれています。

  • Loopback Base Name … MIDI 1.0 の API から使えるよう、名前は 27 文字以内。末尾に (A) (B) が自動で付き、2 つのエンドポイントを区別します。
  • Unique Identifier … 英数字のみ・スペースや記号なし・32 文字以内の、トランスポート内で一意な識別子。既定値が入っています。

これで 〜 (A)〜 (B) のペアができます。

落とし穴:送る側と受け取る側で「同じ側」を選ばない

A → B / B → A というクロス構造のため、ひとつ注意点があります。送る側と受け取る側で同じエンドポイント(A 同士・B 同士)を指定すると、MIDI は流れません。

A から送ったものが届くのは B の入力で、A の入力ではないからです。したがって、

  • 送信アプリの出力A にしたら、受信アプリの入力B にする
  • (逆に出力を B にしたら、入力は A

というように、必ず反対側を指定します。冒頭の図の、A の出力(O)から B の入力(I)へ向かう矢印が、その流れを表しています。

自作アプリ同士を繋ぐ(MewMMLPad → MewFM)

実例として、MewMMLPad(MML シーケンサー)が生成した MIDI を、MewFM(FM 音源)に流してみます。

送信側の MewMMLPad は、MIDI 出力に Default App Loopback (A) を指定します。

MewMMLPad の MIDI 出力に Default App Loopback (A) を選んだ状態

受信側の MewFM は、MIDI 入力に Default App Loopback (B) を指定します。出力を A にしたので、入力は反対側の B です。

MewFM の MIDI 入力で Default App Loopback (B) にチェックした状態

これで、MewMMLPad で打ち込んだ演奏が、ループバックを通って MewFM で鳴ります。あいだにサードパーティ製の仮想 MIDI ケーブルは一切入っていません。

まとめ

Windows でのアプリ間 MIDI ルーティングは、長らくサードパーティ製ドライバ頼みでしたが、Windows MIDI Services によって OS 標準の機能になりました。winget install Microsoft.WindowsMIDIServicesSDK を実行し、MIDI Settings アプリでループバックを用意するだけです。

実際に使ううえでの勘どころは、A / B のクロス構造です。送る側と受け取る側で反対の端を選ぶ、ここだけ押さえておけば迷いません。

内部ルーティングは Windows MIDI Services のごく一部の機能で、その先には MIDI 2.0 / UMP の世界が広がっています。この記事では、そのなかから内部ルーティングだけを取り上げました。

Share