README
🚀 MCP MIDI 服务器
MCP MIDI 服务器是一个高效的工具,能让大型语言模型(LLM)将 MIDI 序列发送到任何支持 MIDI 输入的软件,为音乐创作与控制提供了极大便利。
🚀 快速开始
运行服务器,只需执行以下命令:
python mcp_midi_server.py
服务器会创建一个名为“MCP MIDI Out”的虚拟 MIDI 端口,可作为任何支持 MIDI 的应用程序的 MIDI 输入设备。你可以将数字音频工作站(DAW)如 Ableton Live、Logic Pro 或 FL Studio 连接到此服务器接收 MIDI;也能使用该服务器通过计算机的 MIDI 接口控制硬件合成器;还能连接到任何接受 MIDI 输入的其他软件(虚拟乐器、灯光控制器等)。只需在你首选的 MIDI 兼容应用程序中选择“MCP MIDI Out”作为 MIDI 输入设备。
✨ 主要特性
- 创建一个虚拟的 MIDI 输出端口
- 发送 MIDI 音符开/关消息
- 发送控制变化(CC)消息
- 按照精确的时间安排 MIDI 事件
- 可以作为任何支持 MIDI 的应用程序中的 MIDI 输入设备使用
📦 安装指南
- 克隆仓库:
git clone <repository-url> cd mcp-server-midi - 创建一个虚拟环境,激活它并安装依赖项:
python -m venv .venv source .venv/bin/activate pip install -r requirements.txt - 创建一个
.env文件并添加配置:PORT=8123
💻 使用示例
基础用法
import mcp_midi_server as mcp
# 创建一个MIDI服务器实例
server = mcp.MIDIServer()
# 定义一个回调函数来处理MIDI输入
def on_midi_input(event):
print(f"收到MIDI事件:{event}")
# 启动MIDI服务器并注册回调函数
server.start(port=8123, on_input=on_midi_input)
# 发送一个音符开消息
server.send_note_on(note=60, velocity=100, channel=0)
# 等待一段时间(以秒为单位)
import time
time.sleep(1)
# 发送一个音符关消息
server.send_note_off(note=60, velocity=64, channel=0)
# 停止MIDI服务器
server.stop()
📚 详细文档
MCP配置
该服务器使用服务器发送事件(SSE),配置如下:
{
"mcpServers": {
"midi": {
"url": "http://localhost:8123/sse"
}
}
}
API方法
发送音符开
发送一个 MIDI 音符开消息。 参数:
note: MIDI 音符编号(0 - 127)velocity: 音符力度(0 - 127,默认 127)channel: MIDI 通道(0 - 15,默认 0)
发送音符关
发送一个 MIDI 音符关消息。 参数:
note: MIDI 音符编号(0 - 127)velocity: 关闭力度(0 - 127,默认 64)channel: MIDI 通道(0 - 15,默认 0)
发送控制变化
发送一个 MIDI 控制变化(CC)消息。 参数:
controller: CC 控制器编号(0 - 127)value: CC 值(0 - 127)channel: MIDI 通道(0 - 15,默认 0)
发送 MIDI 序列
按指定时间发送一连串的 MIDI 音符开/关消息。 参数:
events: 事件字典列表。每个字典必须包含:note: MIDI 音符编号(0 - 127)velocity: 音符力度(0 - 127,默认 127)channel: MIDI 通道(0 - 15,默认 0)time: 事件发生的时间(以毫秒为单位)
📄 许可证
该库的许可遵循[MIT License]。
Scan to join WeChat group