Tôi đang cố tạo một trình tự sắp xếp hiển thị ghi chú từ tệp midi.Đọc ghi chú từ tệp MIDI sử dụng AudioKit
Hiện tại tôi đang sử dụng AudioKit để xử lý dữ liệu nhạc. Muốn biết làm thế nào tôi có thể nhận được dữ liệu ghi chú/sự kiện từ tập tin midi với AudioKit.
Tôi đã cố gắng sử dụng AKSequencer và xuất ra AKMIDINode để nghe sự kiện MIDI, nhưng dường như không thể nhận được bất kỳ thứ gì từ nó.
class CustomMIDINode: AKMIDINode {
override init(node: AKPolyphonicNode) {
print("Node create") // OK
super.init(node: node)
}
func receivedMIDINoteOff(noteNumber: MIDINoteNumber, velocity: MIDIVelocity, channel: MIDIChannel) {
print("midi note off") // Not printed
}
func receivedMIDISetupChange() {
print("midi setup changed") // Not printed
}
override func receivedMIDINoteOn(_ noteNumber: MIDINoteNumber, velocity: MIDIVelocity, channel: MIDIChannel) {
print("receivedMIDINoteOn") // Not printed
}
}
func setupSynth() {
oscBank.attackDuration = 0.05
oscBank.decayDuration = 0.1
oscBank.sustainLevel = 0.1
oscBank.releaseDuration = 0.1
}
let seq = AKSequencer(filename: "music")
let oscBank = AKOscillatorBank()
var midi = AKMIDI()
let midiNode = CustomMIDINode(node: oscBank)
setupSynth()
midi.openInput()
midi.addListener(midiNode)
seq.tracks.forEach { (track) in
track.setMIDIOutput(midiNode.midiIn)
}
AudioKit.output = midiNode
AudioKit.start()
seq.play()