To register and login, use your Google, Twitter, Facebook, LinkedIn, or OpenID credentials.

This is allowing us to stop most spam registrations. We've deleted most of the spam accounts that got through, and we're closely watching for more.

libpd: Hide Pd patch signal processing when building application

gmpCodegmpCode Posts: 4
edited April 2013 in Pd Everywhere

Hi, I did some simple examples using libpd so far and it's working nice. Now I encountered a problem, which could be a showstopper for our work with libpd.

As far as I understood, the Pd patches are evaluated by libpd at runtime. That means, the Pd patches have always to be delivered together with the application, right?

Thats what I want: The signal processing inside the Pd patches shall be entirely hidden for the user such he/she cannot open the Pd patches and see what happens inside the application. That means, is there a way to build the information of the Pd patches into my application such we don't need the Pd patches anymore?

Thanks! gmpCode


  • choonschoons Posts: 51

    seems like doing that you'd have no reason really to use libpd at all. However, there are a lot of things that can be handled on the Android or iOS side before final rendering through the patch for sound output that can help obfuscate your code somewhat. I use libpd with Android and the patches are indeed bundled into the install download but they get installed onto the app's internal storage which users cannot easily access. I kind of look at using Pd patches via libpd as actually making it more difficult for someone to reverse engineer my app. It takes a pretty dedicated code thief to figure out both the Java code AND the Pd patches & how they interact.

  • pbrinkmannpbrinkmann Posts: 685 ✭✭

    Pd and libpd are very much creatures of the open source world and are meant to encourage sharing rather than obfuscation, but if you really must, I can think of a couple of solutions. For example, you don't need to keep the patch around after you've loaded it, so you could package the patch in some encrypted form, then write it out to a temp file, open it with libpd, then delete the temp file.

    Also, a patch is just a list of internal Pd messages. In theory at least, you can encode those messages in your program and then send them to Pd with the usual message passing API of libpd. That would be extremely awkward, but it would allow you to avoid patch files altogether.

Sign In or Register to comment.