在 Windows 上完善 Bluetooth MIDI:深入探讨一款新工具

Bluetooth LE MIDI 承诺提供整洁、无线的录音室设置,但对于许多 Windows 用户来说,这一承诺往往伴随着挫败感。尽管设备已成功配对,但数字音频工作站 (DAW) 和其他 MIDI 应用经常无法识别它们,导致体验沉闷且低效。这一常见痛点源于 Windows 原生 MIDI 处理机制中的架构特性。

Erwin Mayer 是一位开发者,他在使用 Roland FP-90X 钢琴时遇到了同样的困境,于是展开了一场调试之旅,揭示了一系列独立的 bug。其成果便是 "Perfect Bluetooth MIDI for Windows",这是一款免费、开源的实用程序,旨在弥补这一关键差距,让 Bluetooth MIDI 键盘在任何 DAW 或 Web MIDI 应用中都能像有线设备一样工作。

Windows 上 Bluetooth MIDI 的持久问题

核心问题在于 Windows 如何原生暴露 Bluetooth LE MIDI。它仅通过 WinRT API 进行暴露,而大多数传统的 DAW 根本不会轮询该接口。这意味着,即使 Bluetooth MIDI 设备已成功与 Windows 11 PC 配对,像 Ableton、Pro Tools、FL Studio、Reason 或 Reaper 等应用仍然对其存在一无所知。

正如一位 Hacker News 评论者恰当地总结了这一问题的普遍性:

我已经很久没用 Windows 了。这是否意味着几乎每个拥有 Bluetooth MIDI 键盘的 Windows 用户,在不安装额外的第三方软件的情况下,都无法开箱即用地在他们的 DAW 中使用它?即使是像 Ableton、Pro Tools、FL Studio、Reason 和 Reaper 这样广泛使用的 DAW 的最新版本也是如此吗?

虽然存在像 MIDIberry 结合 loopMIDI 这样的变通方法,但它们通常被证明是不可靠或过于复杂的,无法提供用户渴望的无缝、单一应用体验。

全面的解决方案:弥补差距

Erwin 的工具通过利用新的 Windows MIDI Services (WMS) 栈来正面应对这些挑战,该栈包含一个名为 loopback endpoints 的强大功能。这些端点允许将写入一侧的数据从另一侧输出,从而使其作为普通的 MIDI 端口对任何 winmm、WinRT 或 WMS 应用可见。

解决双向通信

该解决方案解决了 MIDI 通信的两个关键方向:

  1. 钢琴到 PC (输入):该应用获取 WinRT BLE-MIDI 输入并将其路由到 WMS loopback 输出。这使得 DAW 可以“看到”并从 Bluetooth 键盘接收音符。
  2. PC 到钢琴 (输出):这个方向呈现了一个更难以捉摸的 bug。尽管音符已发送并到达了 GATT 层,但乐器仍然保持沉默。经过广泛的调试,发现 Roland FP-90X 虽然默认在 MIDI 通道 1 上传输,但实际上是在通道 4 上接收,而这一设置无法在设备本身更改。发送在通道 1 上的音符被合成器引擎静默地丢弃了,在任何层级都没有提供反馈。

巧妙的通道检测功能

为了应对静默的通道不匹配问题,该工具包含一个精巧的 "Detect" 按钮。此功能会播放一系列测试音符,按 MIDI 通道从 1 到 16 依次上升。用户只需数一下听到的音符,该数字即揭示了正确的接收通道。此设置随后会按 BLE MAC 地址保存,使得每台钢琴只需进行一次、耗时 75 秒的设置。

正如一位评论者所言,“通道检测方法非常巧妙。”

技术底层与社区反响

该工具使用 .NET 10 构建,并使用 Avalonia 实现其可移植 UI(尽管 BLE/MIDI 核心是 Windows 专用的)。它利用 Microsoft.Windows.Devices.Midi2 包进行 WMS 集成,并直接使用 Windows.Devices.Midi (WinRT) 处理 BLE,从而避免了旧版驱动程序。该项目是基于 MIT 许可证开源的,分发为单个、约 21 MB 的自包含式可执行文件,无需安装程序、遥测或账户要求。 \n该项目已获得积极关注,包括来自 Microsoft Windows MIDI Services 团队的 Pete 的关注,他对 BLE 集成发表了积极评论。虽然最初是在 Roland FP-90X 上进行测试的,但 BLE 端的通用性表明它与 WIDI Master、CME、Yamaha MD-BT01、Korg microKey Air 和 ROLI Seaboard 等其他设备具有兼容性。鼓励用户报告设备测试、问题并提交 pull requests。

延迟与替代方案

无线 MIDI 的一个常见担忧(由用户强调)是延迟。

关键问题是你的平均延迟是多少?

虽然原文并未提供具体的延迟数据,但“完美”解决方案的目标即意味着将其降至最低。对于许多人来说,对于关键的、低延迟性能,有线连接仍然是首选。

我有多台钢琴,我一直使用线缆,因为我想让它们在 Linux 和 Mac 上都能正常工作而没有任何问题。而且我也无法忍受延迟。

其他项目,如 libremidi,也被提及为可能轮询 BLE 设备,这暗示了另一种可能解决部分此类问题空间的替代方法或组件。该工具的 PC 端解决方案对于那些正在开发类似 “Linux MIDI gadget” 项目以通过 BLE 向 PC 发送信号的人来说也很有前景。

结论

对于在 Windows 上挣扎于无线 MIDI 的音乐家和制作人来说,“Perfect Bluetooth MIDI for Windows” 代表了向前迈进的重要一步。通过细致地剖析并解决了一系列复杂的、静默失败的问题,Erwin Mayer 交付了一个强大的、开源工具,将 Bluetooth MIDI 的承诺转化为可靠的现实。该工具不仅解决了一个令人沮丧的技术问题,而且也体现了社区驱动开发在解决技术领域中分化、却又至关重要的痛点时所展现的力量。

Sources