got into a discussion on another board where it was asserted that 32-bit float offers similar 'precision' to 24-bit. their discussion was in regard to DSP.

heres the bulk of my post. Whycome i got what look like rounding errors if the container can represent 1500 dB of data to the sample?

----------------------------------------------------------------------------------------------------------------------------------------

im not really mathematically equipped to discuss it at that level

though it seems they are talking about precision of calculation of 32-bit float in DSP

i could kind of see this in a way. for a given mantissa value, there is a finite 'precision' those numbers can represent. and then the exponent in a way 'slides' that scale of representable numbers up and down, but it doesnt go any 'deeper' or more precise in calculations

seems like almost two different discussions. (DSP vs representing large differences in headroom)

im not super concerned about how the LSB in a DSP is handled, as much as i am about not clipping my signal by running out of data 'container capacity' for a better recording.

i did a test in soundforge. i generated a 1 sec 1khz sine at FSD and saved that file

then i used 'volume' effect in soundforge to adjust the volume by -120.00dB. saved that file

then i used volume again to adjust the volume +220.00 dB, which took it to an expected +100 dB signal on playback , saved that file

then i used volume to reduce it exactly -100.00 dB which put it at an expected 0dB peak

when i inverted this over the original 0dB generated file, it canceled it.... almost. there is some resulting random noise with peaks at -135 dB

so it can be argued that i indeed represented this waveform at ~24 bit precision at volume levels ranging over 200+ dB difference. however at the end of the day, the DSP precision of that file after multiple computations was indeed right around 24-bit.

could be multiple accumulated rounding errors at the 32-bit noise floor summing up to make some random low-level noise?

______________________________________________________________________________________________________

responses from that forum:

*Right, it's about what you could call instantaneous dynamic range. 24 bit signed integers effectively have 23 bits plus sign but any integer gain adjustment could either clip or throw away bits. Each operation in 32 bit floating point essentially normalizes the result to keep 23 bits plus sign in the result. There numerical noise issues when doing a large number of re-scales or effects but these are usually minor.*and another response, emphasis mine

*This interactive demo should be self-explanatory:*

https://www.h-schmidt.net/FloatConverter/IEEE754.html

An implied bit when exponent bits are non-zero (1), (23) bits of mantissa and (1) sign bit.

**The benefit of floating point is it has a near constant precision at different scales, that makes digital processing and gain staging much safer and consistent**.