在AudioKit中,可以使用MIDI接收器来确定音符的状态。以下是一个示例代码,演示如何在没有事件的情况下确定一个音符的状态:
import AudioKit
class ViewController: UIViewController {
var midi = AudioKit.midi
override func viewDidLoad() {
super.viewDidLoad()
midi.openInput()
// 添加MIDI事件监听器
NotificationCenter.default.addObserver(self,
selector: #selector(handleMIDINoteOn),
name: .MIDINoteOn,
object: nil)
NotificationCenter.default.addObserver(self,
selector: #selector(handleMIDINoteOff),
name: .MIDINoteOff,
object: nil)
}
@objc func handleMIDINoteOn(notification: Notification) {
// 处理MIDI Note On事件
if let midiNote = notification.userInfo?[MIDI_NOTE_NUMBER_KEY] as? MIDINoteNumber {
let noteState = "Note On: \(midiNote)"
print(noteState)
}
}
@objc func handleMIDINoteOff(notification: Notification) {
// 处理MIDI Note Off事件
if let midiNote = notification.userInfo?[MIDI_NOTE_NUMBER_KEY] as? MIDINoteNumber {
let noteState = "Note Off: \(midiNote)"
print(noteState)
}
}
}
在上面的示例中,我们打开了MIDI输入,并使用NotificationCenter
添加了两个MIDI事件监听器,一个用于处理MIDI Note On事件,另一个处理MIDI Note Off事件。
当接收到MIDI Note On事件时,handleMIDINoteOn
方法将被调用,并打印出“Note On: [音符]”的文本。
当接收到MIDI Note Off事件时,handleMIDINoteOff
方法将被调用,并打印出“Note Off: [音符]”的文本。
通过这种方式,您可以在没有事件的情况下确定音符的状态,并根据需要执行其他操作。