DAW MIDI生成器MCP🎵
MCP(模型上下文协议)服务器,使Claude AI能够为以下对象生成专业MIDI文件 任何DAW.
 
______________________________________________________________________
🎹 它做什么
此MCP服务器使Claude能够生成完整的、可用于制作的MIDI文件:
- 和弦进行 -任何键,任何进度(I-V-vi-IV,ii-V-I,自定义)
- 鼓图案 -House、Techno、Trap,具有精确的通用MIDI映射
- 低音线 -稳定、切分、行走模式
- 旋律 -大调、小调、五音阶
- 完整安排 -和弦+鼓+低音在一个命令
所有文件都是 标准MIDI 1.0 与每个DAW兼容。
______________________________________________________________________
✅ 兼容DAW
- Logic Pro X
- Ableton Live
- FL工作室
- Cubase
- 专业工具
- 收割者
- Bitwig工作室
- 工作室一
- 库乐队
- 任何MIDI兼容软件
______________________________________________________________________
📋 需求
- macOS (在红杉15.7.2+上测试)或 Linux
- Python 3.10+
- 克劳德桌面版 (在这里下载)
- 任何支持MIDI导入的DAW
______________________________________________________________________
🚀 安装
步骤1:克隆存储库
git clone https://github.com/s2d01/daw-midi-generator-mcp.git
cd daw-midi-generator-mcp步骤2:安装Python依赖项
pip3 install -r requirements.txt这将安装:
mcp-模型上下文协议库mido-MIDI文件生成库
步骤3:获取绝对路径
pwd复制输出(例如。, /Users/yourname/daw-midi-generator-mcp)
步骤4:配置Claude桌面
打开Claude Desktop的配置文件:
macOS:
nano ~/Library/Application\ Support/Claude/claude_desktop_config.jsonLinux:
nano ~/.config/Claude/claude_desktop_config.json添加此配置(替换 YOUR_USERNAME 使用您的实际用户名):
{
"mcpServers": {
"daw-midi": {
"command": "python3",
"args": ["/Users/YOUR_USERNAME/daw-midi-generator-mcp/midi_generator_server.py"]
}
}
}⚠️ 关键: 使用 绝对路径 从步骤3开始。相对路径不起作用。
保存文件:
- 纳米级:
Ctrl+O,Enter,Ctrl+X
步骤5:重新启动克劳德桌面
完全退出 克劳德桌面:
- macOS:
Cmd+Q - Linux:关闭应用程序
等待3秒,然后重新打开Claude Desktop。
步骤6:验证安装
打开克劳德桌面,键入:
Create a chord progression in C majorClaude应该生成一个MIDI文件并显示路径。
______________________________________________________________________
📂 项目结构
daw-midi-generator-mcp/
├── README.md # This file
├── midi_generator_server.py # MCP server (runs automatically)
├── requirements.txt # Python dependencies
├── LICENSE # MIT License
└── .gitignore # Git ignore rules输出目录
MIDI文件保存到:
~/Music/DAW/Claude_MIDI/此目录是 自动创建 服务器首次运行时。您不需要手动创建它。
______________________________________________________________________
🎼 运作原理
建筑
┌─────────────────┐
│ You ask │
│ Claude │
└────────┬────────┘
│
▼
┌─────────────────────────┐
│ Claude Desktop │
│ (MCP Client) │
└────────┬────────────────┘
│ JSON-RPC over stdio
▼
┌─────────────────────────────┐
│ midi_generator_server.py │
│ (MCP Server - Python) │
│ │
│ • Receives tool calls │
│ • Generates MIDI events │
│ • Creates .mid files │
└────────┬────────────────────┘
│
▼
┌─────────────────────────┐
│ ~/Music/DAW/ │
│ Claude_MIDI/ │
│ • chords_*.mid │
│ • drums_*.mid │
│ • bass_*.mid │
└─────────────────────────┘分步示例
1.你问克劳德:
Generate a house drum pattern at 128 BPM2.Claude调用MCP服务器:
{
"method": "tools/call",
"params": {
"name": "generate_drum_pattern",
"arguments": {
"pattern_type": "house",
"tempo": 128,
"bars": 4
}
}
}3.Python服务器执行:
def create_drum_pattern_midi(pattern_type="house", tempo=128, bars=4):
# Create MIDI file
mid = MidiFile()
track = MidiTrack()
# Add tempo and time signature
track.append(MetaMessage('set_tempo', tempo=...))
# Generate drum events
# Kick (MIDI 36) on beats 1, 2, 3, 4
# Snare (MIDI 38) on beats 2, 4
# Hi-hat (MIDI 42) on eighth notes
# Save to ~/Music/DAW/Claude_MIDI/drums_house_20241130_154523.mid
return filepath4.克劳德回答说:
🥁 Drum pattern created!
📁 File: /Users/yourname/Music/DAW/Claude_MIDI/drums_house_20241130_154523.mid
🎶 Style: house
⏱️ Tempo: 128 BPM
📏 Bars: 4
💡 Import into your DAW and assign to a drum kit!5.将文件导入DAW
服务器什么时候运行?
服务器正在运行 自动在后台:
- 开始: 打开Claude Desktop时
- 跑: 当克劳德桌面打开时
- 停止: 当您退出Claude Desktop时
你 切勿手动运行它克劳德桌面处理一切。
五种工具
服务器向Claude公开了5个工具:
| 工具名称 | 功能 | 参数 |
|---|---|---|
generate_chord_progression | 创建和弦MIDI文件 | 键、级数、节奏、小节 |
generate_drum_pattern | 创建鼓模式 | pattern_type(house/techno/trap)、节奏、小节 |
generate_bass_line | 创建低音线 | 键、模式(稳定/切分音/行走)、节奏、小节 |
generate_melody | 创建旋律 | 音阶(大调/小调/五声音阶)、调性、节奏、小节 |
create_full_arrangement | 创建以上所有3个 | 键、流派、节奏、小节 |
______________________________________________________________________
💬 使用示例
和弦进行
Create a chord progression in D minor
Generate a I-V-vi-IV progression in G major at 140 BPM
Make me 8 bars of C - F - Am - G chords
Create a jazz progression in Bb major输出: 带有和弦声音的单个MIDI文件
鼓图案
Generate a house pattern at 128 BPM
Create 16 bars of techno drums at 135 BPM
Make me a trap beat
Generate a 4-bar house groove样式:
- 房子 -四个落地球,2-4个圈套,八个高帽
- 科技舞曲 -驾驶踢腿模式,紧身高帽,偶尔打开帽子
- 陷阱 -切分踢腿、16音高帽、硬圈套
低音线
Create a steady bass in A minor
Generate a syncopated bass in C at 125 BPM
Make me 8 bars of walking bass in F
Create a bass line in E minor模式:
- 稳定的 -每拍根音(4/4次)
- 切分 -带休息区的另类凹槽
- 行走 -爵士风格的上升/下降模式
旋律
Generate a pentatonic melody in A minor
Create a melody in C major scale
Make me a lead line in E minor
Generate an 8-bar melody规模:
- 主要的 -欢快明亮的旋律
- 较小的 -悲伤、黑暗的旋律
- 五声音阶 -简单、朗朗上口的旋律(非常适合主角)
完整安排
Create a complete house arrangement in C major at 128 BPM
Generate a techno base in A minor at 135 BPM
Make me 16 bars of trap in G major at 140 BPM
Create a full track arrangement输出: 3个MIDI文件(和弦+鼓+低音)
______________________________________________________________________
📥 导入DAW
Logic Pro X/GarageBand
- File → 导入→ MIDI文件
- 导航至
~/Music/DAW/Claude_MIDI/ - 选择一个或多个MIDI文件
- 点击 打开
或 拖放 文件直接进入时间线。
Ableton Live
- 将MIDI文件从Finder拖动到会话或排列视图中
- Ableton自动创建新曲目
- 指定仪器
FL工作室
- File → 导入→ MIDI文件
- 导航至
~/Music/DAW/Claude_MIDI/ - 选择文件并导入
Cubase/Pro工具/收割机/Bitwig
将MIDI文件拖放到时间线中。
______________________________________________________________________
🔧 技术细节
MIDI规范
- 格式: MIDI 1.0标准
- 时间: 480 PPQ(每季度脉冲数)
- 鼓: 通用MIDI通道10映射
- 踢球:MIDI 36 - 铃声:MIDI 38 - 封闭式耳机:MIDI 42 - 打开嗨帽子:MIDI 46
- 速度: 动态(50-100)
- 时间签名: 4/4(目前)
Python架构
主要部件:
# MIDI Utilities
note_to_midi() # Convert "C4" → MIDI 60
get_chord_notes() # Generate chord voicings
# MIDI Generators
create_chord_progression_midi() # Chords
create_drum_pattern_midi() # Drums
create_bass_line_midi() # Bass
create_melody_midi() # Melodies
# MCP Protocol Handlers
@app.list_tools() # Exposes tools to Claude
@app.call_tool() # Executes tool calls关键库:
mido-MIDI文件创建和操作mcp-模型上下文协议服务器实现asyncio-MCP通信的异步I/O
______________________________________________________________________
🐛 故障排除
服务器无法启动
错误: ModuleNotFoundError: No module named 'mcp'
解决方案:
pip3 install --upgrade mcp mido克劳德没有看到服务器
问题: 克劳德说:“我无法使用那个工具”
解决:
- 检查配置路径是否为绝对路径:
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json应显示: /Users/yourname/daw-midi-generator-mcp/midi_generator_server.py
不是: ~/daw-midi-generator-mcp/... ❌
- 检查日志:
tail -f ~/Library/Logs/Claude/mcp*.log寻找:
[daw-midi] [info] Server started and connected successfully- 完全重新启动克劳德桌面:
Cmd+Q(不仅仅是关闭窗口)- 等待5秒
- 重新开放
手动测试服务器
cd ~/daw-midi-generator-mcp
python3 midi_generator_server.py应输出:
🎵 DAW MIDI Generator - MCP Server started!
📁 MIDI files will be saved to: /Users/yourname/Music/DAW/Claude_MIDI按 Ctrl+C 停止。
MIDI文件为空或无法播放
检查:
- ✅ 为赛道分配了一个乐器
- ✅ 轨道交通量不为零
- ✅ 曲目未静音
- ✅ 使用正确的MIDI通道(鼓=通道10)
未创建输出目录
目录 ~/Music/DAW/Claude_MIDI/ 由以下行自动创建:
MIDI_OUTPUT_DIR.mkdir(parents=True, exist_ok=True)如果它不存在:
- 服务器尚未运行
- 检查上的文件权限
~/Music/
______________________________________________________________________
🛠️ 定制
更改输出目录
编辑 midi_generator_server.py:
# Line ~25
MIDI_OUTPUT_DIR = Path.home() / "Music" / "YOUR_FOLDER" / "MIDI"添加新鼓图案
编辑 patterns dict in create_drum_pattern_midi():
patterns = {
"house": [...],
"techno": [...],
"trap": [...],
"your_style": [...] # Add here
}添加新比例
编辑 scales dict in create_melody_midi():
scales = {
"major": [0, 2, 4, 5, 7, 9, 11, 12],
"minor": [0, 2, 3, 5, 7, 8, 10, 12],
"pentatonic": [0, 2, 4, 7, 9, 12],
"blues": [0, 3, 5, 6, 7, 10, 12], # Add here
}添加新工具
- 创建新的生成器函数
- 在中注册
@app.list_tools() - 处理它
@app.call_tool()
更改后: 重新启动克劳德桌面
______________________________________________________________________
🗺️ 路线图
- \[\]支持交替时间签名(3/4、6/8、7/8)
- \[\]更多鼓型(breakbeat、dnb、funk)
- \[\]高级和弦发声(9、11、13)
- \[ \] 捕捉器
- \[\]摆动/凹槽量化
- \[\]MusicXML导出
- \[\]与AI音乐生成模型集成
______________________________________________________________________
🤝 贡献
欢迎拉取请求!对于重大更改,请先打开一个问题。
- 复刻仓库
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
贡献想法:
- 更多鼓形图案
- 其他比例和模式
- 和弦变音
- 时间签名支持
- 人性化/随机化
- MIDI效果(摇摆、速度曲线)
______________________________________________________________________
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
👤 作者
S2D01
- github: @s2d01
- 网站:
______________________________________________________________________
🙏 致谢
- 内置于 Anthropic的Claude 模型上下文协议
- MIDI处理由 美度
- 受人工智能辅助音乐制作需求的启发
______________________________________________________________________
⭐ 支持
如果你觉得这个项目有用:
______________________________________________________________________
🎵 快乐的音乐制作!
