2015-10-04 35 views
1

我遇到了一个我没有能够诊断的未记录的问题。我正在使用pd-for-ios。我的补丁加载到libpd(iOS)中的行为与在Pd中运行的行为不同。libpd iOS补丁城域和延迟对象行为错误

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

回答

2

libpd本身没有固定的时间感。它只根据处理的音频帧的数量来记录时间;客户端代码负责在正确的时间调用libpd的过程方法。

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

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

+0

有趣的是,我正在使用pd-for-ios。我应该明确指出,我测试我的补丁的libpd测试项目来自pd-for-ios软件包。 (编辑原始问题)。这让我吃了一惊。任何想法如何检查pd-for-ios是否正确设置音频单元? – enamodeka

+0

你在看哪个测试项目? – Nettoyeur

+0

这是在做我的头。我尝试过SliderPadBasic和PolyPatch。有趣的是,在PolyPatch中,我的音色保持在正确的音调,但是发射速度如此之快,听起来像是连续的声音(它在我做过的所有其他测试中都有),但是PolyPatch test2.pd播放的是低音声音blurbs。然而,当我在Pd中打开补丁时,test2.pd的音调更高,并且播放时间更短...... – enamodeka