Page 1 of 1

Amplifier: "Smooth" controller

Posted: Fri Jan 19, 2018 8:18 pm
by queries
I think it would be really helpful to have an ability for Amplifier modules to have a "smooth volume changes" capability. Kind of like the smooth controller in Sound2Ctl, it would have the effect of smoothing out sudden volume changes such as from 255 to 62 or the like.

I am working on a wavetable-style module that uses MultiCtl value maps to control an Amplifier volume for an array of sound generators as you sweep across a single value.

So far the concept is working, but I'm running into clicks whenever the volume changes rapidly.

The workarounds so far are 1) change values slowly, or 2) use a notch or lowpass filter on the resulting signal.

Neither of these are ideal of course as they limit the expressiveness of this style of synth.

Now that I think about the Sound2ctl, I am going to see if I can use that as a way to smooth out the rapid changes that I'm making. I am still going to propose this to be added to Amplifier directly.

Re: Amplifier: "Smooth" controller

Posted: Fri Jan 19, 2018 8:53 pm
by iaon
I suggested this for the MultiCtl a while back for similar reasons.

Using the 'Fine volume' controller instead of 'Volume' might help with the clicks.

Re: Amplifier: "Smooth" controller

Posted: Fri Jan 19, 2018 9:27 pm
by queries
Fine volume is a good suggestion for some other cases but unfortunately won't help in the situation I'm in, since I need the volume to go from 0 to 256.

Also a great suggestion to put smooth controller into multictl... in fact that might make more sense than adding it to Amplifier.

I'm going to try using Sound2ctl to smooth things out for now. I know it can change controller values at near audio rates, so hopefully I can get a fairly fast response without the clicks.

I'll post back my findings once I've done some experiments.

Re: Amplifier: "Smooth" controller

Posted: Fri Jan 19, 2018 9:55 pm
by queries
Sound2ctl works as a stopgap! I am able to crank up an LFO pretty fast, and cycle through 16 waveform generators without any pops or crackles!

Here's the module chain to smooth out big controller value changes:

1. MultiCtl, default settings, connected only to ->

2. Amplifier, DC offset initialized to -128 (to represent zero value), connected to ->

3. Sound2ctl, absolute mode off, sample rate 32768, smooth 256, out controller configured to your desired destination controller, connected to ->

4. Either your destination module, or another MultiCtl to customize the signal more or fan it out to multiple destinations.

Then modulate the "value" controller of the first MultiCtl.