kullanarak MIDI dosyasından okuma notu Notu midi dosyasından oluşturan bir sıralayıcı oluşturmaya çalışıyorum.AudioKit
Şu anda müzik veri işleme için AudioKit kullanıyorum. AudioKit ile midi dosyasından not verilerini/etkinliğini nasıl edinebilirim bilmek isterim.
AKSequencer'ı ve çıkışı, MIDI olayını dinlemek için AKMIDINode'a kullanmaya çalıştım, ancak ondan hiçbir şey alamıyor gibi görünüyor.
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()