如何在 AudioKit 4.6.1 的 AKMIDICallbackInstrument 回调中使用 AKMIDIStatus
How do you use AKMIDIStatus in a AKMIDICallbackInstrument callback with AudioKit 4.6.1
将 AKSequencer 用于 midi 和控制轨道。我知道 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 Implementation Issue
尝试使用传入字节创建 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 中工作
将 AKSequencer 用于 midi 和控制轨道。我知道 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 Implementation Issue
尝试使用传入字节创建 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 中工作