所以我正在尝试编写一个基本的音乐音序器之类的东西。需要非常精确的时间的东西。这适用于 iOS 9。
我现在正在使用 libpd(纯数据),只是发送具有各种延迟的事件以达到我想要的效果。这听起来不错,但不是很好。
在 iOS 上这种精确的音乐计时有“最佳实践”吗?我可以从 libpd 中取出笔记调度并获得更好的效果吗?
谢谢!
所以我正在尝试编写一个基本的音乐音序器之类的东西。需要非常精确的时间的东西。这适用于 iOS 9。
我现在正在使用 libpd(纯数据),只是发送具有各种延迟的事件以达到我想要的效果。这听起来不错,但不是很好。
在 iOS 上这种精确的音乐计时有“最佳实践”吗?我可以从 libpd 中取出笔记调度并获得更好的效果吗?
谢谢!
如果您想要最精确的时间,那么在播放之前渲染音频将允许您只播放一个音频文件,并且所有音频都将在正确的时间。您还可以让用户实时播放音符,几乎没有延迟,因为您只播放另一个音轨。当用户进行更改时,您可以在后台线程上进行大部分渲染,这样主线程就不会被所有这些处理阻塞。
这种预渲染音频的缺点包括处理渲染时间(对于旧设备上的复杂音频,渲染时间可能只有几分之一秒或整整一分钟)、内存管理和代码复杂性。不过,这将产生最好的结果。
如果您要即时处理笔记,我建议您在事件发生时进行。当用户进行更改时,播放新的音频文件。这应该是相对简单的实现。
如果您正在尝试使用某种 MIDI 音序器,那么我强烈建议您预渲染音频。它确实需要相当多的处理能力,而且编程可能很困难,但结果对用户来说要好得多。