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
design and implementation of a next-gen. DAW sequencer engine for desktop, mobile and web
atsushieno
1
70
Android and Audio Plugins: State of Union
atsushieno
1
120
Can we build a DAW with Compose Multiplatform? Maybe!
atsushieno
0
42
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
DTM entry level hands-on
atsushieno
0
830
Other Decks in Technology
See All in Technology
Amazon Bedrock Agents ClassicからAmazon Bedrock AgentCoreへ移行した際、ガードレール設定が2箇所に割れた話
matsunobu
0
110
リアーキテクチャ後の障害ゼロを目指したShadow Testingの取り組み
nihonbuson
PRO
1
180
メルカリにおけるAI時代の高速プロトタイピング基盤「Arca」
ryotarai
12
9.8k
AIエージェントを最高のパートナーに育てる方法|評価と判断軸を育てる5つのステップ
koichiaoki
1
160
サーバーレスをどこまで使う? WebRTC対戦ゲームで選んだVPSとの共存設計
kaidouji85
0
440
AIに書かせて、プラットフォームで縛る ― EKSプラットフォームで実践した責任境界と権限設計
elmodev09
0
560
ADKで始める業務改善 - AIエージェント開発時の考えと設計
harappa80
2
290
2026-09-08 そのJavaモダナイゼーション、AIに丸投げで大丈夫?IBM Bobで変わる品質と効率
yutanonaka
1
190
時うどん〜Socket.getifaddrsで学ぶネットワーク編 / Tokiudon: The Socket.getifaddrs Edition
coe401_
4
270
今話題のAI「Jev」って何? 宇宙最速で学ぶ会
minorun365
PRO
34
22k
データ_AIの事業の勝敗をわけるもの
nek0128
1
480
What the customer really needed
kawaguti
PRO
3
230
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Facilitating Awesome Meetings
lara
57
7.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Practical Orchestrator
shlominoach
192
12k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
420
Rails Girls Zürich Keynote
gr2m
96
14k
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