Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
2026年に相応しい 最先端プラグインホストの設計<del>と実装</del>
Search
Atsushi Eno
April 15, 2026
Technology
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2026年に相応しい 最先端プラグインホストの設計<del>と実装</del>
Music Tech Meetup 2026.04
Atsushi Eno
April 15, 2026
More Decks by Atsushi Eno
See All by Atsushi Eno
Enabling Text Inputs on Any Remote GUI on Android (LT)
atsushieno
0
26
design and implementation of a next-gen. DAW sequencer engine for desktop, mobile and web
atsushieno
1
72
Android and Audio Plugins: State of Union
atsushieno
1
130
Can we build a DAW with Compose Multiplatform? Maybe!
atsushieno
0
45
Android Audio: Beyond Winning On It
atsushieno
0
6.5k
Can we build better music software ecosystems for more generative era?
atsushieno
0
840
Some Music Libraries for Kotlin (with some .NET -> Kotlin migration stories)
atsushieno
0
800
Building App Extensions equivalents on Android (maybe?)
atsushieno
1
1k
Taking trends in music app development into the future mobile ecosystem
atsushieno
0
960
Other Decks in Technology
See All in Technology
AI駆動開発で仕様はどこまで書くべきか? ― 人とAIの責務境界から考える開発プロセスの実践
takahiromatsui
1
300
高負荷プロダクション環境におけるAWS Lambdaのリアル 〜スケールとコストを左右する実行ライフサイクルの技術仕様〜
maimyyym
2
850
AgentCoreで実践するハーネスエンジニアリング
yakumo
1
210
Databricksメトリクスビューはじめてのもくもく会
taka_aki
0
170
営業オントロジーの作り方と、エージェントからの辿り方 ── ナレッジワークの現場から
kworkdev
PRO
1
230
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
2
220
10年欲しかった音楽管理アプリを、AIと一緒に作りはじめた
judau
1
200
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
400
Lambda MicroVMsは常駐サーバーの代わりに なるか? Kiro Crew を動かして検証してみた / Kiro Crew on Lambda MicroVMs
k_adachi_01
2
350
大阪オフィスに Unitree Go2 がやってきたので Physical AI やってみた
dafujii
0
240
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
2
320
HacobuにおけるFDEとは/登壇資料(戸井田 裕貴)
hacobu
PRO
1
710
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
500
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
A better future with KSS
kneath
240
18k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Are puppies a ranking factor?
jonoalderson
2
4k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
490
Transcript
2026年に相応しい 最先端プラグインホストの設計と実装 atsushieno
なぜ今DAWを作るのか • DAWを開発するコストは今かなり下がっていて、1人で開発するのも現実的 ◦ Tracktion Engine -or- ゼロから開発 ◦ AIコーディングによるエンジニアリングコストの低下
▪ 基本的な構成要素は生成できる ▪ 複雑なメモリ管理をほぼ丸投げできる / 修正させることができる ▪ AIは標準的な技術・枯れた技術を扱うのが得意 ◦ 誰もが「全部」やらなくても「実現」できる • DAW開発のタスクは今でも増えている…かも? ◦ AIサポート・自動トラックメイキング , x-plat展開(iOS, Web), MIDI 2.0デバイス対応
DAWの技術スタック(例) DAWモデル GUI オーディオエンジン シーケンス エディタ プラグインホスティング デバイスI/O オーディオ グラフ
プロジェクト データモデル cf. 2022-12-11 [音楽技術勉強会] Zrythm DAWから読み解くDAWの作り方 再生処理系
プラグインホスティング? JUCE AudioPluginHost
プラグインホストの基本的な役割 Scanning プラグインをスキャン してリストを管理する Instancing プラグインのインスタンス を生成・解放・管理する Process DAWのオーディオグラフと組み合わせて オーディオ処理
を実現する GUI DAWの操作に応じてGUI表示を制御する State ファイルのロードやセーブに合わせて 状態(State)を保存・復元する Params DAWの操作に応じてパラメーター 変更をプラグインに通知する DAWにプラグインからのパラメーター変更を通知する Presets DAWにプリセット のリストを渡し、ユーザー選択をプラグインに通知する
プラグインホストのもう少し高度な役割 • DSPスレッド/プロセスと他のスレッドの間でデータを受け渡す • 複数のプラグインのオーディオグラフを1オーディオサイクルで処理する • 複数トラックをリアルタイムの1オーディオサイクルで処理する • レイテンシーレポートを受け取って複数トラック間のオーディオ処理のズレを最小化 する
• トラックの追加・削除やノードグラフの編集はリアルタイムに行う
自作ホストUAPMDの試み
自作ホストUAPMDの試み • 動機 ◦ 仮想UMPデバイスを作れるようにしたい ◦ SMF2 Containerのようなフォーマットの楽曲データを普及させたい • プラグインホスティングライブラリ
◦ フルスタックオーディオプラグインホスト ◦ Desktop: VST3, AUv2, AUv3, LV2, CLAP | iOS: AUv3 | Web: WebCLAP | Android: AAP ◦ MIDI 2.0ネイティブ、sample-accurateなオーディオ処理 ◦ 分離プロセスで動作する高速プラグインスキャン ◦ いくつかのAPIの非同期化 (e.g. state API) - Web AudioWorklet上で使うために必要 • dogfooding ◦ リアルタイム オーディオグラフ(レイテンシー補償の PoC実装) ◦ 逐次処理可能なシーケンサー(非リアルタイムスレッドからのオーディオ /MIDIデータ供給) ◦ 組み込みJS API (QuickJS) とMCPエンドポイントを利用可能
技術スタック • choc - オーディオファイルI/O、GUIイベントループなど • miniaudio - Audio I/O
• libremidi - MIDI 2.0 I/O • ImGui + ImTimeline + ImNodes (DAG) ◦ まあまあ妥協 • demucs.cpp - 音声分離(インポート) • signalsmith-stretch - オーディオワープ(タイムストレッチ) • midicci - MIDI 2.0データ処理 (UMP + MIDI-CI) • 各種コンテナ: readerwriterqueue, concurrentqueue, farbot, ...
プラグインフォーマットのサポート • AU: AUv2とAUv3は別々に実装したほうがたぶん良い ◦ AUv3はmacOSで動けばiOSでも動く(!) ◦ AUv2を出しているところはたいがい VST3も出しているので、無くても OKかも(!?)
◦ プラグインのAUv2 bridgeはプリセットAPIなどをカバーしてくれない • CLAP: clap-helpersを使うべき。スレッドチェックなどが安全弁になる • WebCLAP: オーディオエンジンのプロセス分離と非同期State実装が必要 ◦ CLAPのasyncrhnous state saving/loadingは不要
Programmability (scripting, MCP) Full Scripting API for Cubase - The
AI Integration Gap Is Now a Competitive Threat - Steinberg Forum • MCPはAPIがあればどうとでもなる • APIが公開されていない機能は使えない • 一般的な機能・操作に特殊なskillsは不要 ◦ MIDI操作、音楽理論、プラグイン操作など • プラグインが公開しない情報は取得できない ◦ プリセットなど cf. オーディオプラグインホストにMCPを追加してみてわかったこと
Tracktion EngineでDAWを作るアプローチ • 低レベルはいじらない前提 ◦ no MIDI2, no sample accurate
stuff, slow scanner, no CLAP, no WebCLAP, no Android • DAWのGUIは自作する • juce_audio_plugin_clientのみ(no Tracktion)の場合 ◦ プラグインフォーマットサポートは丸投げできる ◦ マルチトラック編集は自作する ◦ オーディオグラフは自作する -or- Tracktion EngineからTracktion Graphだけ使い回す ◦ プロジェクトデータの読み書きは自作する
Thanks! Questions: later