Module ideas

A PureData bridge-type module, capable of opening and playing PD patches via the embeddable libpd library.

I was experimenting at something sort of it when VCV Rack was still at its 0.6 incarnation. Basically I heavily based my experiments on a indirect porting the ofxPd addon for openFrameworks by Dan Wilcox in the context of Rack, that is, consuming the libpd_wrapper API through an extension of the PdBase class in the context of the Rack module instance. I managed to have the audio stream buffer to work, and also to launch the native Tcl/Tk Gui to edit or manually banging/configuring the PD patch on the fly.

But that’s all, my code was simply a rudimentary step-on, and ultimately I’m really not as good at C++ to be able to finalize this kind of project, again the super-fast evolution of VCVRack to version 1++ :slight_smile: - and soon 2.0, I see :smiley: - together with some family problems and lack of spare time made me quit the fun coding.

That said, IMHO a few major issues in this project seem to be:

  • the cross-platform requisite (compilation and testing)
  • static linking of libpd in the delivered plugin
  • the necessity to access the native GUI
  • synchronization issues
  • real multi-instance support

With regards to the last point, it has to be said that it’s been in active development in the last year, it has not so long been already implemented in the libpd core code, and AFAIK is actively worked on with regards to related thread-safe issues, extended multi-hook support, and a definitive C++ wrapper implementation (there is lot of github activity in recent days).

4 Likes