Slides from my AES Reverb presentation

I was invited by the Seattle chapter of the Audio Engineering Society to speak about reverbs and reverb design. I threw together some slides:


Pretty skeletal deck, but it was (hopefully) more entertaining when presented in person. Don Gunn helped me out with a Logic X project that accompanied the presentation. Don also listened to me when I practiced the presentation, and was graceful enough to pretend that he hasn’t heard me ranting on the same topics about 100 times before.

I think I learned more from the people in the audience at the AES presentation than anyone learned from me! It was cool to hear anecdotes from people that had worked at Lexicon and Alesis, as well as folks that had a lot of experience with plate reverbs and echo chambers. Thanks to Christopher Deckard for inviting me to speak, and thanks to everyone that attended the presentation.


The System. Is Down. The System. Is Down.

Starting on October 15th, 2014, the Valhalla DSP website will be switching over to a new web server. The DNS switching may take 24 to 48 hours. During this time, there will probably be times where the website is neither here nor there (in other words, unavailable).

The system is up and running again. Strong Bad Techno left up for posterity.

Naming reverb algorithms

I’ve created a lot of reverb algorithms at this point in time. I’ve released several dozen in plugin form, and have written hundreds more. It turns out that it is a little tricky to come up with names for all these algorithms.

During the development stage, I tend to name the algorithms after the internal structure. Things like “BigFDN32,” or “AllpassLoop8.” However, these names don’t mean anything to people that don’t design reverbs. Plus, the same structure can sound markedly different, depending on the delay lengths, how the coefficients are set, the filtering used, and so on.

The easiest names are to adopt the names of physical structures, that people are familiar with. Hall, Room, Chamber, Plate, that sort of thing. However, when you are creating algorithmic reverbs, the name has very little to do with the corresponding physical structure. A real hall will have a few orders of magnitude more modal density than can reasonably be achieved with an algorithmic reverb. Even a small room would tax modern CPUs, if modeled accurately. A physical plate has all sorts of weird characteristics that aren’t usually captured in the digital models.

Several years ago, I asked Keith Barr about naming conventions for digital reverbs, and whether there was any “standard” for how reverb algorithms were named. The whole thread at the Spin Semiconductor forum is worth reading, so here’s a few choice quotes from Keith (R.I.P.):

To the best of my knowledge, with the exception of some possible inside jokes that I have not been privy to, reverbs are named according to their sound. -Since the digital methods that approximate the acoustics of physical structures are recent compared to the acoustical impressions spaces have given over the course of human history, and since most folks don’t think in terms of reverb algorithms, we don’t call a plate a “spacially uncorrelated, extreme reflection density reverberator with distinct ringing and a multiorder high frequency loss”… We call it a plate.

Personally, I think the tendancy to name algorithms after physical structures is unfortunate, because we have the ability to make much nicer acoustic environments with digital hardware than most real world structures allow, with the possible exception of a parking garage I ran into once…

Keith goes on to give a good overview of how he named reverb algorithms:

Plate: Immediate build of diffusion, uncorrelated outputs, strong high/mid response (which rings), rapid rolloff of high frequencies, poor bass response.

Room: Fast build, short (~10mS) and multiple initial reflections, ringy in the mid frequencies, high frequencies depend on wall treatment, bass variable.

Hall: Long delays in the initial sound (30~120mS), slow build, poor high end response, moderate diffusion build, moderate bass respopnse.

Digital: (this should be a popular option) Beautifully dense, no ringing, extended response with sparkling highs, deep bass response (when wanted), cascading showers of even tonality.

The first algorithms I developed for ValhallaRoom were named after rooms and chambers. Later on, I got bored, and started developing algorithms that didn’t particularly sound like physical spaces. These new algorithms had lusher modulation, and a much slower attack. At the time I was developing these, the movie Prometheus was in production, which prompted me to revisit the Alien movies. I named several of the algorithms after spaceships and places in the first 2 alien movies (Narcissus, Nostromo, Sulaco, LV-426). I am adding a new algorithm to the upcoming ValhallaRoom update, but actually seeing Prometheus put an end to that naming scheme; Red Letter Media summarizes my thoughts on this subject. The new algorithm is called Dense Room, which is boring, but is an accurate description of the sound.

For my upcoming Z-DSP reverb cartridge, Halls of Valhalla (not to be confused with this very blog, even though the name is eminently confusable), I included some of the standard reverb names: Room, Chamber, Plate, Cathedral. I had a few algorithms left over, that sounded bigger than the Cathedral. Where do you go from there? Stadium? Cistern? Taj Mahal? OK, now that I type those names, I realize they might have worked well, but it is TOO LATE NOW. Instead, I went with some names from Norse mythology, in keeping with the whole Valhalla theme.

Niflheim, Asgard, and Ginnungagap are cool words for reverb algorithms, and help convey a sense of huge space, without being tied into any particular construct in the real world. However, a quick viewing of my demo video for Halls of Valhalla will me it instantly clear that I have no idea whatsoever how to pronounce these words.*

One of the great features of digital reverberators is that they can create sonic characteristics that are highly exaggerated versions of what could occur in the real world, or depart wildly from what the real world can achieve. A large cathedral can have an attack time of up to 1/2 second, but ValhallaShimmer and other digital reverbs can easily fade in over several seconds. Alesis used the term “Bloom” for such slow attack reverbs, as I discussed in an older blog post. The recent Big Sky pedal from Strymon uses Bloom as an algorithm name for a similar effect. For that matter, the term “Shimmer” has been commonly used for reverb algorithms in the last few years that contain pitch shifted feedback, versus some of the older terms like “Octaverb.” It will be interesting to see what terms are developed over time to describe other digital effects that have no “real world” counterparts.



* For that matter, I’m pretty sure that ÜberMod isn’t pronounced OOOO-berMod. But THAT’S HOW I ROLL.


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.

AAX Progress

I’ve been working on AAX ports of the Valhalla DSP plugins for the last several months, and have been getting a lot of inquiries as to when the AAX ports will be ready. For the latest information on this topic, check my website:

Valhalla DSP: AAX Progress

TO REQUEST A BETA:  I’ll add a request link on this page to each beta as they become available.   Please contact me after I announce a beta is ready for testing so that I can make sure you get it.  Note that the betas are the “full” version, and are for existing customers of each plugin, so I will only send the betas to people that have purchased the plugin.

BUGS:  Please log here.  I’ll review these on a daily basis and add to my workflow as they come in.

DEVELOPMENT PLANS:  I am focusing on OSX first because I want to work the bugs out before I port over to Windows. Generally speaking, OSX plugins are trickier to develop than Windows, so I don’t anticipate that the Windows AAX ports will take that long.  I am aiming to have all of the AAX ports completed in Q1 2014 and will post request links for each beta here as they become available for testing.



OSX: In Beta Now (Version 1.0.2b63).  Contact me here to request beta for testing.  Please log any bugs here.
WINDOWS: In development, ETA end of April 2014


  • AAX 32/64-bit
  • VST 32/64 bit
  • AU 32/64 bit
  • RTAS
  • 6 New Reverb Modes (Dirty Hall, Dirty Plate, Smooth Plate, Smooth Room, Smooth Random, Nonlin)
  • Bug Fixes


OSX: In Beta Now (Version 1.0.3b6). Contact me here to request beta for testing. Please log any bugs here.
WINDOWS: In development, ETA end of April 2014


  • AAX 32/64-bit
  • VST 32/64 bit
  • AU 32/64 bit
  • RTAS
  • Installer


OSX: In Beta Now (Version 1.1.1b11). Contact me here to request beta for testing. Please log any bugs here.
WINDOWS: In development, ETA end of April 2014


  • AAX 32/64-bit
  • VST 32/64 bit
  • AU 32/64 bit
  • RTAS
  • 1 New Reverb Mode (Dense Room)

OSX: In Beta Now (Version 1.0.2b2).  Contact me here to request beta for testing.  Please log any bugs here.
WINDOWS: In development, ETA in end of April 2014


  • AAX 32/64-bit
  • VST 32/64 bit
  • AU 32/64 bit
  • RTAS


OSX: Public beta – download here
WINDOWS: In development, ETA end of April 2014


  • AAX 32/64-bit
  • VST 32/64 bit
  • AU 32/64 bit
  • RTAS
  • New Installer

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.

Apple’s Gatekeeper: Malware Protection? Or The Mark Of The Beast?

Chris Randall, over at his excellent Analog Industries blog, recently posted about an upcoming change in OSX 10.8 (“Mountain Lion”). OS 10.8 will introduce a new feature called Gatekeeper, which is being promoted as a method of protecting the user from downloading and running malicious software.

As part of this new “protection” system, Apple has created a new certificate program for software, Developer ID, that will allow developers to mark their software/plugins with an official seal of approval. In OS 10.7.3, there is a preview of the Gatekeeper function, and apparently an alert window will be displayed if you try to install any software that doesn’t have an official Developer ID:

Many developers are worried that this is the first step of Apple restricting all software on OSX, with the App Store eventually becoming the only source of software for the Mac (and with Apple taking 30% of all software sales for the Mac). This is a sinister prospect, but what if the real goal of Apple is worse…far, far worse?

The idea of needing a particular identification mark in order to buy or sell a product can be found in the Book of Revelation:

“And that no man might buy or sell, save he that had the mark, or the name of the beast, or the number of his.” – Revelation 13:17

Is Apple’s Gatekeeper program a way of protecting users from malware? Or is it the first step in a blatant power grab to control all software on the OSX platform? Or…is it one of many steps designed to hasten the onset of End Times?

The choice of the apple for Apple’s logo is starting to seem less…innocent. Newton’s apple, or forbidden fruit?

And what rough beast, its hour come round at last,
Slouches towards Cupertino to be born?

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 Preset Menu

ValhallaÜberMod has a cross-platform preset format, allowing users to use the same presets for all plugin types (RTAS/VST/AU, for both OSX and Windows). The preset format is based around XML, which allows presets to be copied and pasted into emails, forums, or any other place that can accept text.

To access the presets, simply click the name of the active preset, to the right of the PRESET: text in the lower right side of the GUI (the plugin will display “Default” when first opened):


The Preset Menu will display when the current preset name is clicked:


To select a preset, simply mouse over the given preset name, and release the mouse button. Mouse over a given preset folder name (the ones with the triangle to the right) to view and select presets within that folder.

To save a preset, simply select “Save as…” from the menu. This will allow you to name your preset, and choose the folder to save the preset to, or to create a new folder for your preset.

If you wish to copy a preset from a forum or blog post, simply select the text with your mouse (including the < and > closing tags), and copy the text (Command+C on OSX, CTRL+C on Windows). Then, select the “Paste from Clipboard” option from the preset menu.

If you want to share a preset with someone, select the “Copy To Clipboard” option, then simply paste the text (Command+V on OSX, CTRL+V on Windows) into the document/email/forum where you want the preset to be.

Special thanks to Randy Jones of Madrona Labs for developing the original text-based preset code that I ported over to ValhallaRoom and ValhallaÜberMod.