02 April 2007

stereomultitapdelay~


monomultitapdelay~

This is a versatile delay effect. It can simulate the traditional delay (as in the monotraditionaldelay~ block and others), and many more. One has ten taps at his disposal, each one is separately controllable: delay time DLY, volume level of that tap LVL and place in the stereo image PAN. The first five taps also have the feedback level FBK parameter (as for the traditional delay).
Use:
  • To simulate the monotraditionaldelay~ use one of the first five taps, set LVL and PAN to 0. All other parameters are also 0. Now choose your DLY and FBK.
  • Ping-pong delay: Look at the figure on top of this page. Every tap is routed to another output. Here you see a L-R style. Other styles are: L_C_R, dynamic and random.
Every tap is output separately, but the stereo signal is on the last two outputs. All these signals are wet (that means, the original signal is not included)

version

monotraditionaldelaysimple~ v1.0 [pd]
pan~ v1.0 [pd]
v1.0: built 2/04/2007 with Pd v0.40-2 [pd][pdf]
Temporary version; presets will be included, display will be less full, more inputs will be added to control the effect like other delay blocks (BPM, measure, an array of DLY,...)

interface

Input1: the mono signal you want to delay/ go crazy

Outputs1-10: the mono signal that is output by the corresponding tap
Outputs11-12: the left and right main output of the effect. All the taps are summed here after being placed in the stereo image.

Controls:
DLY1-10: set a value here that indicates when the delayed signal will be throughput. It ranges from 0 to 3000msec.
LVL1-10: set a value here that indicates the volume level of the corresponding tap. It ranges from 0 to 100, 100 meaning at the same level as the input signal.
FBK1-5: set a value here that indicates the attenuation of the inner delay loop of this tap. It ranges from 0 to 100, 100 meaning that the loop will keep on repeating infinitely and as loud as the input signal (instability)(TO DO)
PAN1-10: set a value here that indicates where the mono signal is placed in the stereo image. It ranges from -127 to 127, 0 meaning CENTER. The panning curve used is the equal power sine curve.

implementation


The input is directly written in a delay line delay with a maximum delay length of 3000 msec. It is also on a bus with the throw~ block for every tap to grab the signal from.
The main output section also consists of two buses, one for each channel of the stereospectrum.

From left to right: a single delay part with feedback control, a single delay part and a single tap part.
A delay in a tap is done by reading the delay line delay at a specific time. The delread~ object does this. For the five first taps also a simple mono traditional delay block is foreseen. It's nothing but a skinned version of the original monotraditionaldelay~ block. It also has no display. You can see the implementation in the figure hereunder.
Every tap is then attenuated by the LVL parameter before being sent to its output. Also this attenuated signal is panned with a pan~ block, also a simpler version of the original monopanner~ block. See the figure underneath. As you can see, also here the controls are left out and only the inlets are kept. It is then put on the buses outL and outR. There will be no documentation for these two blocks as long as their not used elsewhere.

For completeness also the implementation of the controls and display are given. Every parameter is sent or received apart, where a pack and unpack block could have been used. This is not done because the idea exists that it would slow down the algorithm. This because every time a parameter would change, a whole array must be re-sent, packed and unpacked. On the other side, it would look nicer.

No comments: