Get on the mailing list

Dolby NR in software


As a kid playing an extreme amount of music on our home tape stereo I was fascinated with the Dolby button (alas, ours only had a proper DNL, so that was at my friends\'). I hated mode B and loved C. I especially liked recordings on B played through w/ C. They had a specific breathing/pumping sound that all sound engineers hate. To this day I adore it. It brings back memories from my childhood. Hit the jump for the full post and some music :)


So why is recreating Dolby in software important?
.. It isn\'t!
This is not even a proof of concept. The Dolby B/C noise reduction is too complex (sliding band compression!) and undocumented enough to be recreated with off-the-shelf software (IMO, See this PDF too). Worse, it\'s unnecessary with digital audio. However, you can get close to its sound for creative purposes or just for fun. I used it to tighten the sound of my end-of-term submission track in college some years ago (My teacher was amused.)

There\'s a white paper on Dolby B, that shows companding can get pretty complex, especially with all variables, and circuit specifics. I\'ve recreated a multiband dynamics setup of the playback stage which *mimics* the sound. It\'s just an example and by all means very few numbers you\'d use should be the same. It\'s meant to be a \'per track\' solution, not a cure-all.

The implementation revolves around a 3-band setup starting from about 300Hz, split at 1.5k and ~4k, as Dolby B achieves its full noise reduction of -10dB at 4000Hz and above. Below that the behaviour of the system varies depending on the material. The whitepaper has more detail. Dolby C does -20dB!

The idea is to replicate Dolby\'s playback compression curve as follows:
- fixed attenuation of quiet sounds
- variable attenuation of sounds with average loudness
- no reduction at, and above, threshold (dolby level)

In a normal recording/playback setup, the encoding stage would have amplified source material sounds while recording, to be attenuated during playback, hence the effect of noise reduction.

I recreated this in WaveArts Multiband Dynamics. I assume any other Multiband dynamics plugin that allows you to control low gain and high gain will do. Most important, I think, are the crossover points, one of which should definitely be at some 3.5-4kHz. I am using 18dB/oct crossovers, and 6dB/oct sound a lot milder and organic. The leftmost band, 20-300Hz, is left untouched. I\'ll refer to it as the zero band (i.e. don\'t count it).

Crossover points and compression ratios:
band 1: 300Hz-1500Hz, compression 1.5:1, soft knee
band 2: 1500Hz-4000Hz, compression 1.75:1, medium knee
band 3: 4000Hz-20kHz, compression 2:1, hard knee

Threshold points. You\'ll have to experiment with the threshold points to suit your material.As a general rule sounds at higher frequencies are weaker so lower thresholds from left to right.

Gain: I\'ve exaggerated the effect to my liking:
band 0: -2.5dB (to balance out)
band 1: low: -12dB, high: 0dB
band 2: low: -15dB, high: +0.5dB
band 3: low: -18dB, high: +1dB

By all means you should experiment with these on your own.

For the example I added a 10bit-crusher before the dynamics unit so you can hear a fair amount of noise where the dynamics plugin is switched off. It toggles on and off every 4 bars starting from 0:35.

Example mp3

« dblue glitch pt.2
» Elevator Music