Ableton Live自然语言控制代理

一个通过自然语言提供对Ableton Live全面控制的AI代理,支持鼓点生成、旋律合成、样本搜索和混音辅助等功能,适用于音乐制作和创作。

  • by keigotak
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 keigotak/AbletonMCP

使用说明

🌐 英语 | 日本语

🎹 Ableton MCP

一个AI代理,让您使用自然语言完全控制Ableton Live。

🚀 两种模式

1.️⃣ MCP模式(推荐)-不需要API密钥!

直接从Claude Desktop使用。通过聊天控制Ableton-不需要API密钥。

2.️⃣ CLI模式-独立

使用Anthropic API键从终端进行操作。

⚠️ 备注:CLI模式是实验性的,尚未经过全面测试。


🌟 MCP模式设置(无需API键)

1.安装

cd ableton-mcp
pip install -e .

2.配置克劳德桌面

编辑Claude Desktop配置文件:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "ableton-mcp": {
      "command": "python",
      "args": ["-m", "src.mcp_server"],
      "cwd": "/path/to/ableton-mcp"
    }
  }
}

⚠️ 替换 cwd 带有ableton mcp文件夹的实际路径。

📖 windows用户:参见 安装_WINDOWS.md 详细说明。

3.安装AbletonOSC

选项A:实时设备的最大值(简单)

  1. 下载 AbletonOSC
  2. 拖拽 AbletonOSC.amxd 在Ableton Live的轨道上

选项B:远程脚本(推荐)

  1. 下载自https://github.com/ideoforms/AbletonOSC
  2. 放置在“远程脚本”文件夹中:
    • 视窗: C:\Users\<YourName>\Documents\Ableton\User Library\Remote Scripts\AbletonOSC
    • macOS: ~/Music/Ableton/User Library/Remote Scripts/AbletonOSC
  3. 文件夹结构: AbletonOSC\__init__.py 应该直接在里面
  4. 在Ableton Live→ 偏好→ 链接/节奏/MIDI→ 控制表面→ 选择 AbletonOSC

4.重新启动克劳德桌面

重启后,您可以通过聊天直接控制Ableton!

You: Create a 4-minute EDM track

Claude: [using generate_arrangement tool]
Generated arrangement...

You: Add trap-style drums

Claude: [using create_drum_track tool]
Created drum track 'Drums'...

✨ 特性

🥁 鼓/节奏生成

  • 基本节拍、四拍、陷阱、破拍、D&B
  • 自定义图案创建

🎹 旋律/合成一代

  • 旋律:基于比例的自动生成(密度和轮廓可调)
  • 基线:基本、行走、切分音、八度音阶、琶音
  • 和弦进行:流行、爵士、悲伤、史诗、黑暗、edm、lofi、电影
  • 琶音:向上、向下、向上向下、随机(第8/16/三元组)

🔍 样本搜索

  • 本地库搜索(Ableton核心库、Splice等)
  • Freesound API支持
  • 自然语言查询

🎚️ 混合辅助

  • 频率碰撞检测(踢腿与低音等)
  • 自动侧链压缩设置
  • EQ建议
  • 液位/动态分析

📐 歌曲结构生成

  • 流派模板:EDM、House、Techno、D&B、嘻哈、陷阱、低保真、环境音乐、流行音乐
  • 完整结构:引言→ 积累→ Drop → 故障→ Outro
  • 自动化发电

💻 CLI模式使用

发射

# Ableton connection mode
python src/cli.py

# Mock mode (test without Ableton)
python src/cli.py --mock

示例会话

╔════════════════════════════════════════════════════════════════╗
║               🎹 Ableton Agent CLI v2.0 🎹                     ║
╚════════════════════════════════════════════════════════════════╝

🎤 You: Create a 4-minute EDM track

🤖 Agent: I'll generate an EDM track arrangement.

🎛️  Executing: generate_arrangement
    Parameters: {"genre": "edm", "duration_minutes": 4.0}
✅ Generated arrangement:

🎵 Untitled Edm
   Tempo: 128 BPM | Key: Am
   Total: 72 bars

📋 Structure:
   [  0] intro        |  8 bars | Energy: ███░░░░░░░
   [  8] buildup      |  8 bars | Energy: █████░░░░░
   [ 16] drop         | 16 bars | Energy: ██████████
   [ 32] breakdown    |  8 bars | Energy: ████░░░░░░
   [ 40] buildup      |  8 bars | Energy: ███████░░░
   [ 48] drop         | 16 bars | Energy: ██████████
   [ 64] outro        |  8 bars | Energy: ███░░░░░░░

🎤 You: Create trap-style drums

🤖 Agent: I'll create a trap-style drum pattern.
🎛️  Executing: create_drum_track
    Parameters: {"pattern_type": "trap", "bars": 2, "name": "Trap Drums"}
✅ Created drum track 'Trap Drums' (pattern: trap, 2 bars)

⌨️ 命令

特殊命令

命令 描述
/help 显示帮助
/status 显示项目状态
/genres 列出可用流派
/arrangement 显示当前安排
/mock 切换模拟模式
/clear 清除对话历史记录
quit 退出

自然语言示例

鼓

  • “创建基本鼓图案”
  • “制作一个4杆陷阱节拍”
  • “地板上有四个人踢”
  • “创建breakbeat”

旋律/低音

  • “创作C小调旋律”
  • “明亮的五声旋律”
  • “切分低音线”
  • “添加八度低音”
  • “十六音琶音”

和弦

  • “创造一个黑暗的和弦进程”
  • “爵士和弦”
  • “电影和弦推进”

样品

  • “寻找民族打击乐”
  • “黑暗合成器140BPM”
  • “查找踢腿样本”

混合

  • “分析组合”
  • “踢踏声和低音在冲突”
  • “听起来很泥泞”
  • “设置侧链”
  • “添加混响”

歌曲结构

  • “创建一首4分钟的EDM曲目”
  • “生成低保真嘻哈结构”
  • “进行技术安排”

情绪

  • “让它更暗”
  • “照亮它”
  • “让它更激烈”
  • “寒意”

📁 项目结构

ableton-mcp/
├── .gitignore
├── LICENSE
├── README.md                           # English
├── README.ja.md                        # Japanese
├── INSTALL_WINDOWS.md                  # Windows setup guide
├── pyproject.toml
├── setup.bat                           # Windows setup script
├── claude_desktop_config.example.json  # Example config
└── src/
    ├── __init__.py
    ├── mcp_server.py            # MCP server (for Claude Desktop)
    ├── cli.py                   # CLI interface
    ├── agent.py                 # AI agent (Claude API)
    ├── ableton_osc.py           # Ableton OSC communication
    ├── synth_generator.py       # Melody/bass/chord/arpeggio generation
    ├── sample_search.py         # Sample search engine
    ├── mixing_assistant.py      # Mixing analysis & assistance
    └── arrangement_generator.py # Song structure generation

🔧 延伸

添加新工具

  1. 将工具定义添加到 ABLETON_TOOLS 在 src/agent.py:
{
    "name": "your_tool_name",
    "description": "Tool description",
    "input_schema": {
        "type": "object",
        "properties": {
            "param1": {"type": "string", "description": "Description"}
        },
        "required": ["param1"]
    }
}
  1. 添加执行逻辑 execute_command 在 src/cli.py:
elif tool == "your_tool_name":
    return self._your_implementation(params)

添加流派模板

添加到 GenreTemplates.TEMPLATES 在 src/arrangement_generator.py:

"your_genre": {
    "sections": [
        ("intro", 8, 0.3, ["pad"]),
        ("verse", 16, 0.6, ["drums", "bass"]),
        # ...
    ],
    "tempo_range": (100, 120),
    "default_key": "Am",
}

🎛️ 建筑

┌─────────────────────────────────────────────────────────────────┐
│                     User Input (Natural Language)                │
└─────────────────────────────────────────────────────────────────┘
                                │
                                ▼
┌─────────────────────────────────────────────────────────────────┐
│                     Claude API (Tool Use)                        │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐           │
│  │  Drums   │ │ Melody   │ │ Samples  │ │ Mixing   │ ...       │
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘           │
└─────────────────────────────────────────────────────────────────┘
                                │
                                ▼
┌─────────────────────────────────────────────────────────────────┐
│                      Command Executor                            │
│  ┌────────────────┐  ┌────────────────┐  ┌────────────────┐    │
│  │ SynthGenerator │  │ SampleSearch   │  │ MixingAssist   │    │
│  └────────────────┘  └────────────────┘  └────────────────┘    │
│  ┌────────────────┐  ┌────────────────┐                        │
│  │ ArrangementGen │  │ DrumPattern    │                        │
│  └────────────────┘  └────────────────┘                        │
└─────────────────────────────────────────────────────────────────┘
                                │
                                ▼
┌─────────────────────────────────────────────────────────────────┐
│                    OSC Communication                             │
│                      (python-osc)                                │
└─────────────────────────────────────────────────────────────────┘
                                │
                                ▼
┌─────────────────────────────────────────────────────────────────┐
│                      Ableton Live                                │
│                     (via AbletonOSC)                             │
└─────────────────────────────────────────────────────────────────┘

❓ 故障排除

启动顺序(重要!)

  1. 首先启动Ableton Live
  2. 确认AbletonOSC在日志中显示“已在地址('0.0.0.0',11000)上启动AbletonOSC”
  3. 然后启动克劳德桌面

OSC连接错误

  • 检查AbletonOSC是否已加载
  • 验证端口11000是否可用
  • 检查防火墙设置

Windows-检查端口:

netstat -ano | findstr "11000 11001"

Windows-检查Ableton日志:

Get-Content "$env:USERPROFILE\AppData\Roaming\Ableton\Live *\Preferences\Log.txt" -Tail 50 | Select-String "OSC"

Claude桌面问题

  • 编辑文件后:完全重新启动Claude Desktop(退出系统托盘)
  • 连接问题:重新启动克劳德桌面

API错误(CLI模式)

  • 验证 ANTHROPIC_API_KEY 设置正确
  • 检查API使用限制

未找到样本

  • 检查示例文件夹路径
  • 初始化时指定自定义路径 SampleSearchEngine

📄 许可证

麻省理工学院

🔗 参考文献