Building complex reverbs using ValhallaÜberMod

The original ValhallaÜberMod concept had a fairly sparse Diffusion section, which was intended to smooth out feedback echos and add some density to chorus patches. Somewhere during the development process, the diffusion block was expanded into a much more powerful DIFF section, with each input channel being processed by a dense modulated diffusion block with variable size. The DIFF section proved useful in creating dense nonlinear reverbs, as well as lush ambient reverbs and decent plate simulations. The ÜberMod controls aren’t designed around creating reverbs, so I figured that any reverbs created with ÜberMod were a cool bonus with that plugin.

Flash forward to a few days ago, where I found myself experimenting with ÜberMod, mainly as a way of procrastinating before I get back to work on my next plugin. I started running multiple instances of ValhallaÜberMod in series and parallel, and using the sends of my DAW to control the routing and levels. To my surprise, I found that I was able to create some VERY complex and subtle reverbs using ÜberMod, by allocating different instances of the plugin for different stages of the reverb decay.

EXAMPLE 1: Medium Vocal Reverb, w/early reflections

The first example uses 3 instances of ÜberMod, running on 2 different sends. The first instance is running on its own send, and will cover the early reflections stage of a reverb:

<ValhallaUberMod pluginVersion="1.0.1" presetName="RandomizedEarlyReflections" Mix="1" Depth="1" StereoWidth="0.5" Delay="0.0476999991" Feedback="0" Spread="1" Slope="0.643999994" Skew="0.175999999" Random="1" TapGain="0.5" Diffusion="0.624000013" DiffSize="0.0163265299" DiffModRate="0.0490490496" DiffModDepth="0.5" LowCut="0.0351758786" HighCut="0.232160807" SpatialXover="0.145728648" DetuneRate="0.00900900923" DetuneDepth="0.851999998" VibratoRate="0.298245579" VibratoDepth="0" OverMod="0.0313131325" DriveInGain="0.375" DriveOutGain="0.75" DriveNoiseGain="0.333333343" FeedbackRotate="0.5" SmoothingTime="0.0990990996" ColorMode="1" DelaySync="0" type="0.333333343" DiffEnable="1" Drive="0" DrivePrePost="1" Speed="0" InputPan="0.125"/>

This preset uses the 16Tap mode, in conjunction with the DIFF section, to create a dense early ambience that abruptly cuts off after about 50 to 100 millseconds. The TAP Slope parameter is used to create the perception of a room with a short to medium decay, and the DELAY slider determines the point at which this decay is truncated. Some slow LFO modulation is used in conjunction with the MOD OverMod control to randomize the reflections.

The second instance of ÜberMod is running on a separate send, and provides the input diffusion of the late reverb tail:

<ValhallaUberMod pluginVersion="1.0.1" presetName="InputDiffusion" Mix="1" Depth="0.444000006" StereoWidth="0.5" Delay="0.00999999978" Feedback="0" Spread="0.5" Slope="0.5" Skew="0.5" Random="0" TapGain="0.5" Diffusion="0.703999996" DiffSize="0.0653061196" DiffModRate="0.0130130127" DiffModDepth="0.395999998" LowCut="0" HighCut="0.387939692" SpatialXover="0.145728648" DetuneRate="0.0370370373" DetuneDepth="0.5" VibratoRate="0.298245579" VibratoDepth="0" OverMod="0" DriveInGain="0.375" DriveOutGain="0.75" DriveNoiseGain="0.333333343" FeedbackRotate="1" SmoothingTime="0.0990990996" ColorMode="0" DelaySync="0" type="0.0416666679" DiffEnable="1" Drive="0" DrivePrePost="1" Speed="0" InputPan="0.125"/>

This preset uses the 2TapChorus mode, but most of the work is being done by the DIFF section. A fairly short DIFF size is used, with the idea being to turn impulsive sounds into a “puff” of diffuse energy. This will smooth out any reverb that this preset is placed in front of.

The third instance of ÜberMod is placed in series after the second instance (i.e. on the same send), and generates a reverb tail with a medium decay:

<ValhallaUberMod pluginVersion="1.0.1" presetName="MediumLateReverb" Mix="1" Depth="0.5" StereoWidth="0.5" Delay="0.00999999978" Feedback="0.612999976" Spread="0.5" Slope="0.5" Skew="0.5" Random="0" TapGain="0.5" Diffusion="0.748000026" DiffSize="0.240816325" DiffModRate="0.0290290285" DiffModDepth="0.5" LowCut="0.0954773873" HighCut="0.288442224" SpatialXover="0.145728648" DetuneRate="0.0490490496" DetuneDepth="0.5" VibratoRate="0.298245579" VibratoDepth="0" OverMod="0" DriveInGain="0.375" DriveOutGain="0.75" DriveNoiseGain="0.333333343" FeedbackRotate="1" SmoothingTime="0.0990990996" ColorMode="0" DelaySync="0" type="0.0416666679" DiffEnable="1" Drive="0" DrivePrePost="1" Speed="0" InputPan="0.125"/>

The above late reverb preset also uses the 2TapChorus mode, with most of the work being done by the DIFF section and the FEEDBACK control. The Diffusion is set to a fairly large size. The DIFF Size, in conjunction with the feedback and filtering, determines the length of the reverb decay. The WARP fBMix control is set to 100%, to create a figure-8 (ping-pong) feedback loop, as used in reverbs by Lexicon & Alesis.

Once you have the basic routing set up, experiment with the send levels being sent to the Early Reflections (instance 1) and the Late Reverb (instances 2 and 3). I have found that it sounds best with the Early Reflections set to a somewhat higher level than the Late Reverb.

EXAMPLE 2: Randomized Hall

ValhallaÜberMod is versatile enough that you can emulate many types of reverb structures, not just the Early Reflection / Late Reverb division of the more “scientific” reverbs. For example, Lexicon’s Random Hall is known for its high echo density, and the soft attack derived from the Shape and Spread controls. To emulate this soft attack using ÜberMod, we’ll use 2 instances of ÜberMod in series. The first is used to approximate the Shape/Spread section of Random Hall:

<ValhallaUberMod pluginVersion="1.0.1" presetName="ShapeSpread" Mix="1" Depth="0.444000006" StereoWidth="0.5" Delay="0.342900008" Feedback="0" Spread="1" Slope="0" Skew="1" Random="1" TapGain="0.5" Diffusion="0.791999996" DiffSize="0.134693876" DiffModRate="0.0130130127" DiffModDepth="0.395999998" LowCut="0" HighCut="0.975879371" SpatialXover="0.145728648" DetuneRate="0.0370370373" DetuneDepth="0.5" VibratoRate="0.298245579" VibratoDepth="0" OverMod="0" DriveInGain="0.375" DriveOutGain="0.75" DriveNoiseGain="0.333333343" FeedbackRotate="1" SmoothingTime="0.0990990996" ColorMode="0" DelaySync="0" type="0.375" DiffEnable="1" Drive="0" DrivePrePost="1" Speed="0" InputPan="0.125"/>

This preset uses the 32Tap mode, with a fair amount of Diffusion, and the TAP Slope set to -100%, to create a nonlinear reverb that fades in gradually over time.  The attack time is determined by the DELAY slider.
The ShapeSpread preset is used in series with a 2nd instance of ÜberMod on the same send, that adds a huge reverb tail to the slow attack:

<ValhallaUberMod pluginVersion="1.0.1" presetName="BigLateReverb" Mix="1" Depth="0.760999978" StereoWidth="0.5" Delay="0.00999999978" Feedback="0.768000007" Spread="0.5" Slope="0.5" Skew="0.5" Random="0" TapGain="0.5" Diffusion="0.843999982" DiffSize="0.448979586" DiffModRate="0.0730730742" DiffModDepth="0.495999992" LowCut="0.0502512567" HighCut="0.340703517" SpatialXover="0.145728648" DetuneRate="0.033033032" DetuneDepth="0.5" VibratoRate="0.298245579" VibratoDepth="0" OverMod="0" DriveInGain="0.375" DriveOutGain="0.75" DriveNoiseGain="0.333333343" FeedbackRotate="1" SmoothingTime="0.0990990996" ColorMode="0" DelaySync="0" type="0.0416666679" DiffEnable="1" Drive="0" DrivePrePost="1" Speed="1" InputPan="0.125"/>

This preset is very similar to the earlier late reverb preset, but with a much greater DIFF size setting. In addition, the WARP Speed is set to 1/2, which doubles the size of the diffusors, to create a HUGE reverb decay.

ROLL YOUR OWN SOUNDS

The above examples are just 2 quick demos of the complex reverb responses that can be generated with multiple instances of ValhallaÜberMod. For example, a longer gated reverb could be used in parallel with a reverb that incorporates DRIVE in the feedback loop, to create a reverb that starts off clean, then turns nasty after a certain amount of time.

ÜberMod is also useful in extending the capabilities of other reverb plugins. For example, the InputDiffusion or ShapeSpread examples from above can be used in series with ValhallaRoom, to create a super lush reverb that has more “standardized” reverb controls. The RandomizedEarlyReflections example can be added in parallel to ValhallaShimmer, to add early reflections to the modulated Shimmer late decay. Or combine ÜberMod with any other reverb plugin, algorithmic or convolution, as you see fit.  The low CPU consumption of ÜberMod makes it easy to use it in conjunction with other plugins.

It is worth noting that the same process can be used in the construction of all sorts of complicated sonic events, not just reverbs. ValhallaÜberMod excels at choruses, ensembles, multitap delays, echos, and so forth. By combining different settings of ÜberMod in series and parallel, all sorts of weird and wonderful sounds can emerge. I encourage people to use ÜberMod as a modular building block for creating all sorts of complex effects.

What is UberMod?

ValhallaÜberMod, at its heart, is a stereo modulated multitap delay line. The signal is written into parallel delay lines (1 for left, 1 for right), and is read out by one or more delay taps. The taps can be moved back and forth in time, by low frequency oscillators or user controls, in order to produce pitch changes via the Doppler effect. The plugin also incorporates diffusion delays, soft saturation, low and high cut filters, and a variety of other controls to shape the delay tap amplitudes, spacing, tone and movement.

So, what can you do with a stereo modulated multitap delay line?

  • Chorus. ValhallaÜberMod contains elements inspired by the Roland Dimension choruses, but vastly expanded in order and with fully parametric controls. The classic “Dimension D” sound can be emulated, but ÜberMod can also emulate the multi-voice choruses previously limited to high end rack gear.
  • Ensembles. The modulation section of ÜberMod contains slow and fast LFOs, that can be mixed in together. In addition, some of the Modes are based around the specific modulation schemes of vintage string ensemble units, such as the 3-phase LFOs found in the Solina and Crumar Performer, and the dual triangle LFOs of the Roland VP330/RS505. This allows ÜberMod to dial in a variety of “classic” ensemble effects, as well as more realistic emulations of orchestral sounds.
  • Flanging. By using one of the multitap modes, and keeping the delays short and grouped closely together, ÜberMod can create huge flanging sounds, that incorporate the through-zero effects of tape flanging, while adding random motion and complexity to produce an effect that is remarkably similar to a jet flying overhead.
  • Delays. ÜberMod allows the user to sync the delays to the DAW tempo, as well as dialing in specific delay times in milliseconds.
  • Multitap Delays. With up to 32 taps, ÜberMod can create dense clusters of delays, rhythmic tapped delays, strongly pitched comb filtering effects, and all sorts of multitap sounds. The TAPS controls allow the user to shape the spacing and amplitude of the delay taps via intuitive high-level controls.
  • Ping-Pong Delays. The new WARP InputPan control (introduced in the 1.0.1 ÜberMod release) allows for any of the delay Modes to be turned into a ping pong mode. This goes well beyond the standard ping pong delays, and can produce ping ponging delay clusters, ping pong delays with strange rhythmic divisions, ping ponged multitap clusters, and tons of other effects that bounce back and forth between speakers.
  • Tape and BBD delay emulations. ValhallaÜberMod has a flexible overdrive section, including pre and post gain, as well as noise that can be mixed into the signal. The delay time changes can also be slewed, using the WARP Smoothing control, to produce the slow delay transitions and pitch changes that are typical of analog delays. By dialing in overdrive, noise, and feedback, and adjusting the flexible EQ section, the user can get low-bandwidth BBD emulations, wobbly tape delays, and long echos that degenerate into shrieking oscillation.
  • Diffuse delays. Many of the high-end Lexicon and Eventide rack units combined diffusion delays with longer delay lines, to soften the attacks of echos. ValhallaÜberMod has a flexible diffusion section, to create smeared echos, clusters of delays, and all sorts of diffuse effects.
  • Reverbs. The diffusion section in ÜberMod has variable size and modulation parameters, similar to ValhallaShimmer, but more optimized for generic delay effects. Crank up the diffusion size and turn up the feedback, and all sorts of reverb effects can be produced: short ambiences, large rooms, huge halls.
  • Nonlinear and reverse reverbs. Combine the diffusion section with a Mode that has a larger number of delay taps (8/16/32 taps) to generate short gated reverbs, “reverse” reverbs that fade in slowly over time, room reverbs with a truncated decay, etc.
  • “Glitch Shifting.” The triangle oscillators in ÜberMod were designed to create “detuned” choruses, without an obvious sense of pitch wobble. Crank up the OverMod control, however, and all sorts of unpredictable pitch shifted and reversed sounds can be produced. I call this “glitch shifting,” although I still feel dirty whenever I type that phrase.
  • Oscillations. Turn on the DRIVE, and crank up the feedback, and ÜberMod will start making sounds on its own. By adjusting the delay and modulation settings, all sorts of crazy burbling whirling machine noises can be generated.
  • Stereo Widening. Use short Diffusion settings to widen the stereo image. Add a bit of modulation to create stereo choruses. Crank up the DEPTH control to create super-stereo effects.
  • Chimeras. This is the term I use for sounds that combine aspects of several effects to create sounds that are new, weird, and in many cases defy easy categorization:
    • Reverbs with ensemble modulation
    • Ping-Pong Reverbs
    • Tape Reverbs, where the sound gets more distorted as it decays away
    • Sounds that don’t have names yet

So, why create a single plugin that covers all of these sounds, instead of several plugins where each plugin is tailored to a specific application? I’m not exactly sure. In many ways, I feel that ValhallaÜberMod was a plugin that designed itself, instead of me creating something that did exactly what I wanted it to do. At each stage during the development process, I uncovered new and exciting sounds that defied easy categorization. I decided to create a plugin that allowed for those sounds to be dialed in, as well as sounds that as yet remained undiscovered.

ValhallaÜberMod is “close to the metal.” There are a lot of controls, that have been grouped according to logical function. In some ways, ÜberMod is like a Swiss Army Knife for modulated delays, but this doesn’t really describe the chimera effects that are neither fish nor fowl. The oddball possibilities are what I find most interesting about ÜberMod. It explores the spaces, the shared commonalities, that lie underneath the common modulated delay effects, while making room for other effects that don’t fit within the standardized categories. I nearly went crazy designing ÜberMod, and I think that some of that over-caffeinated energy was captured within the plugin, in the context of a logical structure that allows the user to control the sanity/insanity ratio.

ValhallaUberMod: The WARP Parameters

When I was working on ValhallaÜberMod, one of the goals was to come up with a list of parameters that could be placed into logical categories. Most of the parameters fell into line – all the modulation parameters fit into MOD, the overdrive parameters fit into DRIVE, and so on. A few of the parameters just wouldn’t fit into the other categories. I decided to create the WARP tab for these misfit parameters, as they all shared the characteristics of warping the sound. That, and “WARP” looked cooler in the button text than “MISC.”

ValhallaUberModWARPTab

The WARP Parameters:

  • WARP Speed: Controls the recording/playback speed of the internal buffer in ÜberMod. This also controls the internal sampling rate of ÜberMod.
    • When WARP Speed is 1X, the delay will play back at the normal sampling rate, and the longest output delay will correspond to the setting of the DELAY slider.
    • When WARP Speed is 1/2X, the delay will play back at 1/2 the sampling rate, and the longest output delay will correspond to 2X the setting of the DELAY slider.
    • Changing the speed will also change the playback rate of any sounds currently in the delay buffer. For example, if the delay is 1 second, and the WARP Speed is changed from 1X to 1/2X, the sound will drop in pitch by an octave, which will last for 2 seconds before things go back to the original pitch.
    • Setting WARP Speed to 1/2X will result in a “darker” sound than 1X Speed, as all frequencies above 1/4 the sampling rate will be filtered out.
  • WARP fbMix: Controls the routing of the feedback paths between left and right delays. By changing the fbMix control, ÜberMod can be smoothly varied from two mono delays, to cross-coupled delays, to a “figure-8″ loop that is useful for reverbs and ping pong delays.
    • When WARP fbMix is set to 0%, the left delay output feeds back into the left delay input, and the right delay output feeds back into the right delay input. This is essentially using ÜberMod as two mono delay lines in parallel.
    • Setting WARP fbMix to settings greater than 0% will cause some of output of the left delay line to be mixed into the right delay line input, and vice versa.
    • A WARP fbMix of 50% results in equal amounts of the left and right delay outputs to be sent to the left and right delay inputs.
    • Setting WARP fbMix to 100% results in the left delay output being routed exclusively to the right delay iput, and vice versa. This will create ping pong echos if the WARP InputPan control is set to Left or Right.
  • WARP Smoothing controls the smoothing time of the entire plugin, in milliseconds. Changes to the delay tap positions (that occur when adjusting DELAY, or altering the TAPS controls), and changes to the modulation depths, will be “slewed” or smoothed out, in order to avoid clicks. The Smoothing control allows the time constant for the slewing to be adjusted.
    • A WARP Smoothing setting of 10-50 msec should be enough to avoid clicks, while still having fast transitions between the old and new delay tap settings. Around 50 msec, you can get a chirping sound that is pretty cool.
    • WARP Smoothing settings >100 msec will result in longer slewing times for delay transitions, similar to what is found in tape and BBD echoes.
  • WARP InputPan: Controls how the input signal is sent to the delay lines. This control was added to ValhallaÜberMod, and is intended to allow for various ping-pong and reversed stereo effects.
    • The default setting of WARP InputPan is Stereo. The left input is sent to the left delay, and the right input is sent to the right delay.
    • When WARP InputPan is set to ReverseStereo, the left input is sent to the right delay, and the right input is sent to the left delay. This can create a wider stereo image.
    • Setting WARP InputPan to Mono results in the left and right inputs being summed together before being sent to the left and right delay inputs. This can be useful for stronger flanging effects, as the left and right delays will contain the same signal (creating stronger reinforcement/cancellations of harmonics).
    • With WARP InputPan set to Left, the left and right inputs will be summed, and then sent to the left delay input only. This is useful for creating ping pong effects that start from the left (be sure to set WARP fbMix to 100% to create proper ping ponging).
    • With WARP InputPan set to Right, the left and right inputs will be summed, and then sent to the right delay input only. This is useful for creating ping pong effects that start from the right (be sure to set WARP fbMix to 100% to create proper ping ponging).

ValhallaUberMod: The DRIVE Parameters

The original idea behind ValhallaÜberMod was to create a powerful chorus/multitap delay plugin, that stayed “pristine” at all feedback settings. Fortunately, my early beta testers convinced me that I needed to put some filth into ÜberMod, and so the DRIVE section was born.

The goal of the DRIVE section is to allow the user to dial in the amount of overdrive and noise they want, from subtle colorations to high amounts of grit, and to be able to switch the drive off as needed to return to the original “pristine” algorithms. The DRIVE section uses a highly optimized soft saturation algorithm, which is oversampled to reduce aliasing.

ValhallaUberModDriveSection

The DRIVE Controls:

  • DRIVE On/Off: Selects whether the DRIVE is enabled or disabled. When the DRIVE is Off, the calculations are bypassed, reducing the CPU load.
  • DRIVE InGain: The input gain for the overdrive section, in dB. Higher values result in more distortion
  • DRIVE OutGain: The output gain for the overdrive section, in dB.
    • By setting DRIVE OutGain to be the opposite (i.e. same numeric value, but with opposite sign) of the input gain, the feedback gain for low level signals will be the same. This means that the FEEDBACK slider will work in the same way.
    • If the DRIVE OutGain is set higher than the opposite of the input gain (i.e. InGain = 12 dB, OutGain = -6 dB), then the feedback gain for low level signals will be higher, and the feedback signal becomes more likely to break into oscillation.
  • DRIVE NoiseGain: Controls the gain of noise that is added to the signal, post-saturation. This is useful for emulating worn tape echos, or BBD delays. Turn the DRIVE NoiseGain all the way down if you want a less noisy delay.
  • DRIVE Pre/Post: Controls whether the overdrive happens before the outputs are taken (Pre) or after the outputs are taken (Post).
    • If DRIVE Pre/Post is set to POST, the first delay repeats that reach the outputs will be clean. The overdrive will only be heard on the feedback signal.

ValhallaUberMod: The EQ Parameters

The EQ section in ValhallaÜberMod has a few straightforward parameters, as well as a few that require deeper explanation. By adjusting the parameters, the user can create bright, clean echos, as well as dark, tape-esque decays. The EQ section is inside the feedback loop of ValhallaÜberMod, so any changes to the EQ will be multiplied by each feedback iteration.

ValhallaUberModEQ

The EQ controls:

  • EQ Mode: controls the overall “color” of the EQ section, and of ÜberMod as a whole. The choices are Bright and Dark, and are fairly self explanatory. It is worth noting that the EQ Mode control has a far more dramatic effect when the DIFF section is enabled.
  • EQ Low Cut: controls the cutoff frequency of a -6 db/oct high pass filter. Useful in reducing the amount of low frequencies in the signal.
    • An “analog” echo will have this set to a fairly high frequency (150 Hz or more), such that the feedback signal “thins out” as it decays.
    • Cutting the low frequencies out of a chorus can be useful in creating a clearer sound.
  • EQ High Cut: controls the cutoff frequency of a -6 db/oct low pass filter. Useful in reducing the amount of high frequencies in the signal.
    • Setting EQ High Cut above 10 KHz is useful for “digital” delays and modulation effects, as well as any type of effect that benefits from extended high frequency response (such as flanging).
    • An EQ High Cut setting around 10 KHz is useful for emulating the high frequency response of BBD-based chorus and ensemble units.
    • For emulating tape echos and BBD echos, set EQ High Cut to a fairly low frequency (3KHz or lower).
  • EQ SpatialEQ controls the cutoff frequency of the crossover used in the “crosstalk” mixer controlled by the WIDTH slider. When WIDTH exceeds 100%, the output of one delay channel is inverted in phase and mixed in with the output of the opposite delay channel, to create a wider “pseudostereo” effect. This phase inversion can result in a loss of bass frequencies, so the EQ SpatialEQ is used to control a crossover that determines at what frequency the inverted mixing occurs.
    • The SpatialEQ algorithm was inspired by the complex filtering found in the Dimension D chorus, but has been extended to work with greater numbers of delay taps. A lot of research went into developing an algorithm that would have unity gain for all settings of WIDTH.
    • By setting EQ SpatialEQ to 150 Hz or higher, the bass frequencies of the delayed signal will be maintained for all settings of WIDTH. Adjust this by ear to suit the input signal, or just set this to 300 to 400 Hz to ensure that the bass energy doesn’t get cancelled out.
    • Setting EQ SpatialEQ to a lower frequency can result in cancellations of the bass frequencies. This can be useful for producing hollow flanging sounds, such as those heard on the “Axis: Bold as Love” album.

ValhallaUberMod: The DIFF Parameters

The initial concept behind ValhallaÜberMod was to create a chorus algorithm that took the “balanced” modulation of the Roland Dimension units, and combined this with the multitap complexity of the choruses found in high end rackmount units, such as the Lexicon 224 & PCM70. Many of the rackmount chorus algorithms used series allpass delays to add echo density to the choruses, in a process commonly referred to as diffusion. I originally had a single Diffusion control in ÜberMod, but a bit of exploration revealed that adding parameters to the diffusion section vastly expanded UberMod’s sonic power. The DIFF parameters are used to control the diffusion section in ÜberMod.

ValhallaUberMod DIFF Controls

The diffusion section in ÜberMod is inside of the feedback loop, so the echo density will build with each repeat when FEEDBACK is greater than 0%. This can be used to create delays that get more “smeared” with each repeat, as well as full-on reverbs. The allpass delays within the Diffusion section are true stereo, and are designed to maintain a balanced yet wide spatial image. Modulation is used to reduce the metallic coloration in the Diffusion section, and can create some pretty stunning chorus effects in and of itself, as well as being useful for lush reverbs.

The DIFF controls:

  • DIFF On/Off turns the diffusion section on and off. When the diffusion section is turned off, the CPU consumption of ÜberMod is lower. This can cause a pop and other strange glitches when audio is running through the signal, so I wouldn’t recommend automating this parameter. Of course, if you like those glitches, go ahead and automate the On/Off control. Who am I to judge?
  • DIFF Diffusion adjusts the echo density and buildup of the Diffusion section.
    • A DIFF Diffusion setting of 0% turns the diffusion section into a stereo delay line, with the delay length determined by DIFF Size.
    • Diffusion settings higher than 0% result in increasing echo density.
    • The echo time/energy profile changes as Diffusion is adjusted, with some settings between 40% and 80% causing the sound to fade in slightly.
    • The highest settings of Diffusion result in a faster fade in, and a more exponential decay. The highest Diffusion settings can also create metallic coloration, depending on the other DIFF settings and the input material. Backing off slightly on the Diffusion control, or increasing DIFF Size, will usually reduce the coloration.
  • DIFF Size controls the overall length of the delays in the DIFF section.
    • With Diffusion at 0%, the DIFF Size setting corresponds to an additional delay added to the feedback loop. Keep this in mind when creating rhythmic delays.
    • At Diffusion settings higher than 0%, the DIFF Size no longer corresponds to an exact delay, but rather is used to scale the duration of the cluster of delays generated by the diffusion section. Higher DIFF Size settings result in longer clusters of delays and a longer decay from the Diffusion section.
  • DIFF ModRate controls the average rate of the modulation in the Diffusion section.
    • The Diffusion modulation is randomized, with each allpass delay having its own independent modulator, so the overall modulation is very complex.
  • DIFF ModDepth controls the depth of the modulation in the Diffusion section.
    • Note that the perceived modulation depth increases with ModRate, so the ModRate and ModDepth controls should be adjusted in tandem.

     

ValhallaUberMod: The TAPS Parameters

ValhallaÜberMod, at its heart, is a multitap delay. The TAPS section of the ÜberMod interface is used to control the delays and amplitudes of the taps. Instead of providing individual delay/gain controls for each tap, a few high level controls are used to adjust the broader tap characteristics.

A few notes about the TAPS parameters:

  • All changes to the TAPS controls that affect delay times (TAPS Spread, TAPS Skew, TAPS Random) are smoothed, with the smoothing time controlled by the WARP Smoothing parameter. This can result in flanging or pitch bending sounds as the TAPS parameters are adjusted.
  • The delay times that are set by the TAPS parameters are also modified by the MOD controls and DEPTH setting. The TAPS controls are used to set the base delays, and the modulation LFOs controlled by the MOD controls will add on to these base delays in a time varying manner. For the most part, the modulation LFOs add a few milliseconds of delay to the base tap delays, but the MOD OverMod control can result in tap delays that are far different than what the TAPS and DELAY settings would suggest.
  • The TAPS parameters are used to control the general distribution of the taps with regards to the DELAY slider, as opposed to specific tap delay times. You can think of the TAPS section as being used to create a specific shape, that is then stretched by the DELAY parameter.

The TAPS parameters:

  • TAPS Spread: controls the spread of the tap delays in time, relative to the setting of the DELAY parameter.
    • A TAPS Spread setting of 0% corresponds to all of the taps having the same base delay length – they are “right on top of each other.” This is useful when creating flangers, as the individual taps will move around the base delay, back and forth past each other, resulting in through-zero flanging effects.
    • Setting TAPS Spread >0% results in the taps being spread out in time. The longest tap delay will always be at the time set by the DELAY slider, while the other taps will spread out to fill the times between no delay and the DELAY setting.
    • An example: With TAPS Spread set at 50% and a DELAY of 100 msec, the taps will have delays between 50 and 100 msecs.
    • With TAPS Spread set to 100%, the taps will be evenly distributed between no delay and the maximum delay set by the DELAY slider. By using the delay modes with multiple taps, you can create rhythmic subdivisions of the delay time.
  • TAPS Slope: Controls the amplitude distribution of the taps with regards to time.
    • TAPS Slope at 0% results in all taps having the same amplitude, and is useful for choruses, gated reverbs, flangers, and clusters of echos.
    • With TAPS Slope set to <0%, the taps will “fade in” over time.
    • A TAPS Slope setting of -100%, in conjunction with higher settings of TAPS Spread, longer DELAY values, and a MODE with a fair number of taps (i.e. 8Tap/16Tap/32Tap), will create a “reverse reverb” effect.
    • With TAPS Slope set to >0%, the taps will fade out over time. This creates the effect of a “truncated reverb,” that starts decaying away, but then is abruptly cut off.
  • TAPS Skew controls whether the tap delays are shorter on the left or right side of the stereo image.
    • A TAPS Skew value of 0% results in identical delay times for left and right channels.
    • TAPS Skew values <0% result in the first delays being heard from the left channel.
    • TAPS Skew values >0% result in the first delays being heard from the right channel.
    • Setting TAPS Skew to +/- 100%, and TAPS Spread to 100%, results in delays that will ping pong back and forth between the output channels in a rhythmic manner. The specific rhythms depend on the MODE being used.
  • TAPS Random is used to randomize the spacing between the tap delays.
    • A TAPS Random value of 0% results in the taps being equally spaced from each other. Depending on the settings of TAPS Spread and DELAY, this can result in metallic comb filter artifacts. Which are either good or bad, depending on the sound you want.
    • TAPS Random values >0% result in the spacing between taps being randomized, which breaks up the metallic comb filter artifacts. For nonlinear reverbs, you probably want to set TAPS Random above 0%, to avoid a metallic sound.
  • TAPS TapGain controls the overall gain of the output taps. This can be considered a trim gain for the “wet” signal.
    • When TAPS Spread is set close to 0%, the wet output gain can get considerably louder, so the TapsGain parameter can be used to manage this signal level.
    • For most settings of TAPS Spread and modulation depths, the output taps will be decorrelated from each other, and TapsGain can be left at 0 dB.

ValhallaUberMod: The MOD Parameters

ValhallaÜberMod allows the user to dial in different chorus, ensemble, and glitch shifting modulations through the use of the MOD controls. By clicking on the MOD button at the upper right of the GUI, the 5 modulation parameters can be viewed and adjusted:

The MOD parameters:

  • MOD SlowRate controls the slower delay modulation LFOs, with the value represented in Hertz. Depending on the Mode being used, this will control the speed of anywhere from 1 to 16 LFOs.
    • In modes with multiple LFOs, the modulation rate varies for each LFO, so the SlowRate value maps to the cycle speed of the slow LFO with the highest frequency – all the other LFOs will be somewhat slower.
  • MOD SlowDepth controls the modulation depth of the slow LFOs. This is more of a scale than an absolute value, and is used to balance the slow and fast LFO depths (which are both scaled by the high level DEPTH control).
    • The MOD SlowDepth also depends on the MOD OverMod setting, which acts as a control to set the slow LFO depth beyond reasonable bounds – see below.
  • MOD VibRate controls the faster delay modulation LFOs, with the value represented in Hertz. Depending on the Mode being used, this will control the speed of anywhere from 1 to 32 LFOs.
    • In modes with multiple LFOs, the modulation rate varies for each LFO, so the VibRate value maps to the cycle speed of the fast/vibrato LFO with the highest frequency – all the other vibrato LFOs will be somewhat slower.
    •  For most applications, the MOD VibRate should be used to add vibrato to a chorus, with the main detuning generated by the MOD SlowRate and MOD SlowDepth controls. However, this is just a suggestion – the fast LFOs can generate cool chorus effects by themselves.
  • MOD VibDepth controls the modulation depth of the faster LFOs. This is more of a scale than an absolute value, and is used to balance the slow and fast LFO depths (which are both scaled by the high level DEPTH control).
    • The MOD VibDepth setting doesn’t get as deep as the SlowDepth control, as LFOs running at faster frequencies cause more pitch change than slower LFOs.
    • In addition, the MOD VibDepth isn’t affected by the setting of MOD OverMod.
  • MOD OverMod. Acts as a scale on MOD SlowDepth. At the default OverMod setting (1X), the slow LFOs are optimized for creating chorusing and detuning effects. For higher settings of OverMod, the detuning gets deeper and deeper, until it moves into the realm of pitch shifting and backwards delays.
    • The modulation depth established by MOD SlowDepth and MOD OverMod is also scaled by the high level DEPTH slider.
    • The pitch shifting is not the controlled type found in ValhallaShimmer. The amount of pitch bend depends on the interconnections between MOD SlowRate, MOD SlowDepth, MOD OverMod, and the DEPTH slider. A better name for this would be “glitch shifting.” I just threw up a little in my mouth as I typed this, but it is the most descriptive phrase I can think of for the OverMod artifacts.

ValhallaUberMod: The Modes

In keeping with the tradition set by ValhallaShimmer and ValhallaRoom, there are several different “modes” in ValhallaÜberMod. These modes are selected by clicking on the name of the currently active mode, to the right of the “MODE:” text. A popup menu will appear, with the names of the available modes:

Each of the ÜberMod Modes selects a specific combination of delay output taps, as well as different modulation options for moving those taps around. I have referred to these as chorus modes or delay modes, but they are really both, so “modes” is probably the best description. A few things that all the Modes have in common:

  • Separate LFOs for slower and faster modulation. The idea is that the slow LFOs are used to create the base “detuning” of the taps, while the fast LFOs are used to add string ensemble vibrato if desired. Of course, the user can use and abuse these controls however they see fit.
  • Each delay tap in a mode is modulated by a unique LFO, or a unique phase from a multiphase LFO. This creates a high degree of aural complexity.
  • The slower LFOs have their overall rate adjusted by MOD SlowRate, and their depth by MOD SlowDepth and MOD OverMod.
  • The faster LFOs have their overall rate adjusted by MOD VibRate, and their depth by MOD VibDepth.
  • True stereo, where left and right inputs feed separate delay buffers.
  • An even number of delay taps, where half the taps are panned to the left, half to the right. The amount of panning is controlled by the DEPTH parameters. The 8Tap mode, for example, has 4 taps panned left, 4 panned right.
  • All modes have a “pay for what you use” approach to CPU usage. The more taps there are, the higher the CPU. ValhallaÜberMod has been programmed using SIMD-optimized vector functions, so it is pretty darned optimized, but the laws of physics dictate that it is cheaper to compute 2 interpolated delay taps than 32 interpolated delay taps.

ValhallaÜberMod Version 1.0.0 ships with nine different delay/modulation modes:

  • 2TapChorus has two modulated delay taps, one for the left input signal, one for the right input signal. The slow tap modulation is derived from a single triangle LFO, with the modulation phase inverted for one of the taps (I call this “antiphase modulation”). The vibrato modulation uses a quadrature oscillator, with the left and right modulations separated by 90 degrees. The 2TapChorus mode is useful for emulating the Roland Dimension C and Dimension D choruses, and also serves as a useful starting point for tape echos, diffusion-based reverbs, and all sorts of other effects.
  • 4TapEnsemble has four modulated delay taps, two for the left input channel, two for the right input channel. There are two slow LFOs, one for the left taps and one for the right taps, using the same antiphase modulation as the 2TapChorus, but with different rates for each channel. Each channel has a single sine vibrato oscillator modulating one of the taps, with different rates for each input/output channel. The 4TapEnsemble can be viewed as 2 mono versions of the 2TapChorus, one panned left, and one panned right. The architecture was derived from the ensemble section of the VP330, and is naturally suited towards creating string ensemble emulations, as well as thick detuned choruses.
  • SuperSix has 6 modulated delay taps (3 left/3 right). There are 3 slow triangle LFOs, using the antiphase modulation technique, with the LFO frequencies staggered to emulate the detuning of the sawtooth oscillators in the JP8000 SuperSaw. Each channel has its own independent 3-phase vibrato LFO (0/120/240 degree outputs), for emulating the vibrato component of classic string ensembles. The vibrato speed is slightly different between left and right channels, for a wider stereo spread. The SuperSix mode is a good starting point for emulating the “unison” control on older analog polyphonic synths, when all of the oscillators were used to create a massive detuned sound. SuperSix is also useful for creating triplet echos, short gated sounds, and other multitap effects.
  • 6TapRandom has 6 modulated delay taps (3 left/3 right), and 3 slow LFOs, each of which has a randomized triangle waveform for the slow LFO. The left and right channels are modulated in antiphase, in a similar manner to the SuperSix mode, but the randomized triangle results in less audible patterns for the detuning. There are 6 independent vibrato LFOs, one for each output tap. The 6TapRandom mode is useful for thick multitap choruses, with less audible patterns than the SuperSix mode.
  • DualEnsemble is a stereo version of the classic string ensemble choruses, as found in the Solina/ARP String Ensemble, Crumar Performer, Moog Opus 3, Korg Polysix, and so on. Each channel has its own dedicated 3-phase slow LFO (0/120/240 degree outputs), with each of the 3 taps per channel being modulated by its own phase. An identical LFO, running at a faster rate, is used for the vibrato modulation of the taps. The 3-phase LFOs for left and right channels are running at slightly different rates, to create the impression of a separate string ensemble for left and right channels. The DualEnsemble mode is the first place to turn for emulating vintage ensembles, but is also useful for creating unique effects that combine ensemble modulation with multitap effects and diffusion. Check out the SolinaVerb preset (in the Reverbs category) for an example that combines ensemble chorusing, diffusion, and feedback, to create a rich modulated reverb that adds complexity to synth pads.
  • 8Tap has 8 modulated delay taps (4 left/4 right). There are 4 slow triangle LFOs, using the antiphase modulation technique, with the frequencies arranged to produce a smooth detuned sound at “sensible” settings, or a cluster of pitches when OverMod is used. There are 8 sine vibrato LFOs, one per each tap, for thick ensemble sounds. The 8Tap mode is useful for creating realistic orchestral choruses, multitap effects, short gated reverbs, ensemble effects that don’t have the distinctive 3-phase modulation patterns, crazy pitched echos (check out the presets in the Pitched folder, which all use the 8Tap mode) and all sorts of cool things.
  • 16Phase is a 16-tap mode (8 taps left, 8 taps right) where all of the taps are modulated by two unique 16-phase sine LFOs, one for the slow modulation, and one for the vibrato. The phases are staggered left-right to get a wider spatial image. This is useful for creating a “super string ensemble” that has the distinctive lushness and artifacts of the old 3-phase string ensembles, only more so. The 16Phase mode is also useful for denser gated and reverse reverbs, nonlinear echos, metallic comb filtering (with the DEPTH set to 0.0), and areas I haven’t had the chance to explore yet.
  • 16Tap is a 16-tap mode (8 taps left, 8 taps right). There are 8 slow triangle LFOs, using the antiphase modulation technique, with the frequencies arranged to produce a smooth distribution of detuned outputs. The triangle LFO phases are inverted between channels, to get a wide spatial image.  There are 16 sine vibrato LFOs, one per each tap, with the frequencies staggered to simulate 16 separate sound sources. The 16Tap mode is useful for lush choruses that have less obvious “string ensemble” artifacts than the 16Phase mode, realistic modeling of large numbers of instruments, gated and reverse reverbs, and strong comb filters.
  • 32Tap is essentially the same as the 16Tap mode, but with double the taps (16 taps left, 16 taps right) . There are 16 slow triangle LFOs, using the antiphase modulation technique, with the frequencies arranged to produce a smooth distribution of detuned outputs. The triangle LFO phases are inverted between channels, to get a wide spatial image.  There are 32 sine vibrato LFOs, one per each tap, with the frequencies staggered to simulate 16 separate sound sources. The main application of the 32Tap mode is for nonlinear, gated and reverse reverbs, where the high tap density can be used in conjunction with the DIFF controls to get dense reverbs without feedback. All sorts of crazy echos and pseudo-reverbs can be made with the 32Tap mode. It is kinda overkill for chorus applications, but turn up the OverMod control and you can get crazy thick pitch shifting for drum reverbs.

Algorithmic Reverbs, Distortion, and Noise

Over on Gearslutz, AstralPStudios asked an interesting question:

When it comes to reverb, is there close relation to distortion in some ways? I guess when I’m listening to big verbs with high decay times it makes me wonder that because at times a big, wet verb can have some distortion-type characteristics.

The distortion observation is a good one, as this can often be heard with very long decays in algorithmic reverbs. In some cases, this is due to the high signal levels of the output. Increasing the decay time means turning up the internal feedback gains, and this often results in an output sound with a very high RMS level. However, even if the output level is reduced to a level that isn’t clipping within the DAW, sometimes various forms of distortion and noise can be heard. This can be explained as a consequence of the feedback nature of the algorithms, and how feedback causes the characteristics of the loop to be magnified exponentially.

Algorithmic reverbs tend to be made up of short delay lines, with LOTS of feedback applied. A good rule of thumb is that the average delay lines in a reverb are 0.1 seconds or shorter in length. In order to get a 30 second decay out of the reverb, the sound will be going around those loops (30.0/0.1) times…or 300 times. So any little quirk in the feedback path, like interpolation noise or fixed point distortion, will be increased on each pass through the feedback loop.

The earliest “long” electronic reverb sounds were based around tape delays, possibly running into a spring or plate reverb. Listen to “Creation du Monde” by Vangelis for an amazing “reverb” sound that comes from 3 RE-201 Space Echos:

The wow and flutter of the tape units, and the distortion added by tape saturation, results in a sound that is far more ethereal than 3 clean digital delay loops run in series or parallel.

The Lexicon 224 is an early digital reverb that was well known for its spacey, extra long decays (up to 70 seconds). Again, Vangelis was an early pioneer of the extra long decays using this unit, most famously in the Blade Runner soundtrack:

The Lexicon 224 used a fixed point processor, with a 16-bit word size, and a 20-bit saturating accumulator. Translated into English, this means that the 224 had about 24 dB of headroom internally (4X the max input volume) before things started clipping. HARD, digital clipping. The allpass delays used by the 224 also had fairly high internal gains, especially with long reverb times. This results in clipping at various points in the digital reverb network. Strangely enough, adding clipping into the nodes of a Lexicon-style reverb network doesn’t end up producing the classic tape echo runaway feedback at most settings. Instead, it tends to produce a somewhat higher noise floor with broadband audio signals (i.e. music as opposed to test signals).

The modulation in the Lexicon 224 also produced distortion, but of a different sort. The 224 had a quirky multiplier, which resulted in the linear interpolation being quantized to fairly big subsample chunks (I think it was 32 or 64 chunks per sample). This resulted in a “halo” of noise around reverbed signals, where the noise was less signal dependent than the clipping noise described above. The linear interpolation also results in attenuated high frequencies above 1/2 the sampling rate. Since the sampling rate in the 224 was pretty low in the first place, the attenuated high frequencies were quite audible with long decays. The noise and high frequency attenuation will increase every time it passes through the reverb network, and a 70 second decay time results in a few hundred passes through the allpass delays.

EDIT (1/24/2013): Since I wrote the above, I have spent a lot of time studying the Lexicon modulation. I think that the modulation source in the older Lexicons had a lot more to do with the noise performance than I had originally thought. The modulation in my PCM70 is noisy as all get out. The results of my studies can be heard in my latest plugin, ValhallaVintageVerb. In the 1970s and 1980s modes, I make use of this noisy modulation, which can really be heard on long sustained synth notes going through longer reverbs. The Concert Hall and Bright Hall algorithms are the best showcases of these “old school” artifacts.

Today, reverb plugins are usually programmed with floating point math. 32 bit floating point avoids most of the distortion issues found in the older fixed point processors, and 64-bit floating point can be used if absolute precision is desired. Generally speaking, 64-bit math is useful for very low frequency higher order filters, and for precise control of attack/decay times for dynamics processing – otherwise, 32-bit floating point has an amazingly high SNR. In addition, the last 3o+ years have seen a great deal of progress in delay interpolation techniques, so you can have modulated delay lines with lower SNR and less high frequency attenuation. If a DSP engineer wants to throw a bunch of cycles at their algorithms, they can come up with very clean reverbs, even with extremely long decays.

At Valhalla DSP, our philosophy is that a little noise isn’t necessarily a bad thing, and that the artifacts of the older reverbs often added some nice mojo to the signal. The high frequency attenuation of linear interpolation can result in a far less “glassy” high end than modern high fidelity interpolation techniques. ValhallaShimmer makes use of this in the “dark” color mode (the “bright” mode makes use of a more modern interpolation style).

The new Dark Room mode for ValhallaRoom deliberately introduces noise into the linear interpolation, and downsamples the entire reverb algorithm, to produce more audible noisy artifacts. As the noise is very signal dependent, and the algorithm is true stereo, this will result in different noise signals in the left and right channels, which increases the decorrelation of the algorithm, producing a very spacious feel. With short decays, the noise won’t be that audible, as it will only pass through the delays a few times before decaying away. With long decays, the noise floor builds up, resulting in a big, washy block of “spectral plasma,” to borrow a term from Christopher Moore. The other ValhallaRoom algorithms are fairly clean, but I felt it was important that users had the choice between modern clean and vintage dirty.