欢迎使用VST SDK 3.7.x
目录
VST SDK包含以下内容
- VST 3 API
- VST 3实现辅助类
- AAX、AUv3和AU封装器
- VST 3插件示例
完整的VST 3 SDK可在这里获取。它包含:
- VST 3插件测试主机应用程序/验证器,
- Steinberg VST 3插件SDK许可协议,如果您想开发或托管VST 3插件,需要签署此协议。
系统要求
支持的平台:
操作系统 | 架构 | 编译器 | 备注 |
---|---|---|---|
Windows 10/11 | x86, x86_64, arm64 | MSVC 2022, MSVC 2019 | |
Windows 8.1 | x86, x86_64 | MSVC 2019, MSVC 2017 | |
macOS 10.13 - 14 | x86, x86_64, Apple Silicon | Xcode 10 - 15 | |
iOS 13 - iOS 17 | arm64 | Xcode 11 - 15 | |
Linux - Raspberry Pi OS (Buster) | arm32 | GCC 8.3及更高版本 | Visual Studio Code |
Linux - Ubuntu 18.04 LTS | x86, x86_64 | GCC 8.3及更高版本 | Visual Studio Code, Qt Creator |
Linux - Ubuntu 20.04 LTS | x86, x86_64 | GCC 8.3及更高版本 | Visual Studio Code, Qt Creator |
关于VST插件概述
VST插件是在主机应用程序中使用的音频处理组件。主机应用程序提供由插件代码处理的音频和/或事件流。一般来说,VST插件可以接收音频数据流,对音频进行处理,然后将结果返回给主机应用程序。VST插件通常使用计算机的处理器执行其处理。音频流被分解成一系列数据块。主机按顺序提供这些块。主机及其当前环境控制块大小。VST插件维护与正在运行的进程相关的所有参数的状态:主机不保存任何关于插件如何处理上一个数据块的信息。
从主机应用程序的角度来看,VST插件是一个具有任意数量输入、输出(事件(MIDI)或音频)和相关参数的黑盒子。主机无需了解插件处理的内部细节就能使用它。插件处理可以在内部使用任何所需的参数,但根据主机的功能,它可以允许主机自动更改用户参数。
VST插件的源代码是平台无关的,但交付系统取决于平台架构:
- 在Windows上,VST插件是一个多线程DLL(动态链接库),最近被打包成文件夹结构。
- 在Mac OS X上,VST插件是一个Mach-O包。
- 在Linux上,VST插件是一个软件包。
要了解更多关于VST的信息,您可以:
- 订阅VST开发者论坛
- 查看www.steinberg.net上的第三方开发者支持部分
- 查看VST 3 SDK在线文档:steinbergmedia.github.io/vst3_dev_portal
- 查看在线文档:steinbergmedia.github.io/vst3_doc
关于VST 3
VST 3是对长期服务的VST插件接口的全面重新设计。它与旧版VST不兼容,但包含了一些新功能和可能性。我们重新设计了API,不仅使开发人员更容易、更可靠地使用,还为插件提供了全新的可能性。这些包括:
1. 通过静音标志提高性能
处理可以选择性地仅在各自输入上存在音频信号时应用于插件,因此VST 3插件可以经济地应用其处理,且仅在需要时进行。
2. 多个动态I/O
VST 3插件不再局限于固定数量的输入和输出,其I/O配置可以动态适应通道配置。侧链也很容易实现。这包括在加载后停用未使用的总线,甚至在需要时重新激活它们的可能性。这简化了混音器并进一步帮助减少CPU负载。
3. 样本精确的自动化
VST 3还具有大大改进的参数自动化,具有样本精确度和支持斜坡自动化数据,允许完全准确和快速的参数自动化更改。
4. 逻辑参数组织
VST 3插件参数以树状结构显示。参数被分组到代表插件结构的部分中。插件可以传达其内部结构以便概览,也可以用于一些相关功能(例如程序列表)。
5. 可调整大小的UI编辑器
VST 3定义了一种允许用户调整插件编辑器大小的方法。
6. 鼠标悬停支持
主机可以询问插件鼠标下是哪个参数。
7. 上下文菜单支持
VST 3定义了一种允许主机在特定参数的插件上下文菜单中添加自己条目的方法。
8. 通道上下文信息
VST 3插件可以访问它所实例化的一些通道信息:名称、颜色等。
9. 音符表情
VST 3通过音符表情定义了一种新的事件控制器编辑方式。插件能够突破MIDI控制器事件的限制,提供对新的VST 3控制器事件的访问,这些事件绕过MIDI法则,并根据其音符ID为复音排列中的每个独立音符(事件)提供演奏信息。
10. 3D支持
VST 3支持新的扬声器配置,如Ambisonic、Atmos、Auro 3D或22.2。
11. 工厂概念
VST 3插件库可以导出多个插件,从而替代了VST 2的shell概念(kPlugCategShell)。
12. 支持远程控制表示
VST 3插件可以为远程控制(如Nuage)提供特定的参数映射。
13. 其他
在设计VST 3时,我们对VST的现有功能进行了仔细分析,并从头重写了接口。在这样做时,我们非常注重提供清晰的接口及其文档,以避免从最深层次上出现使用错误。 专门为开发人员实现的一些其他功能包括:
- 更稳定的技术主机/插件环境
- 标准的高级技术定义
- 模块化方法
- 用户界面与处理的分离
- 高级预设系统
- 每个库支持多个插件
- 包含测试主机
- 自动化测试环境
- 包含验证器(小型命令行测试主机)和插件示例代码
如何构建VST3
从GitHub获取源代码
git clone --recursive https://github.com/steinbergmedia/vst3sdk.git
在Windows上构建示例
- 创建一个用于构建的文件夹并进入该文件夹(使用cd命令):
mkdir build
cd build
- 生成解决方案/项目:提供CMakeLists.txt所在项目的路径:
// 示例:
cmake.exe -G "Visual Studio 17 2022" -A x64 ..\vst3sdk
// 或不使用符号链接
cmake.exe -G "Visual Studio 17 2022" -A x64 ..\vst3sdk -DSMTG_CREATE_PLUGIN_LINK=0
// 或使用本地用户程序文件夹(FOLDERID_UserProgramFilesCommon)作为VST3文件夹
cmake.exe -G "Visual Studio 17 2022" -A x64 -DSMTG_PLUGIN_TARGET_USER_PROGRAM_FILES_COMMON=1
- 现在你可以构建插件(也可以使用Visual Studio):
msbuild.exe vstsdk.sln
// (或者例如对于发布版本可以使用)
cmake --build . --config Release
注意:如果你在使用符号链接时遇到任何问题,请查看Windows上的准备工作以获取可能的解决方案。
在macOS上构建示例
- 创建一个用于构建的文件夹并进入该文件夹(使用cd命令):
mkdir build
cd build
- 生成解决方案/项目:提供CMakeLists.txt所在项目的路径:
// 对于XCode:
cmake -GXcode ../vst3sdk
// 不使用XCode(这里是调试版本):
cmake -DCMAKE_BUILD_TYPE=Debug ../
- 现在你可以构建插件(也可以使用XCode):
xcodebuild
// (或者例如对于发布版本可以使用)
cmake --build . --config Release
在Linux上构建示例
- 安装所需的软件包 软件包要求
- 创建一个用于构建的文件夹并进入该文件夹(使用cd命令):
mkdir build
cd build
- 生成解决方案/项目:提供CMakeLists.txt所在项目的路径:
cmake ../vst3sdk
- 现在你可以构建插件:
make
// (或者例如对于发布版本可以使用)
cmake --build . --config Release
使用cmake-gui构建
- 启动cmake-gui应用程序
- 浏览源代码...: 选择vst3sdk文件夹
- 浏览构建...: 选择一个用于创建输出(项目/...)的文件夹。通常是一个名为"build"的文件夹
- 你可以检查SMTG选项
- 点击配置
- 点击生成,项目将被创建