Denormals and Ardour
What are they and why should you care?
Denormal refers to very small floating point numbers. Explanation on how this affects ardour will follow. More on denormals from: http://en.wikipedia.org/wiki/Denormal
The problem with denormals is that some processors (especially P4's but also some AMD processors) cannot calculate so small numbers without going into a special state. Switching between the normal and denormal state takes time. In effect this means that calculations done with denormals is very slow. Often in practice increasingly slow, which will eventually lead in audible glitches (xruns) and finally Jack kicking the slowed down client out of the processing chain.
Who's to blame?
Denormal issues in ardour are caused by plugins and despite legends floating around the internet, the plugin "host" (in this case Ardour) can't really do anything about it. Ardour can make sure that no plugin will get denormals in their input and that no plugin will output denormals, but sadly this isn't enough.
It is feedback in the plugin itself which causes denormal issues. Imagine a "perfect" feedback delay. In the delay, a fraction of the signal is always fed back to the delay. Imagine then a situation where the plugin is fed a signal where there is an impulse of some sort and followed by an infinite amount of digital black (0.00's). The impulse will circulate in the plugin forever, always getting fainter and fainter. In a floating-point DSP process, the impulse will eventually drop into the denormal range. All of this processing happens inside the plugin, thus Ardour can't affect the situation.*
In real day-to-day use denormal issues will strike in situations quite close to the previous one (but also in other situations as well). For example a region followed by no regions ("emptiness") on a track. The empty parts of the track are digital black while the region contains some signal. Playing through the region and into the empty zone will cause denormal unsafe feedback loops to start producing denormals. As the digital black will not add anything to the original signal in the feedback loop, the signal inside the plugin will eventually fall into the denormal range.
How to avoid them?
The only proper fix for this (short of changing your processor) is to either treat denormals as zeoes or add a dithering signal within the plugin.
Zeroing denormals is referred to as DAZ = denormals are zero. This means that all samples of the signal which are in the denormal range are treated as zeroes. In effect, zeroing them actually reduces a bit of noise in the process as the denormal range is below -200dB. That is way below what humans can hear. Especially since that level is also well below the limits of digital to analog converters. In other words: the electronical noise from even the best converter is many times louder than denormals.
Modern processors can be set to "DAZ" mode, which means that the processor will automatically treat denormals as zeroes. The programmer only needs to set this mode before the DSP math is done. This does not affect calculations done in the x87 FPU stack though, it only affects SSE and SSE2 operations.
The dithering method is the opposite. The idea is to add noise somewhere around -180 - -200 dB to the signal. That noise keeps the samples from ever going down to the denormal range, by adding that noise. Of course, it does add a bit of noise to the signal. But again, this noise is inaudible.
For the end-user, the answer to the question "How to avoid them?" is that the plugins need to be fixed. First you should check that you are using the most recent version of the plugin. If even the most recent release exhibits denormal issues, you should contact the author of the plugin.
* Ardour could feed a dithered "silence" instead of digital black in empty parts of tracks. The problem is: even though it could fix most of the denormal problems it still isn't a 100% fix for the issue. For example, if a plugin was to stop taking input (for example, input gain would be automated to -inf), feedback loops would still cause denormal issues.