2015-10-04 67 views
0

因此,我正在尝试编写基本音乐音序器类的东西。一些需要非常精确的时间。这是针对iOS 9的。获得iOS上精确计时音符的最佳方式

我现在正在使用libpd(Pure Data),只是发送各种延迟的事件来实现我之后的效果。这听起来不错,但不是很好。

在iOS上这种精确的音乐播放时间有没有“最佳做法”?我可以将注释排除在libpd之外,并可能获得更好的效果吗?

谢谢!

回答

0

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

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

如果您打算随时操作笔记,我会建议您在事件发生时及时处理。随着用户进行更改,播放新的音频文件。这应该是相对微不足道的实施。

如果你想要某种MIDI音序器,那么我会推荐高度预渲染音频。它需要相当数量的处理能力,编程可能很困难,但对用户而言,结果要好得多。