台湾からの移動日にノートPCにコーヒーをひっかけて使い物にならなくなった状態でくそ暑い東京に帰ってきました。もうちょっとヒートアイランドを高みの見物していたかった…(時候の挨拶)
Can we build better music software ecosystems for more generative era? @ COSCUP 2025
今年のトークは例年よりエモい…というか今あるプラグイン技術でできていない「データの可搬性の無さ」の問題を取り上げて、プラグインフォーマット間の相互運用性を高めるにはどうすればいいか?みたいな議論を中心に話してきました。スライドは公開してあります。セッション動画はそのうちyoutubeに上がるんじゃないかと思います。
COSCUP自体は今年も3000人くらい参加していたそうですが、今年はRubyConf Taiwanとくっついていたこともあってか、やたら日本人が多く来ていました。まあその面倒を見るのはOSC方面の人たちで、自分は「その他」野生の外国人勢ですが。
本当はもっと理想のプラグインフォーマット本に沿って、プラグインフォーマットごとの設計の相違点をネチネチと30分くらいしゃべれればよかったのですが、完全に主題が行方不明になってしまうのと、それをどこまで期待されているのかわからん(英語セッションの時点でこんな心配しても意味ないのですが)ということもあって、だいぶ絞って話しました。1時間あれば40分、2時間あれば1時間40分はその話をしたと思います…
midicci-keyboard
先月uapmdにktmidiのC++移植midicciを統合してAllCtrlListを取得できるようにするだけしましたが、やはりクライアントがktmidi-ci-toolやJUCEのCapabilityInquiryDemoくらいしかないのでは全く実用性が無いので、適当にMIDI 2.0キーボードのサンプルをでっち上げようと思って、またClaude Codeに作らせました。最初は独立リポジトリに作ってあったのですが、途中で面倒になってmidicciの一部として開発しています。
AI coding agentが書いたものなので全般的に中途半端ですが、動くときは動くようです。今はLinuxビルドがMIDI-CIのGet Property Data Replyの処理に失敗するようで、ここまで来るとなかなかAIでは先に進め難いところです。実行環境も特殊でローカルで動かすのが前提ですし。
bsky.appようやくAllCtrlListのプロパティをMIDI 2.0デバイス化したVitalから取得できるようになった…これじゃ使い勝手が悪いからツマミのリストくらいにしないとな。 ちなみに列挙値も取れるからJUCEのproperty grid的なものも作れなくもない。オーディオプラグイン並のことができるようにしたいところだな。
— Atsushi Eno (@atsushieno.bsky.social) 2025-08-12T12:52:57.996Z
今月はこれに合わせて、uapmdで全フォーマット(VST3, AU, LV2, CLAP)でパラメーターリストを取得できるようにしたり(特にLV2がしんどい)、StateListをサポートするためにきちんとMIDI-CI Property ExchangeのresIdサポートを実装したり、その上でState APIをそもそもプラグインホスティングAPI (remidy) のレベルで実装して回ったりと、いろいろ目に見えない部分に時間がかかりました。まだProgramListの設計と実装の辺りができていないので、その辺がひと段落したらuapmdと合わせてもう少しまともにプロモーションしようと思います。
来月の予定
来月はDroidKaigiがあるので、発表資料をあーでもないこーでもないとこねくり回しながら作っています。コードもしばらくはAAP方面のメンテなどをやることになるでしょう。それが終わったらようやくひと息つける感じです。