问题标签 [libpd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 实时查看补丁信息
是否可以使用 libPd for iOS 向补丁发送消息并实时查看视觉更新?我尝试将模拟器目录中的补丁加载到编辑器中,然后与我交互以发送 Pd 消息,但是没有发生视觉更新。
libpd 是否使用补丁文件作为状态存储?
ios - 在播放 libPd 补丁期间噼啪作响 - 尤其是。与键盘演示有关
我在 iOS 中集成了一个 libPd 补丁。
输入文本字段并显示键盘时,会发出一些噼啪声。
我将如何调试这个?
注意我已经用 Objective-C 和 iOS 标记了这个问题,但是这个问题可能需要所有四个标签的知识 - libPd 和纯数据:
什么是纯数据
Pure Data 是一种强大的编程语言,用于根据核心数学概念处理音频。它广泛用于游戏以及 DJ 和其他以音乐为中心的应用程序。使用 Pure Data 和 libPd 构建的一些示例应用程序包括:RjDj 的 Rj Voyager 应用程序和 Warner Brothers 的 Inception 应用程序。
libPD 是一种在 iOS 应用程序中嵌入 Pure Data 补丁(使用可视界面开发)的方法。控制 Pd 接口是通过类似于 OSC 或 MIDI 的发布/订阅消息接口完成的。.
libPd 的 GitHub 页面在这里:https ://github.com/libpd
我在寻找什么帮助?
我不确定从哪里开始调试。在 iOS 上集成和使用过 libPd 的人肯定可以分享经验。它可能与以下内容有关:
- 线程如何工作,以及它如何与主队列交互
- 给定目标设备,什么采样率最有效
- 有哪些调试工具可用。
- 通过丰富的经验获得的其他建议。
ios - 用于 iOS Mach-O 链接器错误的 libpd
我在通用 iOS 应用程序中使用 libpd,使用 iOS 7 和 Xcode 5.0.2。libpd 按预期工作(可以加载 Pd 补丁并与之交互),但我在使用外部对象时遇到了麻烦。
这是我看到的错误消息:
我已经看到将 libpd 子项目的“构建活动架构”标志设置为“是”的建议——这没有任何区别,我仍然遇到同样的错误。
这个问题是否有解决方案(明显或其他)?
java - Android 中推荐的每应用 CPU 负载
我正在开发一个使用 libpd 运行大量密集音频任务的 Android 应用程序。Libpd 的音频线程具有优先级 Process.THREAD_PRIORITY_URGENT_AUDIO。
三星 Galaxy S3 的 CPU 负载始终保持在 20% 到 30% 之间。这对我来说似乎是合理的,但是,当音频服务在后台运行且 CPU 负载约为 30% 时打开另一个应用程序会导致大量音频丢失。
有人可以解释这种行为吗?我认为像 S3 这样的四核手机的最大负载为 400%(在 adb shell 中使用“top”显示)。因此,我不明白为什么像libpd的音频线程这样高优先级的线程在只使用30%的CPU时却得不到足够的CPU资源。
任何建议将不胜感激,谢谢;)
java - 如何从 Android 获取音频到 libPD?
基于 Peter Brinkmann 的示例类,我在 Eclipse 中运行 libpd 和处理。但我似乎并不完全了解如何将来自 Android 麦克风的音频输入转换为 Pure Data。
当我在实际或虚拟设备上运行它时,我收到一堆错误消息:
E/AudioRecord(1079): 无法获取记录源 1 的音频输入
E/AudioRecord-JNI(1079):创建 AudioRecord 实例时出错:初始化检查失败。
这是主要的类:
c++ - 如何使用 libpd 从纯数据补丁接收命名信号?
我正在使用 libpd 将 Pure Data 引擎嵌入到我的项目中,并且我正在尝试接收来自补丁的信号消息。
如果我在补丁中放置一个非信号消息(即)控件:
我收到消息没有问题。但是,如果我尝试使用 ~ 来执行相同的消息,表示信号消息,我的处理程序永远不会收到它,示例补丁如下:
无论我使用轮询还是回调,此补丁都不会收到任何“toCPP”消息。这是我的 [精简] 示例代码:
有人会期望此代码在符号 toCPP 的每个滴答周期从补丁中接收一个浮点数(或浮点数列表),但事实并非如此。此测试代码将收到消息的 [s toCPP] 版本,而不是 [s~ toCPP]。顺便说一句,如果我将 [osc~ 440] 连接到 [dac~] 对象并通过 outbuf 读取数据,我可以接收来自 [osc~ 440] 的输出,但这对我的用途来说不是最佳的,我想避免它(主要原因是我可能需要输出 8 组或更多组声学数据,并且在补丁中创建和使用具有这么多通道的 dac~ 对象变得有些笨拙)。
我的问题是:
是否可以使用 libpd 从 Pd 补丁接收基于信号的消息?
如何在 C++ 端使用 libpd 从 Pd 补丁接收基于信号的消息?
c++ - 使用 libpd 时如何处理不能被 64 整除的音频缓冲区大小?
libpd 的 API 只允许一次处理 64 个样本帧中的音频。我过去所做的是将音频设备缓冲区大小设置为可被 64 整除的数字。那里没有问题。
现在,我需要制作一个兼容 ASIO 的 Windows 应用程序。我正在使用 RtAudio。问题是,当我使用 RtAudio API 初始化我的 ASIO 声卡(Roland FA-66)时,它会忽略缓冲区大小参数并选择它自己的一个,它不能被 64 整除。
我想到了一个解决方法。这将发生在音频回调函数中:
- 检查缓冲区大小是否不能被 64 整除。如果是:
- 告诉 libpd 处理大于所需大小的帧数并将其存储在临时缓冲区中。
- 使用 memcpy 将适量的帧从临时缓冲区复制到输出缓冲区。
- 使用 memcpy 将额外的样本存储在另一个缓冲区(称为额外)中,并在以下对音频回调的调用中使用它们。
我还没有尝试过,但我认为它会起作用。
但是,我想知道是否有“标准”或“众所周知”的程序来处理这个问题。也许有我不知道的警告或提示?
android - 在 Android Studio 中使用 libpd
所以我从https://github.com/libpd/pd-for-android获得了 git repo,并在 Android Studio 中为我的“AmazingSynthesizer”创建了一个新的空白项目。
我使用“导入模块”向导导入 PdCore 和 AndroidMidi。然后,右键单击“应用程序”以查看我的“模块设置”。在依赖项下,我将 PdCore 添加为模块依赖项。此外,我添加了 AndroidMidi 作为“PdCore”的模块依赖项。
到目前为止,这对我来说似乎是正确的。我的应用程序的 build.gradle 包含库,我可以在 MainActivity 中导入 PdDispatcher。问题是,它似乎仍然错过了本机库(我认为!)。
来自官方 libpd 书籍的非常基本的示例代码(由 Peter Brinkmann 制作音乐应用程序)
惨败
android - 迁移到包含 libpd 的 Android Studio
随着 Android Studio 1.0 (AS) 的发布,我想从 Eclipse 迁移。通常我不需要其他库,然后 libpd (PureData) 用于音频合成。问题是,用于 android 的 libpd 是针对 Eclipse 的需求而设计的。所以在 Eclipse 中,一切都按预期工作。
我能找到的唯一信息是:在 Android Studio 中使用 libpd所以我知道 libpd 和 Android Studio 可以一起工作,但这里可能还有一些其他问题。
我开始生成一个新的简单项目(MinSDK 10 - CompileSDK 21 - BuildTools 21.1.2),只有一个空白活动。我可以将这个简单的应用程序部署到我的 Nexus 上,一切都很好。
然后我将 :PDCore 和 :AndroidMidi 作为模块导入到我的 AS 项目中,我得到 Gradle build-error: Error:The SDK Build Tools revision (17.0.0) is too low for project ':PdCore'。最低要求是 19.1.0
我通过 SDK Manager 安装了 API 19 和 Build Tools 19.1 版,但这并没有解决我的问题。我将应用程序 build.gradle 文件的 buildToolsVersion 更改为“19.1.0”,但这并没有解决我的问题。
有什么建议可以让 Gradle 正常工作吗?也许有人得到了一个带有 libpd 的示例 Android Studio 项目来分享?
提前致谢!
仅供参考:我写了一些关于使用 libpd 迁移到 Android Studio 的帖子。看看这里:
c++ - Visual C++ 2010 中的 libpd 配置
我正在尝试在 Visual C++ 2010 项目中导入并运行 libpd API CppTest附带的 C++ 示例项目。
我导入了libpd的C++ API文件,即PdBase、PdReceiver、PdMidiReceiver和PdTypes,在PdBase和PdTypes的情况下有对应的源文件。我将 Pure Data 的 include 文件夹(“C:\pd_installation_folder\include”)和包含 libpd 包装器的 C 代码的 libpd_wrapper 文件夹作为附加包含目录。
当我运行示例项目的解决方案时,由于链接阶段出现错误,“错误 LNK2019”,其中包含大量未解决的外部项,因此无法正常工作。这里有什么问题?我是否应该为 VC++ 项目的链接器配置属性提供任何 libpd 附加静态库(或 .dll)?