Mixcraft MCP🎵
Sonic Pi 4.x+Ableton Live MCP集成+AI DJ系统
Claude Code的Sonic Pi和Ableton Live。AI驱动的DJ系统,具有rekordbox USB导入、谐波混音和自动转换功能。
](https://github.com/Ayesy/mixcraft-mcp)
______________________________________________________________________
目录
- 步骤1:安装先决条件 - 第二步:安装Sonic Pi - 步骤3:安装Ableton Live+AbletonOSC - 步骤4:安装超音速MCP - 步骤5:配置Claude代码 - 步骤6:音频路由(可选)
______________________________________________________________________
特性
- 🎹 运行Sonic Pi代码 直接来自克劳德代码
- 🎚️ 控制Ableton直播 -剪辑、场景、运输、混音器
- 🔗 同步节奏 在两个应用程序之间
- 🎛️ 实时循环控制 -启动/停止单个循环
- 🎤 多轨录音 从Sonic Pi到Ableton
- 🎭 演出场景 -安排你的直播
- 🔧 设备/插件控制 -读取和控制任何设备参数(旋钮、过滤器等)
- 🔍 设备发现 -列出所有乐器、效果及其参数
- 🎧 AI DJ系统 -rekordbox USB导入、BPM/密钥分析、谐波混合
- 🔀 自动转换 -混合、剪切、回声消除、滤波扫描
- 📊 曲目库 -SQLite数据库,可按BPM、关键字、能量、类型进行搜索
- 🎯 聪明的建议 -Camelot车轮谐波混合建议
______________________________________________________________________
完整安装指南
步骤1:安装先决条件
macOS
# Install Homebrew (if not installed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install Python 3.10+
brew install python@3.11
# Install UV package manager (recommended for MCP)
brew install uv
# Install pip packages
pip3 install python-osc mcp视窗
- 下载并安装 Python 3.11+
- 以管理员身份打开PowerShell:
pip install python-osc mcp______________________________________________________________________
第二步:安装Sonic Pi
- 下载 索尼克Pi 4.x 从 sonic-pi.net
- 安装并启动Sonic Pi
- 配置Sonic Pi设置:
音频设置
首选 偏好 → 音频
- ✅ 启用音频输入
IO设置(严重!)
首选 偏好 → 输入
- ✅ 允许传入OSC ← MCP需要!
- ✅ 允许来自其他计算机的OSC (可选)
- 注: 输入OSC端口:4560
______________________________________________________________________
步骤3:安装Ableton Live+AbletonOSC
Mixcraft MCP使用 AbletonOSC 控制Ableton Live。
3.1安装Ableton Live
- 下载自 ableton.com
- 需要 Ableton Live 11或以上
3.2安装AbletonOSC远程脚本
- 下载AbletonOSC
# Clone or download from GitHub
git clone https://github.com/ideoforms/AbletonOSC.git或者从以下网址下载ZIP:https://github.com/ideoforms/AbletonOSC/archive/refs/heads/master.zip
- 复制到远程脚本文件夹
| 操作系统 | 路径 |
|---|---|
| macOS | ~/Music/Ableton/User Library/Remote Scripts/ |
| 视窗 | C:\Users\[Username]\Documents\Ableton\User Library\Remote Scripts\ |
# macOS example
cp -r AbletonOSC ~/Music/Ableton/User\ Library/Remote\ Scripts/- 重新启动Ableton Live
- 启用AbletonOSC
- 首选 偏好 → 链接、节奏和MIDI - 集 控制表面 下拉到 AbletonOSC - 您应该看到: "AbletonOSC: Listening for OSC on port 11000"
______________________________________________________________________
替代方案:使用官方Ableton MCP
如果你愿意,你也可以使用 阿胡希德/艾博顿mcp 而不是我们内置的Ableton控件:
# Add to ~/.claude/mcp.json
{
"AbletonMCP": {
"command": "uvx",
"args": ["ableton-mcp"]
}
}这需要安装AbletonMCP远程脚本(与AbletonOSC不同)。看 ableton mcp文档 了解详情。
______________________________________________________________________
步骤4:安装Mixcraft MCP
选项A:自动安装(推荐)
# Clone the repo
git clone https://github.com/Ayesy/mixcraft-mcp.git
cd mixcraft-mcp
# Run installer
chmod +x install.sh
./install.sh选项B:手动安装
# Clone the repo
git clone https://github.com/Ayesy/mixcraft-mcp.git
cd mixcraft-mcp
# Install Python dependencies
pip3 install python-osc mcp
# (Optional) Install CLI tool
sudo cp sonic-pi-mcp/sonic_pi_run.py /usr/local/bin/sonic-pi-run
sudo chmod +x /usr/local/bin/sonic-pi-run______________________________________________________________________
步骤5:配置Claude代码
将Mixcraft MCP添加到您的Claude Code MCP配置中:
5.1编辑MCP配置
macOS/Linux:
nano ~/.claude/mcp.json窗户:
%USERPROFILE%\.claude\mcp.json5.2添加配置
{
"MixcraftMCP": {
"command": "python3",
"args": ["/full/path/to/mixcraft-mcp/super_sonic_mcp.py"]
}
}⚠️ 重要提示: 替换 /full/path/to/ 与你的实际路径!
例子:
{
"MixcraftMCP": {
"command": "python3",
"args": ["/Users/yourname/mixcraft-mcp/super_sonic_mcp.py"]
}
}5.3重新启动克劳德代码
# Exit and restart Claude Code
exit
claude5.4验证安装
在Claude Code中,运行:
status()您应该看到:
Sonic Pi: OK (port XXXXX)
Ableton OSC: port 11000______________________________________________________________________
步骤6:音频路由(可选)
通过Ableton收听Sonic Pi(效果/录音):
6.1安装黑洞
brew install blackhole-16ch或从以下网址下载:https://existential.audio/blackhole/
6.2创建多输出设备
- 打开 音频MIDI设置 (
/Applications/Utilities/) - 点击 + → 创建多输出设备
- 检查:
- ✅ 黑洞16ch - ✅ 您的扬声器/耳机
- 右击→ 使用此设备进行声音输出
6.3配置Ableton
- 偏好 → 音频 → 输入设备:黑洞16ch
- 创建 音频轨
- 集 音频来源:
Ext. In→1/2 - 集 监视器:
In - Arm 轨道
现在Sonic Pi音频流入Ableton!
______________________________________________________________________
用法
CLI工具
# Play a note
sonic-pi-run "play 60"
# Run a file
sonic-pi-run -f examples/boss_ymo_all_in_one.rb
# Stop all sounds
sonic-pi-run --stop克劳德密码
# Check status
status()
# Run Sonic Pi code
sonic_run("play :c4")
# Run a file
sonic_file("examples/boss_ymo_all_in_one.rb")
# Stop sounds
sonic_stop()
# Control individual loops
loop_control("drums", "stop")
# Fire Ableton clips
fire_clip(0, 0)
fire_clips("0:0,1:0,2:1")
# Fire scene
fire_scene(0)
# Sync tempo between both apps
sync_tempo(128)
# Start a full performance
live_start("examples/boss_ymo_all_in_one.rb", 0, 160)
# Stop everything
live_stop()快速参考
| 工具 | 说明 |
|---|---|
sonic_run(code) | 执行Sonic Pi代码 |
sonic_file(path) | 运行.rb文件 |
sonic_stop() | 停止所有声音 |
loop_control(name, action) | 控制live_loop |
fire_clip(track, clip) | 触发Ableton夹 |
fire_clips("0:0,1:0") | 触发多个剪辑 |
fire_scene(scene) | 触发Ableton场景 |
sync_tempo(bpm) | 同步两个应用程序 |
live_start(file, scene, bpm) | 开始表演 |
live_stop() | 停止两个应用程序 |
status() | 检查连接 |
设备/插件控制
# Get song overview (all tracks and scenes)
get_song_info()
# List all devices on a track
list_devices(0)
# → [0] Wavetable (InstrumentGroupDevice) - Instrument
# → [1] Auto Filter (AutoFilter) - Audio FX
# Get all parameters of a device
get_device_parameters(0, 1)
# → [0] Device On: 1.000 (0.000 - 1.000)
# → [1] Frequency: 800.000 (20.000 - 20000.000)
# → [2] Resonance: 0.500 (0.000 - 1.250)
# Set a single parameter (e.g. filter frequency)
set_device_parameter(0, 1, 1, 2000.0)
# → Set Frequency = 2.00 kHz
# Set multiple parameters at once
set_device_parameters_bulk(0, 1, "1:2000.0,2:0.8")
# Search for a device by name across all tracks
find_device("reverb")
# → Track 2, Device 1: Reverb| 工具 | 说明 |
|---|---|
get_song_info() | 曲目计数、姓名、场景计数 |
list_devices(track) | 列出曲目上的所有设备 |
get_device_parameters(track, device) | 所有具有值和范围的参数 |
set_device_parameter(track, device, param, value) | 设置一个参数 |
set_device_parameters_bulk(track, device, values) | 设置多个参数 |
find_device(name) | 按名称搜索设备 |
AI DJ系统
# Import tracks from rekordbox USB drive
dj_import_usb() # auto-detect
dj_import_usb("/Volumes/MY_USB")
# Or import from rekordbox XML
dj_import_xml("~/Music/rekordbox_export.xml")
# Or scan a folder (analyzes BPM, key, energy)
dj_scan("~/Music/DJ")
# Search your library
dj_search(query="deadmau5", bpm_min=126, bpm_max=130)
dj_search(key="8A") # Camelot notation
# Start a DJ session
dj_session_start("Friday Night")
# Load and play tracks
dj_load("A", 42) # Load track #42 to Deck A
dj_play("A")
dj_tempo(128)
# Get AI suggestions for next track
dj_suggest_next(energy="up")
# Load suggestion and transition
dj_load("B", 57)
dj_transition("blend", 16) # 16-bar blend
dj_transition("cut") # Instant cut
dj_transition("echo_out", 8) # Echo fade
dj_transition("filter_sweep", 16)
# Control EQ and effects
dj_eq("A", low=0.0, mid=1.0, high=1.0) # Kill bass
dj_fx_send("B", "reverb", 0.5)
dj_crossfade(0.7) # Mostly Deck B
# End session
dj_session_end()| 工具 | 说明 |
|---|---|
dj_import_usb(path?) | 从rekordbox USB导入 |
dj_import_xml(path) | 从rekordbox XML导入 |
dj_scan(directory) | 扫描和分析音频文件 |
dj_search(query, bpm, key, genre) | 搜索库 |
dj_track_info(id) | 赛道细节+提示点 |
dj_load(deck, id) | 装载轨道至甲板A/B |
dj_play(deck) / dj_stop(deck) | 播放/停止甲板 |
dj_volume(deck, val) | 甲板体积 |
dj_eq(deck, low, mid, high) | EQ三控 |
dj_crossfade(pos) | 交叉衰减器(0=A,1=B) |
dj_tempo(bpm) | BPM大师 |
dj_fx_send(deck, fx, amount) | 发送外汇 |
dj_suggest_next(energy?) | AI跟踪建议 |
dj_transition(style, bars) | 自动转换 |
dj_compatible_keys(key) | 谐波混合助手 |
dj_session_start/status/end | 会话管理 |
dj_playlist_create/add | 播放列表管理 |
______________________________________________________________________
音乐示例
这 examples/ 文件夹包含Sonic Pi曲目示例:
| 文件 | 描述 |
|---|---|
boss_ymo_all_in_one.rb | 完成Touhou x YMO boss战斗轨迹 |
boss_ymo_buffer0_drums.rb | 仅鼓形图案 |
boss_ymo_buffer1_bass.rb | TB-303酸性巴司林 |
boss_ymo_buffer2_lead.rb | 主旋律 |
boss_ymo_buffer3_arp.rb YMO风格的阿尔佩吉奥 | |
boss_ymo_buffer4_fx.rb | 音效 |
touhou_ymo_minimal.rb | 最低版本 |
______________________________________________________________________
故障排除
“Sonic Pi不运行”
- 确保Sonic Pi应用程序已打开
- 验证:
ps aux | grep spider
“Sonic Pi未收到OSC消息”
- Sonic Pi 偏好 → 输入:
- ✅ 允许传入OSC 必须检查!
“Ableton没有回应”
- 确保在首选项中启用了AbletonOSC→ 链接、节奏和MIDI
- 查找消息:“AbletonOSC:在11000端口上监听OSC”
- 验证端口:
lsof -i :11000
“Sonic Pi的Ableton中没有声音”
- 检查多输出设备是否为系统默认输出
- 验证Ableton输入是否设置为BlackHole
- 将轨道监视器设置为“In”
- 为轨道配备防护装置
“MCP服务器未加载”
- 检查路径
~/.claude/mcp.json是正确的 - 确保安装了Python依赖项:
pip3 install python-osc mcp - 完全重新启动Claude代码
______________________________________________________________________
项目结构
mixcraft-mcp/
├── README.md # This file
├── install.sh # Auto-installer
├── requirements.txt
├── super_sonic_mcp.py # Main MCP server
├── sonic-pi-audio-settings.png # Setup guide image
├── sonic-pi-io-settings.png # Setup guide image
├── sonic-pi-mcp/
│ ├── server.py # Standalone Sonic Pi MCP
│ ├── sonic_pi_run.py # CLI tool
│ └── README.md
├── ableton-mcp/
│ ├── server.py # Standalone Ableton MCP
│ └── README.md
├── examples/ # Sample Sonic Pi tracks
│ ├── boss_ymo_all_in_one.rb
│ └── ...
└── skills/
└── sonic-live.md # Claude Code skill______________________________________________________________________
运作原理
Sonic Pi 4.x集成
Sonic Pi 4.x使用基于令牌的身份验证。Mixcraft MCP:
- 阅读
spider-server.rb过程参数 - 提取动态端口和身份验证令牌
- 发送OSC
/run-code [token] [code]直接给Spider
这适用于 任何 Sonic Pi 4.x安装,无需修改。
Ableton Live集成
用途 AbletonOSC 端口11000上的远程脚本。
______________________________________________________________________
学分及相关项目
- 索尼克Pi Sam Aaron
- AbletonOSC Daniel Jones-Ableton的OSC控制
- 艾博顿mcp 作者:ahujasid-Ableton的替代MCP
- 建于 主控程序 -模型上下文协议
______________________________________________________________________
许可证
麻省理工学院
______________________________________________________________________
制作🎵 面向实时程序员
