making Pure Data a plugin language for Audacity

Hey all, I’m one of the core developers of Pure Data (aka Pd) and an ardent Audacity user. We have recently released libpd, a framework to make Pd embeddable into other programs and languages. I was thinking it would be very nice to be able to write plugins for Audacity using Pd. Anyone think this is feasible? We already have libpd embedded into C++/OpenFrameworks, Java, Android, and Apple iOS/Obj-C. Anyone who knows the Audacity code willing to work with a Pd dev to make this happen?

Here’s the libpd announcement, for more info:

Thanks for your post eighthave,
I don’t know how much interest there will be just at the moment as most of the Audacity developers are heavily involved with getting Audacity ready for the release of version 2.0, but I’ve forwarded your post to the developers mailing list.

If you are interested in subscribing to the developers mailing list yourself, you will find it here:

Hi eightwave,

I’m quite interested in Pd, although not a user myself. What kind of plugin are you talking about? The examples you mentioned (OF, android, cocoa) are programming languages and not applications, so I imagine the idea you are thinking to integrate into audacity is rather different? One that executes pd patches in audacity or one that is more like soundflower/jack or something else? there’s minimal scripting support now in audacity, so this might be interesting to you to.

As stevethefiddle says it will be hard to get developers to review/commit that stuff now because of the 2.0 release stuff, but if you want to do it on your own branch and you just need questions about where the functionality is in the code feel free to ask. I may be able to help out. The devel mailing list is probably a good place to throw ideas around too.

Hi Eighthave,

PD would be a great addition to Audacity - and probably more work than you anticipate. One of the big obstacles is that Audacity is not real time. We would at least need to lash up a workaround. We’re slowly working towards a hybrid where effects that can be real time are and those that don’t run fast enough render in the background. MChinen’s load-on-demand code was an important step in that direction.

Fusion of PD with Audacity, in my view, could benefit both a great deal.

Best way to progress it is to join the audacity devel list and also start a wiki page on the audacity wiki about Audacity as a PD host.

The 2.0 release need not be a blocker since 99% of this will happen in a plug-in that extends Audacity.

Please reply on the audacity-devel mailing list as I do not regularly monitor this forum.


Pd doesn’t have to run in realtime if it is just used for rendering. There is even a batch mode to make it easier to do non-realtime rendering. I could see it working by Audacity clocking Pd by sending/receiving 64 sample blocks of data. That’s how Pd’s clock/scheduler is run in libpd. Pd will keep everything in time for those times. It has no sense of realtime, it only goes by the calls for 64 sample blocks.

A wiki makes sense, but I think we need to flush out more ideas and discussion first.