Emulating Vintage Echo Machines by DSP

 

 

The OMF-1[1] and OMF-2 Projects

 

 

 

 

This project is an attempt to recreate a range of echo sounds reminiscent of recordings from the 60's. These classic echo sounds were created entirely by electro-mechanical means; typically by magnetic tape loop moving past record and playback heads, also by magnetic drums where the heads were arranged along the circumference of the drum. Not only does the use of magnetic media leave an imprint on the sound, also irregularities in motion transport add its charm.

 

Vintage technology is used, where practical, to replicate a sound produced by vacuum tubes – sought-after by musicians. The emulation of electro-mechanically derived echo is implemented in DSP. The project thus is a mixture of vintage and modern-day technologies.

 

This project is a tribute to the fine instruments built by Meazzi, Binson, Watkins, Fulltone, Roland and others.

 

For some sound files, please see the appendix page.

 

Depicted below is the layout of components: a vacuum tube-based dry signal path (center of picture) integrated with a digital signal processor (DSP) subsystem (green PCB on the left).

 

 

 

 

 

 

 

 

 

Close-up view of the components around the vacuum-tube and DSP module.

 

 

 

 

 

 

 

 

 

 

 

 View of the front panel layout.

 

 

 

 

 

Echo processing is handled by the DSP subsystem which is based on an Analog Devices ADSP-2185N 80 MIPS DSP chip. The DSP subsystem uses a TI TLV320AIC23B, 24-bit CODEC for A/D-D/A. The DSP subsystem also handles the front-panel, user-interface switches and includes a RS-232 port (USB capable) for host-based deeper edits.

The rear panel contains a fused IEC power plug, 1/4 inch audio jacks, and a RS232 socket for DSP communications. The RS232 connection can be used for deeper editing if that becomes necessary. It also is used for updating FLASH memory with new DSP code.

 

The DSP chip needs special code to emulate various echo patterns. The code for this particular DSP chip is written in a special Analog Devices assembly. Once finalized, the compiled code is written to on-chip FLASH memory and is ready for use next time the unit is powered up

 

 

The dry-path circuitry is adapted from Meazzi J6H/F5H models. These employ an ECC83 grid-leak biased, pre-amp and follower as shown below.

 

 

Meazzi J6H/F5H work-alike schematic.

 

 

 

 

 

 

 

 

 

Measured frequency response of the vacuum-tube based dry path. The -3dB points apparently are approximately 40Hz and 15 kHz. Evidently, this kind of circuit does sound more HIFI and may benefit from some kind of tone-shaping post processing.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

An overview of the different processes is as follows:

 

1. CODEC inputs require line-level signals (input impedance ~10K Ohms, voltage swings 2V max). The raw signal from the first triode stage is of high impedance and need to be matched prior to digitization. This matching is done with a ½ NE5532 low-noise op-amp circuit and applied as a mono signal to the CODEC. The CODEC A/D operates at 48 KSPS (thousand samples per second). which translates to 24 kHz audio bandwidth.

 

2. Magnetic tape-based echo devices does not require much bandwidth which is helpful for DSP implementations where processing power and fast memory need to be conserved. Decimating (a sub-sampling procedure) the dry signal by a factor of 5 results in 9600 SPS, or translated in audio bandwidth, 4800 Hz. To prevent aliasing, decimation requires the input restricted to the intended bandwidth. A 67th order FIR low-pass filter is used here. Output from the anti-aliasing filter is passed through a band-limiting filter (approximating magnetic tape bandwidth), its output is applied to a delay line as shown below.

 

 

 

 

 

 

 

 

 

 

3. The echo delay line consists of some 6000 elements, arranged in circular array. In a way similar to a magnetic tape loop –- at each clock tick the oldest sample drops off to make place for the newest. In software this is done by modulo pointer arithmetic (automatically resets when the end of the array is reached). To give perspective of what happens; at 9600 SPS a new sample arrives every 0.104 milliseconds.

 

 

4. Implementing a 6-head echo is simply taking 6 samples from the circular array. For example, for Echomatic 2, playback head #1 is 103ms delayed. So we need to index the delay line some 989 ticks back etc. Keep in mind data taken from the delay line is in pristine state at this point. To resemble tape machines, a few imperfections, such as wow and flutter (W&F) and tape saturation need to be applied.

 

5. To emulate ever-diminishing echoes, a small fraction of output from one or more heads is applied to a feedback path. This feedback path is structured to enable circulating echoes to sound increasing darker and a bit rougher as they die away. This is achieved by passing the feedback signal through a tone-shaping filter and non-linear amplitude transform prior to mixing with the raw input.

 

 

6. Finally, data from the playback heads are scaled and prepared for eventual conversion to analog form. This involves up-sampling from 9600 SPS to 48K SPS by interpolation, a reverse process of decimation.

 

7. Output from the playback heads is routed to the stereo-output jack and applied to an analog mixer feeding the grid of the ECC83 follower stage.

 



The OMF-2 Project

 

This was intended to be a backup unit running the same software and DSP processor. However, a slightly-different approach was taken with the analog interface circuits. The OP-Amps were replaced by a dual-triode tube to handle the interface between the tube signal paths and the DSP audio I/O levels.

 

OMF-2 hardware was built in a recycled 1U rack. It is a little roomier than OMF-1's rack. Note the large copper PCB that serves as ground plane.

 

 


 

 

 

 

 

 

 


APPENDIX

 

OMF-1 Sound Clips

 

An early recording emulating Echomatic 2 echo patterns.
http://www.johanforrer.net/Guitars/OMF-1/PeacePipe_OMF1_AC30.mp3


Version 1.4 firmware recordings. All recorded with the same guitar, OMF-1 echo, and AC-30 clone amp, miked up with an SM-58 mike. The guitar is my "plywood special" fitted with hand-made noise canceling, single-coil pickups. Charlie-Hall's "cutting edge filter" was used on the output, between the echo and the amp.

Please note that no EQ or other changes were made to the recodings. The mixer was set for an almost-flat response.

1) Dry sound demo (wet level turned down). AC-30 normal channel. Neck pickup.
http://www.johanforrer.net/Guitars/OMF-1/DemoFiles/OMF-1_NIVRAM.mp3

2) Echomatic 1 emulation. AC-30 brilliant channel.

Bridge pickup.
http://www.johanforrer.net/Guitars/OMF-1/DemoFiles/OMF-1_FBI.mp3

3) Echomatic 2 emulation. AC-30 brilliant channel. Middle pickup.
http://www.johanforrer.net/Guitars/OMF-1/DemoFiles/OMF-1_Sleepwalk.mp3

4) Echomatic 2 emulation. AC-30 brilliant channel. Middle pickup.
http://www.johanforrer.net/Guitars/OMF-1/DemoFiles/OMF-1_GoldenStreet.mp3

5) Custom emulation. DI recording with Roland Cube 30X AMP, JC-clean setting. Bridge pickup.
http://www.johanforrer.net/Guitars/OMF-1/DemoFiles/OMF-1_LonesomeMoonride.mp3


 

 



[1]              Johan Forrer, December 2010. OMF-1 stands for "Oregon Music Factory, MK 1".