MidiBrowser 与标准 Web MIDI,共用一种事件语言。
统一 BLE / USB 输入、5ms 批次、150ms 热插拔去抖、Unix 毫秒时间戳、多消息 packet 与 running status。没有设备时保持监听,连接后无需刷新。
音乐密码通用技术底座 · v1.1.2
统一 MidiBrowser BLE MIDI 中转、四级力度高保真钢琴与音乐密码琴键亮灯协议。把已验证的接口、参数和验收标准沉淀成可直接复用的开发基础。

音乐密码 36 键 · 官方产品渲染
业务层只处理标准化的音乐事件。底座负责不同运行环境之间的差异,让普通浏览器、MidiBrowser、USB、BLE 与真实音乐密码设备都遵循同一条产品逻辑。
统一 BLE / USB 输入、5ms 批次、150ms 热插拔去抖、Unix 毫秒时间戳、多消息 packet 与 running status。没有设备时保持监听,连接后无需刷新。
Salamander Grand Piano V3:13 个小三度间隔音高锚点 × v4 / v8 / v12 / v16。含 CC64、48 声部上限、混响、压缩与加载失败合成兜底。
新固件使用 `0x15 + 0F 01` 全 RGB;兼容固件使用 `0x71 + 0F 05` 调色板。初始化、清屏、分帧、差异发送与退出全灭都有一致生命周期。
音乐密码 36 使用厂商头 `05 30 7F 7F 20 00`,PopuPiano 29 使用 `03` 与 `0x1E / 0x20`。每个 profile 明确键数、音域、索引语义与真机验证边界。
任意标准 MIDI 输入都可以发声和判定;只有音乐密码设备的 MIDI output 才发送专用 SysEx。屏幕键盘与硬件键盘复用同一种标准化事件。
吸收浏览器、原生桥与模拟键盘之间的差异,输出稳定的 on / off / pedal 事件。
练习、游戏、录音与屏幕反馈只依赖标准化事件,不直接读取某个 native bridge 格式。
PianoEngine 负责音色与踏板;LightController 负责设备 profile、协议帧与 200ms 同步。
这些规则来自真实浏览器、iOS、BLE 与硬件协议中的已知边界。它们不是建议项,而是每个音乐密码新产品的发布门槛。
Note On 的 velocity 1–127 不得压成固定值,音色、判定与表现层共享真实演奏力度。
一个 CoreMIDI packet 可能包含多条消息与 running status,不能只读取前三个字节。
iOS 的 AudioContext 必须在用户点击中同步创建或恢复,不能放到多次 await 之后。
0x15 使用 key index 0–35;0x71 使用 MIDI note 48–83;PopuPiano 使用 lampID 0–28。
每次连接、重连或切换协议都要先发送正确 init,再清屏并恢复当前灯光状态。
legacy Note On 会被固件回弹并污染玩家输入。新产品只使用 0x15 或 0x71 SysEx。
每个核心能力都绑定已核对的参考实现与发布验收矩阵。项目需要偏离时,必须记录原因、目标固件与真机验证结果。
Built once. Reused everywhere.
能力包包含完整固化文档、零依赖 ES module、52 个四级力度钢琴采样、自动回归测试、企业 Logo 与发布清单。