Hi!
So, I was thinking about Dan's advice to turn the dsp on and off with [switch]. I will definitely need this feature for saving CPU.
Currently I am wondering which is the proper condition on that I decide to [switch] a clone off.
Let me explain with an example:
Say I have 10 button matrices, therefore I have 10 clones of my delay-effect. Each clone the delay-effect for one specific button matrix. When the user is playing a melody on the first button matrix and then switches to the second matrix, I am not allowed to [switch] off the delay effect on the first matrix, because even if the first matrix might not be triggering new midi notes anymore, the delay effect might be set to feedback = 100, an thus is still playing music.
So my first idea was to switch off the delay effect, when dryWet and feedback are set to zero. But then I would also have to check wether or not there is music coming in on the inlets off the delay effect...And what if I am not using a delay but a reverb effect. Then I would have to check different sliders...a little bit confusing i would say.
So then I had another idea: Couldn't I simply check (periodically) whether or not a delay-effect-clone is still sending audio to its outlets? I think that this would be a good general approach that could be applied to other effects, as well. How would I do this? Is it possible to somehow check the volume that is going out to the outlets of a clone?
Best, Jakob
Gesendet: Mittwoch, 01. Juli 2020 um 12:30 Uhr
Von: "Dan Wilcox" <danomatika@gmail.com>
An: "Jakob Laue" <jakkesprinter@web.de>
Cc: "Pd-List" <pd-list@lists.iem.at>
Betreff: Re: [PD] one abstraction, different delay lines?
(My mail program mangled this message for some reason, so I copy/pasted the quote below. I hope it's the correct one to respond to...)
Right now I have the master audio stream (= the audio of all matrices) going into the clone object, so it sounds like i have several delay effects with different settings on the master channel. It sounds nice, but it is not what I want right now:)
Jakob, the next step would be to add a [switch~] object to each of the instances inside the clone object, then enable/disable based which one you want to use. That could work as dsp will not be performed on those which are switched off, saving CPU.
A simple solution is for each instance to accept an "on" message with a float (1 or 0) to enable/disable. Then to enable as ingle one, send a [all on 0< message followed by the single one to enable, [1 on 1<.