November 5, 2009 by seancostello
Super nerdy DSP content warning.
If you program audio DSP effects, you have undoubtedly heard of Robert Bristow-Johnson. If you haven’t heard of him, get yourself a copy of his Audio-EQ Cookbook. This is a succinct little document, that provides coefficient generation formulas for pretty much any second order filter building block you would ever need: lowpass, highpass, allpass, peak EQ, notch, shelving filters, etc. Today, I am implementing these formulas for my own code, but I know I’ve implemented them in at least 3 prior DSP environments. Really good stuff.
A quick Google search doesn’t turn up a ton on Robert Bristow-Johnson (or RBJ, as he is often abbreviated). He worked at Eventide, Fostex, Young Chang (Kurzweil), and Wave Mechanics. RBJ has a few AES papers as well, all of which are worth reading, covering topics ranging from PSOLA pitch shifting (made famous by AutoTune) to filter design to interpolation for oversampling.
If anyone out there knows RBJ, send him my thanks!
Tags: Biquads, filters, PSOLA, Robert Bristow Johnson
Posted in DSP Heros | Leave a Comment »
October 11, 2009 by seancostello
I wrote a paper with my old coworker and friend Joseph Anderson on reverb architectures for Ambisonics. You can download the paper here.
It was a lot of fun writing a paper with Dr. Anderson, who is also a master of writing compositions that use Ambisonics to nice effect. Joe (ok, I call him Joe) manages to make Ambisonics work beautifully. One of his compositions uses a salad bowl spinning around a SoundField microphone, which is a very expensive way of getting a simple effect, but the results are stunning when heard in an Ambisonics environment.
Tags: ambisonics, joseph anderson, lloyd, reverb, reverberation, sean costello
Posted in reverb, theory | Leave a Comment »
September 24, 2009 by seancostello
I just posted an update of the ValhallaFreqEcho Audio Unit, that should fix some bugs people were encountering with Logic. The plugin assumes stereo-input, stereo-output, but the older version of the AU wasn’t enforcing this. I changed the code so that it can only be instantiated on stereo tracks. I will work on having it run with mono tracks in a future release.
Download the new version of the code here.
Tags: all data lost, au, audio unit, blow up computer, bugs, burning laptop, crash, disaster, frequency shifter, götterdämmerung, logic, melting processor, ragnarök, the living will envy the dead, ValhallaFreqEcho
Posted in frequency shifter | Leave a Comment »
September 16, 2009 by seancostello
Barry Stramp just posted a quick soundfile made with ValhallaFreqEcho to Gearslutz:
avoidance
I really like this piece. It sounds similar to some of the things that I have running late at night using ValhallaFreqEcho, but with far more compositional chops going on.
Tags: au, Barry Stramp, frequency shifter, ValhallaFreqEcho, vst
Posted in frequency shifter | Leave a Comment »
September 2, 2009 by seancostello
I just posted some updates to ValhallaFreqEcho, my free frequency shifter + analog echo plugin. You can download the plugin here. The new stuff:
- New parameters: Low Cut and High Cut. These control the gain of shelving filters in the feedback path of the echo (the direct and initial echo signal are not filtered). These controls are very useful in getting different type of analog sounding echos, as well as harsher or flubbier echos, plus a variety of strange chaotic oscillations.
- An Audio Unit version of the plugin is available, in addition to the VST plugins for Windows and OSX.
I’ll be posting some usage tips soon. I have spent a lot of time setting up runaway oscillations with the plugin, using no input (it self-oscillates like the old analog echos). Some very trance-y sounds can be coaxed out of this thing – not the dance music type of trance, but the “staring into space and drooling for awhile” type of trance.
Tags: analog echo, au, audio unit, frequency shifter, sean costello, ValhallaFreqEcho, vst
Posted in frequency shifter | 6 Comments »
August 4, 2009 by seancostello
The first magazine reviews are rolling in for Eos. Computer Music gave it a 9/10. Interestingly enough, they liked the Plate algorithms more than Superhall.
Full review here.
Their verdict: “A stunning vintage-style digital reverb at a price that makes it an essential purchase.”
Tags: audio damage, Eos
Posted in reverb | Leave a Comment »
August 2, 2009 by seancostello
As a followup to my Eos tips and tricks post, I thought I’d share some more reverb tips. All of these have been tested with Eos, but should also work with a wide variety of hardware and software reverbs.
- Set the high cut filters to a fairly low frequency. Older hardware reverbs, such as the EMT250 and Lexicon 224, had a hard cutoff at 8 KHz to 10 KHz, due to the low sampling rate of the machines. The high cut filters in many reverbs have a much more gentle slope than the high order filters used at the inputs of these old boxes. To emulate these old boxes, try setting your high cut filters to a fairly low frequency, such as 2 to 4 KHz. This also corresponds more closely to the absorbtion of high frequencies by air in a large space, such as a concert hall.
- Use the low cut controls to make the reverb sound less “tubby.” Many concert halls actually have a much longer decay for low frequencies than mid range frequencies. This is useful for classical music, but for most popular music forms, the amount of bass energy that is present will sound flubby when reverberated. Set the low cut controls at 200 to 400 Hz, or even higher, for a clearer reverb sound.
- If you don’t have low or high cut controls, put the reverb in a send bus, and put the EQ of your choice before or after the reverb.
- Try compressing the input or output of the reverb, for some neat sounds. A limiter before the reverb will keep spikey transients from dominating the response, and will better emulate the transformer-coupled inputs of the old high-end hardware units. Compressing the output of the reverb will change the exponential decay response to something much weirder, depending on your settings.
- Plate reverbs have a lot of high frequencies in the decay, so make sure that the high frequency decay multiplier (or the high frequency decay filter cutoff) is set fairly high. These controls are usually separate from the high cut controls, that shape the sound at the input (or output) of the reverb.
- Adjust your modulation depth based on the decay. For long decays, you may wish to back off on the modulation depth, as the sound will travel through the modulators many more times compared to a short decay. Each pass through the modulators causes more detuning. A modulation depth that works for short decays may sound seasick for long decays. Of course, if that’s your thing, then go for it.
- Use the Size control for the desired echo density, but be mindful of how it affects the modal density. For example, if you want a small drum room, then set Size to a smaller setting, as it will make the echos closer together. However, a smaller Size setting will sound more metallic for longer decays, as the modal density goes down as the Size decreases. Longer delay lengths = higher modal density = less metallic = lower echo density. For short decays, the low modal density may not matter.
- The Size control is often given in meters. This has nothing to do with any real physical world metrics, in most cases. A real acoustic space with a 30 meter maximum dimension will have a few orders of magnitude higher modal density than your typical digital reverb with a 30 meter Size setting. Just tune it by ear to where you like it.
- Shorter Size settings may also result in deeper modulation for the same decay setting, so be sure to retune this for your tastes.
Hope these are useful to people. If you have any more tips, feel free to add them in the comments.
Tags: 224, EMT250, Lexicon, modulation, plate, reverb, reverberation, size
Posted in Tips and Tricks | 3 Comments »
August 1, 2009 by seancostello
I have been trying to track down good sonic examples of a modulated reverb in action. Here’s a few that come to mind:
- Vangelis, “Creation du Monde,” 1973. This is an interesting example of a home-brewed modulated reverb. Vangelis used 3 Roland Space Echos in series, processing a Hammond organ and Clavinet, to get the huge spacey sounds in this track. The old Space Echos (and other tape echos) tended to have a fair amount of wow and flutter, due to imperfections in the tape, slipping and sticking of the capstan, and so on. By applying feedback in a single tape echo, the result is a modulated echo sound, where the amount of modulation increases with each passthrough of the system. Run three of these in series, and the result is a LOT of pitch modulation.
- Harold Budd and Brian Eno. “First Light,” 1980. The modulation of the EMT250 can be clearly heard on this track from “The Plateaux of Mirror.”
- Jeff Buckley, “Hallelujah,” 1994. Buckley’s guitar is being run through an Alesis Quadraverb, which has several really nice modulated reverb options available (and a lot of noise, at least on my Quadraverb). The vocals sound like a modulated reverb, but I am unsure of which unit – a high end Lexicon seems likely.
I know that there are a lot more, but I am kind of forgetful today. Any suggestions welcome.
Tags: Alesis, Brian Eno, EMT250, Harold Budd, Jeff Buckley, Quadraverb, Vangelis
Posted in theory | Leave a Comment »
July 30, 2009 by seancostello
The use of modulation in digital reverbs dates back to the first commercial digital reverberators. The EMT250 used an enormous amount of modulation, to the point where it sounded like a chorus unit. Lexicon’s 224 reverberator incorporated what they called “chorus” into the algorithms, working along principles not dissimilar to the string ensembles in use at the time. The Ursa Major Space Station was based around an unstable feedback arrangement, that relied upon randomization to achieve longer decay times without self-oscillating.
Recently, Barry Blesser has written about randomization in his book, “Spaces Speak: Are You Listening?” Blesser argues that thermal variations in most real-world acoustic spaces results in small variations of the speed of sound within those spaces. Multiply this by several orders of reflections, and the result is an acoustic space that is naturally time varying. Blesser goes on to argue that random time variation in algorithmic reverbs emulates the realities of an acoustic space more accurately than time-invariant convolution reverbs.
Blesser makes a convincing argument, but I am not convinced that the heavy amounts of delay modulation used in the older reverbs makes for a more “realistic” space. The randomization in the older algorithms does a nice job in masking the periodic artifacts that can be found when using a small amount of delay memory. However, the depth of modulation used in the old units goes far beyond what can be heard in any “real world” acoustic space. The thermal currents in a symphony hall will result in a slight spread of frequencies as the sound decays, but will not create the extreme chorusing and detuning found in the EMT250, or in the Lexicon algorithms with high levels of Chorus.
Having said that, I would argue that the strengths of algorithmic reverbs is not in emulating “real” acoustic spaces, but in creating new acoustic spaces that never existed before. Blesser recently said that the marketing angle of the EMT250 was to reproduce the sound of a concert hall, but later describes the EMT250 in terms of a “pure effect world.” The early digital reverbs, in the hands of sonic innovators such as Brian Eno and Daniel Lanois, were quickly put towards the goal of generating an unreal ambience, where sounds hang in space, slowly evolving and modulating. Listen to Brian Eno’s work with Harold Budd, on “The Plateaux of Mirror,” to hear the long ambiences and heavy chorusing of the EMT250 in action. A later generation of ambient artists made heavy use of the modulated reverb algorithms in such boxes as the Alesis Quadraverb to create sheets of sound, that bear little resemblance to any acoustic space found on earth.
Creating these washy, chorused, “spacey” reverbs has been a pursuit of mine since 1999. My early Csound work explored relatively simple feedback delay networks, with randomly modulated delay lengths, in order to achieve huge reverb decays that turn any input signal into “spectral plasma” (a term lifted from Christopher Moore, the Ursa Major reverb designer). With my more recent work, I have tried to strike a balance between realistic reverberation, and the unrealistic sounds of the early digital units. The plate algorithms in Eos are an attempt to emulate the natural exponential decay of a metal plate, but were also inspired by my understanding of the EMT250. The Superhall algorithm in Eos was not attempting to emulate any “natural” space, but rather the classic early digital hall algorithms, with heavy randomization, nonlinear build of the initial reverberation decay, and the possibility of obtaining near infinite decays. The “real” world continues to be a source of inspriation for my algorithms, but I find myself more attracted to the unreal side.
Tags: 224, Barry Blesser, Christopher Moore, EMT250, Eos, Lexicon, reverb, reverberation, sean costello, Space Station, Ursa Major
Posted in DSP Philosophy, theory | 1 Comment »
July 29, 2009 by seancostello
Eos has been out for a month and a half now, and the reception seems pretty positive. I thought I would share some tricks that came up during the development of the algorithms, as well as some more recent ideas.
- Gated reverb. The Attack control in Superhall allows you to approximate a gated reverb sounds Set Attack to around 50, Decay to a low value (<1 second), Diffusion to 100, and play around with Size to get the gate time. If the sound is too grainy, turn up Decay a little higher.
- Reverse reverb. Same settings as above, but set Attack closer to zero.
- “Shape.” The late 80’s Lexicon reverbs had “Shape” and “Spread” controls to control the initial onset of reverb energy, with high Shape settings resulting in a reverb that fades in slowly. The Superhall Attack control has a similar function, in that the first few hundred milliseconds can have an exponential decay (for high settings of Attack), a relatively flat response (Attack=50) or fade in slowly (Attack=0).
- Using an external chorus to simulate the EMT-250. I recently heard sound examples of the EMT-250, and that thing had TONS of modulation. In Eos, the Superhall algorithm can get similar levels of modulation right out of the box, but the plate algorithms have a somewhat drier sound for the first few hundred milliseconds. By running a decent chorus or ensemble plugin in front of Eos, and using the Plate 1 or Plate 2 algorithms, you can get a sound that is closer to the EMT-250 (the Plate algorithms are closer in concept to the EMT-250 than Superhall). Set the Low Crossover and High Crossover frequencies at 1000 Hz, set the Size to 30 meters, Mod Freq to 0.5 Hz or so, and Mod Depth at max, and then tweak your chorus until the initial sound is as “wet” as you like. Obviously, this works better on a bus send. The internal modulation of Eos will give you spreading sidebands as the sound decays, that you just can’t get out of a convolution reverb.
- Ethereal vocals. Use Plate 1 or Plate 2, set the Low Cut frequency to a fairly high value (800 Hz to 1200+ Hz), and the High Cut frequency to a similarly high value (8000 Hz or higher). Set the mix to a fairly subtle level. The fundamental frequencies of the vocals will not be reverberated to a great extent, but the syllabants and consonants will have a fair amount of reverb. This type of sound can be heard all over Simon and Garfunkel albums – I’m not sure if this was due to the 7-story staircase reverb chamber at Columbia studios, or over enunciation of consonants, but it is definitely a good sound for those choirboy things.
- Emulating older reverbs by backing off on the diffusion. The Superhall algorithm took some of its sonic inspiration from the Lexicon Concert Hall algorithms, but Superhall can have a much higher initial echo density. By turning the Diffusion parameter down to 50% or so, the more “spacious” or “grainy” sound of the older algorithms can be achieved.
- Longer reverb time. In your host’s default parameter view, move the Low Crossover to a high frequency (>8000 Hz), and set the Low Multiplier to 2.0. This should increase your maximum Decay time to 20 seconds.
If you have any Eos tricks that you would like to share, feel free to post them in the comments.
Tags: au, audio damage, audio unit, Eos, modulation, reverb, reverberation, sean costello, vst
Posted in Tips and Tricks | 7 Comments »