Update Audio Compressor AGC Schematic 2

Audio Compression Amplifier /AGC

This is an audio compressor/AGC (automatic gain control) with an astonishing 75db input voltage range. A P-Channel JFET is used as a variable resistance element that is applied as a variable attenuator. Distortion is minimized by keeping the signal voltage across the JFET extremely low (1.3mV). This is an improvement over similar circuits that place the variable gain element in the op amp feedback circuit where it supports high signal voltages and subsequently introduces significant distortion.
AGC attack time & recovery time may be adjusted by altering resistor values. Signal input levels cover the range of 1.5mV to 8.3V. The output signal level is close to the consumer audio standard of -10dbV.

Schematic of Audio Compression Amplifier Circuit

Update Audio Compressor AGC Schematic 2

Circuit function

The circuit consists of four basic sections: Variable attenuator (R2 & Q1), fixed gain amplifier (U1) and amplitude detection (Q2) & Q1 bias control.

R1 provides a resistive load for the dynamic microphone – it may vary from about 150 to 600Ω for low impedance microphones to about 50K for high impedance microphones. If a transformer is used to convert the balanced line to unbalanced, R1 = square of the turns ratio times the microphone impedance.

The attenuation caused by R2 and the dynamic resistance of Q1 is a function of the JFET DC gate voltage: +6V provides no attenuation and 0V provides maximum attenuation.

The amplifier is a textbook non-inverting amplifier using a TL081 op amp. Note that there are many suitable operational amplifiers that may be used and some are better for audio than others. R4 & R5 set the single-supply amplifier bias point midway between 0 and 12V. C2 bypasses this point to ground potential and R3 provides a DC path for the extremely low op amp bias current (perhaps a few picoamperes).

The amplitude detector is very crude as it detects only the positive going signal excursion. When this signal voltage exceeds 0.65V, Q1 turns on and starts to discharge C3 through R10 – the lower the value of R10, the faster the attack time. The attack time must not be so fast that it responds to every peak, nor so slow that it takes too long to bring the signal level down to normal.

When no peaks are detected, C3 continues to charge via R9 thus reducing the attenuation of the variable attenuator. The resistance of R9 controls the recovery time. The attack time is generally one or two orders of magnitude faster than the recovery time. I experimented with a voltage clamp circuit that prevented the gate voltage from exceeding 6V, but found that it was unnecessary.

The JFET (Q1) has a sloppy range for the Vgs off parameter (3 to 6V). This tends to vary the bias clamp voltage, attack time and recovery time. For repeatable results, it is recommended that devices be selected for a tight range of Vgs off.

db website

This is a great reference website that covers db signal level units (dbV in this case) and db signal ratios (voltage gain and voltage attenuation).

For a primer, check out this table of common ratios:

Voltage gain Voltage attenuation
1 db – 1.1 -1db – 0.9
3 db – 1.4 -3db – 0.7
6 db – 2 -6db – 0.5
10db – 3 -10db – 0.3
20db – 10 -20db – 0.1
30db – 30 -30db – 0.03
40db – 100 -40db – 0.01
50db – 300 -50db – 0.003
60db – 1000 -60db – 0.001


79 Oscillographs

Observe the nice sine waves – minimal distortion for both low and high input voltage signals.



This was a fun experiment – the results far exceeded my expectations and I believe that it will likely become a favorite among audiophiles. Going with a split power supply (±15V) would enable it to output studio level signals with satisfactory headroom.

For the future

Intelligent gain control – a means of reducing short term cyclic gain variations (“breathing”).

Undocumented words and phrases – for our ESL friends

headroom (or headspace) –noun –literally, the space about one’s head such as in an automobile –in electronics it refers to excess signal level range that may be required for faithful reproduction of audio sound transients.

Update 11-1-16: Audio Compressor AGC

Reason for update
A legitimate complaint was made that the audio throughput was limited for several seconds after power is applied. This is easily explained by simply understanding that the initial voltage across C3 (same as Vgs of Q1) is initially zero, and this is the point of maximum attenuation of the input voltage divider. Several seconds (compressor recovery time) are required for C3 to charge to the normal working level.

C3 Pre-charge circuit
The solution is to pre-charge C3 to a preset voltage level that is determined via potentiometer R17. The setting of R17 is a function of the sloppy (2:1) Vgs transfer curve of Q1 and the desired initial attenuation of the input voltage divider. In short, set R17 for what works.

Q4 Prechage emitter follower
There is the requirement of charging C3 rapidly to the desired level within approx 1sec. While this may be accomplished by simply using a diode rather than a transistor, the charge time constant may conflict with the charge timer. Emitter follower Q4 offers an extremely low source resistance that will charge C3 rapidly. The base to emitter junction also serves diode that prevents C3 from discharging back into Q4. Since the voltage across C3 is always below about 6V, it never exceeds the Vbe reverse threshold of the transistor.

Q3 Power-on timer
A timer is required to prevent the pre-charge circuit from interfering with normal operation. Timer capacitor C8 keeps Q3 turned on for about 1sec. This can be reduced by simply reducing the value of C8.

Power requirement of the update
After the circuit times out, no additional power supply current flows. This makes it good for battery applications.

Update not tested
While it works OK in my cranial simulator, the update has not been tested. Murphy works in strange ways, so beware! and good luck!


Join the conversation!

Error! Please fill all fields.
  • Brett

    Hi Keith,
    An Excellent AGC/ Compression circuit, you have done.

    Is there a way to calibrate the output voltage for all voltages ?


  • sarath5054

    hi sir how can we detect negative also my aim is to detect both positive and negative because i was working on networking with modems based it is necessary to detect both please help me sir

  • davidtleyahoo-com

    Did some one successfully use 3VDC for this application yet

  • Jim Keith

    Update soon to be posted–corrects long time period required to pass audio after power-up.

  • lehenson

    Hi Jim, this is Larry again, AE6JI is the schematic Posted, the corrected version? And have you tested this with an LM324 or a more modern readily available op amp?

    • Jim Keith

      I have not tested this with more modern op amps, but see no good reason why such will not work well. FYI, the LM324 is over 40years old and the TL081 is approx 25years old. Contrary to what I may have said in the article, the TL071 is be superior to the TL082 for audio. Also, the LM324 may be subject to crossover distortion at low signal levels–not the best for audio. Slew rate must equal or exceed 0.5V /us for reasonable frequency response at high output signal levels.

  • arphelps44gmail-com

    I have constructed this circuit and it seems to work well once it’s up. However, from startup, it takes 20-25 seconds for audio to pass. Is this normal? Any way to reduce this delay time?

    Alan P.

    • Jim Keith

      Good observation–will work on a method to precharge C3 to an initial voltage close to the active Vgs region of the JFET.

  • cdevilscute624gmail-com

    hey can you please help me out with the part of the circuit where the signal gets compressed and how to control the compression ratio and the attack time of the signal.
    Moreover could you suggest me some good articles for understanding the basics of compression
    Please reply as soon as possible

  • prakashilumi-co

    Hey Thanks.
    1. I have selected MMBFJ177 (Vgs (off) 0.8 to 1.5V) mosfet, can you please verify whether this will work or not for 3.3V operation

    2. The Max attenuation formula I think is, Maximum attenuation = min RDSon of Q1 / (R2 + min RDSon of Q1), can you please verify

  • prakashilumi-co

    I would like to apply 3.3V to the circuit, can anyone know what all are the changes and calculations needs to be done.

    • Jim Keith

      It seems to me that C7 may be unnecessarily large for high frequency response–I may not have actually measured frequency response. Reduce the size or eliminate C7 to see what happens.

    • singh-gurbaj5124871gmail-com

      Hey jim, I have a doubt, while using sine wave as input, it has zero dynamics, there is no need for compression only amplifier is enough, so when i use .wav as input it is not working as ac transfer characteristics of amp gives gain only till 1k freq but i need at least 10k. Please help….

    • Jim Keith

      woops, I meant P-Channel. The J176 has a gate-source cut off voltage range of 1 to 4V. A selected device is required.

    • Jim Keith

      This can be made to work if we can find /select an N-Channel device that pinches off @ 3.3V. The output level will remain the same, but the available headroom will suffer. By substituting an LM339 or equiv comparator for Q2 the output level may be reduced (or even made settable via a pot)–in that case, the headroom will be preserved. Note that a low voltage op amp must be selected–I have little experience with low voltage op amps.

Looking for the latest from TI?