音乐密码通用技术底座 · v1.1.2

让每一个新产品,
从同一套稳定底座
开始。

统一 MidiBrowser BLE MIDI 中转、四级力度高保真钢琴与音乐密码琴键亮灯协议。把已验证的接口、参数和验收标准沉淀成可直接复用的开发基础。

36音乐密码琴键
C3–B5
52钢琴采样
13 × 4 layers
256BMidiBrowser
单帧上限
~200ms硬件灯光
同步常量
音乐密码 / PartyKeys
Foundation Runtimepartykeys.foundation / stable
Verified
M
MIDI TransportUSB · BLE · Hotplug · CC64
5ms batch
P
Piano Engine13 pitch anchors · 4 velocity layers
52 samples
L
Light ControllerPartyKeys 36 · device profiles
Sysex safe
Live protocol preview
音乐密码 36 键键盘 / PartyKeys 36-key keyboard 音乐密码 36 键 · 官方产品渲染
F0 05 30 7F 7F 20 00 15 03 · RGB groups · key index 0–35 · F7
Four core capabilities

一套底座,连接软件、声音与硬件。

业务层只处理标准化的音乐事件。底座负责不同运行环境之间的差异,让普通浏览器、MidiBrowser、USB、BLE 与真实音乐密码设备都遵循同一条产品逻辑。

01

MidiBrowser 与标准 Web MIDI,共用一种事件语言。

统一 BLE / USB 输入、5ms 批次、150ms 热插拔去抖、Unix 毫秒时间戳、多消息 packet 与 running status。没有设备时保持监听,连接后无需刷新。

requestMIDIAccess()Note On 1–127CC64256-byte safe
02

四级力度钢琴,6.1 MB 内保留演奏表情。

Salamander Grand Piano V3:13 个小三度间隔音高锚点 × v4 / v8 / v12 / v16。含 CC64、48 声部上限、混响、压缩与加载失败合成兜底。

13 × 4Yamaha C5CC BY 3.0Fallback synth
03

两套灯光协议,被清晰地隔离与管理。

新固件使用 `0x15 + 0F 01` 全 RGB;兼容固件使用 `0x71 + 0F 05` 调色板。初始化、清屏、分帧、差异发送与退出全灭都有一致生命周期。

0x15 RGB0x71 Palette200ms syncNo Note On echo
04

设备先识别,再选择正确的编码器。

音乐密码 36 使用厂商头 `05 30 7F 7F 20 00`,PopuPiano 29 使用 `03` 与 `0x1E / 0x20`。每个 profile 明确键数、音域、索引语义与真机验证边界。

PartyKeys 36PopuPiano 29Device profileHardware verified
Recommended architecture

传输、音色、灯光,彼此解耦。

任意标准 MIDI 输入都可以发声和判定;只有音乐密码设备的 MIDI output 才发送专用 SysEx。屏幕键盘与硬件键盘复用同一种标准化事件。

Input / Transport

MIDITransport

吸收浏览器、原生桥与模拟键盘之间的差异,输出稳定的 on / off / pedal 事件。

Web MIDIMidiBrowserMock
Normalized event

Product Logic

练习、游戏、录音与屏幕反馈只依赖标准化事件,不直接读取某个 native bridge 格式。

notevelocitytimeportId
Output / Experience

Audio + Lights

PianoEngine 负责音色与踏板;LightController 负责设备 profile、协议帧与 200ms 同步。

13 × 4 pianoRGBPalette
Non-negotiable rules

不会被新项目破坏的工程原则。

这些规则来自真实浏览器、iOS、BLE 与硬件协议中的已知边界。它们不是建议项,而是每个音乐密码新产品的发布门槛。

01

保留原始力度

Note On 的 velocity 1–127 不得压成固定值,音色、判定与表现层共享真实演奏力度。

02

解析完整 packet

一个 CoreMIDI packet 可能包含多条消息与 running status,不能只读取前三个字节。

03

手势内解锁音频

iOS 的 AudioContext 必须在用户点击中同步创建或恢复,不能放到多次 await 之后。

04

协议索引不混用

0x15 使用 key index 0–35;0x71 使用 MIDI note 48–83;PopuPiano 使用 lampID 0–28。

05

重连先初始化

每次连接、重连或切换协议都要先发送正确 init,再清屏并恢复当前灯光状态。

06

拒绝 Note On 点灯

legacy Note On 会被固件回弹并污染玩家输入。新产品只使用 0x15 或 0x71 SysEx。

Frozen baseline · 2026-07-13

可追溯、可验证、可复用。

每个核心能力都绑定已核对的参考实现与发布验收矩阵。项目需要偏离时,必须记录原因、目标固件与真机验证结果。

5ms
MidiBrowser input batch
输入批次间隔;热插拔另有 150ms debounce。
13 × 4
Salamander piano
C3–C6 音高锚点,四个明确力度边界。
0x15 / 71
PartyKeys light profiles
RGB 新协议与调色板兼容协议分别初始化。
14
Foundation rules
覆盖 MIDI、音色、灯光、iOS、安全与发布验收。
音乐密码 36 键键盘、音响与鼓棒 / PartyKeys keyboard, speaker and drumsticks Built once. Reused everywhere.

下一款音乐密码产品,不再从猜协议开始。

能力包包含完整固化文档、零依赖 ES module、52 个四级力度钢琴采样、自动回归测试、企业 Logo 与发布清单。