On Mon, May 17, 2010 at 11:26 PM, Ryan Billing <ryjobil@gmail.com> wrote:
"DC offset" comes from the analog electronics world.  It means to add a constant amount, similar to the idea of biasing vacuum tubes or transistors into the "middle" of the linear range of operation.  Because it does not change with time, it is inaudible.

In the case of denormal numbers, usually the cause is a filter that decays toward zero, but in theory never reaches zero.  Once it decays to a number less than the minimum number that can be represented at the current digital bit width, then the computer invokes denormal computations which are CPU intensive.

Usually these filters have what one would call a "state" register, say "y".  Each time through the loop "y" is multiplied by some number, like 0.99.  After several hundred thousands of samples of silence, this decays to something very small.  If every sample going into the filter has a constant amount (like 10^-18) added to it, then it keeps it from decaying into a denormal.

Noise does the same thing, only this offset changes over time randomly, so if it is ever amplified to an audible amount, you hear a flat "hiss" instead of a single tone.  It is also able to pass through high pass filters. In an unknown system where you don't modify the source code and recompile, the noise may be the only way to get the offset trick to carry through the entire system.

I hope that helps to understand it.
Ryan (Transmogrifox)


Hey! Thank you very much for the detailed explanation! This is very interesting to me.

I have one question that is not exactly clear.

"Because it does not change with time, it is inaudible."

Why is it inaudible?