का उपयोग कर मिडी फ़ाइल से नोट पढ़ें, मैं एक अनुक्रमक बनाने की कोशिश कर रहा हूं जो मिडी फ़ाइल से नोट प्रस्तुत करता है।ऑडियोकिट
वर्तमान में मैं संगीत डेटा प्रोसेसिंग के लिए ऑडियोकिट का उपयोग कर रहा हूं। मैं जानना चाहता हूं कि ऑडियोकिट के साथ मिडी फ़ाइल से नोट डेटा/ईवेंट कैसे प्राप्त किया जा सकता है।
मैंने MIDI ईवेंट सुनने के लिए AKSequencer का उपयोग करने और AKMIDINode को आउटपुट करने का प्रयास किया है, लेकिन ऐसा लगता है कि इससे कुछ भी नहीं मिल सकता है।
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()