3作者: mayerwin3 个月前
大家好,我是 Erwin。我开发了一个小巧、免费的开源实用程序,可以将蓝牙 LE MIDI 键盘桥接到新的 Windows MIDI Services 堆栈中,这样任何 DAW 或 Web MIDI 应用程序都可以像使用有线键盘一样使用它们。<p>我购买了一台 Roland FP-90X 钢琴,部分原因在于它具有蓝牙 MIDI 功能。在我的 Windows 11 电脑上,配对成功了,但我的 DAW 无法识别键盘,而且我从电脑发送的音符也从未让钢琴发出声音。经过了令人沮丧的无数个夜晚,我将这个问题分解为三个相互叠加的独立错误。<p>第一个是众所周知的:Windows 仅通过 WinRT API 本地公开 BLE-MIDI,而几乎没有 DAW 轮询它。因此,即使配对成功,MIDI 应用程序仍然无法看到该设备。通常的解决方法是 MIDIberry + loopMIDI,但在我的情况下,我无法让这种组合可靠地工作,而且我想要一个单一的应用程序解决方案。新的 Windows MIDI Services 堆栈附带了一个名为环回端点的功能:写入一个端点的任何内容都会从另一个端点输出,并且任何 winmm/WinRT/WMS 应用程序都会将其视为正常的 MIDI 端口。因此,该应用程序执行 WinRT BLE-MIDI 输入,WMS 环回输出。这解决了方向一,钢琴到电脑。<p>方向二,电脑到钢琴,仍然无法工作。NoteOn 写入被 ATT-acked,但钢琴保持静音。我尝试了两种写入模式(一些 BLE-MIDI 固件会默默地丢弃其中一种),并探测了专有的 ISSC 特性。每个变体都被 ATT-acked,每个变体都产生静音。所以字节已经到达了钢琴。GATT 层之上的某些东西正在丢弃它们。<p>在排除了配对、加密、写入模式和专有特性之后,唯一明显的选择就是 MIDI 通道本身。FP-90X 有一个名为“发送通道”的面板设置,默认为 1。但事实证明,FP-90X 实际上在通道 4 上接收(并且无法更改)。我在通道 1 上发送的音符被 GATT-acked,并在合成器引擎处被默默地丢弃,因为它们不在引擎正在监听的通道上。在任何层都没有反馈。修复必须存在于应用程序层,所以我添加了一个“检测”按钮,该按钮在每个通道上从 1 到 16 播放 N 个测试音符:您数一下您实际听到的音符,该数字就是接收通道。每个 BLE MAC 保存,大约 75 秒,每个钢琴永远完成。<p>技术栈:.NET 10,Avalonia 用于 UI(BLE/MIDI 方面仅限 Windows,但 UI 层是可移植的),Microsoft.Windows.Devices.Midi2 包用于 WMS,Windows.Devices.Midi (WinRT) 直接用于 BLE,而不是依赖于 Korg 较旧的 WinMM 驱动程序。MIT 许可,单个自包含的 ~21 MB 可执行文件,没有安装程序,没有遥测,没有帐户。<p>我为自己构建了它,并将其与我的 FP-90X 一起使用,通过几个应用程序和 Web MIDI 网站进行演奏。来自 Microsoft Windows MIDI Services 团队的 Pete 在我将其分享到 r/synthesizers 时对 BLE 集成给予了积极评价(<a href="https://www.reddit.com/r/synthesizers/comments/1szvuiq/comment/oj5ew9b/" rel="nofollow">https://www.reddit.com/r/synthesizers/comments/1szvuiq/comme...</a>)。<p>网站(带截图):<a href="https://mayerwin.github.io/Perfect-Bluetooth-MIDI-For-Windows/" rel="nofollow">https://mayerwin.github.io/Perfect-Bluetooth-MIDI-For-Window...</a> 源代码:<a href="https://github.com/mayerwin/Perfect-Bluetooth-MIDI-For-Windows" rel="nofollow">https://github.com/mayerwin/Perfect-Bluetooth-MIDI-For-Windo...</a> 详细的技术文章,包含完整的调试故事:<a href="https://dev.to/mayerwin/why-your-bluetooth-midi-keyboard-silently-drops-notes-on-windows-2i84" rel="nofollow">https://dev.to/mayerwin/why-your-bluetooth-midi-keyboard-sil...</a><p>仅使用我的 FP-90X 进行了个人测试。BLE 方面是通用的,因此其他键盘(WIDI Master、CME、Yamaha MD-BT01、Korg microKey Air、ROLI Seaboard 等)应该可以工作,但我尚未单独确认。非常欢迎设备测试报告、问题和 PR。
31作者: sleepingNomad3 个月前
USB-C 线缆可能让人一头雾水。有的线缆充电功率只有 5W,有的却能达到 100W 甚至支持雷雳 4,而它们在抽屉里看起来却一模一样。<p>WhatCable 驻留在你的菜单栏中,读取你的 Mac 已经可以访问的线缆数据。插上数据线后,它会用通俗易懂的语言告诉你它实际能做什么:充电功率、数据传输速度、显示器支持、雷雳等。<p>使用 Swift/SwiftUI 构建。开源、免费,无追踪。<p>GitHub: <a href="https:&#x2F;&#x2F;github.com&#x2F;darrylmorley&#x2F;whatcable" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;darrylmorley&#x2F;whatcable</a>
94作者: simianwords3 个月前