2013-04-16 14 views
6

私は、Bluetooth経由でワイヤレスMIDI接続を行うプロジェクトを開始しています。 私が知る限り、BT仕様で定義されたMIDIプロファイルはありません。MIDI over Bluetooth

私は、特に待ち時間の問題に関して、MIDI経由でBTを使用する最善の方法についての経験を共有することに興味があるのだろうかと思っていました。

私のプロジェクトはBT low energy(BTLE)に基づいています。私は現在、BTポートフォリオを使用しようとしていますか、シリアルポートのRFCOMM既存プロファイルか、新しいカスタムプロファイルを探していますか?

どのようなヒントをいただければ幸いですか? ベスト ジェローム

答えて

4

RFCOMMのようなプロファイルは、BTLEではなく、bluetooth classicに属しています。

音楽アプリケーションでは、待ち時間に注意する必要があります。 最初のバイトからの時間はMIDIキーボードから送信され、宛先に到着するまでは本当に重要です。 SPP/RFCOMMには正確なBAUDレートはありませんが、2つの側面に応じてスループットが異なります。 http://snapshot.bluecove.org/bluecove-examples/bluecove-tester/speed.html

あなたは、入力MIDI(31250 BAUD)、その後、あなたは2つのことを見てする必要がありますMIDI(31250 BAUD)を介してそれを送る、「チャンネル」を通してそれを送信する場合: 1)スループットは、十分な大きさでなければなりませんミディインとミディアウト 2)待ち時間は、音楽的に正確であるように十分に速くなければなりません。

ミディONイベントは約30シグナルビットを要し、1秒あたり約104のミディイベントを送信することができます。待ち時間は約10msです。

iOSの場合、推奨接続を切断すると最速の接続間隔(約20バイトのうち1ブロック)は約19ms、その後は39msです。合計待ち時間は、 ミディイン(10ms)+ BTLEギャット(39msまで)+ミディアウト(10ms)= 60msとなります。通常のMIDIケーブルより6倍遅くなります。 最小BTLE接続間隔は7.5msですが、最低レベルでパケットが失われるため、10msと言いましょう。 ミディイン(10ms)+ BTLE(10ms)+ミディアウト(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

@ブラッド:ほとんどのメッセージ(オン/オフ、コントロールチェンジ、ピッチベンドなど)は** 3バイト**です。 – Florian

+1

henrikとBrad:標準のMIDIケーブルで3バイトのメッセージを1つ送信するには、960us(@ Halの1041のフル・ノート・メッセージ(1秒あたりのフル・ノート・メッセージ)にマッチする)で、4-5msではありません。もちろん、受信機は、処理のために遅延を加えてもよい。 – Florian