以下の内容はhttps://atsushieno.hatenablog.com/entry/2025/11/30/162023より取得しました。


11月の開発記録 (2025)

ADC Bristolと技術書典19

2年ぶりにADCにオフライン参加してきました。今年のセッションはあんまり強い傾向の見えないラインアップだったように思いますが、強いて言えばAccessibilityまわりは充実していました。MIDI 2.0、空間オーディオ、AI技術あたりの話題は見ていません(AIはさすがに皆無ではない)。個人的に良かったのは最終日のキーノートでした。Strudelコミュニティの隆盛を紹介した話だったのですが、いろんな意味でフリーダムすぎるんだけど(「誰でも好きに変更できる。何なら全部消すこともできる」)、でもそれがうまく回っている、みたいな話で、めちゃくちゃ面白かったです。これは幅広く見られてほしいです。技術的なトピックとしては、 std::memory_orderの話をしているな??という感じでした。あと初日がワークショップと1トラックのセッションの並列進行だったので、ワークショップに興味のない自分はセッションをつまみ食いできてよかったです。

セッションの時間以外は今回は何かと政治的に(?)振る舞っていました:

  • the VST3 developerが来ていたので、AAPを見せて「これをVST3に手を加えてできるようにすべき」という話をしてきました( Androidの元リーダーも来ているから相談してみてよ、って言ったら実際相談するようになって、「DSPはいけそうだ、って話をした」と言っていたので(GUIも技術的にはいけるんだけど)、もしかしたらこの方面で進展が見られるかもしれません。
  • Androidオーディオチームの元リーダー(最近辞めてしまった)には2019年にもうAAPを見せていたので、今回はむしろuapmdで仮想MIDI 2.0デバイスMIDI-CIでプラグインのパラメーターリストを取り出したりするのを見せたりしていました(MIDI 2.0の導入も関与していたので)
  • AudioUnitの開発者も来ていたので、AAPを見せて「iOSではどうやってXNU Turnstilesを導入してもらったんだ…?」と訊いたりしていました(ほとんどカーネルチーム主導でオーディオチームからの働きかけは無かったらしいとか)。ADC 2023ではthe CLAP developerにもAAPを見せていたので(今年はいなかった)、あとはLV2開発者に見せればフルコンです(違)
  • Cmajorの開発者に「Androidで使いたいんだけどビルドできると思う…?」って訊いたら「一度やったことがあるからやってみて出来たら教える」となって、その後すぐリリースに含めるようにしてもらえました(!) 最新版からAndroidビルドも入っています。ただ個人的に動かしたいのはPro-54とかで、これをやるにはchoc WebViewあたりから移植する覚悟が必要そうです。
  • JUCEの開発者に「AndroidプラグインのStandaloneをMIDI 2.0デバイスとして使えるようにしたんだから、同じことをデスクトップでやればいいじゃん?」と提案したら割と好感覚だったので、もしかしたら来るかもしれません。ちなみにuapmdでAllCtrlListを取得できるのを見せて「これもやればできるのでは?」と言ったら「それは方向性が違うかも…」となったので、そっちは来なそうです()

あと他人と雑談しているときはMML to Tracktionでコレからコレを生成したのとか、技術書を売るイベントがあって早く帰らなきゃいけないんだ…こういうイベントでな…とそのまま技術書典を説明したり(「CLAPの本もあるのか!?」みたいになっていました)、そろそろ小ネタは困らなくなってきました。

日本からはDreamtonicsとRolandが出展していて(どちらも半分くらいは「日本から」ではないかも)、あとYAMAHA方面から参加者が来ているという感じでした。Dreamtonicsブースは会場に近かったので空いてるときは便利に立ち寄らせてもらいました(!?)

ADCから帰国したらすぐ技術書典19で(当日来てくださった皆様ありがとうございました)、1週間前に日本にいなくて既刊を自宅から発送できなかったり、当日はスタッフ業もあって早朝から夜まで…という感じでしんどかったのですが、何とか生きてます。今回は「理想のオーディオプラグインフォーマット」にGUIの章を追加しただけで新刊扱いなのですが、在庫切れしたMIDI-CIガイドブックを後から印刷して出すので(紙で売っているのは技術書典期間中だけ)、それだけやれば完了です。おつかれさまでした。

今月は大きなイベントだけでもKotlin Festとか東京楽器博とかJJUG CCCとかFOMとかいろいろ遊びに行ってたので、妙に忙しかったような気持ちでしたが、そんな余裕があったということは割と暇だったということかもしれません(?)

UAPMD & midicci progress

今月はADC参加期間以外の大部分をUAPMD開発に費やしていたのと、GUI関連をAI agentsにやらせて割と「プラグインフォーマットのようにドキュメントのある仕様を実装する」のにはだいぶ役に立つことがわかったので(あと基本APIを自分で策定していて変なものを他所からまるっと持ってこられないことがわかっているので)、今月はさらにいろいろやらせてみていて、だいぶ進展がありました。

先月は「Serum2が動くようになった!」「NI製品がだいたい死ぬ」というレベルでしたが、現時点でremidy-plugin-hostは手持ちのプラグインの大部分をインスタンス生成できています。AUKontaktGUI表示でクラッシュするのが目下の最大の問題で、VST3版は問題なく使えています。

各論的に改善点を挙げていくと、こんな感じです:

  • だいぶ実装すべき機能が揃ってきたので、問題のある挙動をissuesに登録するようにしました。もう「自分が把握している問題だけでも多すぎて困る」状態ではなくなりつつあります。
  • ユーザー向けドキュメントを追加して、開発者用ライブラリ(なのにAPIが不安定)という位置付けから脱却しつつあります。
  • トランスポートコントロールが実装されたので、再生中の楽曲の位置情報などをプラグインに渡せるようになりました。remidy-plugin-host上で Play を指示するとSynthesizer V Studioが再生を開始するみたいなことが可能になります(これはGUIだけですが)
  • オーディオバスの接続処理が整理され、マルチチャンネルレイアウトも(可能な範囲で)正しい実装を作り直しました。
  • Stateのセーブとロードが(全フォーマットで)実装されました。VST3のIComponentとIEditControllerなど複数のStateデータを1つのファイルに含めるためのバイナリフォーマットは、今後変更があるかもしれません。
  • パラメーターの列挙型のサポートが整理され、remidy-plugin-host GUI上でも選択できるようになりました。discreteでない列挙値も、スライダーと併用して選択できます。
  • パラメーターの扱いを整理して、normalizedとplainのセマンティクスを整理しました。
  • プリセットのロードが全面的に可能になりました(ただしプラグインプラグインAPIに基づいて公開している場合のみ。実例は多くありません)
  • パラメーター変更の挙動を包括的に検証し、プラグインUI、プリセットロード、ホストからの直接操作を問わず、DSPを経由して、プラグインUIにもホストにも正しく通知・反映できるようになっています。
  • VST3のRestartComponentなどのインターフェースがいろいろ実装されました(パラメーター変更通知のついでのようなもの)
  • midicci-keyboardはMIDI-CIセッションの確立とAllCtrlListプロパティの取得、ProgramListの取得を別々の操作によって取得する方式に(暫定的に)移行しました。これが安定的なリストの取得に大いに貢献しています。
  • remidyで挙動が安定したパラメーター操作を、midicci-keyboardでも行えるようになりました(float - uint32のみ確認)

上記どの項目もどれももう少し細かく解説したほうが良い内容ではあるのですが、そこに無限に時間を割くわけにもいかないので、気が向いたら書けるものは書いていこうと思います。

だいぶいろいろ動くようになってはきたものの、GUIまわりでいくつか 問題が あるのと、MIDIイベントをどうプラグインに直渡ししつつ他のMIDIイベントをプラグインAPI呼び出しに変換していくのかという問題があるので、来月はその辺を片付けて、UAPMDをMIDI 2.0アプリケーションの基盤として使えるように周辺アプリケーションを整備していきたいところです。




以上の内容はhttps://atsushieno.hatenablog.com/entry/2025/11/30/162023より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14