在iOS上获得精确计时以便对音符进行排序的最佳方法

时间:2015-10-04 21:55:24

标签: ios audio-player sequencing

所以我正在尝试编写基本的音序器。需要非常精确计时的东西。这适用于iOS 9。

我现在正在使用libpd(纯数据),只是发送各种延迟的事件来实现我所追求的效果。听起来不错,但不是很好。

在iOS上有这种精确音乐时机的“最佳实践”吗?我可以从libpd中取出笔记调度,也许可以获得更好的效果吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您想要最精确的计时,那么在播放前渲染音频将允许您只播放一个音频文件,并且所有音频都将在正确的时间播放。您还可以让用户实时播放音符,几乎没有延迟,因为您只播放另一个音轨。您可以在后台线程上进行大部分渲染,因为用户进行了更改,因此所有这些处理都不会阻止主线程。

此预渲染音频的缺点包括处理渲染时间(可能只是一小部分时间或旧设备上复杂音频的整分钟),内存管理和代码复杂性。这会产生最好的结果。

如果您要动态操作音符,我会建议他们来拍摄事件。当用户进行更改时,播放新的音频文件。这应该是相对简单的实现。

如果您正在尝试使用某种MIDI音序器,那么我高度建议使用预渲染音频。它确实需要相当大的处理能力,编程可能很困难,但结果对用户来说要好得多。