One of the first stomp boxes I made (and arguably my favourite so far) is the Hollis Flatline Opto Compressor.

Here is John’s original schematic amended to show the topology a little more clearly:

Hollis Flatline Original Schematic

The first stage of the TL072 dual op-amp is configured as a non-inverting amplifier.

Now,  excluding the effect of the light dependant resistor (LDR):

  • Minimum gain (1+(Rf/Rg)) equates to 1 + 220/110 = 3
  • Maximum gain equates to 1 + 220/10 = 23

So the voltage gain is varied by the sustain control between +9.5 and +27.2 dB.

However, the gain of the first stage is affected by the resistance of the LDR.  John Hollis doesn’t share his thoughts regarding the off (dark) resistance of the LDR so we will have to speculate.

The LDR/LED combination can be a home-grown affair (buy an LDR and an LED and glue them into the ends of a bit of opaque tube or heat-shrink) or (as a number of people have suggested) can be a proprietary resistive photocoupler. The Perkin Elmer/Excelitas Vactrol VTL5C series and the Advanced Photonix/Silonex NSL-32 series have been mooted.

If we trawl through the Perkin Elmer and Silonex Data sheets and application manuals it turns out that the VTL5C2 and the NSL-32 have very similar specification on paper and are suitable for our purposes, having a relatively slow decay time.  It turns out that VTL5C2 is physically larger and considerably more expensive than the NSL-32.

The off resistance of the LDR in these devices is in the order of 1M Ohm and a full-on resistance of about 500 Ohms.  This suggests we can redo our calculations on voltage gain:-

220k in parallel with 1M0 is approximately 180k and 220k in parallel with 500 Ohms is approximately 498 Ohms (say 0.5k).


  • minimum voltage gain (dark) = 1 + 180/110 = 2.6
  • maximum voltage gain (dark) = 1 + 180/10 = 19
  • minimum voltage gain (light) = 1 + 0.5/110 = 1.0
  • maximum voltage gain (light) = 1 + 0.5/10 = 1.0

We can see from these calculations that if the led is (full) on, the voltage gain of the first stage is reduced considerably.

The second stage is an inverting amplifier with a gain of -47k/10k = -4.7

The purpose of the second stage is to take the output voltage from the first stage and use it to drive a full-wave bridge rectifier (diodes D1~D4) which in turn drive the LED.  The LED is optically coupled back to the LDR so as the voltage on the first-stage output rises enough to turn the LED on, so the LED causes the resistance of the LDR to fall and the gain of the first stage to drop with a corresponding reduction in first-stage output, which reduces the LED current, etc.  and so we have dynamic-range compression. The harder the first stage drives, the more its gain is pulled down by the second stage.

For the guitar signal going through the device there is a very simple and clean path – which for me makes this design very attractive as I use it on an acoustic guitar as well as electric.

Here is the schematic I worked up a schematic for a stomp-pedal based on this design:


I made a number of changes and a number of additions to John’s basic design. Firstly, the input resistor is reduced from 10MOhm to 2.2MOhm. This is to reduce potential switching-thump when switching the effect in and out and because 10MOhm resistors can be noticeably noisy.

R2 and C1 form a low-pass filter with a corner frequency of 725kHz.  This is to filter out and RF that might get into the system.  C2 and R4 form a high pass filter with a corner frequency of 16Hz.  The values are changed from the original to again eliminate the 10MOhm resistor which may be more noisy than a 1MOhm resistor.  R3, D1 and D2 provide protection for the op-amp input.

The 220k feedback resistor in the first stage has been replaced by a 100k resistor and a 500k preset.  This allows the gain structure to be preset to match the LDR/LED combination and still have a useful range on the sustain pot (which I’ve called “squeeze” in my version).

I used 1N34A germanium diodes for D3~D6. I’ve had them from two different sources and while they are not marked as 1N34A, they are clearly point-contact diodes. There’s nothing special about germanium diodes – we are looking for low forward voltage drop – so BAT43 Schottky diodes would do just as well.

D7, D8 and R11 protect the output stage of the op-amp.

The design has true bypass and uses R.G.Keen’s Millennium Bypass design to provide LED indication.  R15 may or may not be required depending on the exact nature of the combination of Q1 and LED2. The JFET (Q1) may be substituted with anything that works (suck-it-and-see!), such as J201, J112, J113, 2N5457, 2N5484, 2N5485, etc.

D9 (BAT43) is a schottky diode; chosen for a very low forward voltage drop and could be substituted for anything suitable (e.g. 1N5817/8/9).  Click on the images below for larger versions.


Clean Squeeze general view

Clean Squeeze Internal ViewClean Squeeze PCB




I may consider providing pcbs if anyone wants to make this design.  Leave a comment to express interest. 


Here are the PCB design and overlay for the above prototype (click for bigger images):

P169SV  P170SV


Q1 could be 2N5457, 5458, 5459, 5484, 5485 or any jelly-bean n-channel JFET. You need to choose a value for R14 to set the brightness of the LED and a value for R15 to ensure the LED goes out when the effect is switched out.

D10 could be 1N914. D1 & D2 can be omitted.

You can reduce the value of C4, but you may affect the low-frequency response of the circuit.

The PCB design allows for a film capacitor or an electrolytic capacitor.

D9 could be BAT42 or BAT85. BAT43 has the lowest Vf of all the common Schottky small-signal diodes. At a pinch, D9 could be 1N4148 or 1N914.

Have fun.  svfavicon.png



9 Responses to Clean Squeeze – Hollis Flatline Opto Compressor

  1. jussijaatinen says:


    I´d like to build this. Is it possible to order a pcb from you?



  2. jussijaatinen says:

    Ok. Thanks a lot anyway. I try to make it myself. 🙂


  3. rankotomic says:

    I have just built this and it works fine (I used VTL5C2). However, I am just curious about relation of C3 to attack time – is there an exact ratio, or formula? I ask this because I thought of having some kind of rotary switch with 6 capacitors, so I could adjust attack time with that.

    • SmudgerD says:

      As far as I recall from reading up on Vactrols, the LDR sensor exhibits a memory effect (light history) so the dynamic of the device depends on the nature of the music and how long the music has been playing. Consequently there’s no simple mathematics for determining the attack time – it’s a case of suck it and see. There’s no reason why you shouldn’t switch the capacitor but you might find that there’s not much point in anything other than ‘slow’ or ‘fast’ – and a toggle switch would take up less space. If you only had two caps, you could use the toggle switch to put the larger value in parallel with the smaller value, which may help with switching noise. HTH

  4. jussijaatinen says:


    I have built this, but have trouble with connectors and pedal switch. Could you explain, should I connect some pins together in switch or not? Let’s say, upper left is pin one and upper right pin 6: should I connect 2 and 3 together and also 4 and 5? I have regular 3 x 2 switch. What is the type or model of the plugs you have used?



    • SmudgerD says:

      The 1/4″ Jacks are standard plastic 3-pole switches with breaking contacts. The switch is a standard DPDT stomp switch. Assuming you made my PCB design, you need to wire it exactly as drawing P169SV above. The wires marked IN, OUT, SW coming from the switch need to connect to the pads on the PCB marked IN, OUT, SW respectively. Also the battery wires need to connect to B+ and B-. Note that drawing P169SV is the right way up for populating the PCB with components but upside down for final wiring. Refer to photo P102SV above for final wiring the right way up. HTH

  5. jussijaatinen says:

    Ok, I fix it now. Somehow led2 doesn´t shine at all. I take r15 away but still nothing…..

    • SmudgerD says:

      Well, the millennium bypass circuit is not guaranteed to work every time. Try a different JFET or a different LED along with different values for R15.

Leave a Reply

Set your Twitter account name in your settings to use the TwitterBar Section.