08 May 2007

traditionaldelay~

traditionaldelay~

This block delays an incoming signal (two first inlets to allow for mono and stereo signals) and outputs the wet, delayed signal(s) on one channel. The original signal is not throughput. It works like the traditional delays, this means with a feedback loop. Users can vary them by using the two other inputs. In the display one can see the current position.

version

v1.0: built 8/05/2007 with Pd v0.40-2 [pd] [pdf]

interface

Input 1, 2: the signal you want to delay. If only input 1 (or 2) is connected, only output 1 (or 2) will give a result.
Input 2: the delay time parameter DLY. It specifies how long it takes in milliseconds before you hear the following repetition. It ranges from 0msec tot 3000msec (3 seconds). This is not only the maximum value of the slider, but also the length of the delay line used in the implementation.
Input 3: the feedback parameter FBK. The signal is attenuated with this value divided by 1000. In other words, you can vary the level from 0 (no delay audible) to 0.999 (maximum amplitude of the delayed signals, keeps on repeating as if it never ends) with steps of thousands.

Output 1, 2: the delayed, wet signal

implementation

The delay itself is pretty simple: the incoming signal is read by a delread~ objects that write the signal into delay lines called $1-delayLeft and $1-delayRight and with length 3000ms. Although there's no visible loop, this is how the loop is formed: after a delay time DLY the associated delread~ object reads what's in the delay line, outputs it and sends it back into the delwrite~ object. Before outputting the delayed signals they are attenuated every time by a factor FBK ranging between 0 and 0.999 (with 1 clipping is to easy), in steps of thousands. That's why the control parameter lies between 0.001 and 999.
The DLY parameter of each channel is offset by the addition with the two last inlets.
Just before entering the outlet the signals are high pass filtered for very low frequencies to not reach the outlets.
TO DO: It's possible to also implement an HF DAMP function which simulates a retro analog delay effect. It's nothing more than adding a lowpass filter with fairly high cutoff frequency (or even adjustable) in the delayline, as can be seen in the reverb blocks of this project.

No comments: