www.andyware.com/abox2/library/delays/ These objects use delay objects to operate on signals. Most are the results of an exploration into comb filters. A comb filter has peaks or nulls at interger multiples of the delay frequency. The 'delay frequency' is 1/time. That is to say: A comb filter set at 10ms will have nodes at 100Hz, 200Hz, 300Hz, etc etc etc. With appropriate settings, these can make decent reverbs. Other uses include filtering of harmonically related tones such as 60hz power hum or even musical instruments. useful formula: ABox's sample delay and frequency units are NOT interchangable. To convert from one to the other, use the formula 1/(512*x) It works in either direction, ABox samples to ABox Hertz, or ABox Hertz to ABox samples. The equation appears in most of the circuits below. When building your own delay circuits do be aware that circuit feedback paths have a 1024 sample latency. Sometimes it is helpful to expand a few iterations of the equation you're after, then look for ways to pre-calculate enough terms to make the delay+resonance operate correctly. allpass_filter shows an example of this. comb_filter.abox2 Bandpass peaks at integer multiples of delay frequency. anticomb.abox2 Band reject nulls at integer multiples of delay frequency. allpass_filter.abox2 Similar to a phase shifter. allpass_filter_oops.abox2 An incorrect implementation of the above. The F input specifies the lowest center frequency in Hertz. The lowest frequency is about 43Hz. R specifes the resonance and effectively controls the bandwidth of the peaks. These are examples of recursive filters. Recursion is implemented using the resonator feature of the delay object. Sometimes two stages of delays are needed to work around ABox's 23 ms feedback path. Using two stages allows the same mathematical formula to be implemented via equivalent network transformations. Such manipulations are left to the interested reader as an exercise. lim_delay.abox2 Resonator with limiter. Intended for highly resonant comb filter operation. The feedback path is monitored and the resonance temporarily reduced when nessesary. If driven by a noise source, this can be used to produce passable wind instruments. At high resonance, positive R effects the even harmonics, negative R effects the odd harmonics. Musically speaking: octave/tonic or just-fifth. Be aware that the device is somewhat belligerant and more than a little tempermental. It can and probably will produce huge output values that may saturate the rest of the circuit. If this happens, and you see NAN or INF on a readout, you'll have to press Play a couple times to clear the values. delay_cascade.abox2 One element in a cascade. delay_cascade_16.abox2 16 of the above, about 371ms delay_cascade_example.abox2 Example cascade. To make a longer delay, add more stages. Each element subtracts it's maximum time delay from the input D value. Note the use of 1/(512*t) to convert from seconds to samples. Granted, this is not the most efficient way to implement a digtal delay, but we do what we can eh? delay_sequencer_del.abox2 delay_sequencer_mem.abox2 These two objects are different ways of building multi-tapped longer delays. They can be used as a seqeuncer by injecting a short signal in the input and extracting the delayed signal at various time spans. delay_sequencer_del.abox2 uses a chain of delay_cascade_16 objects and is configured by specifying the delay time between taps. delay_sequencer_mem performs a similar operation but uses the memory buffer of a file object. It is configured by specifying the total loop time, then assigning fractional values for each tap.