ValhallaShimmer now available for Windows VST

I just posted ValhallaShimmer for Windows VST. A demo version is available, which mutes the sound every 45 seconds (just like the OSX versions), but is in all other aspects identical to the full version. Check it out at

http://www.valhalladsp.com/shimmer.html

Thanks to everyone who has bought ValhallaShimmer so far. I appreciate your support.

ValhallaShimmer released for OSX AU, VST, RTAS. $50. Demo versions online.

After far too much work, ValhallaShimmer is finally available for sale and demoing:

ValhallaShimmer

OSX users, grab yerself a demo copy and see how you like it. Windows folks, I estimate another week of work and beta testing until the Windows VST/RTAS release.

Some thanks are in order:

  • Beta testers. You’ve dealt with far too many revisions, and your input has been invaluable.
  • The Audio Damage guys. You gave me credit for my work on Eos, at a time when I had never received any public credit for my consulting gigs.
  • My old co-workers at Staccato Systems / Analog Devices. It was like going to school, just getting paid.
  • My teachers at University of Washington and CCRMA. It was exactly like going to school, except I was learning really cool stuff. You helped me start off on this crazy journey.
  • Bram Wessel and David Hopper, for encouraging me to keep going on Shimmer even when I was ready to walk away from the project.
  • All of you who have been following this blog and the forums, and giving me words of encouragement.
  • Last and by no means least, my lovely wife Kristin has given me emotional and financial support, time, and has been an awesome web designer. Plus, you’ve heard me rant about allpass filters and modulated delays for the past 13 years, which makes you a freaking hero.

ValhallaShimmer progress report

I am coming down the home stretch on ValhallaShimmer. The past several weeks have involved tracking down and stomping out numerous bugs, improving the automation code, and implementing a secure copy protection system that is unobtrusive to the user. I still have a few more days of work, including sending the release candidate out to my beta testers. Thanks for your patience. UPDATE: ValhallaShimmer has been released. Go to http://www.valhalladsp.com/shimmer.html to check it out.

In other news, a patent I wrote was granted at the end of August:

http://www.pat2pdf.org/patents/pat7787633.pdf

The patent dates from my video game sound days, and was designed to produce better simulations of engine noise in vehicles. Not super relevant towards my current work, but something to put up while I am staring at Xcode.

ValhallaShimmer, Meet Korg Monotron. Korg Monotron, Meet ValhallaShimmer.

My old friend David Hopper gave me a Korg Monotron yesterday. I’ve had an insane amount of fun getting R2D2 noises, FM drones, and rhythmic beats out of this little battery operated analog synth.

Today, I recorded a few short Monotron drones through ValhallaShimmer. I’m using 4 series instances of Shimmer, with 2 of the instances pitch shifting the feedback by +/- 12 semitones and +/- semitones. Here’s what came out:

For reference, here is the original Monotron track with no instances of ValhallaShimmer enabled:

ValhallaShimmer was designed to create a huge amount of sonic complexity out of any sound source. By using a simple sound source such as the Monotron and controlling only a few parameters (Pitch, VCF Cutoff, VCF Peak), you can make big sounds that are responsive to subtle sonic gestures.

In other ValhallaShimmer news, I ported the plugin to Windows VST and RTAS late last week. I need to add some optimizations to the Windows code, but this should allow me to release the Windows and OS X versions of the plugin at the same time. (UPDATE: Windows VST, and OSX VST/AU/RTAS released. Go to http://www.valhalladsp.com/shimmer.html to get yourself a copy.)

Introducing ValhallaShimmer

I am happy to announce my first commercial plugin, ValhallaShimmer:

ValhallaShimmer is an algorithmic reverberation plugin. It is designed to produce BIG sounds, from concert halls, to the Taj Mahal, to the halls of Valhalla.

There are several reverberation modes available, to allow the user to dial in the preferred initial sound. By adjusting the Feedback, Diffusion and Size controls, the attack, sustain and decay of the reverb signal can be fine tuned. The modulation controls can be set to produce subtle mode thickening, glistening string ensemble-esque decays, and the distinctive random modulation of the older Lexicon hall algorithms. Two tone controls and the Color Mode selector allow the timbre to be adjusted from bright and glistening to a more natural dark decay, similar to that produced by air absorption in large spaces.

In addition, ValhallaShimmer has the ability to pitch shift the feedback signal. There are 3 pitch shift modes available:

  • Single, where the feedback is shifted up or down by the Shift value.
  • Dual, where the feedback is shifted both up and down (in parallel) by the Shift value.
  • Bypass, which turns off the pitch shifting (useful for “standard” reverb sounds).

By setting the Shift amount to +12 semitones, and the Feedback to 0.5 or greater, the classic “shimmer” sound is produced, as heard on Eno / Lanois productions for U2 and others. I have discussed the “shimmer” effect in great (excruciating?) detail in earlier blog posts, and applied the research to the architecture of ValhallaShimmer. The resulting algorithms allow for the classic shimmer effects to be generated with ease, as well as a variety of pitch shifted, evolving ambiences.

ValhallaShimmer is the end result of several years of research, and is highly optimized:

  • The core pitch shifting algorithm uses randomization to avoid the comb filtering artifacts that can be heard in simpler pitch shifters.
  • The code has been optimized for SIMD processors, in order to allow the complex algorithm to run while using a small fraction of modern CPUs.
  • The reverberation algorithm has been designed to work in conjunction with the pitch shifting, to allow for high levels of feedback without compromising stability.
  • The algorithm works well with cascading multiple instances, both from a signal processing perspective and in terms of the low CPU consumption.

I will be posting more sound examples during the week (earlier examples can be heard here and here). For now, here’s a sound file that showcases the use of ValhallaShimmer for deep ambient sounds. The example uses 4 instances of Shimmer in series, with pitch shifting on 3 of the instances (+/- 12 semitones, +/- 7 semitones, and +/- 5 semitones).

ValhallaShimmer has been released for OSX (AU, VST, RTAS) and Windows (VST). 64-bit Audio Units, 64-bit Windows VST, and Windows RTAS will be coming soon.

More sounds from ValhallaShimmer

I was playing around with 8 instances of the new plugin, ValhallaShimmer, in series, processing the same harp loop used in the earlier example. Here’s what came out:

The sound hasn’t been edited – the fading in and out is a natural consequence of cascading multiple instances of this algorithm. This can be viewed as the Central Limit Theorem in action. In signal processing terms, this means that cascading a whole bunch of similar filters will result in an impulse response that approximates a Gaussian curve.

A single instance of the plugin as used to generate this effect sounds like this (with wet/dry mix set to 50%):

The plugin by itself can be set up to produce a Gaussian attack and decay, where the sound fades in over a few seconds:

However, cascading several instances produces a more dramatic version of the same effect. To me, it sounds very similar to the sounds obtained by extreme time stretching.

Progress continues on the plugin. It is in the hands of beta testers, and I am resolving the bugs that are coming up. I hope to make an official announcement in the next few days.

EDIT: I just made the first announcement of the new plugin, ValhallaShimmer. Check it out here.

RIP Keith Barr

I just read on Matrixsynth that Keith Barr passed away. He was 61 years old.

Keith Barr

Keith Barr was one of the co-founders of MXR, back in 1973. After MXR, he founded Alesis. Most recently, he designed the FV-1 chip for Spin Semiconductor, as well as many of the excellent quality reverb algorithms featured on that chip’s ROM and the Spin Semiconductor website. Barr was both a hardware and software developer and transitioned from designing such classic analog pedals as the MXR Distortion+ and Phase 90 to the digital hardware used in such low cost yet high-quality boxes as the Microverbs, Midiverbs, and Quadraverbs.

How Keith Barr Created the Midiverb

I was lucky enough to enter into an email exchange with Mr. Barr back in late 2008. In one of the emails, he gave a detailed description of the development process of the Midiverb:

You seem to be collecting stories about reverb development, so I have one for you. If it’s boring just skip over it. There are about 6 things I’ve done in my life that I thought were really clever, but as it is with technology, either folks don’t understand, or if they do, they don’t care, and as technology marches on, something better is sure to emerge. This is one of them that I always look back upon fondly:

MAKING THE MIDIVERB:

After playing with a monster machine I built with a bank of commercial SRAM and a 16 X 16 multiplier chip ($100 !), I found that there didn’t seem to be a secret to reverb, just the need for a few simple operations. I put the monster aside, along with my dreams of standing at the side of Lexicon, and returned home to the down and dirty music store… I decided instead of making the world’s coolest reverb; I’d make the world’s cheapest one. I never felt comfortable with the swells in the first place. The $100 multiplier offended me! Although I never really liked beer, I didn’t like Champaign either… As a poor kid, I had learned to make much from sticks and string.

At the time (the early 80s), we had 32K EEPROMS and 64K DRAMs that were organized as 16K x 4. Also, HC logic was exploding, and I could get octal registers and both inverting and non-inverting octal tri-state buffers. I immediately put tape to Mylar on my rigged up light table, a discarded old window propped up by a single tube fluorescent light at the back, C-clamped to my white drafting table. God, I loved that way of doing things. It was with your hands, earthy, soulful; it was art.

The DRAM required 2 addressing cycles, ROW and COLUMN, each 7 bits wide. I developed a system that fetched 2 bytes from the EEPROM and used the lower 7 bits of each as row and column addresses after passing them through an 8-bit adder which summed the last values of ROW and COL with the new ones. –This eliminated an address counter, as the code simply expressed the next address relative to the previous address. Of course, I had to allow for this in the code assembler (written on an 8 bit CPM machine) because the total of all address offsets needed to be just one more than the total address space so that every time ‘around’ it would appear as though an address counter was actually present! As I recall, it was 2×4 Bit adders, 2 octal registers (w/ tri-state outputs), and ½ a dual flip flop to store the carry in the math operations.

Then I had two leftover bits actually to control the thing, and I decided to make one to control write operations and the other to control reads, so I had a DRAM write signal immediately! The final control bit was the magic: The write ops were to 1) write the accumulator (16b) to DRAM and add this value times 0.5 to the accumulator, or 2) write the accumulator to DRAM and add this value times -0.5 plus the result of the last read op to the accumulator. The read ops were to 1) read DRAM times 0.5 and load to the accumulator or read DRAM times 0.5 and add to the accumulator. That was it, just 4 instructions. As I recall, the hardware was 2x octal inverting buffers, 2x octal non-inverting buffers, 4x octal registers, 4x 4-bit adders, 4x 4-bit muxes, and 4x 4 bit XOR gates to handle any overflow (saturation limiting).

It was a 128 op machine, which required 256 EEPROM accesses per sample cycle, right on the edge of what the EEPROM and adders could handle.

A 2 tick AP was possible, but I don’t have one here and I can’t remember all of the details, especially about the exact wiring of the second write op. Most coefficients would be 0.5, of course, and we had a few comments about how the reverbs had a ‘building’ effect due to APs with K=0.5. Oh well… They bought about 5,000 every month for about a year though, which gave a good start to my new company! –You could build a box for $100 and sell it to a dealer for $240 back then, and I don’t know from where, but $400 would leap out of pockets at guitar stores!

I wrote the assembler in assembly on the Z80 microcomputer (2 8” floppies, no HD) with a Soroc terminal, a wonderful old combination that had earlier produced commercial drum machine code and stored and edited the drum sounds from analog tapes with a home built ADC/DAC plug-in board. Actually, that system produced a lot of stuff that never was built…

A later version of the engine was produced in a gate array, as I recall it was 2K gates! Still, later versions of the product allowed the 8051 controller to generate LFOs that would update the code (SRAM replaces EEPROM) on a sample-by-sample basis to sweep delays, generate chorus, and so forth. –Even did 4 point interpolation in the process!

END OF STORY

Thought you might want to add that to your collection,

Thanks,

Keith

Keith Barr’s Basic Reverb Topology

In another email, Keith gave a brief description of the basic reverb topology he preferred to use in his later reverb designs:

I really like 2AP, delay, 2AP, delay, in a loop. I try to set the delay to somewhere a bit less than the sum of the 2 preceding AP delays, which are, of course, much longer than the initial APs (before the loop).

Yeah, the big loop is great; you inject input everywhere but take it out in only two places… It just keeps comin’ new and fresh as the thing decays away. –If you’ve got the memory and processing!

Keith also went into a great deal of detail about his reverb designs on the Spin Semiconductor forum. I’d highly recommend reading all of his posts on that forum. In addition, Keith wrote a series of “Informal Notes” about the FV-1, that are invaluable for anyone interested in audio DSP design. One of my favorite parts of those notes is a drawing of the basic reverb topology that Keith arrived at after years of research:

In the drawing, you can see the 2 allpass, 1 delay “unit” that Keith used as his basic building block. The resulting sound would be quite “open,” with somewhat less initial echo density than the various Lexicon algorithms, but with a wonderful build over time. Combine such a structure with the modulated allpass delays that Keith often used, and you have a reverb that is ideal for ambient music. Artists such as Autechre, Aphex Twin, Labradford, and Roy Montgomery made heavy use of Alesis reverbs in constructing their ambient soundscapes.

Thank you Keith.

Keith Barr’s pioneering work in reverb software and hardware design is one small aspect of the hugely productive life he led. He was a pioneer of audio effects, digital recording, affordable drum machines…the list can go on and on. An overview of Keith Barr’s life and accomplishments can be found at Mix Online. He will be missed. Rest in peace.

A quick clip from my upcoming plugin

I was playing around with ValhallaFreqEcho, in self-oscillation mode, going into my upcoming plugin, ValhallaShimmer. The results were evil enough that I decided to record a short clip:

I’ve been working on the new plugin for the last few months, whenever I have spare time. I’ll post more examples in the next week.

i-Dosing with ValhallaFreqEcho

The Internet has been buzzing today about the phenomenon that has been dubbed i-Dosing. As reported in Wired, News 9 of Oklahoma City has recently run an expose about i-Dosing within local high schools, and the efforts of administrators to stop students from downloading and playing these “digital drugs” over their iPods:

The idea behind i-Dosing is that the user listens (via headphones) to audio tracks or YouTube videos that have been encoded with binaural beats. As I explained in a blog post a while back, the idea behind binaural beats is that separate frequencies are presented to the left and right ears. The resulting difference frequency is generated by the brain directly, as opposed to any physical mechanism. The standard theory is that the beat frequency between the left and right ears can be used to induce a similar rate of EEG activity. However, the Wire article explains that audio tracks are now being used in an attempt to simulate the effects of specific drugs:

Those who want to get addicted to the “drugs” can purchase tracks that will purportedly bring about the same effects of marijuana, cocaine, opium and peyote. While street drugs rarely come with instruction manuals, potential digital drug users are advised to buy a 40-page guide so that they learn how to properly get high on MP3s.

In my earlier post on binaural beats, I explained how my free plugin, ValhallaFreqEcho, could be used to produce binaural beats that can be hear with any source material, instead of the synthetic tones used in most YouTube binaural beats demonstrations. ValhallaFreqEcho is based around a frequency shifter, where all the frequencies in the output can be shifted by a fixed amount of Hz. For the binaural effects, the plugin should be used in stereo mode, as this results in all of the frequencies in the left channel being offset from those in the right channel.

However, in my discussions of ValhallaFreqEcho, I neglected to discuss the roots of the binaural effect in psychological warfare. The use of a frequency shifter to generate binaural beats dates back to the late 1960’s, when the signal processing division of MKULTRA collaborated with scientists at Bell Labs to create an algorithm that could generate binaural beats at specific frequencies to be used for brainwashing. As the Wire article and News 9 reporters have suggested, the CIA found that specific drugs could be mapped EXACTLY to specific binaural beats. The information was not declassified until the late 1990’s, and was first publicly revealed in a signal processing journal, which I came across when researching Hilbert networks. The article was reclassified in 2003, and is no longer available in any public archives.

The following list is taken from the formerly declassified document, and has been translated to ValhallaFreqEcho settings. All settings assume the following defaults:

  • Mix: 1.0 (100% wet)
  • Delay: as short as possible
  • Feedback: 0.0
  • LowCut: 50 Hz
  • HighCut: 10000 Hz
  • OutputMode: stereo

WARNING: Proceed with caution. If this blog post is gone in the next several days, it is fair to assume that it has been discovered by the State Department, and the information contained within has been reclassified. All of the below settings match the Shift settings of ValhallaFreqEcho, and will produce binaural beats of 2x the Shift frequency listed (corresponding to the original binaural beats from the formerly declassified document):

  • LSD: 3.4 Hz
  • Psilocybin: 3.7 Hz
  • Peyote: 3.83 Hz
  • Opium: [REDACTED]
  • Methamphetamine: 9.8 Hz
  • Nicotine: 7.6 Hz
  • Valium: [REDACTED]
  • Vicodin: [REDACTED]
  • Marijuana: 5.2 Hz
  • MDMA (Ecstasy): 2.7 Hz
  • Alcohol: 1.3 Hz
  • Cocaine: 9.72 Hz
  • Yage: 4.3 Hz
  • Percocet: [REDACTED]
  • Robitussin: 1.11 Hz
  • Ebene: 2.871 Hz
  • DMT: 3.14159 Hz
  • San Pedro Cactus: 1.618 Hz
  • Adrenochrome (“the blood of a wig”): 27 Hz
  • Nitrous Oxide: 501 Hz
  • Reds: 43 Hz

UPDATE: I had to take a few of the numbers out. Apparently this blog got some unwanted attention.

Diffusion, vocals, and real rooms

One of the common controls found on artificial reverberators is “diffusion.” The control can have different underlying meanings, but is usually used to tailor the echo density during the initial portion of the reverb decay. A typical description of the Diffusion parameter comes from the Lexicon PCM70 Owner’s Manual:

DIFFUSION controls the degree to which echo density increases over time. High DIFFUSION settings result in high initial buildup of echo density, and low settings cause low initial buildup. After the initial buildup (in which echo buildup is controlled by DIFFUSION), density continues to rise at a preset rate determined by the program.

Recently, I started to wonder why the Diffusion control was so common in artificial reverberators, as it has very little to do with physical reality. In a physical room, the initial echo density is determined by the lower-order reflections. A conventional model of a room will model the first order reflections as those coming from the 4 walls, the floor and ceiling (6 in all). In reality, rooms have things in them – furniture, small structural details, people, columns, etc. All of these contribute their own complex reflection patterns. The low initial echo density suggested by turning the Diffusion control down in a conventional reverb would only be achieved in a very large room with no furniture. Real acoustic spaces tend to be fairly diffuse, at least by the standards of artificial reverberators.

A bit of insider information reveals the likely answer. Most artificial reverberators use series allpass delays somewhere with their structure to generate a higher echo density. The original Schroeder 1962 AES paper suggested 2 series allpass filters, processing the output of 4 parallel comb filters. Other early reverb structures moved the allpasses to the inputs of the combs. Later work by Gerzon and Griesinger placed allpass filters inside of feedback structures, in order to create an echo density that builds with time.

Allpass delays are a convenient way of generating a high echo density relatively quickly, but they are not without their drawbacks. The term “allpass” means that, over the long term, the frequency response is flat – but over the short term, they can sound similar to comb filters. In particular, impulsive sounds processed through several allpasses in series can sound somewhat metallic. A periodic series of pulses will cause the filters to “ring out.” Unfortunately for reverb designers, a periodic series of pulses is a great description of a vocal waveform. For reverbs that rely on series allpasses for initial echo density, a setting that sounds good for drums might sound far too metallic for vocals.

This is where the Diffusion control comes in. By turning down the coefficients of several of the allpasses within the reverb structure, the metallic artifacts caused by vocal tract pulses can be reduced. This may also result in a slightly grainy echo sound on sibilants, but for the most part the sound of the reverberator on vocals will be improved. The resulting sound may not be identical to a physical room, but it will sit in a mix better than the same reverberator processing vocals with high diffusion.