sysex из полученного AudioKitMIDISystemCommand
Я очень новичок в Swift и изо всех сил, поэтому, пожалуйста, успокойся. Я строю проект MacOS, используя Swift 4 в XCode 10.1
Я получаю сообщение sysex от устройства, используя следующий код, который я получил из примера проекта MIDIUtility, поставляемого с AudioKit:
func receivedMIDISystemCommand(_ data: [MIDIByte]) {
if let command = AKMIDISystemCommand(rawValue: data[0]) {
var newString = "MIDI System Command: \(command) \n"
var hexArray = [UInt8]()
for bit in data {
hexArray.append(bit) //this requires 'public typealias MIDIByte = UInt8'
newString.append(String("\(bit) "))
}
updateText("\(newString) \n")
updateData(hexArray)
}
updateText("received \(data.count) bytes of data \n\n")
}
Sysex, который я получаю, сильно отличается от того, что я получаю при использовании SysEx Librarian или MIDI Monitor для получения того же sysEx. Оба эти приложения получают 6 пакетов по 32 110 110 110 110 и 110 байт. Это то, что я ожидаю получить от моего MIDI-устройства. Мой код получает 6 пакетов по 520,1300,20,1538,1294 и 1544 байта. Похоже, что данные, которые я хочу, находятся в этих пакетах, но они разбиты кучей нулей.
данные, полученные в MIDI Monitor или SysEx Librarian: некоторые данные получены из моего кода
Почему мой код получает так много дополнительных данных? Есть ли способ отфильтровать нежелательные данные или мне нужно будет выяснить, как использовать что-то другое, кроме AudioKit, для моего проекта?