Memory Expansion for DeltaLab Effectron I (ADM1020)
I have several digital delays, but they all have approx. 1 sec maximum
delay. While you can get longer delays in various FX boxes nowadays, I
really want the easy-access user interface of the old Echo units, where
you can continuously change the length and feedback with a dedicated knob.
I also prefer discreet (well, MSI) adress counters to DSPs or ASICs, as
you can hack the counting / reset more easily.
After a fruitless search for a cheap digital delay that fits my needs, I decided to expand the memory of my DeltaLab Effectron I. This box looks like the cheapest one of an entire line of FX devices, and while covering Flanger / Chorus / Echo delay ranges, the Echo section is quite basic. You can tune it from 250msec to 1sec with a knob that is shared by the LFO modulation depth, you can set positive or negative feedback (with a nice HF rolloff), and that's about it.
I wanted to have at least the double delay time (2sec is still not much, but it's way more useful than 1sec.), a non-deteriorating infinite repeat switch ("Loop"), and the ability to record a 1sec Loop first and then double it to 2sec, to add more input signal on the 2sec loop afterwards.
As it turned out, this is quite easy to accomplish on the ADM1020 (and probably on other DeltaLab
DeltaLab used a special type of Adaptive Delta Modulation (ADM), which they continuously improoved over the years. You might take a look at US-Patents #31720, #4190801, 4254502, #4305050, #4313204 and #4462106. This is much more sophisticated than the cheap ADM projects that were published in various magazines as musical diy projects. (Elrad Delta-Delay, and others) The great thing is that the patent text even has component values shown !
While the whole ADM method is just of historic interest today (The main advantage was that you got long delays with minimum RAM size ...), the lucky electronics hacker benefits from the 1bit
data stream that was fed into a dedicated input pin of a RAM chip, and was read out of the RAM chip at another dedicated pin. Allthough there was some multiplexing needed for the adress inputs
(CAS, RAS), the data stream is handled as easily as you could dream of.
For memory expansion, you just solder a new RAM chip on top of one that's already in the circuit, simply soldering all pins down to the corresponding pins of the original chip, except the two pins for Data In and Data Out, which are bent sidewards. The new RAM is thus supplied with all the voltages, strobes and adresses of the original one, and you can connect the Data path of the new RAM in series with the Data path of the old RAM with minimum re-wiring.
How is it done ? The following pictures should explain it all. (The new RAM chips are drawn separate from the old ones, but they should be mounted on top of the old ones, as just described.)
You need two additional switches - there is enough blank space on the front panel. I have tried the modification just as it's shown in the drawing, and in a second step I've used electronic switches instead (4053). There was not much difference in performance, so I decided to publish the easy version.
If you only want to expand the time of the delay, you don't need switches at all. Just connect all 6 RAMs in series (data wise). The way Ive done it, you can run it in 1sec mode, fill both halves of the RAM in parallel, and then make a seamless switch to double the loop time. This is one of the features I really wanted, and it works well with just two 10k resistors for "normalizing" the data path, and overriding this with a different, lower impedance, data path when the switches are closed.
Warning (as usual):
While I have actually built this into my ADM1020, I take no responsibility if it does not work on yours, or if you damage anything. It's at your own risk !
Good luck, and give me feedback if you're doing similar things, or if you have a long Delay (> 4sec) for sale.