[ProAud] Floating point question...
Nika Aldrich
Nikaaldrich at cadenzarecording.com
Sun Jan 14 18:03:17 PST 2007
Bob,
> Wavelab has a bitscope which shows extra bits if the floating point
> bits are "exercised". I rarely if ever see those lights come on.
That's bizarre. As a couple of us have said, the exponent bits are always
in use unless the leftmost bit (MSB) in your 24 bit fixed point
representation is a "1." In other words, if your signal is between 0FS and
-6 dBFS then your exponent bits are not in use. But for any other value for
the signal the "in use" bits are shifted to the left and the exponent bits
are used to represent that shift.
It makes me think that maybe they're only indicating when the exponent bits
are used to indicate values over FS? But anytime the exponent bits are used
to indicate values below FS the meter doesn't register?
> For example, if I take an ordinary classical music recording
> expressed as 24 bit fixed point, and I lower the gain of this
> recording by 1 dB during my mastering, is it predictable whether or
> not I will need floating point to represent this signal properly?
"Need?" I suppose you could say that you "need" to use the floating point
system if you want to continue to represent the full 144dB of the original
24 bit recording without adding any additional noise, dither, or without
decreasing the dynamic range. Of course in the real world I'd have a hard
time arguing the "need" for it in this situation, though - but I understand
you are talking hypothetically.
> And if so, I assume that would be the only occasion when I should find it
> necessary to dither that signal to 24 bits.
If you take a fixed point recording and transfer it to floating point but
make no changes to it in the floating point system, any extra bits will be
backfilled with zeros. Then, in turning it BACK to fixed point, the zeros
will be lopped off. Indeed, no damage done here. But as soon as you make
the slightest change to the signal in the floating point environment and you
want to convert it back to fixed point, avoiding dither will result in some
level of truncation, resulting in distortion at around -144dB FS.
> Another example. A client delivers files in 32 bit float format. But
> their signal levels seem to be "normal", they never exceed 0 dBFS and
> their low levels on the average never go below, say, -40 dBFS except
> in the silent parts after the music is over. Would I need to dither
> to 24 bits just because these are floating point files or can a case
> be made that if their levels do not exceed the normal range, then
> they may as well be treated as 24 bit and not need dithering?
Because a floating point data set contains some numbers that are represented
further to the right than an absolute 24 bits, you have a choice to make as
to how to accommodate those remaining bits. Of course your options are
truncation or dither. Truncating those bits will result in distortion, but
at the -144dBFS or so level. ANY time an individual sample is lower than
-6dB FS the exponent bits are used and some bits are represented further to
the right than your 24th bit. Those bits represent valid signal.
Truncating them is like any other truncation - except that it is 1. Very low
in level, and 2. The number of bits down there changes sample by sample,
resulting in a sort of "floating noise floor" (read: distortion)
Nika
More information about the ProAudio
mailing list