libpd iOS补丁地铁和延迟对象的行为有问题

时间:2015-10-04 13:52:13

标签: ios puredata libpd

我遇到了一个我无法诊断的无证问题。我正在使用pd-for-ios。加载到libpd(iOS)中的补丁与在Pd中运行的行为不同。

我设法发现延迟和metro对象以比指定的更高的速率发送消息。似乎libpd中没有时间同步。为了测试这个,我制作了一个简单的补丁,让节拍器每1秒发出一声巨响。在Pd中它按预期工作。在libpd中,我注册了一个调度员,每隔几毫秒就会发出一声巨响。当我将补丁加载到pd-for-ios测试项目之一时,结果是相同的。似乎节拍器没有时间限制地工作,不断发出爆炸声。

1 个答案:

答案 0 :(得分:2)

libpd本身没有内置的时间感。它只根据处理的音频帧数跟踪时间;客户端代码负责在适当的时间调用libpd的处理方法。

如果你将libpd与pd-for-ios一起使用,那么这将被隐式处理,因为pd-for-ios将创建一个音频单元,在其渲染回调中调用libpd的进程方法。

如果您直接调用流程方法,那么它只会尽可能快地运行,这可以解释您所看到的行为。您可以实现自己的延迟,但可能更容易通过pd-for-ios。