audiokit을 사용하여 mac의 응용 프로그램에서 하드웨어 신디사이저의 syses 메시지를 수신하려고합니다. 이 신디사이저 메시지는 예를 들어, 11 개 번호의 구축과 같습니다 audiokit의Audiokit가 처음 세 개의 sysex MIDI 메시지 만 수신하는 것 같습니다.
240,00,32,51,01,16,112,00,40,95,247
현재 출시 된 버전은 즉시이 메시지를 수신 할 때 충돌합니다,하지만 난 개발 현재 BRANCHE가 고정 된 것을 발견했습니다. ,
line 143: computedLength += 1 << Thread 8: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
나는
if (computedLength == 255){
break
}
직전 라인 (143)의 추가와 함께 그 문제를 해결 할 수있었습니다 : AKMIDIEvent.swift에서) , 나는 그것을 너무 충돌을 의미하지만, 다른 LINENUMBER에서 하지만이 솔루션은 내 낮은/단순한 코딩 수준에 대해 더 많은 것을 말하고 있습니다. 127 줄의 init 함수에서받은 packet.data를 인쇄하면 다음과 같이 나타납니다 :
(240, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0)
첫 번째 3 개의 숫자 만 맞고 나머지는 사라지고 모두 0이 있습니다. Cubase에서 전체 메시지가 보내 졌음을 알 수 있지만 어떻게 든 audiokit에서 대부분 손실됩니다.
누구든지이 문제에 대해 어떤 빛을 비출 수 있습니까? 은 이러한 종류의 syses 메시지를 구문 분석하기 위해 audiokit으로 설계 되었습니까?
미리 감사드립니다.
audiokit은 syses 메시지를 각각 3 비트의 4 작은 메시지로 잘라내는 것처럼 보입니다. 첫 번째 메시지 만 240으로 시작하고 syses 메시지로 인식됩니다. 다른 부분은 전혀 인식되지 않고 손실됩니다. –