Install
openclaw skills install partykeys-midiControl PartyKeys MIDI keyboard via WebSocket - connect device, light up keys with 12 colors, listen to playing, play sequences, and follow mode for music teaching.
openclaw skills install partykeys-midi通过 MCP 控制 PartyKeys MIDI 键盘(音乐密码)的 LED 灯光和监听弹奏。
手机 App 和浏览器页面使用同一套通信协议,都连接 WebSocket 端口 18790:
MCP Server (端口 18790)
/ \
/ \
WebSocket / \ WebSocket
↓ ↓
┌──────────┐ ┌──────────┐
│ 手机 App │ │ 浏览器页面 │
│ │ │ │
│ BLE │ │ Web BT │
└────┬─────┘ └────┬─────┘
│ │
└──────┬──────┘
↓
MIDI 键盘
单一服务:调用 music_connect() 时,MCP 只启动 WebSocket 服务(端口 18790)。
首次使用前运行安装脚本:
bash {baseDir}/scripts/setup.sh
连接键盘前,先询问用户选择连接方式:
请选择 MIDI 键盘的连接方式:
- 🌐 浏览器连接 — 在 Chrome/Edge 浏览器中连接设备(推荐本机使用)
- 📱 手机 App — 通过手机 App 桥接蓝牙(推荐云端/远程使用)
两种连接方式使用同一套协议,可任选其一。
使用流程:
partykeys-bridge-web/standalone.html 网页ws://<本机 IP>:18790/ws适用系统:所有系统(Windows、Linux、macOS)
安全上下文(必读):Web Bluetooth 只在浏览器的「安全上下文」里可用,即 https:// 或本机的 http://localhost / http://127.0.0.1。远程 http://IP 无法使用 Web Bluetooth,需改用 手机 App。
使用流程:
ws://<服务器 IP>:18790/ws适用系统:所有系统(Windows、Linux、macOS、云端服务器)
连接 MIDI 键盘设备。
mode: mobile 或 web(可选,不传时让用户选择)断开设备连接。
点亮指定按键的 LED 灯。
keys: 音符列表(必填),如 ["C4", "E4", "G4"] 或 ["3c", "40", "43"] 或 "3c,40,43"colors: 颜色数组,每个键对应一个颜色(可选),如 [1, 3, 5]color: 单个颜色值,所有键共用(可选,已废弃,推荐使用 colors)| 值 | 颜色 | 值 | 颜色 |
|---|---|---|---|
| 0 | 关闭(熄灭) | 7 | 绿色 |
| 1 | 红色 | 8 | 青绿 |
| 2 | 橙红 | 9 | 青色 |
| 3 | 橙色 | 10 | 蓝色 |
| 4 | 黄橙 | 11 | 蓝紫 |
| 5 | 黄色 | 12 | 紫色 |
| 6 | 黄绿 |
监听用户弹奏输入。
timeout: 超时时间,毫秒(默认 5000)mode: "single" 或 "continuous"播放音符序列。
sequence: 音符序列数组,每个元素含 keys 和 delay(毫秒)跟弹模式。
notes: 音符序列timeout: 每个音符超时,毫秒(默认 30000)获取硬件连接状态。
切换键盘/设备工作模式。
mode: skin / free / game / skin_config / drum / free_light / singing / singing_advanced / app_connect设置键盘音区(8度偏移)。
octave: 整数,-3~3,0 为默认音区设置节拍速度。
bpm: 整数,20~300设置节拍类型(拍号)。
beat: "4/4" / "4/3" / "8/6"根据和弦名称点亮键盘对应按键(教学用)。
chord: 和弦名称,格式:根音+和弦类型,如 C、Dm、G7、FMaj7、Am7position: 把位偏移,0 为默认,正数升高,负数降低设置键盘/设备皮肤(色盘)。
skin_id: 色盘编号,0~127query: 若为 true 则仅查询已有皮肤列表查询设备在线状态,获取当前已连接的设备列表。
查询设备固件版本信息。
target: "all" / "box" / "keyboard"浏览器连接模式:
music_connect(mode="web")
music_light_keys(keys=["3c", "40", "43"], colors=[1, 3, 5])
music_disconnect()
手机中转模式:
music_connect(mode="mobile")
music_light_keys(keys=["C4", "E4", "G4"], color="blue")
music_disconnect()
12 色渐变:
# 点亮 12 个键,每个键不同颜色
music_light_keys(
keys=["30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "3a", "3b"],
colors=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
)
关闭所有灯光:
music_light_keys(keys=[])