Appearance
Part 4: VST3 SDK 深掘り
本 Part では Steinberg 社が公開している VST 3 SDK(以下「vst3sdk」)の一次資料であるヘッダファイル群(pluginterfaces/ 配下)を根拠として、プラグインがホスト(DAW)と結ぶ契約を網羅的に記述します。Part 2 で「どの DAW でも成立する抽象契約」を、Part 3 で「DAW ごとの実装差」を記述しました。本 Part ではその契約を実装する具体 API の名前・シグネチャ・呼び出し順序を扱います。
本 Part の記述はすべて github.com/steinbergmedia/vst3_pluginterfaces の master ブランチ(SDK バージョン 3.8.0)のヘッダファイルを一次資料としています。各ページ末尾の ## 参照ソース から原典を確認できます。
構成
- 4.1 VST3 の歴史と思想転換
- 4.2 VST Module Architecture (VST-MA)
- 4.3 Component / Controller 分離アーキテクチャ
- 4.4
IAudioProcessorとprocess() - 4.5 サンプル精度パラメータ変更
- 4.6 イベント(
IEventList) - 4.7 Busses と Speaker Arrangement
- 4.8 Units と Programs
- 4.9 GUI(
IPlugView/IRunLoop) - 4.10 State persistence
- 4.11 Latency / Tail 報告
- 4.12 ホスト互換性・拡張
- 4.13 プラグインライフサイクル完全シーケンス図
- 4.14 検証・コンプライアンス
本 Part の読み方
読者が AudioWorklet / V8 基盤で VST3 互換フレームワークを実装する場合、以下の順序で読み進めると対応関係が見通せます。
- 4.2 でインタフェースの基底(
FUnknown、IPluginFactory)を把握します。 - 4.3 で Processor / Controller 分離の理由とパラメータ経路を把握します。これは HTML UI と AudioWorklet DSP を分離する設計の直接の下敷きになります。
- 4.4 / 4.5 / 4.6 で
process()呼び出し時に流れるオーディオ・パラメータ・イベントの全容を把握します。 - 4.9 で View 埋め込み(Linux の
IRunLoop統合を含む)の要件を把握します。 - 4.13 のライフサイクル図で全体像を確認します。
- Part 5 で各要素の Web 側対応(
AudioWorkletProcessor/postMessage/SharedArrayBuffer)にマップします。