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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Atsushi Eno
April 15, 2026
Technology
200
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
Building Audio Plugin Ecosystem for Android in 2026
atsushieno
2
150
Enabling Text Inputs on Any Remote GUI on Android (LT)
atsushieno
0
43
design and implementation of a next-gen. DAW sequencer engine for desktop, mobile and web
atsushieno
1
100
Android and Audio Plugins: State of Union
atsushieno
1
160
Can we build a DAW with Compose Multiplatform? Maybe!
atsushieno
0
57
Android Audio: Beyond Winning On It
atsushieno
0
6.5k
Can we build better music software ecosystems for more generative era?
atsushieno
0
870
Some Music Libraries for Kotlin (with some .NET -> Kotlin migration stories)
atsushieno
0
820
Building App Extensions equivalents on Android (maybe?)
atsushieno
1
1k
Other Decks in Technology
See All in Technology
`go get`したらELFが降ってきた件
taiyow
0
180
E2Eってつらくないですか?E2Eの管理コストを下げる手段とその実践
akaboshinit
6
3k
慶應義塾大学 AI実践05 論文執筆の仕組み化
keio_smilab
PRO
7
3.7k
なぜ東京にいる私が、新潟の技術コミュニティを運営するのか by 八雲慎之助
yakumo
0
220
Sizing, Benchmarking and Performance Tuning Apache Flink Clusters
rmetzger
0
120
Claude Codeで作ったアプリを安全に公開する/Built with Claude Japan 2026
yoshidashingo
0
170
試験勉強はGrokBotでやれ
maigo999
0
110
FinOpsを導入してマルチプロダクトのコスト最適化を実現する
kworkdev
PRO
0
130
新米を「売り越さない」、Aurora DSQLで作る在庫ゼロ死守の限定ドロップEC
yama3133
0
180
Kiro 入門 (1 つのエージェントを、どの画面からでも) | 目指せ Kiro マスター 01
inariku
PRO
3
700
You Have Agency(サンキュー、Ruby)
snoozer05
PRO
5
680
基本から分かる!AWSセキュリティ運用の考え方と任せ方
cmusudakeisuke
1
430
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.2k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
650
From π to Pie charts
rasagy
1
440
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
740
The browser strikes back
jonoalderson
0
1.9k
The SEO identity crisis: Don't let AI make you average
varn
0
630
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
350
My Coaching Mixtape
mlcsv
0
380
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
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