在回放libPd补丁期间发生噼啪声 - 尤其是与键盘演示相关

时间:2013-12-11 11:31:12

标签: ios objective-c puredata libpd

我在iOS中集成了一个libPd补丁。

当输入文本字段并呈现键盘时,会发出一些噼啪声。

我该如何调试?

NB我用Objective-C和iOS标记了这个问题,但是这个问题可能需要知识所有四个标签 - libPd和Pure Data:

什么是纯数据

  1. Pure Data是一种强大的编程语言,用于处理来自核心数学概念的音频。它广泛用于游戏以及DJ和其他音乐应用程序。使用Pure Data和libPd构建的一些示例应用程序是:RjDj的Rj Voyager应用程序和Warner Brothers的Inception App。

  2. libPD是一种在iOS应用程序中嵌入纯数据补丁(使用可视化界面开发)的方法。通过类似于OSC或MIDI的发布/订阅消息接口来控制Pd接口。 。

  3. libPd的GitHub页面位于:https://github.com/libpd

    我在寻找什么帮助?

    我不知道从哪里开始调试这个。在iOS上集成和使用libPd的人肯定可以分享经验。它可能与以下内容有关:

    • 线程的工作原理以及它与主队列的交互方式
    • 对于目标设备,哪些采样率最有效
    • 有哪些调试工具可用。
    • 通过深刻体验获得的其他建议。

2 个答案:

答案 0 :(得分:1)

我对PD一无所知,但看起来键盘的显示可能会因某些原因导致你缺乏CPU。你可以试试:

  • 验证在发布时仍然会发生这种情况并且没有附加到调试器上(日志消息在连接到调试器时会导致长时间延迟,这可能会导致像这样的打嗝)
  • 使用Instruments分析您的代码,看看您是否无意中一次性使用了大量CPU或
  • 增加缓冲区大小,因此PD不需要经常使用CPU。

答案 1 :(得分:1)

我在我正在处理的应用中遇到了相同的症状。我确实设法在早期确定了一些事情。我最近的更改涉及在app init期间向pd发送大量消息。我注意到在调试时,当我减少发送的消息量时,声音得到改善。另外,我没有在模拟器中看到这个,只在设备上看到。

如果增加可生成的补丁数量,libpd示例PolyPatch在这种情况下非常有用。我发现声音打开了许多补丁打开,与我的应用程序完全一样。这很简单,使用libpd的开销会降低性能。同样清楚的是,简化补丁(因此它包含较少的对象)会影响性能。但到目前为止,最大的打击是创建一个新的,单独的补丁。因此,您不希望创建大量补丁。调试当然也会造成损失。

44.1khz在采样率方面几乎无处不在(这也是pd标准)。并没有什么可以阻止你在xcode中调试libpd代码,我做了几次。除此之外,还有调试补丁的问题。您可以直接在pd中使用对象的测试版本设置补丁,或者您应该能够设置libpd以查看与通常在控制台的pd主窗口中看到的相同的输出(您只需要确保你有这样的东西

[PdBase setDelegate:_dispatcher]; 
在您的代码中

- 当然,它都在dox中。然后你可以根据需要用你的补丁打印补丁......

希望它有所帮助,并且在3个月之后仍然具有相关性......!