Automatic Gain Control
The Automatic Gain Control (AGC) block in Tesira is a powerful dynamics processing block that regulates the level of an audio signal. It manages the gain of an audio signal and constantly strives to bring the level of the signal closer to the specified Target Level.
A classic problem with some AGC's is that they frequently adjust the gain at an inappropriate time. For example, an unsophisticated AGC might react to a laptop fan spinning up, or a person rustling papers near a microphone. The result is that those undesirable noises get amplified even louder than normal, the noise floor of the system increases, and in a worst case scenario the system starts to go into feedback. Biamp's AGC is designed to prevent these types of problems by allowing strict control over when the AGC adjusts the gain of the signal.
The AGC block in Tesira requires three criteria to be satisfied before it will adjust the gain of the input signal. When all three criteria are not fulfilled, the gain will freeze at its last value and will not move. These three criteria are designed to prevent the AGC from adjusting the gain at an inappropriate time.
The Minimum Threshold setting in the AGC block is the first criteria that must be satisfied. This is a simple setting that disallows gain adjustment by the AGC when the level of the input signal is below the specified Minimum Threshold level. When appropriately set, the Minimum Threshold prevents the AGC from acting on very low level signals.
The second criteria that must be fulfilled is that the input signal must be a human speech signal. Biamp's SpeechSense™ algorithm is used to differentiate between speech and non-speech signals. This prevents the AGC from acting on non-speech signals like laptop fans, paper rustling, keyboard typing, etc. Note that the non-speech sounds won't be rejected; they will still be heard at a normal volume, but the AGC will not change its gain in response to those sounds.
If your input signal is not a microphone, then you can disable SpeechSense by turning the Speech mode to Off. This is useful when using the AGC on music or program signals.
The last criteria that must be satisfied has to do with the signal-to-noise ratio of the input signal. This setting is accessed by clicking the "Advanced" button in the AGC dialog, which brings up the "Speech Mode Options" dialog. Since the AGC block is able to measure the level of the noise floor, it can calculate the signal-to-noise ratio (which is just the Input Level minus the Noise Floor Level). This allows you to set a minimum threshold on the signal-to-noise ratio of the input signal, such that the AGC block will not make a gain adjustment unless the signal-to-noise ratio is above your specified threshold. Use the Minimum SNR slider to select an appropriate threshold.
This is useful for situations where microphones are placed in close proximity to one another. When a person talks into a microphone, they are getting picked up by the other nearby microphones as well. However, the signal-to-noise ratio in the distant microphones will be significantly lower than the signal-to-noise ratio of the microphone that is directly in front of the talker. Therefore, if the Minimum SNR setting is set correctly, only the AGC on the closest microphone will adjust its gain, and the distant microphones will not.
In the Advanced dialog, the SNR meter will show up red when the signal-to-noise ratio is below the specified threshold, and green when it is above the threshold. Therefore, an easy way to set up the Minimum SNR to the appropriate setting is to talk into the microphone from a normal distance and ensure that the meter is green. Then, back away from the microphone and speak into it at the same volume, and the meter should remain red while you're talking.
If your input signal is not a microphone, then you can disable the Minimum SNR criteria by turning the Speech mode to Off. This is useful when using the AGC on music or program signals.
In addition to the settings described above for the three criteria, the AGC block includes a few other settings that allow you to modify the behavior of the AGC.
The Target Level is the level that the AGC is always striving to output. If the level of the input signal is lower than the Target Level, the AGC will add gain. If the level of the input signal is higher than the Target Level, the AGC will subtract gain.
Minimums and Maximums
The Maximum Gain and Maximum Attenutation settings allow you to place limits on the amount of gain that the AGC is allowed to add or subtract. The Maximum Gain should always be set such that it is well below the feedback point of the microphone. This will prevent the AGC from putting the system into feedback when it is adding the maximum amount of gain to the signal.
The Maximum Gain Adjustment Rate places a limit on how quickly the AGC can change its gain value. Higher rates will allow the AGC to be more responsive to sudden level changes, but if set too high it might cause the gain to swing around too wildly. In general, microphone signals usually use moderate or high rates, whereas music or program signals usually use lower rates.
The Hold Time setting determines how long the AGC block will hold the last gain value while there are no qualifying input signals. In other words, if the three criteria described above are not met for the amount of time specified in the Hold Time, then eventually the AGC's gain will reset back to zero. The Hold Time is useful for ensuring that the AGC doesn't have to readjust its gain when the talker stops talking for a short time.
Additionally, there are some situations where the actual Hold Time will be shorter than what is specified in the Hold Time setting. The maximum Hold Time must be "earned" by speaking into the microphone for a significant period of time. For instance, if the Hold Time is set to 60 seconds, and you speak into the microphone for only two seconds and then stop talking, the AGC will not hold its gain for the full 60 seconds because it was not fully "earned". However, if you speak into the microphone for at least 10-20 seconds and then stop, then the AGC should hold the gain for the full 60 seconds (or close to it).
The Speech On / Speech Off button at the bottom of the AGC dialog selects whether or not the AGC block is sensitive to speech signals. If the AGC is being fed with a microphone signal in a typical spoken-word application, then Speech mode should almost always be on. If the AGC is being fed with a non-speech signal (e.g., music, PC audio, DVD audio, etc.), then Speech mode should be off. Also note that singing into a microphone is not considered speech, and therefore Speech mode should be off for any musical applications.
The AGC block has a built-in limiter, but it is a bit different than typical limiters. The AGC's limiter is a clip limiter, which ensures that any gain added by the AGC will not result in a clipped signal.
For instance, imagine a situation where the AGC is adding +8dB to a signal. Suddenly, a signal comes through at +20dBu. If the AGC adds +8dB to that signal, it will be above the clipping point of +24dBu. As long as the AGC's limiter is activated, it will temporarily stop adding gain to the signal so that it doesn't clip.
Side Chain input
The optional Side Chain input can be enabled when the block is initially created (or by right-clicking on the block and choosing “Edit Block Parameters”). When the Side Chain input is enabled, the audio signal connected to the Side Chain (SC) input is analyzed by the AGC block instead of the input signal. The AGC calculates the amount of gain required to bring the Side Chain signal to the Target Level, and it applies that amount of gain to the input signal.
Each AGC block has a logic output on the bottom of the block. This logic output will generate a logic HIGH signal when the AGC block is actively making gain adjustments. In other words, if all three criteria described above have been satisfied, then the AGC's logic output will go high.
This logic output can be used as part of a speech detection logic circuit that leverages the AGC block's SpeechSense capabilities. This could be used to reliably determine when someone is speaking into a microphone (using more sophisticated methods than just measuring the input level of the microphone) and triggering other events to happen, like automatically panning a camera to that microphone location.