|Accutronics AMC2BF3 spring reverb tank
All that remained was to make a driver and pickup amplifier circuit - how hard could that be? Well, turns out it is not completely trivial, but this is my best throw at it so far and I am not unhappy with the results (though there are some issues, see the end of the article).
A good resource on the topic is found at Elliot Sound Products, and the circuit described here is largely based on that page. But, lazy as I am, I also ignored a lot of the advice and simplified the design a bit.
First things first, here is a picture of the inside of reverb tank. The input coil on the lefts transduces the electrical signal to vibrations in the strings, which are attached to little magnets. The sound waves travel through the metal, with many reflections. On the right, the output coil picks up the resulting movement, which can sound like echoes of the original input.
The basic strategy is to drive the input hard, because the transfer efficiency between the coils and springs is quite low. Then on the output, a sensitive amplifier with high gain is needed to restore the signal to its original level.
The second amplifier (U1b) drivers the spring reverb. The ESP pages suggest that a typical opamp does not give enough current to properly drive a reverb tank, and the TL074 has actually very limited output current, but I found this circuit can easily drive it to audible levels (you hear the sound in the springs), and I decided that that should be enough.
A bit more detail on that: when driving the tank one has to take voltage and current into account. My tank has a nominal impedance of 150 Ohm at 1 kHz, which means a 10 V drive at 10 kHz gives 7 mA current, about what is recommended by Accutronics (and also pretty much the limit of the TL074). But the reverb is essentially a coil, so impedance depends linearly on frequency. At 100 Hz it requires only about 1 V to drive 7 mA (a bit more because of DC resistance), but at 10 kHz it would take 100 V, which we obviously won't get from our 12 V power supply. So, at the very least we cannot drive the tank as recommended, and probably we will get some serious distortion. However, the spring washes out the sound completely, hiding the distortion.
Back to the circuit. U1b acts as a voltage-to-current converter, with R9 setting the ratio. C4 and C5 form again a high-pass filter (cutoff frequency 330 Hz), such that no DC current can flow through the coil. R8 reduces the gain at high frequency, where the coil impedance is high. All these values were found with experimentation, and in retrospect hardly make any sense, so I recommend to experiment. In theory, R9 should be higher to reduce overall gain, and R8 should be lower to reduce high-frequency gain where the opamp will clip. In practice this worked for me, and one can always reduce the input level if gain is too high.
The pickup (recovery) amplifier is also based on the ESP page. U1c is a non-inverting amplifier, with a gain of 45 set by R3/R2. C2/C3 reduce the gain to 1 for DC, such that the offset error of the opamp is not amplified. C1 and R1 are designed to improve high-frequency response, and should be adjusted for sound (or omitted completely).
While this amplifier works well in general, the high gain makes it sensitive to pick up noise. The reverb tank comes with a twisted-pair wire, which I found does not provide enough shielding. The wire and amplifier are very good at picking up 50-Hz related and high-frequency noise. I improved the situation a lot by replacing the twisted pair wire with a piece of coaxial cable; in addition the wire connection and feedback elements should be as close to the opamp input as possible and never far away from a ground wire/trace. Noise is still an issue; I added C7 to damp high frequencies. Alternatively, one can adjust (increase or remove) R1 and C1, but I found it is a trade-off between clarity in the sound and noise rejection.
Finally, the signal is mixed on the wet/dry potentiometer and inverted again by U1d. The output is normalled to the second input jack to create a feedback loop; the sound of this is not spectacular but it is an easy addition.
ResultsHere is a sound example, and I think it is fair to say it sounds like reverb. For more percussive sounds (not in this demo) it gives metallic 'ploink' sounds, even with quite low input level. Finally, when knocking the tank or touching the springs, all kinds of craziness comes out...
I am quite happy with the result, but improvements are possible. It is probably worth to try using an NE5532 opamp in stead of U1b and U1c. For the driver, it suits because it can deliver larger currents; for the pickup amplifier it may allow for lower noise (I doubt one can hear a difference on that, though).
The feedback path is not optimal, as it includes the wet/dry pot, so one is feeding back the dry signal aswell. However, the feedback behavior doesn't change dramatically when using only the wet setting.
The main issue with this remains noise pickup from external sources. It may be worth to try more shielding, perhaps even the entire tank (wrapping in grounded aluminium foil for example), and/or modify the pickup amplifier design.