My partial work-around (quick fix for end users)
This work-around will only work for plugins that accept audio input. Since VST instruments generally don’t, the solution basically applies to audio effects only. I experimented with this idea after reading about denormalization and understanding that it occurs with small numbers close to zero. The idea was to add a “noise generator” at the beginning of effects chain, which would constanlty feed a signal into the plugin causing denormalization. This would prevent the plugin from ever processing signal levels close to zero.
Some of you may not like the idea of adding “noise” to your audio, but keep in mind that the signal level required will most likely be below the threshold of hearing. I’ll explain how I do it in Cubase. The same principle would apply with other plugin hosts.
Firstly, you need to install a plugin that will act as our noise/signal generator. Any dithering plugin can be used for this purpose:
- MDA Dither
- Freeware dither used in the example below.
- Digitalfishphones Normalizer
- Freeware plugin specifically designed to deal with denormalization.
- Apogee UV22
- Commercial dither that comes with Cubase.
- Waves IDR
- Commercial dither available in the plugin bundles.
I normally recommend Sascha Eversmeier’s Digitalfishphones Normalizer, but please be aware that I have seen 1 report of speaker damage caused by the incorrect usage of this plugin. Be careful with it (use at your own risk!). Please see Sascha’s site for full instructions on the usage of this plugin.
Next, you will need a plugin that exhibits the denormalization problem. My example uses Waldorf D-Pole v1.5 (Version 1.6.2 is fixed!). D-pole was notorious for causing CPU spikes on the Pentium 4.
Fixing insert effects
Import a file into an audio track and set up your loop points so it cycles a few bars continuously. Make sure you have no effects inserted into the mixer. Play the loop and check the VST Performance monitor. It should be close to 0%.
Stop the sequence and place D-Pole into the second insert slot. We are leaving the first insert slot empty for our noise generator, but more on that later. Turn the effect on, play your sequence and tweak D-Pole. Your CPU usage should be around to 5%.

Stop the sequence and look at your CPU usage. You will notice it spikes up to 100% and stay there! Now, disable or bypass the plugin (D-Pole must be disabled to recover correctly) and your CPU usage will drop to 0% again. You can now safely turn the plugin back on and play your sequence again. Each time you stop your sequence you will run into the same problem.

This problem can also occur while the sequence is playing. If your audio file contains silence, or space is left between two audio files, the CPU will spike to 100%. As you can see, this becomes a huge problem if the track you are processing doesn’t contain constant audio throughout the entire project.

Add the noise generator to the first insert slot (MDA Dither in this example). Play your sequence, let it process some silence and stop it. You will notice the CPU usage no longer spikes to 100%! If your noise generator has an output/amplitude level control, set it to the lowest possible setting without causing denormalisation in the next plugin. This will reduce the amount of noise we inject into our audio project, to the lowest possible level.
NOTE: Martin Saleteg from #musicdsp provided the following advice when using MDA Dither: Use 24bit plain triangular non-noise-shaped dither. This will avoid noticeable amounts of high frequency noise adding up.

Fixing send effects (VST 5 and SX 1)
The following method only applies to sequencers that have a send effects rack (VST 5 and SX 1) that does not feed one plugin into another (chaining).
NOTE: Cubase SX 2 doesn’t need this work-around because it no longer uses the send effects rack. Instead, it replaces it with much more flexible FX Channels. These work similar to groups, therefore the previously described work-around should be applied directly on the FX channel.
Create an empty audio track and add the noise generator (MDA Dither) to this track as an insert. Add a plugin that exhibits the denormalization problem, to the send effects rack. Go to the empty audio channel’s mixer strip and use the auxilary sends to send the appropriate level of noise to the buggy plugin in the send effects rack.
Make sure you send the lowest amount of level possible without causing denormalisation in the send effect plugin. As stated previously, this will reduce the amount of noise we inject into our audio project, to the lowest possible level.

Special note on SX 2 post-fader inserts
Cubase SX 2 introduced a new feature which we need to take into consideration when eliminating denormalization. The last 2 inserts on each mixer strip (slot 7 and 8) are now post-fader (SX 1 only had this feature on the master bus).
If we insert a buggy plugin into slot 7 or 8, the audio signal level going into these plugins will be affected by the level of the fader. In other words, if we drag the channel fader all the way down to infinite, slot 7 and 8 will receive silence, possibly causing the plugins to go into denormalization.
To avoid this, remove the plugins from slot 7 and 8, and insert them into any slot between 2 and 6. If there are no spare slots from 2 to 6, create a new group channel and add the previously removed plugins to slot 2 and 3 of the new group. Next, route the previously edited channel’s output into the new group. Finally, add the noise generator (MDA Dither) to slot 1 of the new group channel, and use the same approach listed above for inserts.

That concludes my examples for working around Pentium 4 denormalization problems. I hope I’ve helped someone out there. Now go and make some music!