Ableton Live的ClaudeMCP远程脚本
Ableton Live的全面Python远程脚本 220个LiveAPI工具 通过简单的TCP套接字接口。以编程方式控制Ableton Live会话的各个方面-从播放和录制到曲目、剪辑、设备、MIDI音符和Live/CV Tools设备的Max。
    
特性
- 220个LiveAPI工具 -涵盖Ableton Live的Python API的44个功能类别
- 线程安全架构 -基于队列的可靠通信设计
- 简单TCP接口 -发送JSON命令,接收JSON响应
- 实时控制 -现场表演的低延迟
- Live 12支持 -车道、显示值、应用程序信息(Live 12+)
- Live 11兼容 -向后兼容优雅的特征检测
- 实时支持的最大值 -通过参数名称检测和控制M4L设备
- CV工具集成 -完全支持Ableton的简历工具包
- MCP兼容 -适用于模型上下文协议服务器
- 证据充分的 -综合实例和API参考
覆盖方法
该实施提供 44个类别的220个工具 基于:
- 主要来源: Ableton Live API文档 (自行车'74)
- 参考: 实时API文档存档 (版本9.7-11.0)
- Live 12功能:基于 Live 12发行说明
保险范围包括:
- 会话和安排控制(14个工具)
- 轨道管理(13个工具)
- 夹持操作(18个工具)
- MIDI音符编辑(7个工具)
- 设备控制(12个工具)
- Live 12独家功能:通道(8个工具)、应用程序信息(4个工具)
- Live集成的最大值(5个工具)
- 38个附加功能类别
已知限制:
- 由于LiveAPI的限制,整合和一些安排操作简化了实现
- 并非所有活对象模型(LOM)属性都可以公开(持续开发)
工具类别
| 类别 | 工具 | 描述 |
|---|---|---|
| 会话控制 | 14 | 播放、录音、节奏、时间特征、循环、节拍器 |
| 航迹管理 | 13 | 创建/删除曲目、音量、平移、独奏、静音、手臂、颜色 |
| 剪辑操作 | 8 | 创建、启动、停止、复制剪辑 |
| 剪辑附加 | 10 | 循环、标记、增益、音高、时间特征 |
| MIDI音符 | 7 | 添加、获取、删除、选择MIDI音符 |
| 设备控制 | 12 | 添加设备、参数、预设、随机化 |
| 场景管理 | 6 | 创建、启动、复制场景 |
| 自动化 | 6 | 重新启用自动化,捕获MIDI |
| 路由 | 8 | 输入/输出路由、发送、子路由 |
| 浏览器 | 4 | 浏览设备/插件,从浏览器加载 |
| 运输 | 8 | 跳到时间,轻推,安排过度 |
| 沟槽/量化 | 5 | 槽量,量化剪辑/音高 |
| 监控 | 4 | 监控状态,可用路由 |
| 回路/定位器 | 6 | 启用循环,创建定位器,按数量跳跃 |
| 项目 | 6 | 项目根、会话记录、提示点 |
| Max for Live | 5 | 检测M4L设备,按参数名称控制,支持CV Tools |
| 主轨道 | 4 | 主音量、盘、设备、信息 |
| 返回曲目 | 3 | 返回曲目信息,音量控制 |
| 音频剪辑 | 5 | 扭曲模式、扭曲标记、文件路径、扭曲控制 |
| 跟进行动 | 3 | 现场表演剪辑跟随动作 |
| 推子 | 3 | DJ风格的交叉火力控制和分配 |
| 轨道组 | 4 | 组/非组轨道,组管理 |
| 查看/导航 | 4 | 显示视图、聚焦轨迹、滚动时间线 |
| 颜色实用程序 | 2 | 获取剪辑/曲目颜色 |
| 沟槽池 | 2 | Groove库访问和分配 |
| 机架/链条 | 4 | 仪器/效果架链控制 |
| 剪辑自动化 | 6 | 自动化信封、步骤、值 |
| 轨道冻结/压扁 | 3 | 为CPU冻结曲目,变平为音频 |
| 剪辑褪色 | 4 | 音频片段的淡入/淡出 |
| 场景颜色 | 2 | 获取/设置场景颜色 |
| 轨迹注释 | 2 | 轨迹注释文本 |
| 剪辑注释 | 2 | 剪辑注释文本 |
| 轨道延迟 | 2 | 样本中的延迟补偿 |
| 排列剪辑 | 3 | 获取/复制/合并排列片段 |
| 插件窗口 | 2 | 显示/隐藏插件窗口 |
| 节拍器 | 2 | 节拍器音量控制 |
| MIDI消息 | 2 | 发送MIDI CC和程序更改 |
| 采样器/简化器 | 3 | 样本长度和回放模式 |
| 剪辑RAM模式 | 2 | RAM与磁盘流 |
| 设备信息 | 2 | 设备类名和类型 |
| 走车道 | 8 | 创建/管理专用车道(Live 12+) |
| 应用程序信息 | 4 | 版本、变体、构建ID、消息框 |
| 显示值 | 2 | 获取UI中显示的参数值 |
| 附加属性 | 10 | 剪辑开始时间、曲目/场景状态、签名 |
总计:220个工具
快速开始
安装
- 克隆此存储库:
git clone https://github.com/Ziforge/ableton-liveapi-tools.git
cd ableton-liveapi-tools- 运行安装脚本:
bash install.sh或者手动复制到Ableton的远程脚本文件夹:
# macOS
cp -r ClaudeMCP_Remote ~/Music/Ableton/User\ Library/Remote\ Scripts/
# Windows
# Copy to: %USERPROFILE%\Documents\Ableton\User Library\Remote Scripts\- 重新启动Ableton Live
- 验证安装:
python3 examples/test_connection.py基本用法
import socket
import json
def send_command(action, **params):
"""Send command to Ableton via port 9004"""
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('127.0.0.1', 9004))
command = {'action': action, **params}
message = json.dumps(command) + '\n'
sock.sendall(message.encode('utf-8'))
response = b''
while b'\n' not in response:
response += sock.recv(4096)
sock.close()
return json.loads(response.decode('utf-8'))
# Set tempo
result = send_command('set_tempo', bpm=128)
print("Tempo: " + str(result['bpm']) + " BPM")
# Create a MIDI track
result = send_command('create_midi_track', name='Bass')
track_index = result['track_index']
# Create a clip and add notes
send_command('create_midi_clip', track_index=track_index, scene_index=0, length=4.0)
notes = [
{"pitch": 36, "start": 0.0, "duration": 0.5, "velocity": 100},
{"pitch": 36, "start": 1.0, "duration": 0.5, "velocity": 100}
]
send_command('add_notes', track_index=track_index, scene_index=0, notes=notes)
# Launch the clip
send_command('launch_clip', track_index=track_index, scene_index=0)文档
示例
检查 examples/ 目录:
test_connection.py-验证远程脚本是否正常工作basic_usage.py-常见操作的简单示例creative_workflow.py-以编程方式生成音乐test_all_tools.py-对所有220个工具进行全面测试
建筑
螺纹安全设计
Remote Script使用基于队列的架构来确保线程安全:
- 套筒螺纹 -通过TCP(端口9004)接收命令
- 命令队列 -存储等待处理的命令
- 主线 -通过以下方式处理命令
update_display()回调 - 响应队列 -将结果返回给套接字线程
- 套筒螺纹 -将响应发送回客户端
这种设计确保所有LiveAPI调用都发生在Ableton的主线程上,防止崩溃和竞争情况。
通信协议
请求格式:
{
"action": "set_tempo",
"bpm": 128
}响应格式:
{
"ok": true,
"bpm": 128.0
}需求
- Ableton Live 11或12(套房、标准房或介绍房)
- python 2.7+(包含在Ableton Live中)
- 操作系统 macOS、Windows或Linux
用例
- 算法作曲 -用代码生成音乐
- AI音乐制作 -使用LLMs和AI代理控制Ableton
- 实时编程 -实时音乐表演
- 自动化 -批处理和工作流自动化
- 整合 -将Ableton连接到其他软件/硬件
- 定制控制器 -构建自己的MIDI/OSC控制器
- 音乐分析 -从Ableton会话中提取数据
- CV工具控制 -自动化Live CV调制设备的Max
Live和CV工具支持的最大值
Remote Script完全支持Max for Live(M4L)设备,包括Ableton的CV工具包:
检测M4L设备
# Get all Max for Live devices on track 0
response = send_command({"action": "get_m4l_devices", "track_index": 0})
# Get only CV Tools devices
cv_devices = send_command({"action": "get_cv_tools_devices", "track_index": 0})按参数名称控制
# Set CV LFO rate by parameter name (easier than finding param index)
send_command({
"action": "set_device_param_by_name",
"track_index": 0,
"device_index": 2,
"param_name": "Rate",
"value": 0.75
})
# Get parameter value by name
param = send_command({
"action": "get_m4l_param_by_name",
"track_index": 0,
"device_index": 2,
"param_name": "Rate"
})支持的M4L设备类型
- CV LFO -控制速率、形状、深度
- CV整形器 -控制驱动、曲线、偏差
- 简历信封追随者 -控制攻击、释放、增益
- CV仪器 -控制范围,量化
- 任何M4L设备 -按名称访问参数
看 examples/cv_tools_control.py 一个完整的工作示例。
有关M4L集成的详细文档,请参阅 MAX4LIVE_INTEGRATION.md.
贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
该项目根据 GNU通用公共许可证v3.0 -看看 许可证 文件以获取详细信息。
这是一个强大的copyleft许可证,要求任何分发您的代码或衍生作品的人在相同的条款下提供源代码。这可以保护您的工作,同时允许开放式协作。
致谢
- 内置于 Ableton Live的Python远程脚本API
- 设计用于 模型上下文协议(MCP)
- 在Claude Code的协助下创建
支持
- 问题:
- 讨论:
路线图
- \[\]在TCP旁边添加WebSocket支持
- \[\]创建高级包装库(Python、JavaScript等)
- \[\]添加录音和音频文件管理工具
- \[\]创建可视化调试/监控仪表板
- \[\]添加Max for Live集成示例
______________________________________________________________________
为Ableton Live社区打造
