I started developing ValhallaÜberMod in late May of 2011. The original name was ValhallaChorus, as my goal was to make a plugin that could generate the “detuned” choruses found in the Roland Dimension units, as well as the multi-delay LFO choruses found in the classic string ensemble keyboards. I had first modeled the Solina and ARP Omni ensembles in Csound back in 1999, and had implemented several chorus algorithms in the past decade, so I figured that ValhallaChorus would be easy to implement. This proved to be not entirely correct.
The basic chorus algorithm only took a week or so to put together. Just for fun, I decided to extend the maximum delay time, from the 20 milliseconds commonly found in choruses, up to 1000 milliseconds. This is where things started getting interesting. I was getting a lot of sounds that were not quite choruses, not quite delays. So I started expanding on this direction.
I had created a 6-tap delay mode to emulate the “supersaw” of 1990’s Roland digital synths, and found that spreading the taps out in time could reduce some of the flanging artifacts, but also created interesting sounds in its own right. I ended up implementing a number of multitap modes, from 2 taps (1 per output channel) up to 32 taps. I decided to put some high-level controls to shape the tap amplitudes and delays, and after I finally figured out the math, a bunch of cool sounds emerged, from delay clusters to reverse reverb.
One of the formative sounds of my youth was the diffuse chorusing of the Lexicon 224XL found in my university’s recording studio. I implemented diffusion into the algorithm, based on the fixed allpass network used in the chorus/echo algorithm of my PCM70. The single “Diffusion” control I was using created some nice smeared echos and choruses, but I decided to experiment with larger diffusion networks, that had controls over the size and modulation (I had previously done a lot of work in this area with ValhallaShimmer). A few days of work later, and I had a very powerful diffusion network, that could add echo density to choruses and delays, but could also be used to make multitap delays sound more reverberant, and could be used in conjunction with feedback to create powerful reverbs in its own right.
The basic modulation of the chorus modes was derived from the Dimension choruses, but extended to arbitrary numbers of modulated taps. One of the cool features of the Dimension D is how the delays are filtered and mixed together to get a chorus that has a wide stereo image, while preserving the bass content in the signal. The Dimension D does this in a fixed way – the mix levels are preset by the Mode buttons. I thought about this, and one summer afternoon, pacing around in a circle outside, I figured out how to create similar effects, but in a fully variable manner. The idea is to rotate the low and high frequencies separately, with the rotation of the low frequencies being limited to a maximum of 90 degrees, while the higher frequencies can be rotated up to 180 degrees. This allowed me to dial in the “super-stereo” Dimensional choruses, as well as “true stereo” delay and multitap effects.
Somewhere along the way, the GUI came together. The concept was a continuation of the UX concepts used in ValhallaRoom: sliders for the “high level” controls, and knobs accessed by tab buttons for the “tweakier” controls. The actual GUI kept changing, as I added and deleted different tab sections, depending on what controls I incorporated into the algorithm, but the basic layout remained the same.
I made a mistake during the development process, that ended up being a big influence on the direction of the plugin. I decided to change the displayed values so that they worked with percentages, so that the parameters would go from 0% to 100%, instead of 0.0 to 1.0. I changed the slider values, but forgot to divide the results by 100 to get the proper modulation depth. The result was a horribly overmodulated sound, that had so much pitch shift that the signal actually started going backwards. Instead of fixing the bug, I put in a control (MOD OverMod) that allowed the user to dial in this sort of “glitch shifting” if desired.
From this point onwards, I decided to embrace the weird. Normally, creating a plugin is all about saying No. You limit the possibilities, and make the “good” decisions about what parameters are included. For better or worse, I didn’t do that with the new plugin. In ValhallaRoom, I tried to make a powerful plugin with as few controls as needed to get the desired sounds. With the new plugin, I let my mind roam where it may. All sorts of sounds that I never would have expected were emerging from the plugin, and I felt like I was along for the ride. I decided to say Yes. Or, more accurately, Why Not.
The first beta testers suggested that distortion in the feedback path would be useful for tape delays. I balked at first, as I had intended for ValhallaChorus to be a modulation effect, but then I decided, “why not?” So I put some overdrive in there – and then spent the better part of a month tracking down bugs in the overdrive. I ended up ripping out my original overdrive algorithm, and implemented something far better than what I had first used, but MAN, that was frustrating. I allowed the user to dial in the gains and noise levels, to create deliberately dirty sounds. More Noise Please.
At some point, it became clear that this plugin was far exceeding the bounds of anything that should be called “ValhallaChorus.” The name eluded me, until my wife suggested ÜberMod on an early fall walk. The name looked really cool written in Futura DemiBold.
The final days of ÜberMod development stretched out into several weeks, and then several months. There were a lot of features that produced useful sounds, and I wanted to open up the possibilities of the plugins, but organizing the parameters proved difficult. I realized that the time needed to finish up a plugin goes up as some power of the number of parameters. It may not be proportional to the square of the number of parameters, but it ain’t linear. It turns out there are good reasons to say No, instead of Why Not. But the sounds kept moving me forward.
Eventually, the parameters were fixed, the plugin was tested, and bugs were fixed. On December 15th, 2011, ValhallaÜberMod was released for OSX and Windows.
After the release, I gathered feedback from users. Many users asked how to implement ping pong delays. I thought about adding a few dedicated ping pong modes, but decided to take a chance and add a new parameter, WARP InputPan, that would allow any of the existing Modes to be ping ponged. This seemed risky, as adding parameters to a plugin post-release could potentially wreak havoc with existing DAW projects, but it turned out that almost all DAWs were able to handle the new parameter without issue. After a particularly long beta testing period, the 1.0.1 update of ValhallaÜberMod was released on March 1, 2012.
Interesting development, man, thanks for sharing. I love how you manage to keep all of these power functionality on your plugins while having at the same time keeping GUI clear, intuitive and focus on what’s important, and still not lacking anything… and sounding freaking great! You do are obsessed after all 🙂
Will read more of your blog posts as I get more deep into your plugins.
Keep up the outstanding job you’re doing!
Hello there, Sean! By rotating, do you mean the LFO Phase? What does the Roland Dimension D do exactly? Can you explain it to me in terms of like: “It splits the signal, shifts the phase of one of the signals and adds a 30 ms delay and then modulates it etc etc”… I’m trying to copy what happens to the signal when it’s passed through the Dimension D – using basic tools like delays, phase inversion, modulators, eq…
Has been really interesting reading through your posts on one of my favorite and most-used plugins: the Ubermod. It’s becoming more clear why it’s such an inspiring piece of software, why every time I use it it seems to change what I thought I was going for as I tweak away, because while developing it you just went with it, let the possibilities and the accidents dictate the course as much as the initial inspiration. A lot like writing a song. I use the Ubermod mostly for it’s spatial and phasing abilities, but have used it as a reverb and a weird-out tool too. Thanks for all your hard work. It shows, and as a user I really it.