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 输入设备。
git clone
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()
该服务器使用服务器发送事件(SSE),配置如下:
{
"mcpServers": {
"midi": {
"url": "http://localhost:8123/sse"
}
}
}
发送一个 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 音符开/关消息。 参数:
events: 事件字典列表。每个字典必须包含:
note: MIDI 音符编号(0 - 127)velocity: 音符力度(0 - 127,默认 127)channel: MIDI 通道(0 - 15,默认 0)time: 事件发生的时间(以毫秒为单位)该库的许可遵循[MIT License]。