自然语言控制音频编辑工具

通过自然语言控制REAPER音频编辑软件,实现音频轨道、效果器、路由等操作。

  • by gsburmaster
  • Lua
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 gsburmaster/cleaper

使用说明

夹板

控制 收割者 通过与克劳德的自然语言。

“在人声中添加120Hz的高通” “创建一个鼓总线,并将所有鼓轨道都路由到它” “将节奏设置为140,并独奏低音”

使用 克劳德代码 和 克劳德桌面版 通过 模型上下文协议(MCP).

快速开始

git clone https://github.com/gsburmaster/cleaper.git
cd cleaper
./install.sh

这就是终点站。安装程序:

  • 创建Python虚拟环境并安装依赖项
  • 检测您的REAPER安装并复制侦听器脚本
  • 自动配置克劳德代码和克劳德桌面

REAPER中的一个手动步骤 (仅限第一次):

  1. 打开后盖
  2. 操作>显示操作列表> 加载。..
  3. 选择 reaper_mcp_listener.lua 从您的REAPER脚本文件夹
  4. 运行它
  5. (可选) 右键单击操作> 启动时运行 所以它会自动启动REAPER

然后重新启动Claude Code/Claude Desktop并询问: “获取REAPER会话状态”

视窗

python -m venv .venv
.venv\Scripts\pip install -r requirements.txt
.venv\Scripts\python mcp_server.py install

运作原理

Claude ──MCP──▶ mcp_server.py ──file IPC──▶ reaper_listener.lua ──ReaScript──▶ REAPER

通信通过JSON文件进行 ~/.reaper-mcp/。没有网络套接字,REAPER内部没有依赖关系。Lua脚本的轮询频率约为30Hz,对于DAW操作来说已经足够快了。

克劳德所做的一切都被包裹在REAPER撤销块中。 Ctrl+Z可撤消任何操作。

命令

类别 你能做什么
会话 阅读完整的项目状态——曲目、FX链、路线、项目、标记、节奏
运输 播放、停止、暂停、录制、设定节奏
轨迹 创建、删除、重命名、设置音量/平移、静音、独奏、手臂
外汇 添加/删除插件,获取/设置参数,绕过/启用
路由 创建/删除发送,设置发送量
MIDI 创建MIDI项目,插入音符
物品 删除、移动、拆分媒体项目
标记 添加标记和区域
撤销 撤消/重做任何操作

命令行界面

python mcp_server.py              # Run MCP server (normal usage — Claude does this)
python mcp_server.py install      # Auto-configure everything
python mcp_server.py uninstall    # Remove all config
python mcp_server.py check        # Diagnose issues

配置

所有设置都是环境变量。默认设置适用于大多数设置。

变量 默认值 描述
REAPER_MCP_IPC_DIR ~/.reaper-mcp IPC文件目录
REAPER_MCP_POLL_INTERVAL 0.03 轮询间隔(秒)
REAPER_MCP_TIMEOUT 10 响应超时(秒)
REAPER_RESOURCE_PATH (自动检测) 覆盖REAPER的资源目录

故障排除

跑 python mcp_server.py check -它测试每个组件,并告诉您到底出了什么问题。

问题 修复
超时错误 在REAPER中运行侦听器:操作>显示操作列表>查找 reaper_mcp_listener >快跑
找不到插件 使用REAPER FX浏览器中的名称。内置: ReaEQ, ReaComp, ReaDelay
曲目名称模糊 更具体地说——“Kick”匹配“Kick In”和“Kick Out”
MCP服务器未显示 运行 python mcp_server.py install 然后重启克劳德

安全

  • 仅限本地 --所有通信都是通过本地文件进行的,没有网络
  • 仅限所有者权限 --IPC目录为 700 在Unix上
  • 原子写入 --temp文件+重命名可防止部分读取
  • 行动对抗主义者 --Lua监听器拒绝未知命令
  • 输入验证 --尺寸限制、深度限制、数值夹紧

建筑

为什么选择基于文件的IPC? REAPER的Lua不能可靠地运送luasocket。30Hz的文件轮询速度非常快,可以在任何地方工作。您可以通过自己读取JSON文件进行调试。

为什么不是OSC? MCP提供Claude类型化、描述的工具接口。Claude知道每个工具的作用以及何时使用它——不需要映射表。

贡献

欢迎捐款。请先打开一个问题进行讨论。

添加新命令:

  1. 在中添加处理程序 reaper_listener.lua (自动添加到列表中)
  2. 添加 Tool 在 mcp_server.py
  3. 使用REAPER进行测试

许可证

麻省理工学院