我正在尝试实现一件看似简单的事情:在Mac应用程序中收听MIDI消息,并使用这些消息播放现有AVAudioUnit乐器的音符。
假设:我需要在与我的CoreMIDI客户端相关联的MIDIReadBlock (通过带有MIDIClientRef的MIDIInputPortCreateWithBlock )和我可以从我的AVAudioUnit的AUAudioUnit获得的AUScheduleMIDIEventBlock (通过scheduleMIDIEventBlock)之间建立一个桥梁。这看起来比应该的要复杂,因为我要处理原始的MIDI数据-我觉得音频单元必须支持某种MIDI抽象,这种抽象很容易与CoreMIDI一起使用,但我找不到任何与此相关的例子。也许有一种方法可以将MIDIOutputPortCreate与AV/AUAudioUnit一起使用?
我正在寻找的是一个将MIDI输入直接输入到音频单元的工作示例(理想情况下使用Swift 3),但如果你知道任何相对较新的相关资源,请也分享这些链接。这些API的文档非常稀疏,这非常令人沮丧。谢谢!
发布于 2017-04-23 20:08:42
在您的MIDIReadBlock循环中遍历收到的数据包。根据每个数据包的MIDI状态,将相应的设备事件(如备注打开)发送到您的audioUnit。
例如:
osstatus = MusicDeviceMIDIEvent(audioUnit, midiCmd...https://stackoverflow.com/questions/42894039
复制相似问题