「MIDI 2.0 アーキテクチャ ガイドブック」刊行によせて

Intro

6/1のオフライン開催を含め、5/31からの技術書典18が近づいてきて、M3 2025春が終わった頃から「オーディオプラグイン研究所の新刊を用意するか…」と考えていました。前回は各オーディオプラグインフォーマットのAPIの良し悪しを徹底比較するという内容で、一応これが初めてオーディオプラグインのメインストリームであるところのVST3やAudioUnitに深く踏み込んだ初めての書籍だったので、これでatsushienoはニッチプラグインフォーマットにしか詳しくない奴呼ばわりはさせないぞ1とコンプレックスを解消 オーディオプラグインの話題はひとまず満足しました。

そういうわけで(?)、5月に入ってからMIDI 2.0の新しい解説書を書き始めて、技術書典18に新刊登録して販売する準備ができました。

表紙

techbookfest.org

MIDI 2.0ほげほげガイドブック」はこれでUMP、MIDI-CIと合わせて3冊目になるのですが、これは民法でいうところの「総則」…といっても伝わらないと思うので、技術標準仕様書によくある「Primer」に相当する内容を目指しています。MIDI 2.0だとOverviewという仕様書(M2-100-U)があるのですが、これは実質10ページも無く、読んでもほとんど何も伝わらないでしょう。この本はそれに代わり、DAW等においてMIDI 2.0が必要になる技術領域でどのように適用されるかを、56ページでみっちり解説します(!)2

この本の目的は前書きからコピペします。

本書は主にMIDI 2.0 のシステムおよびアプリケーションの開発者が、オーディオアプリケーションが動作するプラットフォームにおいて、MIDI 2.0 をサポートするために必要になる技術スタックの全体像を説明し、本書執筆時点ですでに存在する、あるいは今後必要になるソフトウェア構成要素を総合的に解説するものです。特に次のような疑問を解消できることを目的としています。

  • MIDI が現在の楽曲制作ワークフローのどこで使われているのかわからない
  • MIDI 2.0 が現在の楽曲制作ワークフローの何を具体的に改善できるのか見えてこない
  • MIDI 2.0 の何がすでに実現していて、何が実現しそうで、何が単なる願望なのかわからない

章立てのレベルではこんな感じです:

  1. MIDI システムの全体像とMIDI 2.0
  2. プラットフォームのMIDI システム設計
  3. MIDI アプリケーションの開発基盤
  4. DAW とオーディオプラグインMIDI 2.0 統合
  5. MIDI 2.0 デバイスの作成

ちょうどこの本をほとんど書き終えた頃3にDTMstationにMIDI 2.0の現状に関するレポート記事が上がってきたのですが(インタビューの質問も回答も現状が伝わりやすくて良い内容)、

www.dtmstation.com

--一言でMIDI 2.0といっても、いろいろな内容があって、すべてを網羅しているわけではないのが難しくも感じてしまいます。

**確かにMIDI 2.0の規格は非常に多岐にわたるため、すべてを網羅するというのは簡単ではありません。

本書ではこれをシステム(OSプラットフォーム)とDAWアーキテクチャについて概ね「すべてを網羅した」と思います。(もちろんUMPやMIDI-CIの細かいプロファイルやプロパティの仕様は「既刊を参照」で済ませています。)

当初は「MIDI 2.0エコシステム構築術 v2.0」だった

最近は裏稼業でMIDI 2.0システムの設計のヘルプなどをやっているのですが、先月書いたような感じで、そもそもMIDI 2.0サポートがこの方面での技術開発のhot topicのひとつであるということを「伝える」だけで精一杯、みたいなところがありました。「MIDI 2.0は使われるようになる」っていうメッセージは本当なの? という疑問に、このエントリーだと「JUCEでもいま実装している」という話をしていて、これは有効ではあるけど対人論証でしかない(!)わけです。

これはMIDI 2.0が「どこで」「どのように」「なぜ」使われているかを誰も伝えようとしていない(あと全部やっているというのはいない)というのが原因なので、じゃあ今回はその辺りをじっくり解説する本にしよう、と思い至りました。ただ、実はすでに自分は2021年4月にこれと似たようなことを「MIDI 2.0エコシステム構築術」という既刊でやっていたんですね。

techbookfest.org

追記: 今回の新刊公開に合わせて、こちらは過去の参考情報として無料ダウンロードできるようにしました。

2021年がこの業界でどういう年だったかというと、MIDI 2.0デバイスを接続できたのはCoreMIDIだけ、CLAPの正式版リリースが2022年、MIDI 2.0関連仕様の全面的なアップデートが2023年、2021年当時にはUMPを処理できるライブラリが自作のcmidi2ktmidiしか無く(しかもktmidiにMIDI 2.0サポートを追加したのがこの頃)、アプリケーションもMIDIバイスも皆無でした。この本はどういうスタンスで書かれていたかというと、「MIDI 2.0をサポートするDAWフルスクラッチで作るのは大変だし、まずはMIDI 2.0プレイヤーとか仮想MIDI 2.0キーボードとか仮想MIDI 2.0音源デバイスとか、できるところからMIDI 2.0をサポートしていってみよう」みたいな感じでした。

これは当時のスタンスとしては妥当だったと思いますが、2025年にはさまざまな技術的な状況が変わってきていて、仕様の前提も違えばライブラリの充実度も違うわけです(まあ今でもそんなに充実しているとは言えないけど)。この本の内容は「古い」…よしこれをアップデートしよう、そうすれば新刊になるじゃろ…と考えました。

フルスクラッチで「アーキテクチャ本」として書くことに

完全に甘い見通しでした。当時はそもそもMIDIバイスアクセスのAPIがCoreMIDIを除いてできていなかったので(クローズドソースのmacOSの内容は当然知る由もなく)、今回はその辺も言及することになりました。最近はMIDIシステム設計を手伝っていることもあって、そもそもクライアントAPIの使い方だけじゃなくて、プラットフォーム側はMIDI 2.0をサポートするために何をやっているのか、いやそもそもMIDIシステムってどうやってできているのか説明したほうが良い…みたいなことを考え始め、最終的にMIDIシステムだけで独立した章が出来上がりました(第2章)。

先のインタビュー記事にもありましたが、プラットフォームのサポートなども含め一朝一夕にできることではなく、特に2023年のアップデートは割とインパクト大で、これに対応したものと考えると、仕様が出てからまだほんの2年です。VST3の最初のリリースは何年だったでしょうか? 2007年です(しかも2018年にSteinbergがVST2 SDKのライセンスを停止しコピー配布を禁止して回るまで誰も使っていませんでした)。そんなにすぐに使われるわけはないのです。CLAPなんかが3年でここまで採用が進んでいるのは奇跡的なのです。まあそれはさておき。

この部分には、MIDIバイスってどうやって認識されているのか、仮想MIDIバイスって何なのか、みたいな話から、Android 13で追加されたMIDI 2.0デバイスアクセスはALSAじゃなくてJava言語で実装されている(!?)みたいな無駄話まで入っています(これは第3章)。まだリリースされていないWindows MIDI Servicesの解説もちょろっと入っています。

アプリケーション開発で使えるMIDIライブラリについては、自分の中では比較的アップデートが小さい領域なのですが、それでもそもそもMIDIバイスアクセスが可能になっているのでlibremidiなども説明したり、MIDI協会メンバーだからという理由でだいぶフィーチャーされているni-midi2にも言及したり(SysExも解析できない程度であんまし機能的には充実していないけど一応)、MIDI-CI本でも言及したjuce_midi_ciとかも入ってきて、ライブラリの紹介はそこそこ充実したと思います。何より自家撞着で(自作ライブラリの話だけで)終わりにならないのが良い…! MIDIプレイヤーやMMLの話は完全に脇役にしました。DAWサポートの下地ができつつある現在の状況としてマジョリティ向けの話が書けるようになったので…!

DAWプラグインの章は、たぶん多くの人が知らないであろう領域で、「プラグインを使うのにMIDIなんて関係ないじゃん」から「プラグインを演奏させるのはMIDIメッセージなんでしょ」あたりまで、さまざまな誤解の余地があると思います(こんな感じの解像度の理解だと概ね誤解です)。そして(JUCEプラグインなどを開発していれば自明ですが)プラグインではDAWプラグインフォーマットのイベントに変換されたメッセージがまたMIDIに戻される、みたいなことも解説しています。

第4章のサンプル

MIDI 2.0デバイスの章は、第2章を踏まえて仮想MIDIバイスを常駐させて使用するやり方で、この辺は「エコシステム」本と基本的には同じですが、当時は単なるMIDI 1.0デバイスのアップグレード版としての可能性を追求していただけでした。これではユーザビリティとパフォーマンスの観点でDAWの代わりにはならないので(音源側)、DAWに近づくにはどういう仮想MIDIバイスアーキテクチャが必要になるか(!?)といった部分まで踏み込んで解説しています。まあ仮想MIDI 2.0音源の部分はまだ(?)現実化していない、だいぶ野心的な内容です。

「エコシステム」本はMIDI 2.0のプラットフォームAPIも無い頃からMIDI 2.0プレイヤーやMMLによる楽曲データ生成、仮想MIDIバイスなど、だいぶニッチなところからスタートしましたが、今回はこれだけ客観的に実装されたMIDI 2.0技術のエコシステムについてまとめたのであれば、エコシステム「構築術」を中心に論ずるフェーズではないし、シンプルに「システムとアプリケーションのアーキテクチャ」の解説で良いだろうと考えて、最終的に今回のタイトルになりました。

Outro

「エコシステム」本のバージョンアップとして既刊購入者の方が無料でDLできるようにしたほうがいいかな、とも考えましたが、内容の流用すらしていないレベルの、目的意識だけが同じ書籍なので、完全な新刊として出すことにしました。まあ500円の本でしたし、納得感はあるかと思います。

そして「ガイドブック」の1冊としてこのシリーズに加えることにしました。「エコシステム」本とは異なり、本書はMIDI 2.0仕様の解説と同じくらいMIDI 2.0の「王道」を征く解説書であり、客観的に説得力のある内容がほとんどのはず、という自負のあらわれです。あとはプログラミングガイドあたりが出来たら「MIDI 2.0(完全)ガイドブック」として完成する日も遠くはないでしょう(さすがにそれは商業ベースのほうがいいと思いますが)。

今回は印刷版を用意していく予定です。ねんがんの「前から印刷」をやるぞ…! 技術書典18オフラインでは「う-11」でお待ちしています。


  1. そんなことを言われたことは一度も無い
  2. もしかしたら民法総則ではなく債権総論だったかもしれん…すまんな…(伝わりにくい)
  3. https://bsky.app/profile/atsushieno.bsky.social/post/3logllyn24c2u