09 May 2007

multitapdelay~ / reversedelay~

multitapdelay~ / reversedelay~

These blocks are derivatives of the very general stereomultitapdelay~ block. They represent specific cases that are nice to use in practice. The multitapdelay~ has 10 delay taps that each are DLY (delay time) delayed and the next tap is always FBK (feedback level) attenuated. One can choose which taps are played back. The new settings herefore work only when the FBK is touched again. An argument must be specified when one wants to use multiple delays in one patch. The reversedelay~ does exactly the same but each tap will incremently play louder.
For both effects one can choose to give a pingpong effect by adjusting the panning of all taps. The uneven taps evenly go left, the even taps evenly right for positive PAN values.

version

v1.0 [pdf]

pan~ v1.1 [pd]

v1.0: built 9/05/2007 with Pd v0.40-2 [multitapdelay~.pd] [reversedelay~.pd]

interface

Input 1: the signal you want to delay.
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 the length of the delay line used in the implementation and is thus an absolute maximum.
Input 3: the feedback parameter FBK. The first tap is attenuated (amplified) with this value divided by 100 (1000) for the multitapdelay~ (reversedelay~). 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 hundreds/thousands. The system can't get instable because there are no feedback loops involved. But when the FBK value is 100 (internally 0.1) for the reversedelay~, the last tap is at its maximum, being as loud as the original signal.
Input 4: the panorama parameter PAN. The value ranges between -127 and 127. They are applied evenly to each tap, but the uneven ones with a reversed value.

Output 1, 2, 3, 4, 5, 6, 7, 8, 9, 10: the delayed, wet taps
Output 11, 12: the delayed, wet stereo signal.

implementation


At the left the delay part is shown. Each tap will receive it's final DLY parameter here. The multiplication with 1 is a leftover from the general stereomultitapdelay~ implementation which also provided feedback loops here. At the bottom of this image the two main outlets are shown.
Everything is labeled with dollar arguments to ensure unique working when using multiple instance of delays.
In the image above the inlet is shown and also the section that calculates all the DLY and FBK parameters. For the multitapdelay~ here it is:
DLYi = SUMi(DLY)
FBKi = 1(or 0)*(FBK/100)^i
That means the DLY parameter is linearly raised and the FBK parameter is exponentially attenuated.
The next image shows this part for the reversedelay~ (it's the only section that differs for both effects). The feedback is now linearly raised.
DLYi = SUMi(DLY)
FBKi = 1(or 0)*SUMi(FBK/1000)

The next image shows the section that controls the on/off position of each tap and shows the position of each taps' parameters. The loadbang block and set 1 message are there to initialize the patch to all taps on.

The next section shows how the panning is controlled and shows also the rest of the taps.
The uneven taps get a reversed value of the PAN parameter. Each tap is connected to an outlet before entering the panning logic. After the panning logic the both channels are routed to the main outlets. For information of the pan~ function one must look at the respective documentation.
TO DO: put the outlets of each tap in a specific logical order

No comments: