libpd (embedding Pure Data patches)

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

Hi all,

this is a bit dated, but I have noticed there's no mention of libpd here in the KVR DSP, so I just thought I'd introduce it, as some people could find it useful....

libpd is a lib you can use for running your Pure Data patches in a plug-in or a standalone app on a variety of hosts (Win, Lin, OSX, Android, iOS) with bindings for C, Java and probably other languages.

That means, if you're not a skilled C programmer, or if your app doesn't have to be every-CPU-cycle-wary, you can prototype in Pure Data, and then use that exact patch for generating sound in the end product, only coding the new GUI.

I also find the combination of JUCE (for GUI and host interfacing) + libpd interesting, because libpd is BSD-licenced, while JUCE is dual licenced (GPL and closed source), meaning, the combo can be used for both open and closed source development.

Article on the release at createdigitalmusic:
http://createdigitalmusic.com/2010/10/l ... here-free/

Group for discussing Pd on mobile, embedded, and using libpd:
http://noisepages.com/groups/pd-everywhere/

Cheers! :wink:

Post

At a quick glance, I don't see any mentioning of Win / OSX support in the cited article or on the project web site. Where did you get that from?
"Until you spread your wings, you'll have no idea how far you can walk." Image

Post

It's been mentioned on other forums. Here's a quote by Peter Brinkmann (I think he's the lead libpd developer):
....you can build libpd on lots of platforms. Basically, if you can compile Pd on a platform, then you can compile libpd there. The git repository already includes tentative makefiles for Linux and OS X.
Generally speaking, the project consists of several layers that are designed to be as general as possible: libpd is a C library that's easy to embed in a C/C++ project. On top of the basic C library, there's a Java wrapper (PdBase.java) that provides thread safety and converts between Java types and C types. The Java bindings do not depend on Android. For instance, we have already added Pd components to jReality.
Finally, there's an Android driver layer (PdAudio.java) that connects the Java bindings of libpd to the Android audio architecture. The iOS version mirrors this structure, with a basic ObjC layer that converts types and synchronizes access (PdBase.h/m) and a driver layer that hooks Pd into CoreAudio (PdAudio.h/m).
You can look at it as a DSP library with no ins and outs, so it makes sense that it's pretty platform independent.

Post Reply

Return to “DSP and Plugin Development”