簡體   English   中英

如何在AudioKit 4.6.1的AKMIDICallbackInstrument回調中使用AKMIDIStatus

[英]How do you use AKMIDIStatus in a AKMIDICallbackInstrument callback with AudioKit 4.6.1

將AKSequencer用於midi和Control軌道。 我知道AKMIDIStatus在最近的修訂中進行了一些更改。 我的探索使我相信這個簡單的“ note on”“ note off”回調應該可以工作:

        func playThroughCallback(_ statusByte: UInt8,
                             _ noteNumber: MIDINoteNumber,
                             _ velocity: MIDIVelocity) {
        //print("MIDI Sequence Event \(status)")
        guard let status = AKMIDIStatus(byte: statusByte) else { return }

        switch status {
        case .noteOn: midi?.sendNoteOnMessage(noteNumber: noteNumber, velocity: velocity)
        case .noteOff: midi?.sendNoteOffMessage(noteNumber: noteNumber, velocity: velocity)
        default: return

        }
}

但是枚舉的案例似乎已經消失了。

編輯:恢復到4.5.5使我可以在此處使用解決方案: AKMIDICallbackInstrument實現問題

嘗試使用傳入的字節創建AKMIDIStatus ,然后讀取AKMIDIStatusType

let callbackReceiver = AKMIDICallbackInstrument(midiInputName: "myCoolInput", 
    callback: { status, noteNumber, velocity in
        let statusType = AKMIDIStatus(byte: status)?.type //can be noteOn, noteOff, etc
        if(statusType == AKMIDIStatusType.noteOn){
            print("Note on.")
        }
})

myTrack.setMIDIOutput(callbackReceiver.midiIn)

剛剛經過測試,可以在AudioKit 4.6.1中使用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM