6.4.8. RNBO Delay Tutorial #1 - Stereo Delay

../../../_images/dly1.png

Fig. 6.95 Stereo delay patch in RNBO

The above patch is a stereo delay with feedback. Despite its relative simplicity, this patch can be easily upgraded to achieve more complex and dynamic effects. This tutorial is the first in a series of four, building a foundation upon which we will expand with additional parameters, modulation, and cross feeding.

Download the maxpat file here: Stereo Delay.

6.4.8.1. Delay Structure

The most important element of this patch is the delay~ object, which delays an incoming signal by some number of samples. Delay~ requires a maximum size argument, which has been set to 44,100 samples (1 second) in this case.

../../../_images/delay.png

Fig. 6.96 Delay feedback loop

To create a feedback loop for our delay, the delay~ output cannot simply be routed back to its input. The feedback~ object must be used, which provides a single sample buffer delay. The output of the feedback~ object can then be scaled and routed back to the delay~ input.

6.4.8.2. Delay Parameters

This patch uses delay time (dly), feedback (fdbk), and a wet signal control (wet) as its three main parameters. You may have noticed that each param output is scaled by some constant coefficient. This is done so that the user may have parameters displayed to them in units which they are accustomed to. For example, RNBO’s delay~ object measures its delay in samples, as opposed to milliseconds.

../../../_images/delayparam.png

Fig. 6.97 Delay param object, scaled by 44.1 on output

By multiplying the param output by 44.1, milliseconds are converted to samples which can be processed by the delay~ object. (Be aware that this scaling factor is dependent on the sampling rate which you are working with).

../../../_images/otherparams.png

Fig. 6.98 Feedback and wet control param objects, both scaled by 0.01 on output

Similarly, the feedback and wet signal controls are scaled by 0.01. Both the feedback and wet signal controls work by sending a value to the *~ object, which performs multiplication on audio signals. For both the wet and feedback controls the scaling factor should range from 0 to 1, but this is not very intuitive for the end user. Hence, the wet and feedback param objects output between 0 and 100 and are scaled by a factor of 0.01.

../../../_images/emote_dly1.png

Fig. 6.99 UI displayed in Emote

Upon exporting to Emote, the above menu will be displayed to the user. All parameters are displayed intuitively and in units that most users will be used to. Wet and feedback controls are measured as a percentage, while delay is measured in milliseconds. To make this patch slightly more complex, one may consider separating delay and feedback controls by left and right channels. This patch is also very easily upgradable to a flanger style modulated delay. The next tutorial will explore both upgrades.