首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AVAudioUnit中使用CoreMIDI输入

在AVAudioUnit中使用CoreMIDI输入
EN

Stack Overflow用户
提问于 2017-03-20 08:21:16
回答 1查看 420关注 0票数 10

我正在尝试实现一件看似简单的事情:在Mac应用程序中收听MIDI消息,并使用这些消息播放现有AVAudioUnit乐器的音符。

假设:我需要在与我的CoreMIDI客户端相关联的MIDIReadBlock (通过带有MIDIClientRef的MIDIInputPortCreateWithBlock )和我可以从我的AVAudioUnit的AUAudioUnit获得的AUScheduleMIDIEventBlock (通过scheduleMIDIEventBlock)之间建立一个桥梁。这看起来比应该的要复杂,因为我要处理原始的MIDI数据-我觉得音频单元必须支持某种MIDI抽象,这种抽象很容易与CoreMIDI一起使用,但我找不到任何与此相关的例子。也许有一种方法可以将MIDIOutputPortCreate与AV/AUAudioUnit一起使用?

我正在寻找的是一个将MIDI输入直接输入到音频单元的工作示例(理想情况下使用Swift 3),但如果你知道任何相对较新的相关资源,请也分享这些链接。这些API的文档非常稀疏,这非常令人沮丧。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-04-23 20:08:42

在您的MIDIReadBlock循环中遍历收到的数据包。根据每个数据包的MIDI状态,将相应的设备事件(如备注打开)发送到您的audioUnit。

例如:

代码语言:javascript
复制
osstatus = MusicDeviceMIDIEvent(audioUnit, midiCmd...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42894039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档