I have two SynthDef sounds, one with a 2 second (1 bar) envelope and another that is constant and the frequency gets changed.
I would like to introduce sidechain and temporarily reduce the ‘amp’ amplitude of these sounds on the beat. The perfect solution is a notch (in time) that reduces the amplitude from 1 to 0 on an inverse exponent and then rises from 0 to 1 on an inverse exponent. I.e the fall starts the muting slow and then speeds up and once it hits 0 (on or around the beat) then quickly rises again and slows down as it reaches 1.
The problem is, perhaps, that my inability to know the name, phrase or provide a better explanation for this “amplitude vs time” notch is limiting my search for the perfect function that may already exist.
Please note that I already have the device that produces the sounds and the beat signal, so it is not a simple matter of creating a pbind or a pattern that has a repeating amplitude-shaping function. I can of course drop the amplitude to zero and then back to 1, but that does not sound natural and therefore I am looking for this smooth curved envelope that can temporarily mute the sound down then back up to its correct level naturally.
The three UGens you should take a look at: Amplitude, RMS and PeakFollower. Using these, in combination with methods like linexp, explin, or lincurve to re-scale your amplitude measurements to generate the amplitude you want to apply to your signal.
Note that Compander also provides similar functionality out-of-the-box, but it provides less freedom to have fine-grained control over the scaling.
Thank you for your suggestion, but these only tell me what amplitude to return to after the notch, which may eventually be helpful, but, as yet, I have not worked out how to apply a V-shaped notch (with curved sides - like a tornado) to reduce the amplitude for the sidechain.
I think I know when to apply the notch, which will be a formula based on the bpm to calculate the time after the previous beat or step, since it needs to start reducing the amplitude before the beat.
All I need now is an amplitude-v-time notch ugen. Is there one?
EnvGen? Each segment can specify an arbitrary curvature: a positive curve value “pulls” the line toward the right, while a negative curve pulls it to the left.
There’s no need for a specific UGen for this. You can generate a notch shape using EnvGen, and you can apply the shape to amplitude using *.