2013-04-16 4 views
6

블루투스를 통한 무선 MIDI 연결을 특징으로하는 프로젝트를 시작합니다. 내가 아는 한, BT 사양에 정의 된 MIDI 프로필이 없습니다.MIDI 오버 블루투스

여러분 중 일부가 BT를 통해 MIDI를 사용하는 가장 좋은 방법, 특히 대기 시간 문제에 대해 경험을 공유하는 데 관심이 있는지 궁금합니다.

내 프로젝트는 BT low energy (BTLE)를 기반으로하고 있습니다. 이제는 최상의 BT 프로파일을 사용하려고합니다. 아마도 직렬 포트 RFCOMM 기존 프로파일이나 새 사용자 정의 프로파일을 찾으려고합니까?

팁을 주시면 감사하겠습니다. 최고 제롬

답변

4

RFCOMM와 같은 프로파일은 BTLE가 아니라 bluetooth classic에 속합니다.

음악 응용 프로그램에서 대기 시간에주의해야합니다. 첫 번째 바이트의 시간은 미디 키보드에서 보내고 목적지에 도착할 때까지 중요합니다. SPP/RFCOMM에는 정확한 BAUD 비율이 없지만 양측에 따라 처리량이 다릅니다. http://snapshot.bluecove.org/bluecove-examples/bluecove-tester/speed.html

당신이 입력 MIDI (31250 BAUD),,는 "채널"을 통해 보내 다음 2 가지 볼 필요가 MIDI (31250 BAUD)를 통해 발송하는 경우 : 1) 처리량이 충분히 커야한다 '싱크'와 '소스'미디 인과 미디 아웃 2) 대기 시간은 음악적으로 정확할만큼 빠르지 않아야합니다.

미디 ON 이벤트는 약 30 신호 비트를 사용하므로 초당 약 104 개의 미디 이벤트를 보낼 수 있습니다. 대기 시간은 약 10ms입니다.

iOS에서 권장 연결을 끊을 경우 가장 빠른 연결 간격 (약 20 바이트 중 1 블록)은 약 19ms이며이를 따르는 경우 39ms입니다. 따라서 총 대기 시간은 미디 인 (10ms) + BTLE GATT (최대 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

@Brad : 대부분의 메시지 (음표 켜기/끄기, 컨트롤 변경, 피치 벤드, ...)는 ** 3 바이트 **입니다. – Florian

+1

henrik and Brad : 표준 MIDI 케이블을 통해 하나의 3 바이트 메시지를 보내는 데 4-5ms가 아닌 960us (@ Hal의 1041 전체 초침과 일치)가 걸립니다. 물론, 수신기는 프로세싱을 위해 지연을 부가 할 수있다. – Florian