1

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

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

4

1 回答 1

2

libpd 本身没有内置的墙上时间感。它仅根据处理的音频帧数来跟踪时间;客户端代码负责在正确的时间调用 libpd 的 process 方法。

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

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

于 2015-10-05T15:17:53.787 回答