A new reverb cartridge for the Z-DSP: Halls of Valhalla

I have been working on code for the Tiptop Audio Z-DSP Eurorack processor for a few years now. I am pleased to finally announce my first product for the Z-DSP, a reverb cartridge called Halls of Valhalla.

The Halls of Valhalla cartridge features 8 original reverberation algorithms, designed to work with the strengths of the Z-DSP, and tailored towards electronic music.

The reverbs in the Halls of Valhalla are arranged in order of perceived size, from small to big to huge to uncomfortably enormous:

  • Room
  • Chamber
  • Plate
  • EnsembleVerb
  • Cathedral
  • Nilfheim
  • Asgard
  • Ginnungagap

Here’s a few sound examples. The first one is a simple 1-osc sawtooth sound, being sent into the EnsembleVerb algorithm. I am adjusting the Mix on the Z-DSP, and the Decay and Chorus parameters on the Halls of Valhalla program:

The next example is guitar, being fed through a B:assmaster fuzz, straight into the Z-DSP, running the Ginnungagap algorithm. The mix is set to 100% wet, and the decay is turned up somewhat.

Halls of Valhalla will be available Q1 2014. Pricing and distribution TBA.

And, yes, I know that the product name is the same name as this blog. IT’S A GOOD NAME.

Valhalla DSP State Of The Union, June 2013

My, how the time flies! We’ve been keeping busy here at Valhalla DSP HQ.

The big news was the release in December 2012 of the latest plugin, ValhallaVintageVerb:

ValhallaVintageVerb1970s ValhallaVintageVerb is a collection of 9 reverb algorithms, inspired by vintage hardware reverbs such as the Lexicon 224/PCM70/300/480L, as well as the EMT250. The GUI continues the “superflat” aesthetic of the earlier Valhalla plugins, with Kristin Costello (my beautiful and talented wife) adding lots of beautiful color and graphic design flourishes to the mix. The parameters have been carefully chosen to balance flexibility with ease of use.

ValhallaVintageVerb has received a great reception so far! Here’s a few reviews:



In other news, I am currently working on the AAX ports of the Valhalla DSP plugins. The main tasks involved are updating my code to use the latest Juce code, and signing the AAX plugins with the Pace Eden copy protection. The progress is a bit slow right now, due to some issues Pace is having with their new copy protection system, so I am waiting for their issues to get resolved to get back on the ports. I’ll be sending out updated versions of the plugins to all users as the AAX ports are finished, as the VST/AudioUnit/RTAS builds will be updated at that time.

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.


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.

ValhallaRoom Updated to Version 1.1.0

ValhallaRoom has been updated to version 1.1.0.

The latest changes:

  • New reverb mode: LV-426.
    • In keeping with the Nostromo/Narcissus/Sulaco tradition, this is a deep dark space verb. It is kind of a cross between Nostromo and Narcissus, but with a far higher earlier echo density than either of those reverb. LV-426 has a slower attack than the other reverb modes, and a lush, diffuse random modulation that produces beautiful long decays.
    • The LATE LowMult/Xover and LATE HighMult/Xover filters have been moved to a location where they act as tone controls.
    • Values of LowMult less than 1.0 allow you to dial in reverbs with less low frequency energy.
    • The LowXover control can be used to adjust the crossover freq of the low cut/boost.
  • 64-bit VST for OSX. ValhallaRoom is now fully 32 and 64-bit compatible for both Windows and OSX.
  • Optimized CPU for Windows RTAS and VST32
  • Fixed mono->stereo bypass bug in RTAS
  • Window resizing bug fixed in Digital Performer

Update links have been sent to all ValhallaRoom customers, and new demo versions are available for testing at the ValhallaRoom page.

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.

ValhallaRoom Updated to 1.0.8. Resizable GUI, new reverb modes

We’ve been working hard here at Valhalla DSP towers [i.e. I've been working hard typing in code on my laptop while sitting at the dining room table]. One of the fruits of this labor:

ValhallaRoom has been updated to version 1.0.8. The newest features:

  • Resizable GUI. When ValhallaRoom was first released, I received several complaints that the GUI was too big. Version 1.0.8 has been updated. Now the GUI can get much, much bigger. It can also get smaller, if that is your thing.
  • Two new reverb modes, Nostromo and Narcissus. The new reverb modes both have a sparser initial echo density than most of the ValhallaRoom modes, and take longer to build in echo density. This, combined with the high frequency attenuation, random modulation, and deliberately noisy delay interpolation, can be used to create grainy emulations of vintage reverbs, as well as denser decays that have a wide spatial image.
    • Nostromo is the biggest sounding reverb in ValhallaRoom, with audible echos at the largest size settings that slowly evolve into a rich decay.
    • Narcissus is Nostromo’s little sibling, with an initial denser decay. Narcissus is also the “lightest” reverb mode in ValhallaRoom, with a very low CPU hit.

Simon Stockhausen has some beautiful demos using the new ValhallaRoom reverb modes on his Soundcloud page. The first example uses Stockhausen’s amazing soprano sax playing, processed by Nostromo:

The next example uses Symplant through Narcissus:

The final example utilizes a ring modulated sound from Alchemy, and runs it through Narcissus:

Update links have been sent out to all VRoom customers, and demos of the GUI resizing and new modes can be found on the webpage.

ValhallaRoom Updated to Version 1.0.7. New reverb modes: Dark Chamber and Dark Space

ValhallaRoom has been updated to version 1.0.7. Changes since 1.0.6:

  • Fixed a GUI bug in older versions of Pro Tools (7.3/7.4).
  • Improved interpolation quality for PPC versions of ValhallaRoom
  • Improved “short names” in Pro Tools insert/send windows. The shortened name now shows up as “VRoom” instead of “Valh.”
  • Two new reverb modes: Dark Chamber and Dark Space.

A bit about the new reverb modes:

  • As the names suggest, they are dark. All frequencies above 1/4 the sampling rate are completely attenuated.
  • The modulated delays are cleaner than the deliberately dirty delay modulation used in Dark Room.
  • The modulation in both modes is more balanced than the modulation used in Dark Room, resulting in less random pitch shifts and more of a “detuned” decay.
  • Dark Chamber has a fairly even initial echo density. In this way, it is similar to the Large Chamber reverb mode, but with deeper modulation and a much bigger size.
  • Dark Space has a lower initial echo density, and can have a bit of a delay of the onset of reverberation with high settings of Late Size. This also results in a wide stereo image.

The links to the new ValhallaRoom version have been sent out to all VRoom customers, and new demo links have been posted to the ValhallaRoom page.

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.

ValhallaRoom V1.0.6: Introducing Dark Room

I have just released version 1.0.6 of ValhallaRoom. You can download the demos from the usual place, and all current ValhallaRoom customers should have received a link to the updates (send me an email if you haven’t received your links yet).

In addition to a few bug fixes, version 1.0.6 introduces a new reverb mode to ValhallaRoom: Dark Room. This new reverb departs from the high fidelity path taken by the other 4 reverb modes in ValhallaRoom. It is deliberately low-fi, with noisy interpolation, no high frequencies above 11 kHz, and a late reverb that can have a low initial echo density. It also has a wide stereo image, a clear decay with lush randomized chorusing, and sits in a mix quite nicely. An added bonus is that the CPU is significantly lower than the other ValhallaRoom reverb modes.

Why add a lo-fi reverb mode to ValhallaRoom? I’m not really sure. After doing this for about 12 years, I’ve learned to follow my instincts on this stuff, even if it takes me in strange directions. Plus, I wanted to add something new to ValhallaRoom, as a way of saying thanks to all of the customers who have supported my work.

I was also inspired by some recent studies of the Lexicon 224, the EMT250, and other vintage reverbs. These early digital machines often had very noisy interpolation, sparse initial echo density (at least by modern standards), and sampling rates that seem primitive today. They also were useful for creating a “larger-than-life” sound, that is described to this day as warm and spacious. I noticed that a lot of these classic reverbs had a very limited frequency response, so I figured it would be worth adapting some of these old-school limitations to the more modern algorithm architectures found in ValhallaRoom.

Dark Room has identical controls to the other reverb modes, but produces a noticeably different initial sound. With Early Send set to 0, the Late Decay can have a marked amount of initial “flutter” or “grain,” similar to the 224 Concert Hall with the Diffusion control set low. A few usage tips:

  • The Late Size control can be used to adjust the speed of the “flutter,” with larger sizes corresponding to more obvious and slower echos.
  • By setting Early Send to 1.0, and adjusting the Early Size to 40 msec or later (depending on the Late Size), the flutter in the Late reverb can be totally eliminated. This is similar to how the Diffusion control works in older Lexicons, but with the advantage that the Early reverb has far less coloration than the series allpasses used for the diffusors in many “classic” reverbs. The Late Size can then be adjusted to get the desired stereo width – this can get really big.
  • Setting DEPTH to 1.0 results in the most “vintage” sound, while values less than 1.0 allow the user to dial in some early reflections.
  • With Early Send set to 1.0, and using larger Early Size values (>100 msec), the Late Reverb will have a slower initial attack. This is similar to how the Depth control worked on the 224 and 224X/L, as well as the Shape and Spread controls on the 480L and later reverbs.
  • The Late High Mult and Late High Xover have an effect on the initial tone of the late decay, similar to the Concert Hall algorithm on the 224XL and the Small/Large Concert Hall B on the 224. By setting High Mult to 0.1X, the user can simulate the -6dB/octave filters used on these older boxes.
  • Turn up the Early and Late Mod Depth when using Dark Room. The older algorithms used a LOT of pitch modulation to avoid metallic decays. The Dark Room algorithm uses a different architecture that is less prone to sounding metallic, but if you want that big, lush, spacey decay, modulation is a must.

Here’s a preset that can be used as a good starting point for the Dark Room reverb mode:

<ValhallaRoom pluginVersion="1.0.6" presetName="DarkStartingPoint" mix="0.289999992" predelay="0" decay="0.0265265256" HighCut="0.58523488" earlyLateMix="1" lateSize="0.720000029" lateCross="0.25999999" lateModRate="0.202020198" lateModDepth="0.430000007" RTBassMultiply="0.413333327" RTXover="0.0666666701" RTHighMultiply="0" RTHighXover="0.410067111" earlySize="0.0581581593" earlyCross="0" earlyModRate="0.0909090936" earlyModDepth="0.800000012" earlySend="1" diffusion="1" type="0.416666657"/>

ValhallaRoom Tips and Tricks: Cathedrals

The 1.0.4 version of ValhallaRoom added a set of Cathedral presets, that were dialed in from published acoustic measurements of various Italian cathedrals. A few hints in dialing in a cathedral sound:

  • Turn DECAY up to correspond to the midrange decay rate. Gothic cathedrals can have decays up to 12 seconds long, while cathedrals from other eras tend to be smaller and have shorter decay times.
  • Late Size should be set to a high setting, to reflect the high modal density of these spaces.
  • The Early Size control should be used to generate a bit of a “fade-in” for the decay. Due to the large size of cathedrals, it takes a fair amount of time for the energy to build up in the space, which translates to a slow attack for the decay time. A good rule of thumb is to use an Early Size setting of 1/20th of the decay time (up to 500 msec or so for truly large cathedrals).
  • In order to get the “fade-in” effect from Early Size, set Early Send to 1.0, and DEPTH to 100%.
  • The Late High Mult should be set to a low value, such as 0.1x. The sheer volume of air contained in a cathedral adds a huge amount of high energy loss.
  • Set the HIGH CUT and Late High Xover to get the required amount of brightness in the sound. Lower frequencies would be more realistic, but higher frequencies might be better for that “heavenly” sound.
  • For a realistic sound, leave the Early Mod Depth low, but don’t be afraid to turn up the Late Mod Depth. In order to properly capture the modal density of a cathedral, a digital reverberator would have to use several minutes of delay memory, which would put the CPU and memory consumption well outside of the real-time range for any modern computer. Modulated delays are a good way of creating the impression of higher modal densities. Plus, they sound purty.