AudioKit接收到的MIDISystemCommand中的sysex

时间:2018-12-12 22:02:14

标签: swift midi audiokit sysex

我是Swift的新手,正在努力挣扎,所以请放轻松。我正在XCode 10.1中使用Swift 4构建一个macOS项目

我正在使用以下代码从设备接收sysex消息,该代码是从AudioKit提供的MIDIUtility示例项目中获得的:

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库管理器或MIDI监视器接收相同的sysEx时所得到的完全不同。这两个应用程序均接收6个32,110,110,110,110和110字节的数据包。这就是我希望从MIDI设备获得的东西。我的代码得到6个520,1300,20,1538,1294和1544字节的数据包。看起来我想要的数据在这些数据包中,但被一堆0填满了。

data as received in MIDI Monitor or SysEx Librarian: some of the data as received by my code

为什么我的代码收到了这么多额外的数据?有没有办法过滤掉不需要的数据,或者我需要弄清楚如何为我的项目使用AudioKit之外的其他东西?

0 个答案:

没有答案