My setup is a JUCE app that uses libpd. I load a patch that’s an effects chain, with each effect in it’s own abstraction that can be switch~’d to zero so it does not comsume processing when not in use.
The solution I have now is to rename the abstractions to reflect a new processing order and then I reload the patch. This works, but it’s a hack. What’d really be slick is if there was api in libpd for inspecting and editng a running patch.
The goal is to minimize glitches on reloading the patch. We do a similar thing in GeoShred http://www,moforte.com http://www,moforte.com/ in the effects chain. We use Faust for the signal processing in GeoShred. There we essentially reorder a table of function pointers to accomplish the reordering.
- Nick
On Aug 20, 2019, at 3:47 AM, Nick Porcaro nick@ccrma.Stanford.EDU wrote:
Hey Folks,
It’s been a while since I’ve done any hard core work with Pd but that time has come again, and I’m glad to be back on the scene!
In the project I’m working on I need to be able to reconfigure the processing order of DSP objects in a given patch on the fly:
For example, from this:
[noise~] [lop~] [hip~] [dac~’
To this:
[noise~] [hip~] [lop~] [dac~]
Of course this is a trivial example, but it’s not if you wanted to arbitrarily reorder an effects chain with 30 objects in it.
I stumbled across this paper:
https://lac.linuxaudio.org/2009/cdm/Saturday/18_Zmoelnig/zmoelnig_pdreflecti... https://lac.linuxaudio.org/2009/cdm/Saturday/18_Zmoelnig/zmoelnig_pdreflection.pdf
and this GitHub repo https://github.com/iem-projects/pd-iemguts https://github.com/iem-projects/pd-iemguts
and it appears that iemguts might do what I need -
What do you all think?
(I posted this to the patch~ section of the Pd forum as well, and there’s some discussion going on).
- Nick
Pd-dev mailing list Pd-dev@lists.iem.at https://lists.puredata.info/listinfo/pd-dev