Thanks folks for your suggestions on this topic. I figured out a way to do it vanilla Pd with catch/throw/switch~. The key to figuring the problem out is to imagine a matrix where the x axis has outputs and the y axis has inputs.
Each item in this matrix is a toggle switch that can turn on subpatches and allow signals to conditionally pass through [~ *] objects.
Instruments and effects can be in this matrix. This is the way some analog synths work. Turns out simple catch~ and throw~ were sufficent, I didn’t need tabread~ and tabwrite~
- Nick
On Aug 21, 2019, at 6:26 PM, William Brent william.brent@gmail.com wrote:
Hi Nick,
I made a vanilla abstraction called [DRFX] that builds a routing matrix for effects abstractions using dynamically created [send~]/[receive~] and [throw~]/[catch~] busses. You have to follow some basic naming conventions for the wireless audio busses of your inputs and effects, but then you can just tell [DRFX] the names of your inputs and effects and it creates a GUI routing matrix to control effect processing order. You can also control matrix switches via control send/receive names since it sounds like you won't want a Pd GUI. It has messages for controlling fade in/out times so that you can make transitions as desired, and there's also functionality for parameter presets and exporting/loading routing and parameter presets from text files. It's been very useful for my needs in multi-FX projects.
You can find it via deken or go to the repo here: https://github.com/wbrent/DRFX.git https://github.com/wbrent/DRFX.git The help patch and INSTRUCTIONS.pdf explain the basics if you want to check it out and see if it's useful in your case.
William
On Tue, Aug 20, 2019 at 3:57 AM Nick Porcaro <nick@ccrma.stanford.edu mailto: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 mailto:Pd-dev@lists.iem.at https://lists.puredata.info/listinfo/pd-dev https://lists.puredata.info/listinfo/pd-dev
-- William Brent www.williambrent.com http://www.williambrent.com/
“Great minds flock together” Conflations: conversational idiom for the 21st century
www.conflations.com http://www.conflations.com/_______________________________________________ Pd-dev mailing list Pd-dev@lists.iem.at https://lists.puredata.info/listinfo/pd-dev