6.4.8. RNBO Delay Tutorial #1 - Stereo Delay¶

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.

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.

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).

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.

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.