1

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

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

我将如何调试这个?

注意我已经用 Objective-C 和 iOS 标记了这个问题,但是这个问题可能需要所有四个标签的知识 - libPd 和纯数据:

什么是纯数据

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

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

libPd 的 GitHub 页面在这里:https ://github.com/libpd

我在寻找什么帮助?

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

  • 线程如何工作,以及它如何与主队列交互
  • 给定目标设备,什么采样率最有效
  • 有哪些调试工具可用。
  • 通过丰富的经验获得的其他建议。
4

2 回答 2

1

我对 PD 一无所知,但键盘的外观似乎可能导致您由于某种原因而缺乏 CPU。你可以试试:

  • 验证这仍然会在发布时发生并且未附加到调试器(日志消息在附加到调试器时会导致长时间延迟,仅此一项就会导致像这样的打嗝)
  • 使用 Instruments 分析您的代码,看看您是否无意中一次使用了大量 CPU 或
  • 增加缓冲区大小,这样 PD 就不再需要 CPU。
于 2013-12-11T14:30:22.210 回答
1

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

如果您增加可以生成的补丁数量,libpd 示例 PolyPatch 在这种情况下非常有用。我发现声音随着打开许多补丁而破裂,与我的应用程序中的方式完全相同。这很简单,使用 libpd 的开销会影响性能。同样清楚的是,简化补丁(因此它包含更少的对象)会影响性能。但到目前为止,最大的成功是创建一个新的、单独的补丁。所以你不会想要创建大量的补丁。调试当然也需要付出代价。

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

[PdBase setDelegate:_dispatcher]; 

在您的代码中-当然都在dox中)。然后,您只需根据需要在补丁中添加打印消息...

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

于 2014-04-08T16:20:28.060 回答