2013-04-16 25 views
6

Bluetooth üzerinden kablosuz bir MIDI bağlantısı içeren bir projeye başlıyorum. Bildiğim kadarıyla BT spesifikasyonunda tanımlanan MIDI profili yok.MIDI Bluetooth Üzerinden

Bazılarınızın özellikle gecikme sorunuyla ilgili olarak BT üzerinden BT'yi kullanmanın en iyi yolu hakkında deneyim paylaşmaya ilgi duyup duymayacağını merak ediyordum.

Benim projem BT düşük enerjisine (BTLE) dayanıyor, şimdi kullanmak için en iyi BT profilini, belki seri bağlantı noktası RFCOMM var olan profili veya yeni bir özel profili bulmaya çalışıyorum?

Herhangi bir ipucu takdir edilecektir. RFCOMM gibi Jerome En

cevap

4

Profiller BTLE ama bluetooth klasik ait değil.

Müzik uygulamalarında gecikmeyi önemsemelisiniz. İlk bayt zamanı bir midi klavyeden gönderilir ve hedefe ulaşana kadar gerçekten önemlidir. SPP/RFCOMM'de tam bir BAUD oranı yoktur, ancak 2 tarafa bağlı olan verim vardır. http://snapshot.bluecove.org/bluecove-examples/bluecove-tester/speed.html

giriş MIDI (31250 BAUD), bir "kanalı" yoluyla gönderebilir sonra 2 şeylere bakmak gerekir MIDI (31250 BAUD) aracılığıyla dışarı gönderirlerse: 1) İş Üretimi, yeterince büyük olmalı 'sink' ve 'source' için Midi In ve Midi Out 2) Gecikme, 'müziksel olarak' doğru olması için yeterince hızlı olmalıdır.

Midi ON olayı yaklaşık 30 sinyal biti alır, böylece saniyede 104 Midi olayı gönderebilirsiniz. Gecikme, yaklaşık 10ms'dir.

iOS'ta, en hızlı Bağlantı Aralığı (20 baytlık 1 blok), önerileri veya 39 ms'yi izlerseniz kırılırsa yaklaşık 19 ms'dir. Toplam gecikme süresi: Midi In (10ms) + BTLE GATT (39 ms'ye kadar) + Midi Out (10ms) = 60ms. Normal MIDI kablosundan 6 kat daha yavaş. Minimum BTLE bağlantı aralığı 7,5 ms'dir, ancak en düşük seviyedeki paketleri kaybedersiniz, yani 10ms diyelim: Midi In (10ms) + BTLE (10ms) + Midi Out (10ms) = 30ms. Çok kötü değil, ama gerçekten etkileyici değil. Her Bağlantı Aralığında yaklaşık 20 Baytlık bir paket oluşturabilir, bu nedenle çok sayıda bant genişliği veya verimi olmalıdır.

bu BTLE RFCOMM projesinde bir göz atın: kendi başına http://support.connectblue.com/display/PRODBTSPA/Bluetooth+Low+Energy+Serial+Port+Adapter+-+Getting+Started

+0

MIDI gecikme etrafında daha tipik olduğunu 4-5ms. Çoğu mesaj (not açık/kapalı) 2 bayttır. Kontrol mesajları, gönderilecek notlar olduğunda genellikle gönderen cihaz tarafından geciktirilir. – Brad

+0

@Brad: çoğu mesaj (Not Açık/Kapalı, Kontrol Değişikliği, Pitch Bend ...) ** 3 bayttır **. – Florian

+1

henrik ve Brad: Standart bir MIDI kablosu üzerinden bir 3 bayt mesaj göndermek 960us alır (4-5 ms değil, @ Hal'ın 1041 tam Not mesajına karşılık gelir). Elbette alıcı işlem için gecikme ekleyebilir. – Florian

İlgili konular