JUCE VST插件开发工具包
使用JUCE框架完成VST插件开发的设置,包括用于文档访问的MCP服务器。
目录
- mcp服务器/ -JUCE文档的模型上下文协议服务器
- juce模板/ -即用型JUCE插件模板
______________________________________________________________________
第1部分:JUCE文档的MCP服务器
MCP服务器直接在Claude code中提供对JUCE文档和代码生成工具的访问。
设置MCP服务器
cd mcp-server
npm install配置Claude桌面
添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"juce-docs": {
"command": "node",
"args": ["/Users/hellbound/juce-mcp-project/mcp-server/index.js"]
}
}
}可用资源
juce://docs/getting-started-JUCE框架介绍juce://docs/audio-processor-basics-音频处理器基础juce://docs/dsp-basics-DSP模块指南juce://docs/parameters-参数管理juce://templates/basic-plugin-插件模板结构
可用工具
- search_juce_docs -搜索JUCE文档
- generate_plugin_code -生成样板代码(处理器、编辑器、参数、dsp链)
- 解释判断概念 -获取JUCE概念的详细解释
______________________________________________________________________
第2部分:JUCE插件模板
一个完整的、可用于生产的VST插件模板,采用现代JUCE架构。
特性
- ✅ 带DSP链的音频处理器
- ✅ 用于参数管理的AudioProcessorValueTreeState
- ✅ 带GUI的自定义音频处理器编辑器
- ✅ 输入/输出增益控制
- ✅ 状态保存/加载功能
- ✅ 立体声/单声道支持
- ✅ 干净、有注释的代码
项目结构
juce-template/
├── PluginProcessor.h # Audio processing header
├── PluginProcessor.cpp # Audio processing implementation
├── PluginEditor.h # GUI header
└── PluginEditor.cpp # GUI implementation使用模板
选项1:创建新的Projucer项目
- 打开 主持人
- 创建新的 音频插件 项目
- 替换
PluginProcessor.h/cpp和PluginEditor.h/cpp使用模板文件 - 配置插件格式(VST3、AU、AAX)
- 保存并在IDE中打开
选项2:添加到现有项目
- 将模板文件复制到项目的
Source/目录 - 从以下位置重命名类
CustomPlugin*到您的插件名称 - 更新
#include声明 - 添加到Projucer并保存
关键组件
音频处理器(插件处理器.cpp)
- prepareToPlay() -使用采样率和缓冲区大小初始化DSP
- processBlock() -主音频处理回路
- 创建参数布局路径) -定义插件参数
- getStateInformation() 函数 -保存插件状态
- setStateInformation() -恢复插件状态
音频处理器编辑器(插件编辑器.cpp)
- 构造函数 -创建和配置UI组件
- 油漆() -自定义图形和样式
- 调整大小() -布局UI组件
定制指南
添加参数
在 PluginProcessor.cpp,添加到 createParameterLayout():
params.push_back(std::make_unique(
"cutoff",
"Cutoff Frequency",
juce::NormalisableRange(20.0f, 20000.0f, 1.0f, 0.3f),
1000.0f,
"Hz"
));添加DSP处理器
在 PluginProcessor.h:
private:
juce::dsp::StateVariableTPTFilter filter;
juce::dsp::Reverb reverb;在 prepareToPlay():
filter.prepare(spec);
reverb.prepare(spec);在 processBlock():
filter.process(context);
reverb.process(context);添加UI控件
在 PluginEditor.h:
private:
juce::Slider cutoffSlider;
juce::Label cutoffLabel;
std::unique_ptr cutoffAttachment;在 PluginEditor.cpp 构造函数:
cutoffSlider.setSliderStyle(juce::Slider::RotaryHorizontalVerticalDrag);
addAndMakeVisible(cutoffSlider);
cutoffAttachment = std::make_unique(
audioProcessor.getAPVTS(), "cutoff", cutoffSlider
);构建你的插件
- Projucer中的开放项目
- 设置插件格式(VST3、AU、AAX)
- 配置公司名称和插件ID
- 导出到IDE(Xcode、Visual Studio等)
- 在IDE中构建
插件格式
该模板支持:
- VST3 -跨平台(Windows、macOS、Linux)
- 澳大利亚 (音频单元)-仅限macOS
- AAX -专业工具(需要AAX SDK)
- 独立 -桌面应用程序
______________________________________________________________________
开发工作流程
使用MCP服务器
- 在配置了MCP服务器的情况下启动Claude Desktop
- 使用
search_juce_docs查找文档的工具 - 使用
generate_plugin_code创建组件 - 使用
explain_juce_concept详细解释
测试
- 在IDE中构建插件
- 复制到插件文件夹:
- macOS VST3: ~/Library/Audio/Plug-Ins/VST3/ - macOS AU: ~/Library/Audio/Plug-Ins/Components/ - Windows VST3: C:\Program Files\Common Files\VST3\
- 在DAW中打开(Ableton、Logic、Reaper等)
- 测试音频处理和UI
______________________________________________________________________
资源
______________________________________________________________________
故障排除
MCP服务器问题
- 确保已安装Node.js:
node --version - 检查Claude Desktop配置路径是否正确
- 配置更改后重新启动Claude Desktop
- 检查Claude Desktop中的日志是否有错误
构建问题
- 在Projucer中验证JUCE路径
- 检查C++标准是否为C++17或更高版本
- 确保所有模块都已启用(juce_audio_processors、juce_dsp等)
- 将JUCE更新至最新版本
插件未出现在DAW中
- 检查插件是否已复制到正确的目录
- DAW中的重新扫描插件
- 检查插件验证(macOS:
auval -a,Windows:DAW中的插件验证) - 确保架构与DAW匹配(x86_64与arm64)
______________________________________________________________________
许可证
模板代码按原样提供,用于教育和商业用途。
JUCE框架有自己的许可条款-有关详细信息,请访问JUCE.com。
