2013-04-16 56 views
6

我開始了一個項目,其特色是通過藍牙進行無線MIDI連接。 據我所知,在BT規範中沒有定義MIDI配置文件。MIDI Over Bluetooth

我想知道你們中的一些人是否有興趣分享關於在BT上使用MIDI的最佳方式的經驗,尤其是延遲問題。我的項目是基於BT低能量(BTLE),我現在試圖找到最好的BT配置文件使用,也許串口RFCOMM現有的配置文件,或新的自定義配置文件?

任何提示,將不勝感激。 最好的 傑羅姆

回答

4

像RFCOMM配置文件不屬於BTLE,但藍牙經典。

在音樂應用程序,你應該關心的等待時間。 從第一個字節開始的時間是從MIDI鍵盤發送的,直到到達目的地真的很重要。 SPP/RFCOMM中沒有確切的波特率,但吞吐量取決於雙方。 http://snapshot.bluecove.org/bluecove-examples/bluecove-tester/speed.html

如果你輸入MIDI(31250波特),把它通過一個「通道」,將其發送至MIDI(31250波特),那麼你需要看兩兩件事: 1)吞吐量,必須有足夠大到'下沉'和'來源'Midi In和Midi Out 2)延遲,必須足夠快以使其'音樂'準確。

Midi ON事件需要大約30個信號位,因此您可以每秒發送大約104個Midi事件。延遲時間約爲10ms。

在iOS上,最快的連接間隔(1個塊,大約20個字節)大約是19毫秒,如果您違反建議或39毫秒,如果你按照它們。總延遲時間爲: Midi In(10ms)+ BTLE GATT(最高39ms)+ Midi Out(10ms)= 60ms。比普通MIDI電纜慢6倍。 最小BTLE連接間隔爲7.5毫秒,但你將丟失數據包在最低級別,所以我們只說10ms: 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

+0

自身MIDI延遲更通常約爲4-5ms。大多數消息(注意/關閉)是2個字節。如果有要發送的筆記,則控制器消息通常會由發送設備延遲。 – Brad

+0

@Brad:大多數信息(音符開/關,控制變化,彎音,...)是** 3個字節**。 – Florian

+1

henrik和Brad:通過標準MIDI電纜發送一個3字節消息需要960us(匹配@ Hal's 1041每秒完整注意消息),而不是4-5ms。當然,接收器可能會延遲處理。 – Florian