Jump to content

[Explained] File Stats Bit Depth


sjoens

Recommended Posts

There's a bunch of stuff to consider here. As CSistine says, there are uses of the term "bit depth" that are unrelated.

First thing to get clear is that audio bit depth has *nothing* at all to do with the system processor. Disregard that completely.

Also, Cakewalk will happily have files of different bit depths in your project. You may well record at 24 bit, as per your audio interface setting. But you may have dragged in a 32 bit file from elsewhere. Or - more likely - you've ended up changing a file to 32 bit by doing a bounce or freeze. Cakewalk's default setting for that kind of in-project rendering is 32 bit.

If memory serves, this file stats box in the browser shows the highest bit depth of all the files in the project. So it's unrelated to either the project bit depth, or the audio interface bit depth.

For the most part, you don't really need to think or care about this, these days. Always record at 24 bit, and mostly the software will take care of the rest for you.

Edited by John T
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

you can record 32-bit -- but if the IO is 24-bit then your LSB are 0. same thing if you have a 16-bit IO and record 24. and if you're using 32-bit files, then those LSB are quickly filled with the results of any hard processing writes or dithering.

they do make 32-bit ADC (and corresponding DAC). and there are 32-bit IO units - https://prorec.com/best-32-bit-audio-interface/

Edited by Glenn Stanton
Link to comment
Share on other sites

Comparing 32 bit to 24 bit is almost meaningless - 32 bit audio files (and interfaces) are floating point, whereas 24 bit audio files/interfaces are integer.  What is stored in the 32 bits is completely different to what is stored in 24 bits.

The quality of 32 bit floating point audio is essentially equivalent to 24 bit integer.  The only difference being, you can increase or decrease the volume of 32 bit floating point without any loss of quality.
 

  • Like 1
Link to comment
Share on other sites

When I researched 2x2 interfaces there was only 3 that use 32 bit floating point. The Art USB II, the Zoom UAC 232 and the Steinberg UR 22 C 

manufacturers if asked will claim there’s not much point in going above 24 and that the quality of the pre amp is more important.

Example Steinberg pre amps don’t get rave reviews. So slapping a 32 bit A/D after a noisy isn’t going to help much. You can just make the noise louder! They do say that using 32 bit will avoid digital clipping better. 

Edited by John Vere
Link to comment
Share on other sites

3 hours ago, msmcleod said:

The quality of 32 bit floating point audio is essentially equivalent to 24 bit integer.  The only difference being, you can increase or decrease the volume of 32 bit floating point without any loss of quality.
 

and in effect, 32-bit is "lossy" because of the float... same reason banks don't use floating point for currency calculations... e.g .https://dzone.com/articles/never-use-float-and-double-for-monetary-calculatio

Link to comment
Share on other sites

15 minutes ago, Glenn Stanton said:

and in effect, 32-bit is "lossy" because of the float... same reason banks don't use floating point for currency calculations... e.g .https://dzone.com/articles/never-use-float-and-double-for-monetary-calculatio

It's only lossy at extreme values, which in audio terms wouldn't really happen - i.e. the quietest sounds would literally be inaudible, and the loudest orders of magnitude times the pain barrier.  The max db range is over 1500 db (compared to 144db of 24 bit, which is still massive), but in reality what you get is greater granularity over a smaller db range (similar to the 144db range of 24 bit), because the point "floats". 

The reason audio engines prefer 32 bit floating point (or 64 bit floating point), is because it effectively means you can never clip internally - only once you convert back to 24 bit for rendering in the audio interface.

  • Like 2
Link to comment
Share on other sites

1 hour ago, Glenn Stanton said:

and in effect, 32-bit is "lossy" because of the float... same reason banks don't use floating point for currency calculations... e.g .https://dzone.com/articles/never-use-float-and-double-for-monetary-calculatio

the mantissa of a 32bitt IEEE single precision float is 23bit and that float has additionally a "sign" bit in its 31st bit, which together represent 24bits precision.  The 24bit sample has indeed exactly the same "sign" bit, but in its 23th bit, not in its 31st bit of the DWORD.

Additionally single float has an 8bit "biased exponent" which allows values bigger than 1.0 and smaller than -1.0 adding a total (normal) number space up to 10e-38 to 10e+38; Anything beyond that (where biased exponent == 0) would be denormals, which are avoided because of speed losses.

https://en.wikipedia.org/wiki/Single-precision_floating-point_format

[..]All integers with 7 or fewer decimal digits, and any 2^n for a whole number −149 ≤ n ≤ 127, can be converted exactly into an IEEE 754 single-precision floating-point value.[..]

2^24 = 16,777,216 combinations   of a 24bit sample

signed range :  - 8,388,608 .. + 8,388,607      (these are 7 decimal digits)

However, floats for audio use the mantissa (fraction) part, not a 1:1 conversion of the integers. 

[..]1 + 2^(−23) ≈ 1.00000011920928955 (smallest number larger than one)[..]

which is ~ 10e-7 above 1.0;  at this (or similar) level for example a VST3 host would add the noise floor to ensure speed advantages (avoiding denormal calculations); from VST3 SDK docs:  [..]The host has the responsibility to clear the input buffers (set to something near zero, like 10e-7, to prevent de-normalization issue)[..]

However, if increasing the volume much higher than +/- 1.0 the precision will become lower, but those values would completely clip on a 24bit sample, where data actually being lost on 24bit  samples.

Edited by Sunshine Dreaming
  • Like 1
Link to comment
Share on other sites

20 hours ago, sjoens said:

If system is 64 bit, interface is 24 (max) and project Audio Driver Bit Depth is 24 then why does File Stats say 32?

filestats.JPG.45cccb006d3e7ca0099b24dbbb311fb4.JPG

Per the original post title: (in my experience anyway) - The "Bit Depth:" portion of the File Stats dialogue generally reflects the highest reported level of any of the audio clips in the project. (What the audio engine does with that is another issue entirely) -Simply that.

-So, for instance, when I record into an empty project, and my audio driver is 24/48, this dialogue will say Bit Depth: 24 after the recording is done. If I then process the track (export to track/clip, etc.) and the settings I choose in the export dialogue are 32/48, and I then integrate that audio into a new track somewhere in the project, this dialogue will then say Bit Depth: 32. -Now, I haven't tried all the variations of mixed source material, but again, in my experience, this dialogue only reports the level of the highest bit audio clip in my tracking. I have also double-checked, and when I remove the higher level audio, the dialogue changes back to whatever is then left, or the general settings for a new project, -whichever actually is reflected in the audio clips present.

Edited by JnTuneTech
  • Thanks 1
Link to comment
Share on other sites

16 hours ago, Glenn Stanton said:

you can set the bit depth in the Preferences -> Audio Data

image.png.30589d507ee9d6a8cdd790d030f67930.png< - 32 bit

For this project  Render Bit Depth  is the only 32 listed.  All "bounced" wav files are 32 bit and some files which may have been edited but not bounced.  Looks like Render Bit Depth applies to bouncing and editing thru the Process menu.

I must have set it some time ago as all new projects default to 24/32/24.

I found Import Bit Depth: 24 will convert any file I import to 24 bit.

Edited by sjoens
Link to comment
Share on other sites

  • sjoens changed the title to [Explained] File Stats Bit Depth
On 2/27/2024 at 10:02 PM, Glenn Stanton said:

and in effect, 32-bit is "lossy" because of the float... same reason banks don't use floating point for currency calculations... e.g

Generally they tend to use decimal fixed format (also called packed) in banks, because float is a digital format and this results in rounding differences in the positions after the decimal point for decimal numbers (used of banks). But nevertheless there are cases where they use floating points, because the decimal fixed format's range is limited!

The format itself is not more lossy than 24-bit integer IMO, because as long as you do not exceed the digit range (of the mantissa) there is no loss. If you exceed this range, then there is a bit of loss, but only in the low end of the value.

With intergers its even worse if you exceed the digit range, because then they start at the other end of the range (depending on the kind of integer: signed spin to the greatest negative number and unsigned spin to zero). That's how some engineers crashed an expensive skyrocket in the last century, because they used a software part of an older rocket as "black box" and were not aware that number input of the new one did exceed some integer values of the old code! 😆

By the way some comments above mention the number of digits for 32-bit float. This is only true for IEEE floats (as used in PCs). There exist other float formats that have a totally different construction!

Link to comment
Share on other sites

1 hour ago, CSistine said:

By the way some comments above mention the number of digits for 32-bit float. This is only true for IEEE floats (as used in PCs). There exist other float formats that have a totally different construction!

CbB is Windows-Only. So either you use a PC or a mobile ARM device. And x68/x64 and even ARM uses also IEEE float:  [..]The ARM floating-point environment is an implementation of the IEEE 754 standard for binary floating-point arithmetic.[..]

Please tell me, to which other architecture do you refer to related to CbB?

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...