简介这份VST 3插件SDK资料面向音频插件开发者、DAW扩展开发者及音效/乐器插件学习者聚焦Windows、macOS、Linux与iOS多平台下的VST 3接口理解、工程组织与构建准备。压缩包共7个文件约405KB以2个PDF、2个TXT、1个Markdown及HTML索引、gitmodules配置为主分别承载许可与使用规范、说明文档、入口索引和子模块信息体量轻便适合先梳理SDK结构再按需获取完整源码。已有1387人学习或下载具备一定参考热度。内容围绕VST 3架构、插件生命周期、参数系统、多线程音频处理、自定义界面与宿主兼容性展开并提供CMake构建和模块划分线索读者可据此快速建立跨平台插件开发的知识框架明确许可边界与工程接入方式为后续编译、调试和扩展音效或乐器插件打下基础。1. 从「能编过」到「宿主愿意加载」VST 3 SDK 的分水岭在哪上周有人把一份已经能离线出声的音频算法丢过来问为什么套上 VST 3 SDK 的壳子之后宿主连扫都扫不出来。逻辑没问题坏在壳子上工厂里注册的类不是处理器、参数 ID 在两半里对不上、macOS 那个包少了一层目录。VST 3 SDK 不是装完就能用的框架它给的是一套纯虚接口加若干参考实现中间那层胶水得自己糊。它能干的事很具体把一份 DSP 代码包成 Windows、macOS、Linux、iOS 上都能被音频宿主认出来的插件参数、状态、编辑器、总线布局这些宿主约定好的契约全部对齐。适合手里已经有能出声的处理代码、要用 CMake 跨平台交付插件包的开发者也适合被宿主行为折腾过、想翻到底层接口看的人。下面按目录怎么读、工程怎么挂、process 怎么写、包怎么打、坑在哪一层层拆。2. 拆开 SDK 的四层目录CMake 挂载与三平台第一次编译拿到 SDK 之后最容易犯的错是直接翻public.sdk/source/vst/找「主函数」然后被一堆.h和.cpp的关系绕晕。它其实分得很清楚接口声明、参考实现、基础运行时、GUI 库各占一层混着看才会觉得庞大。先把这四层的边界划出来后面写代码时你才知道每个 include 该指哪。2.1 四个目录各管什么哪些能改哪些别碰pluginterfaces/是纯接口层只有头文件没有一行实现。IComponent、IAudioProcessor、IEditController、IPlugView都在这里它定义的是宿主和插件之间的 ABI 契约全部是纯虚函数对象靠FUnknown::queryInterface拿版本靠FUID区分。这一层不要改改了宿主就不认。public.sdk/source/是参考实现层也是你真正要读的部分。vst/vstaudioeffect.cpp实现了AudioEffectvst/vsteditcontroller.cpp实现了EditControllermain/pluginfactory.cpp是导出入口和工厂宏hosting/是一套最小宿主实现——那套东西的价值在于你可以拿它写离线渲染脚本不开宿主就能跑插件。base/是基础运行时字符串、线程、消息、FUnknown的引用计数实现都在里面。新一点的仓库结构里它和vstgui/一样是以子模块形式挂进来的拉代码时记得带--recursive否则 CMake 配置阶段会告诉你找不到base/source/fobject.cpp。vstgui/是 GUI 库做编辑器才用得上。cmake/modules/下那堆SMTG_*.cmake是构建胶水smtg_add_vst3plugin这个函数就定义在里面它替你干了三件事生成插件 bundle 目录结构、设置导出符号、把 Windows 的.def和 macOS 的Info.plist拼进去。目录作用是否需要修改pluginterfaces/纯虚接口与 ABI 定义不改public.sdk/source/vst/处理器/控制器参考实现可继承不改源文件public.sdk/source/main/工厂宏与导出入口只 includepublic.sdk/source/hosting/最小宿主实现拿来做测试base/基础运行时子模块不改vstgui/GUI 库子模块不改cmake/modules/smtg_add_vst3plugin等不改一个提醒public.sdk/source/vst/下的.cpp是编进 SDK 静态库的你的插件链接它不要把它拷到自己工程里改否则升级 SDK 时你会面对两份分叉的实现。2.2 用 add_subdirectory 挂 SDK本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?