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 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:



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