Quote:
Originally Posted by
DAW PLUS
β‘οΈ
32 bit floating point calculations offers over 1000dB of dynamic range. If someone compares this with a 40 bit integer calculation of hardware, you diminish the sound difference more or less to rounding differences way beyond by what one can hear. Which means that I highly doubt that the actual different sound between the hardware and the software (of the quoted Weiss products) is due to the bit depth.
I was not talking about SPL, but about dynamic range.
I would point out, though, that at DAW values (we're typically working on sampled values between -1.0 and 1.0, not +76236742374 as a sample value) the rounding of the mantissa is constantly happening at what would be around the 25 bit level for EVERY stored number and calculation made, only scaled down into the noisefloor by the exponent. Samples of 0.5 to 1.0 and -0.5 to -1.0 are getting quantized as if they're roughly 25 bit fixed point every time a new float is stored.
That's just how floating point works.
So you're correct that the representable sample values (dynamic range) go from infinitesimal to impossibly huge, but when it's impossibly huge the quantization values are themselves so loud you couldn't stand to hear them at even one-bit level. It's just a mantissa being slid up and down in volume all the time. When it's huge, it's kind of coarse (not for output audio, but if you were to do thousands of calculations it'd degrade on you from quantization). When it's impossibly tiny, that's when you get the high quality audio resolution.
Also, when you do math on floats the math has to settle on an exponent that'll cover both values, so the order of accumulating audio data can matter: this is why multiplying by 1.0 doesn't always equal 'no change'. If your tiny value can't be represented at the same exponent as the 1, it can get rounded to zero (assuming you're not using a different word length as a buffer). If you were going to amplify it up again like in a compressor, that's just too bad
I stopped using 32 bit floats for calculations when I realized that. It's odd: the quiet noises remain as good as you could want, but when you overprocess, the loud parts go flat on you and it's because of extensive quantization rounding. I recommend longer data types for this reason (and minimalist algorithms) and when I get a 'house sound', that's why. You can notice a difference in sound texture from doing this, though it's very fugitive⦠and sometimes the more accurate choice doesn't always sound better (I did a retro echo-diffusion effect where using floats sounded better for that effect).
All my stuff is in floating point formats, but I actually don't think floating point is optimal for processing audio data. I'd prefer a really long wordlength fixed point format, not all that much headroom, and just be careful about producing overs.