Mcp Server Midi

Mcp Server Midi

🚀 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 输入设备使用

📦 安装指南

  1. 克隆仓库:
    git clone 
    cd mcp-server-midi
    
  2. 创建一个虚拟环境,激活它并安装依赖项:
    python -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    
  3. 创建一个 .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]。

  • 0 关注
  • 0 收藏,19 浏览
  • system 提出于 2025-09-27 20:21

相似服务问题

相关AI产品