【发布时间】:2016-05-16 21:19:11
【问题描述】:
根据苹果的文档,它说:
因为您的 MIDIReadProc 回调是从单独的线程调用的, 使用提供的数据时要注意同步问题 这个回调。
这是否意味着,使用@synchronize 来进行线程阻塞以确保安全?
或者这是否意味着可能会发生同步时间问题?
我目前正在尝试读取 MIDI 文件,并使用 MIDIReadProc 来触发基于 MIDI 事件的软件合成器的音符开/音符关。我需要它非常可靠并且完全及时。现在,我注意到,当我使用这些 midi 事件并将音频写入缓冲区(全部从 MIDIReadProc 完成)时,时间非常草率,而且听起来根本不正确。所以我想知道,从 MIDIReadProc 消费 midi 事件的“正确”方式是什么?
另外,MIDIReadProc 是从 MIDI 文件中消费 MIDI 事件的唯一选项吗?
就设置可以由我的合成器直接使用的虚拟端点而言,还有其他选择吗?如果是这样,那具体是如何工作的?
【问题讨论】:
标签: core-audio coremidi