我正在启动一个通过蓝牙进行无线 MIDI 连接的项目。据我所知,BT 规范中没有定义 MIDI 配置文件。
我想知道你们中的一些人是否有兴趣分享有关在 BT 上使用 MIDI 的最佳方式的经验,尤其是关于延迟问题。
我的项目基于 BT 低能耗 (BTLE),我现在正在尝试找到要使用的最佳 BT 配置文件,可能是串行端口 RFCOMM 现有配置文件,还是新的自定义配置文件?
任何提示将不胜感激。最佳杰罗姆
我正在启动一个通过蓝牙进行无线 MIDI 连接的项目。据我所知,BT 规范中没有定义 MIDI 配置文件。
我想知道你们中的一些人是否有兴趣分享有关在 BT 上使用 MIDI 的最佳方式的经验,尤其是关于延迟问题。
我的项目基于 BT 低能耗 (BTLE),我现在正在尝试找到要使用的最佳 BT 配置文件,可能是串行端口 RFCOMM 现有配置文件,还是新的自定义配置文件?
任何提示将不胜感激。最佳杰罗姆
像 RFCOMM 这样的配置文件不属于 BTLE,而是属于蓝牙经典。
在音乐应用程序中,您应该关心延迟。从第一个字节开始的时间是从 MIDI 键盘发送到它到达目的地的时间真的很重要。SPP / RFCOMM 中没有确切的波特率,但吞吐量取决于两侧。 http://snapshot.bluecove.org/bluecove-examples/bluecove-tester/speed.html
如果您输入 MIDI(31250 BAUD),通过“通道”发送,通过 MIDI(31250 BAUD)发送,那么您需要查看 2 件事:1)吞吐量,必须足够大以“接收”和“源” ' Midi In 和 Midi Out 2) 延迟,必须足够快以使其在“音乐上”准确。
一个 Midi ON 事件大约需要 30 个信号位,因此您每秒可以发送大约 104 个 Midi 事件。延迟约为 10 毫秒。
在 iOS 上,如果您违反建议,最快的连接间隔(大约 20 个字节的 1 个块)约为 19 毫秒,如果您遵循建议,则为 39 毫秒。总延迟将是:Midi In (10ms) + BTLE GATT (up to 39ms) + Midi Out (10ms) = 60ms。比普通 MIDI 电缆慢 6 倍。最小 BTLE 连接间隔为 7.5 毫秒,但您会在最低级别丢失数据包,所以我们只说 10 毫秒:Midi In (10ms) + BTLE (10ms) + Midi Out (10ms) = 30ms。还不错,但也不是很令人印象深刻。在每个连接间隔中,您可以打包大约 20 字节,因此应该有足够的带宽或吞吐量。
看看这个 BTLE RFCOMM 项目:http: //support.connectblue.com/display/PRODBTSPA/Bluetooth+Low+Energy+Serial+Port+Adapter+-+Getting+Started