First time here? Check out the FAQ!

How do you make an (extreme) Automatic Gain Control?

0 votes

This is related to an earlier question "Why does the DynamicRangeController introduce a 140ms delay?".

I was trying to condition the input signal into a distortion so that it always distorts nicely even if it's a quiet signal. I tried using the DynamicRangeController but it was introducing an audible delay. I realised what I was trying to do was create an Automatic Gain Controller. There's an example of an AGC in the Kyma library... but I didn't understand how it was supposed to work and it was far too subtle for what I wanted. I want all signals, however quiet, to be amplified up to the same level... more or less.

Then I found one way using a InputOutputCharacteristic which I'll post below as an answer. But the question still stands, how would you go about doing this?

asked Sep 30 in Using Kyma by alan-jackson (Master) (3,640 points)
edited Sep 30 by alan-jackson

2 Answers

0 votes

I thought you might find this fun...

Here's an example sound that uses an InputOutputCharacteristic to make an extreme AGC - meaning that everything gets amplified to pretty much full volume however quiet it is.

You pass the signal through the InputOutputCharacterstic. You also use a PeakDetector on the signal and pass its output in as an input value in the InputOutputCharacteristic that you then map to a full or nearly full level in the output values:

Here's the sound file if you want to play with it. It works well on drony sounds. WIth dynamic sounds a bit of judicious tweaking of the attack and release settings of the PeakDetector give interesting results.


answered Sep 30 by alan-jackson (Master) (3,640 points)
0 votes

I've tweaked the Sound so you can set the level of the gain effect which makes it more useable and encapsulated it. It's a bit of a laugh... if you're into that kind of thing.


and here's the sound:

the sound



answered Sep 30 by alan-jackson (Master) (3,640 points)
edited Sep 30 by alan-jackson