一个全面的模型上下文协议(MCP)服务器,用于完全控制Carla音频插件宿主。该服务器通过大型语言模型实现了对专业音频制作流程的自然语言控制。
Carla MCP Server 提供了7个功能类别中的45种工具,以实现完整的音频制作控制。使用Python 3.12+构建,它提供了一个生产就绪的接口,连接AI助手与专业音频软件。
主要特性:
请求AI助手帮助完成专业音频任务:
Carla音频插件宿主
# Ubuntu/Debian
sudo apt install carla carla-dev
# 或从源代码构建以获取最新功能
git clone https://github.com/falkTX/Carla.git
cd Carla
make
sudo make install
Python环境
# 需要Python 3.12+
python3 --version # 应该是3.12或更高版本
音频系统
# 推荐使用JACK音频连接套件
sudo apt install jackd2 jack-tools
# 对于Linux上的Windows VST支持
sudo apt install wine wine32 wine64
克隆并安装
git clone https://github.com/your-org/carla-mcp-server.git
cd carla-mcp-server
# 安装依赖项
pip install -r requirements.txt
# 或安装开发工具
pip install -e ".[dev]"
配置环境
# 设置Carla路径(根据您的安装调整)
export CARLA_PATH=/usr/share/carla
export PYTHONPATH=$CARLA_PATH/source/frontend:$PYTHONPATH
export LD_LIBRARY_PATH=/usr/lib/carla:$LD_LIBRARY_PATH
测试安装
# 运行测试套件
pytest tests/
# 测试Carla集成
python -c "import carla_backend; print('Carla集成工作正常!')"
# 启动MCP服务器
python server.py
# 或带调试
python server.py --debug --log-level INFO
添加到您的MCP客户端配置(例如,Claude Desktop):
{
"mcpServers": {
"carla-mcp": {
"type": "stdio",
"command": "python",
"args": ["/path/to/carla-mcp-server/server.py"],
"env": {
"CARLA_PATH": "/usr/share/carla",
"PYTHONPATH": "/usr/share/carla/source/frontend"
}
}
}
}
快速设置:复制提供的.mcp.json.example文件,并根据您的系统调整路径。
一旦连接到LLM,您可以使用自然语言执行复杂的音频任务:
用户:"加载我的摇滚歌曲项目,并添加一个EQ来去除人声嗡嗡声并提高人声清晰度。"
AI:完美!我已经加载了您的项目,并优化了麦克风EQ以达到专业的人声质量:
🎯 人声优化已应用:
✅ 消除嗡嗡声:
- 50Hz: -12dB(去除次低频嗡嗡声)
- 100Hz: -8dB(减少低频噪声)
- 156Hz: -6dB(清理浑浊的低中频)
✅ 提高清晰度:
- 2500Hz: +4dB(人声存在感)
- 3500Hz: +6dB(语音清晰度)
- 5000Hz: +3dB(清晰度和定义)
✅ 减少嘶音:
- 10000Hz: -4dB(驯服刺耳的‘s’和‘t’声音)
您的麦克风信号现在通过优化的EQ路由,提供了更干净、更专业的人声声音,减少了嗡嗡声,提高了清晰度,并控制了嘶音。这些设置遵循标准的流行/摇滚人声处理技术。
用户:"在我的合成器垫上创建一个逐渐变化的滤波扫频,以建立紧张感"
AI:我将创建一个动态滤波自动化以建立紧张感:
1. 查找您的合成器垫插件
2. 设置指数滤波频率自动化
3. 添加共振自动化以增加特征
4. 将扫频同步到您的项目节拍
创建了一个16小节的滤波扫频,从微妙开始,逐渐达到强烈的顶峰,非常适合在您的编排中创造紧张感。
用户:"我的混音听起来有些浑浊,还有一些轻微的反馈"
AI:让我分析并解决这些问题:
1. 运行频谱分析以识别浑浊的频率
2. 扫描您的路由中的反馈环路
3. 应用纠正性EQ以清除浑浊
4. 修复我发现的反馈路径
分析完成!在200-300Hz附近发现了堆积(应用了纠正性EQ),并且修复了您混响发送和输入之间的反馈环路。您的混音现在应该听起来更干净了。
用户:"分析我的VU表在整个歌曲期间的电平,并使用历史测量数据确定每个副歌、合唱和独奏部分的时间码起点。"
AI:让我开始分析您的VU表插件,共5分32秒(确切的混音长度,加上两秒钟以适应播放延迟。)
...
完成了我对您的VU表电平的分析!这是基于我处理的历史测量数据得出的歌曲音乐结构分解:
1. 00:02 - 引子
2. 00:28 - 第一节
3. 01:20 - 第一合唱
4. 01:50 - 第二节
5. 2:45 - 第二合唱
6. 3:32 - 独奏
7. 4:02 - 分解
8. 4:20 - 最后合唱
9. 5:12 - 结尾
carla-mcp-server/
├── server.py # 主MCP服务器
├── carla_controller.py # Carla后端包装器
├── tool_registry.py # 工具注册系统
├── carla_types.py # 类型定义和模式
├── base_tools.py # 基础工具框架
├── mixassist_resources.py # MixAssist数据集集成
├── mixassist_schema.py # MixAssist数据模式
├── tools/ # MCP工具实现
│ ├── session_tools.py # 会话管理
│ ├── plugin_tools.py # 插件控制
│ ├── routing_tools.py # 音频路由
│ ├── parameter_tools.py # 参数自动化
│ ├── analysis_tools.py # 实时分析
│ ├── jack_tools.py # JACK集成
│ └── hardware_tools.py # 硬件控制
├── monitors/ # 实时监控
│ ├── audio_monitor.py # 音频电平监控
│ ├── cpu_monitor.py # 性能监控
│ └── event_monitor.py # 事件流
├── tests/ # 综合测试套件
├── .mcp.json.example # 示例MCP配置
└── LICENSE # GPL-2.0或更高版本许可证
# 运行所有测试
pytest
# 运行覆盖率测试
pytest --cov=carla_mcp_server --cov-report=html
# 运行特定测试类别
pytest tests/test_server.py::TestSessionManagement
# 运行集成测试(需要Carla)
pytest tests/test_complete_suite.py
# 格式化代码
black carla_mcp_server/
# 排序导入
isort carla_mcp_server/
# 类型检查
mypy carla_mcp_server/
# 代码检查
flake8 carla_mcp_server/
# 运行所有质量检查
pre-commit run --all-files
创建工具方法在适当的tools/模块中:
async def my_new_tool(self, param1: str, param2: int = 10) -> dict:
"""工具描述用于文档。"""
try:
# 实现
return {"success": True, "result": data}
except Exception as e:
return {"success": False, "error": str(e)}
注册工具在tool_registry.py中:
ToolDefinition(
name="my_new_tool",
description="MCP客户端的描述",
handler="tool_class_name",
input_schema={/* JSON模式 */}
)
添加测试在tests/中:
async def test_my_new_tool():
# 测试实现
load_session - 加载Carla项目文件save_session - 保存当前会话状态create_snapshot - 创建A/B比较快照switch_session - 在会话之间热切换list_sessions - 显示可用会话delete_session - 删除会话export_session - 导出到音频格式import_session - 从外部格式导入load_plugin - 加载任何插件格式scan_plugins - 发现可用插件control_plugin - 激活/旁路/独奏/移除batch_process - 将插件链应用于音频list_plugins - 显示加载的插件get_plugin_info - 详细的插件信息clone_plugin - 复制插件及其设置replace_plugin - 替换插件及其参数映射connect_audio - 创建音频连接create_bus - 构建用于分组的音频母线setup_sidechain - 配置侧链路由get_routing_matrix - 查看完整的路由disconnect_audio - 移除连接create_send - 设置发送/返回效果set_connection_gain - 调整连接电平automate_parameter - 创建自动化曲线map_midi_cc - MIDI控制器映射set_parameter - 直接设置插件参数值get_parameter - 获取插件参数值和信息create_macro - 多参数宏record_automation - 捕获参数更改randomize_parameters - 创意随机化morph_parameters - 平滑参数过渡analyze_spectrum - FFT频谱分析measure_levels - 峰值/RMS/LUFS计量capture_plugin_parameters - 参数随时间监控detect_feedback - 反馈环路检测analyze_latency - 系统延迟测量list_jack_ports - 显示可用JACK端口connect_jack_ports - 连接JACK端口disconnect_jack_ports - 断开JACK端口get_jack_connections - 查看端口连接connect_system_to_plugin - 将系统音频路由到插件connect_plugin_to_system - 将插件路由到系统输出configure_audio_interface - 设置音频硬件list_audio_devices - 发现音频设备map_control_surface - 配置MIDI控制器config/config.yaml)server:
host: localhost
port: 8765
log_level: INFO
carla:
path: /usr/share/carla
wine_prefix: ~/.wine
auto_start_engine: true
audio:
driver: JACK
sample_rate: 48000
buffer_size: 512
auto_connect: true
plugins:
scan_paths:
- /usr/lib/lv2
- /usr/lib/vst
- ~/.wine/drive_c/Program Files/Common Files/VST3
cache_enabled: true
monitoring:
audio_enabled: true
cpu_enabled: true
update_interval_ms: 100
# 必要路径
export CARLA_PATH=/usr/share/carla
export PYTHONPATH=$CARLA_PATH/source/frontend:$PYTHONPATH
export LD_LIBRARY_PATH=/usr/lib/carla:$LD_LIBRARY_PATH
# 可选配置
export CARLA_MCP_LOG_LEVEL=INFO
export CARLA_MCP_HOST=localhost
export CARLA_MCP_PORT=8765
我们欢迎贡献!请参阅CONTRIBUTING.md了解指南。
快速贡献步骤:
该项目根据GPL-2.0或更高版本许可证发布 - 详情见LICENSE文件。
准备好用AI辅助彻底改变您的音频制作工作流程了吗?今天就开始吧! 🎵✨