Using Pure Data as a programming helper tool

Those who have worked with Pure Data (or Max or any other graphical programming environment) know how nice it is to adjust any value and see the results right away. Having to recompile after any small change is such a pain!

So here is a small example of how you can connect your Juce code with Pd using OSC. This will allow you to quickly tweak the values of different variables in your code during runtime.

Also, Pd is ideal as a quick prototyping tool. It can be used to experiment with different algorithms, which you can later and without much work “translate” to proper C++.

And the graphical elements can be used to monitor how variables change in time. They are quite useful tools to spot problems.

I find Pd as a helper tool very useful and, since I haven’t seen anything quite like this being discussed in the forum or in any of the Audio Programmer videos, I thought I would share.

Let me know what you think! Also I would love to hear what people here are using for testing, prototyping, etc. What are your workflows, what tools you use and so on.

Juce-PD-OSC.zip (3.8 KB)

I imagine nobody commented on this out of politeness. I have in the meantime discovered, much to my shame, that the Juce live constants do exactly this (for the most part) but in an infinitely more convenient way. Such a great feature!

I don’t know for plug-ins, but compile my app (and launch the result in the Xcode debugger) usually takes only few seconds. Much less pain for instance that to relaunch Max/MSP each time (when you make externals). :grin: That’s probably why i didn’t considered neither the live constants for now.
Perhaps that in the future (and more code and compile time) it could be a requirement.

the best workflow in that regard is to just use plug n script imo. it uses a scripting language called anglescript that is very similiar to c++. it also makes adding, removing and changing parameters easy on the fly and you can do it all comfortably from the daw. juce will never be nearly as easy as that, because juce wants to give you all this control to finetune everything to your needs, which is cool for actually finishing products, but if you just want to test dsp scripts, firing up pns makes more sense

If we are talking about Pd, we might as well discuss Csound which is a great prototyping language that can be run on virtually any platform. When used with Cabbage you can export as a range of plugin types including VSTs/AUs, VCV Racks modules, FMOD instruments and effects, etc.

Yeah, Cabbage is very cool.
According PD there is Camomile with similar approach: GitHub - pierreguillot/Camomile: An audio plugin with Pure Data embedded that allows to load and to control patches

All those are very cool indeed. Cabbage is really impressive! Within Pd I very much like Ofelia, which allows one to use OpenFrameworks and lua, so you have access to both a huge amount of tools and a realtime scripting language. https://github.com/cuinjune/Ofelia