thebabush/nanparty
GitHub: thebabush/nanparty
将 MIDI 信号桥接至 Nanlite PavoTube II 6C 管灯的 BLE mesh 控制工具,让任何 DAW 都能实时控制灯光参数。
Stars: 0 | Forks: 0
# nanparty
通过 BLE mesh 实现用 MIDI 控制 Nanlite PavoTube II 6C RGB 管灯。
创建一个虚拟 MIDI 端口,任何 DAW(Bitwig、Ableton 等)都可以向其发送信号,
将 CC 和音符实时映射到灯光参数。
## 工作原理
PavoTube II 6C 使用带有厂商特定协议的 BLE mesh
(公司 ID `0x1111`)。本项目使用我们自己的 mesh 密钥配置灯光,
然后将 MIDI 控制变化桥接到灯光命令。
完整的协议参考请参见 [PROTOCOL.md](PROTOCOL.md)。
## 设置
### 1. 安装
```
uv sync
```
### 2. 配置灯光
将 PavoTube 恢复出厂设置(按住电源按钮),然后:
```
uv run python provision.py
```
这将运行 BT Mesh 配置协议,安装我们的 NetKey/AppKey,
并将派生密钥保存到 `mesh_keys.json`。
### 3. 运行 MIDI 桥接
```
uv run python midi_bridge.py
```
这将连接到灯光,打开一个名为 **"PavoTube II 6C"** 的虚拟 MIDI 端口,并开始监听。
### MIDI 映射
| MIDI | 参数 | 范围 |
|------|-----------|-------|
| CC 1 (Mod Wheel) | Hue (色相) | 0–360° |
| CC 2 | Saturation (饱和度) | 0–100% |
| CC 7 (Volume) | Brightness (亮度) | 0–100% |
| CC 3 | CCT (Kelvin) | 2700–7500 K |
| CC 4 | GM tint | — |
| CC 5 | Mode select (模式选择) | 0–42 = CCT, 43–85 = HSI, 86–127 = Effects |
| Note On | Hue flash (色相闪烁) | note × 3°, velocity → brightness |
## 文件
| 文件 | 用途 |
|------|---------|
| `midi_bridge.py` | MIDI → BLE 灯光桥接(主入口点) |
| `controller2.py` | BLE mesh 加密、PDU 构建、网络栈 |
| `provision.py` | BT Mesh 配置(首次设置) |
| `PROTOCOL.md` | 整洁的协议参考 |
## 参考
- [kitprojects/nanlite-reverse-engineering](https://github.com/kitprojects/nanlite-reverse-engineering) — FS-300B BLE mesh 逆向工程(厂商 opcode 和 PDU 格式的来源)
标签:Ableton Live, Bitwig, BLE mesh, IoT, MIDI 控制, MIDI 映射, Python, RGB 灯光, 光影艺术, 协议逆向工程, 实时控制, 数字音频工作站, 无后门, 无线通信, 智能灯光控制, 灯光同步, 硬件控制, 舞台灯光, 蓝牙 mesh, 蓝牙低功耗, 虚拟 MIDI, 逆向工具, 音乐可视化