标签: libpd

Mac 上的 CMake:找不到线程(缺少:Threads_FOUND)

我正在尝试编译 LibPD,但收到 CMake 错误消息。我已经在网上寻找解决 Mac 上这个问题的解决方案,但没有找到过去 10 年的解决方案。我在 MacBook Pro 和 Mac 塔式台式机上都收到此错误。:

我输入:

cmake .. -GXcode
Run Code Online (Sandbox Code Playgroud)

我得到:

CMake Error at /Applications/CMake.app/Contents/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find Threads (missing: Threads_FOUND)
Call Stack (most recent call first):
  /Applications/CMake.app/Contents/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  /Applications/CMake.app/Contents/share/cmake-3.13/Modules/FindThreads.cmake:205 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:317 (find_package)
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助。

macos cmake puredata libpd

7
推荐指数
1
解决办法
4590
查看次数

在Android Studio中使用libpd

所以我从https://github.com/libpd/pd-for-android获得了git repo,并在Android Studio中为我的"AmazingSynthesizer"创建了一个新的空白项目.

我使用"导入模块"向导导入PdCore和AndroidMidi.然后,右键单击"app"查看我的"模块设置".在依赖项下,我添加了PdCore作为模块依赖项.另外,我添加了AndroidMidi作为"PdCore"的模块依赖项.

到目前为止,这对我来说似乎是正确的.我的应用程序的build.gradle包含库,我可以在MainActivity中导入PdDispatcher.问题是,它似乎仍然错过了本机库(我想!).

官方libpd书中的基本示例代码(由Peter Brinkmann制作音乐应用程序)

PdAudio.initAudio(sampleRate, 0, 2, 8, true);
Run Code Online (Sandbox Code Playgroud)

悲惨地失败了

java.lang.UnsatisfiedLinkError: Couldn't load pd from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.app.amazingsynthesizer-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.app.amazingsynthesizer-1, /vendor/lib, /system/lib]]]: findLibrary returned null
        at java.lang.Runtime.loadLibrary(Runtime.java:358)
        at java.lang.System.loadLibrary(System.java:526)
        at org.puredata.core.PdBase.<clinit>(PdBase.java:55)
        at org.puredata.android.io.PdAudio.startAudio(PdAudio.java:86)
        at com.app.amazingsynthesizer.MainActivity.onResume(MainActivity.java:62)
        at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1192)
        at android.app.Activity.performResume(Activity.java:5310)
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2764)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2803)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2238)
        at android.app.ActivityThread.access$800(ActivityThread.java:135)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5001)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
        at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

android android-studio libpd

6
推荐指数
2
解决办法
2853
查看次数

将安全的 Rust 函数指针传递给 C

我已经创建了到 C 库的 Rust 绑定,目前正在围绕它编写安全包装器。

问题是关于接受 C 函数指针的 C 函数,而这些指针无法接受任何自定义用户数据。

用一个例子来解释更容易,

C 库:

// The function pointer I need to pass,
typedef void (*t_function_pointer_library_wants)(const char *argument);
// The function which I need to pass the function pointer to,
void register_hook(const t_function_pointer_library_wants hook);
Run Code Online (Sandbox Code Playgroud)

绑定:

// For the function pointer type
pub type t_function_pointer_library_wants = ::std::option::Option<unsafe extern "C" fn(argument: *const ::std::os::raw::c_char)>;
// For the function which accepts the pointer
extern "C" {
    pub fn register_hook(hook: t_function_pointer_library_wants);
}
Run Code Online (Sandbox Code Playgroud)

如果我可以像下面这样向用户公开 api,那就太好了,

// Let's assume …
Run Code Online (Sandbox Code Playgroud)

ffi rust libpd

6
推荐指数
1
解决办法
3059
查看次数

如何获得音频应用程序的可靠时序?

我有一个音频应用程序,其中所有声音生成工作都是通过纯数据(使用libpd)完成的。

我已经快速编写了一个特殊的音序器,该音序器控制合成引擎在纯数据中播放的多个音序的开始/停止播放。

到目前为止,我完全避免在应用程序的任何方面使用Core Audio或AVFoundation,因为我对它们一无所知,而且它们似乎都需要C或Objective C编码,而我对此一无所知。

但是,从之前的问答中已经得知,我需要使用Core Audio或AVFoundation来获得准确的时间。没有它,我已经尝试了其他所有方法,并且时间完全混乱了(漫长,抖动)。

对我而言,关于Core Audio的所有教程和书籍似乎都极为广泛和深入。如果我从这些框架之一中需要的只是我的音序器的准确时序,那么您如何建议我成为Core Audio和Objective-C的新手,但拥有95%完成的音频应用程序?

audio core-audio avfoundation libpd swift

3
推荐指数
1
解决办法
274
查看次数