【发布时间】:2017-03-20 00:21:15
【问题描述】:
我正在尝试实现看起来应该很简单的事情:在 Mac 应用程序中收听 MIDI 消息,并使用这些消息从现有的 AVAudioUnit 乐器中播放音符。
假设:我需要在与我的 CoreMIDI 客户端关联的 MIDIReadBlock(通过带有 MIDIClientRef 的 MIDIInputPortCreateWithBlock)和我可以从我的 AVAudioUnit 的 AUAudioUnit(通过 scheduleMIDIEventBlock)获得的 AUScheduleMIDIEventBlock 之间编写一个桥梁。这似乎比它应该的要复杂,因为我会处理原始 MIDI 数据——我觉得音频单元必须支持某种易于与 CoreMIDI 一起使用的 MIDI 抽象,但我找不到任何相关示例这个的。也许有一种方法可以将MIDIOutputPortCreate 与 AV/AUAudioUnit 一起使用?
我正在寻找的是一个将 MIDI 输入直接传输到音频单元的工作示例(最好使用 Swift 3),但如果您知道任何相对最新的相关资源,请也分享这些链接。这些 API 的文档稀少令人沮丧。谢谢!
【问题讨论】:
标签: swift macos avfoundation audiounit coremidi