Dear PD-ers, I have a question on a topic of which I don’t even remember the name. The topic deals with the task of saving cpu by sensing whether a synthesizer is not „active“ anymore, that is, is not generating sound anymore. Maybe it is a good idea to explain my patches’ overall layout:
The main patch is a matrix-sequencer inspired by the old school Tenori-On Hardware-Instrument.
It consists of a 8x8 button matrix made out of [toggle]s. By clicking a [toggle], a synthesizer will play a certain pitch whenever the sequencer has reached the specific position of that [toggle]. The user can choose one out of five synthesizers which is used to play that certain note in order to have some variety of the sound output.
That means that I have five synthesizers sitting in a subpatch waiting for triggers and four of them are actually doing nothing, even I a trigger comes in. How could I detect their laziness and switch those four synthesizers off when they are doing nothing.
The same question goes for a variety of effects which are wired in series and take at their vey beginning the dry synthesizer-signal, modify it and give it to the main out.
Now the story goes on:
This 8x8-matrix that I just described, with it’s varying synthesizers and effects are actually cloned using [clone] and by that offering the user to switch between a bank of (let’s say) ten of those 8x8-matrices. By this, the user can have ten different sequencer-matrices running, playing different instruments through different effects and hence create some multi-instrument-fun.
But here it also becomes very cpu-heavy:
1 matrix = 5 synthesizers and 3 effects
10 matrices = 50 synthesizers and 30 effects.
My computer (MacBook Pro 2011, 16 GB RAM, SSD) currently can only handle 4 matrices, with five it starts crackling and lagging a lot. But to be honest: Why shouldn’t it? ;) For now I did not take care of muting or switching the instruments off when their idle.
I am happy about any help that you have! Thank you very much.
Best regards, Jakob
hi there - i would have a look at the [switch~] object. sending it a 0 should ostensibly shut off DSP for anything downstream of that object. it is often used in subpatching configurations which it seems this could qualify as. see if this forum post helps:
https://forum.pdpatchrepo.info/topic/9901/enable-disable-subpatches
best, scott
On Fri, Apr 18, 2025 at 12:41 PM Jakobweb via Pd-list pd-list@lists.iem.at wrote:
Dear PD-ers, I have a question on a topic of which I don’t even remember the name. The topic deals with the task of saving cpu by sensing whether a synthesizer is not „active“ anymore, that is, is not generating sound anymore.
Maybe it is a good idea to explain my patches’ overall layout:
The main patch is a matrix-sequencer inspired by the old school Tenori-On Hardware-Instrument.
It consists of a 8x8 button matrix made out of [toggle]s. By clicking a [toggle], a synthesizer will play a certain pitch whenever the sequencer has reached the specific position of that [toggle]. The user can choose one out of five synthesizers which is used to play that certain note in order to have some variety of the sound output.
That means that I have five synthesizers sitting in a subpatch waiting for triggers and four of them are actually doing nothing, even I a trigger comes in. How could I detect their laziness and switch those four synthesizers off when they are doing nothing.
The same question goes for a variety of effects which are wired in series and take at their vey beginning the dry synthesizer-signal, modify it and give it to the main out.
Now the story goes on:
This 8x8-matrix that I just described, with it’s varying synthesizers and effects are actually cloned using [clone] and by that offering the user to switch between a bank of (let’s say) ten of those 8x8-matrices. By this, the user can have ten different sequencer-matrices running, playing different instruments through different effects and hence create some multi-instrument-fun.
But here it also becomes *very* cpu-heavy:
1 matrix = 5 synthesizers and 3 effects
10 matrices = 50 synthesizers and 30 effects.
My computer (MacBook Pro 2011, 16 GB RAM, SSD) currently can only handle 4 matrices, with five it starts crackling and lagging a lot. But to be honest: Why shouldn’t it? ;) For now I did not take care of muting or switching the instruments off when their idle.
I am happy about any help that you have! Thank you very much.
Best regards, Jakob
pd-list@lists.iem.at - the Pure Data mailinglist
https://lists.iem.at/hyperkitty/list/pd-list@lists.iem.at/message/F7ZPY4YZPM...
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.iem.at/
Dear PD-ers, I have a question on a topic of which I don’t even remember the name. The topic deals with the task of saving cpu by sensing whether a synthesizer is not „active“ anymore, that is, is not generating sound anymore. Maybe it is a good idea to explain my patches’ overall layout:
The main patch is a matrix-sequencer inspired by the old school Tenori-On Hardware-Instrument.
It consists of a 8x8 button matrix made out of [toggle]s. By clicking a [toggle], a synthesizer will play a certain pitch whenever the sequencer has reached the specific position of that [toggle]. The user can choose one out of five synthesizers which is used to play that certain note in order to have some variety of the sound output.
That means that I have five synthesizers sitting in a subpatch waiting for triggers and four of them are actually doing nothing, even I a trigger comes in. How could I detect their laziness and switch those four synthesizers off when they are doing nothing.
Jakob, if these synthesizer voices have volume envelopes you can switch them on when you start the envelope and switch them off when the envelope has reached its end using the aforementioned [switch~] object. I am sure you have looked into [poly] as well, as it is often used to do voice management for synthesizer voices inside abstractions (usually preferred to subpatches).
The same question goes for a variety of effects which are wired in series and take at their vey beginning the dry synthesizer-signal, modify it and give it to the main out.
More tricky, but here you might want to monitor the amplitude of the effect output with [env~] and use a threshold dB value to turn [switch] off and on perhaps?
Now the story goes on:
This 8x8-matrix that I just described, with it’s varying synthesizers and effects are actually cloned using [clone] and by that offering the user to switch between a bank of (let’s say) ten of those 8x8-matrices. By this, the user can have ten different sequencer-matrices running, playing different instruments through different effects and hence create some multi-instrument-fun.
But here it also becomes very cpu-heavy:
1 matrix = 5 synthesizers and 3 effects
10 matrices = 50 synthesizers and 30 effects.
If the effects in all the matrices are identical, don't clone them but use some audio bus to send synth voices to 3 global effects perhaps?
best, P