[PD-dev] dynamic patching - is iemguts the way to go?

Miller Puckette msp at ucsd.edu
Tue Aug 20 21:09:54 CEST 2019


I think the way to do this in libpd is to open them all as separate patches
within one instance of Pd (so that symbols are shared) and use "tabsend"
and "tabreceive" to route signals to/from them, using shared names like
"channel1" as both inputs and outputs so you can rearrange them in any
order.

(Beware of allowing patches to _write_ andy of their output channels before
reading all the input channels, if you're re-using the same channels as 
inputs and outputs :)

Miller

On Tue, Aug 20, 2019 at 04:18:58AM -0400, Nick Porcaro wrote:
> 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 at 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_pdreflection.pdf <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 at lists.iem.at
> > https://lists.puredata.info/listinfo/pd-dev
> 

> _______________________________________________
> Pd-dev mailing list
> Pd-dev at lists.iem.at
> https://lists.puredata.info/listinfo/pd-dev






More information about the Pd-dev mailing list