10月の開発記録 (2024)

去年もM3サークル参加を申し込み忘れていて、去年は伸び伸びと開発していたのですが、今年は技術書典17にオフライン参加予定です。技術書典、去年はADC23とかぶってオンラインのみ参加でしたが、今年は逆に(現時点で)ADC24に参加予定ないです。いま興味があるのはどちらかというとLinux Audio Conferenceのほうですが、これはまだだいぶ先ですね。

そういうわけで、10月は主に先月から手を付けていたプラグインホスティングまわりのコードを書きながら新刊を用意していました。githubだとrtlog-cppとかchocとかでバグ修正していた程度しかやってないように見えるかと思います。

先月も書いた気がしますが、プラグインホスティングのコードはもともと雑にMIDI 2.0デバイスがほしいな…と思ったところから作り出して沼に落ちた感じで、今月はAudioUnitのためにAudioToolboxとかLV2のためにlilvとかを使ってマルチフォーマット前提にいろいろ試行錯誤している感じです。特にVST3もAUも直に触ったことは一度もなかったので、みんな(juce_audio_plugin_clientを使わない勢は)苦労しているんだなあと思いながらコードを書いています。

理想のオーディオプラグインフォーマットを求めて(技術書典17新刊)

最近は商業案件で執筆しているものがあるのですが、その辺の下地を積むのも兼ねて、技術書典17ではこの辺の知見とこれまで書いてきたプラグインフォーマットの話を合わせて、VST3, AU, LV2, CLAPの各フォーマットをいくつかの側面で比較し、可能なときは優劣を判定する(!) …という本を出すことにしました。

techbookfest.org

今回は30ページちょっとで、図版を一切入れていないクオリティなので(だからページ数が少ないってことはあります)、デジタル版は無料です。11/3の技術書典17オフラインでは紙で読みたい人向けに薄い本をごくわずかに持っていくので、ほしい方は当日サンシャインシティ文化会館までいらして下さい(印刷所クオリティではありません)。

題材をこれにしようと思ったきっかけは割とシンプルな思いつきで、「民法の争点」「刑法の争点」ならぬ「オーディオプラグインフォーマットの争点 (2024)」という感じです。

昔「刑法と民法の対話」っていう書籍(というかもともとは法学教室の連載)があって、各論の諸問題をつまみ食いで検討するやつだったんだけど、技術書典17の新刊はそのオーディオプラグインフォーマット版みたいなやつにしようかと思っている(伝わらなそう)。 まだ目次案が出来たくらいで実現性は未定

Atsushi Eno (@atsushieno.bsky.social) 2024-10-09T05:47:28.044Z
bsky.app

VST3にもLV2にもCLAPにもあとJUCEにも割と均等にダメ出ししていて、われながらこれは刺激的な本になったな…? と思います。AUだけあんましダメ出しポイントが無かったのですが(皆無ではない)、そもそも「ダメ出し」よりプラグインフォーマットのあるべき姿を炙り出すための技術的特性の比較がメインなので、AUのアプローチが優れているという内容でもないです。

以下本書にまとまらなかった部分について。

本当は分析に続いて「プラグインはこう作れ!」みたいなプロファイルの提案に漕ぎ着ければベターなのですが、その辺はちょっと関心と時間が足りなかった感じです。そういうのはどちらかというとGMPIが追求しているトピックかなと思っています(長くて自分でも全部は読んでいません)。GMPI自体はプラグイン「フォーマット」に関するプロファイルを目指しているつもりだと思いますが、自分にはどちらかといえば半分くらいはプラグインSDKにかかるプロファイルを目指しているように見えますし、プラグインAPIプラグインSDKは別々の次元で語るべきものだと考えています。GMPIに関してはLV2の開発者もちょいちょいdisagreeを出しているので(ただこのリンク先自体が最新の仕様を前提としていません)、ひとつの考え方としては面白いという感じです。とはいえ草案の公開が2005年と考えると、意義深いものだっただろうと思います。

今回の新刊に近いトピックとしては、Image-LineFL Studioの開発元)の元CTO ADC'23のセッションのひとつに関連してオーディオプラグインのさまざまな性質を因数分解して列挙しているこのリポジトリがあります。

github.com

そんなに論点整理されていないですが項目数が多いので読み込むと参考になりそうです(全部は見ていない)。個人的にはちゃんと特徴の良し悪しを評価すべきかなと思います。

(セッション動画の内容は正直このトピックとしては3割くらいしか参考にならないのでgithubのREADMEを見るだけでいいと思います。DAWを作るのが難しいみたいな話もあって、それならこっちをじっくり見るといいです)

あと似たようなトピックでADC'24にプラグインフォーマットの違いを総括しそうなセッションがあるので、ADC24に参加する人はこれを見て「答え合わせ」ができるかもしれません。未来を見据えた提言も含んでいそうで期待できます。このセッション概要から見える範囲では、オーディオバス調整以外の論点にはだいたい新刊で触れたはずですが、こんな感じで争点整理もいろいろ出てきそうだなと思っています。この新刊もそのひとつだと思って下さい。