2013-04-16 28 views
6

Tôi đang bắt đầu một dự án có kết nối MIDI không dây qua Bluetooth. Theo như tôi biết, không có cấu hình MIDI nào được xác định trong đặc tả BT.MIDI qua Bluetooth

Tôi đã tự hỏi liệu một số bạn có muốn chia sẻ kinh nghiệm về cách tốt nhất để sử dụng MIDI trên BT, đặc biệt là về vấn đề độ trễ.

Dự án của tôi dựa trên BT năng lượng thấp (BTLE), bây giờ tôi đang cố gắng tìm hồ sơ BT tốt nhất để sử dụng, có thể là hồ sơ hiện tại của cổng nối tiếp RFCOMM hoặc hồ sơ tùy chỉnh mới?

Mọi mẹo sẽ được đánh giá cao. Tốt nhất Jerome

Trả lời

4

Các cấu hình như RFCOMM không thuộc về BTLE mà là cổ điển bluetooth.

Trong các ứng dụng nhạc bạn nên quan tâm đến độ trễ. Thời gian từ byte đầu tiên được gửi từ bàn phím midi và cho đến khi nó đến đích thực sự quan trọng. Không có tỷ lệ BAUD chính xác trong SPP/RFCOMM nhưng thông lượng phụ thuộc vào 2 mặt. http://snapshot.bluecove.org/bluecove-examples/bluecove-tester/speed.html

Nếu bạn nhập vào MIDI (31.250 baud), gửi nó thông qua một "kênh", gửi nó đi qua MIDI (31.250 baud) sau đó bạn cần phải nhìn vào 2 điều: 1) Throughput, phải đủ lớn để 'chìm' và 'nguồn' Midi In và Midi Out 2) Độ trễ, phải đủ nhanh để làm cho nó 'âm nhạc' chính xác.

Sự kiện Midi ON mất khoảng 30 bit tín hiệu để bạn có thể gửi khoảng 104 sự kiện Midi mỗi giây. Độ trễ là 10ms aprox.

Trên iOS, khoảng thời gian kết nối nhanh nhất (1 khối khoảng 20 byte) là khoảng 19ms nếu bạn phá vỡ đề xuất hoặc 39ms nếu bạn theo dõi chúng. Tổng thời gian chờ sau đó sẽ là: Midi In (10ms) + BTLE GATT (lên đến 39ms) + Midi Out (10ms) = 60ms. Chậm hơn 6 lần so với cáp MIDI thông thường. Khoảng thời gian kết nối BTLE tối thiểu là 7,5ms nhưng bạn sẽ mất gói ở mức thấp nhất vì vậy hãy nói 10ms: Midi Trong (10ms) + BTLE (10ms) + Midi Out (10ms) = 30ms. Không quá tệ nhưng cũng không ấn tượng lắm. Trong mỗi khoảng thời gian kết nối, bạn có thể đóng gói khoảng 20 byte nên có rất nhiều băng thông hoặc thông lượng.

Hãy xem dự án BTLE RFCOMM này: http://support.connectblue.com/display/PRODBTSPA/Bluetooth+Low+Energy+Serial+Port+Adapter+-+Getting+Started

+0

MIDI độ trễ ngày của riêng mình là thường hơn khoảng 4-5ms. Hầu hết các tin nhắn (lưu ý bật/tắt) là 2 byte. Thông báo điều khiển thường bị trì hoãn bởi thiết bị gửi nếu có ghi chú được gửi đi. – Brad

+0

@Brad: hầu hết các tin nhắn (Lưu ý Bật/Tắt, Kiểm soát Thay đổi, Pitch Bend, ...) là ** 3 byte **. – Florian

+1

henrik và Brad: Gửi một tin nhắn 3 byte qua cáp MIDI chuẩn mất 960us (kết hợp 1041 toàn bộ thông báo Lưu ý mỗi giây của Hal), chứ không phải 4-5ms. Tất nhiên, người nhận có thể thêm chậm trễ để xử lý. – Florian

Các vấn đề liên quan