Digital delay

Mikko Helin MHELIN at tnclus.tele.nokia.fi
Mon Jul 28 12:27:04 CEST 1997


Matthew:

Atmel's got nice microprocessors, but you are better to use a dsp
like Motorolas 56002 EVM kit or Analog Devices SHARC, if you
prefer programming over digital logic circuits design. For later
you need couple of nice A/D and D/A convertors like Crystal's
CS4330 DAC and CS5330 ADC, serial-to-parallel (74HC595) and
parallel-to-serial (74HC597, IMMS) shift registers (2 pcs each
for 16 bit word), 74HC590 syncronous counter for clock generation
for ADC and DAC, and a programmable counter for address generation
for SRAM memory (two 8 x 256 kbit srams) and some and-or-or-gates
and 74HC74's for logic. Timing is everything here, so you are better
to simulate all logic work by software. Basically  operation is simply:
convert the serial datastream from ADC into parallel form to shift register's
latch, use word clock to start a two-phase operation where data is first
read from sram into parallel-to-serial shift reg's latch (but shift reg is
not yet updated), then write data from serial-to-parallel shift reg's
latch to sram into same address, then when word clock goes up again
update parallel-to-serial shift register from it's latch, and increment
address counter, which will return to zero when it reaches programmed
value (or load that value into it's counter when it reaches zero, if
it's downwards going counter).

Study schematics from Crystal Audio Data Book (1994), there are some
examples of ADC-serial-to-parallel shift reg design.

Performation should be excellent, and you can use a quite a range of
sample frequencies with there tiny converters (from 5kHz upto 50kHz,
IMMS). If you use 32 kHz sample rate, you should get max. 4 sec
delay time with 256kword of memory. You can feedback some delay back to ADC,
and as this is a stereo delay, you can feedback left out channel into right
channel input (or to both) to create ping-pong-delay-fx. If you modulate
delay time, you can create other fx's like chorus, flanging and vibrato,
and maybe crackle and pop.

One problem may be how to interface the programmable counter (such as
in PC's), and I don't know any 18-bit prog counters anyway. Maybe you
could use a pc's parallel port or Atmel's microprocessor here for interface.

Hope this helps,

Mikko

>     Hello All,
>     
>        Now where am I....
>     
>        Ahem... I had a quick peek at the HT8955A specs and although the chip 
>     may do a lot of useful stuff but doesn't cut the mustard. I really want 
>     44.1Khz 16bit sampling for this thing.
>     
>        Thinking about this a little more I realised that because I am after a 
>     straight echo (albeit with variable time) I do not need to interpolate 
>     digital values in the delays memory as only the length of the buffer in 
>     samples is changing as opposed to the length of the buffer in time. e.g. 
>     the time to play each sample out is the same as the time to read each 
>     sample.
>     
>        This board would also leave me with the ability to generate very short 
>     echos and delays (which I like for screwing about with drum machine snares 
>     and stuff).
>     
>        I am thinking of a microprocessor based design but have very little 
>     experience of interfacing to CPU's at an electrical level (only at a 
>     logical level if you know what I mean). I would opt for CPU's simply 
>     because I am a programmer and have spent most of my life up to my neck in C 
>     and assembler therfore, for me, it is an advantage. It does also allow a 
>     little more flexibility in the sound and effect generation properties of 
>     such a circuit. Any pointers to this kind of stuff (digital design) are 
>     VERY welcome...
>     
>        I do like the idea of a bucket brigade analogue delay with din syncing 
>     that would work very nicely but I want maximum signal quality. Further with 
>     a reasonble embedded CPU or DSP the "warm" effects of could be mimicked.
>     
>        BTW, check out atmel (www.atmel.com) they have some nice things.
>     
>     
>        Matthew.
>     



More information about the Synth-diy mailing list