1

Let's say we get a wav file in the daw, that is clipping so much, most values are around 65,000 (assume this is the highest in 24-bit depth). In daw however, to reach 0 dbFS, the bit values need to go way way higher than that, because floating-point systems can reach up to much higher values to reach 0 dbFS ( (1.11111111111111111111111)2×2^127 ). Given these numbers, if they are correct, I would expect us to be unable to even hit any clipping using ANY wav file in the world. However, that is not the case. Why does it show any red in the meters at all, when WAV files to me seem incapable of causing any clipping mathematically ?

Does the DAW proportionally increase wave's bit values to its own capability ?

2
  • 3
    This all sounds a bit confused. no decent DAW will clip internally. For your theoretical clipped track, it must have been recorded clipped. The whole idea of floating point inside the DAW is to make the theoretical headroom almost infinite. Red-lining it means that something else will give [i.e. your o/p stage], but the DAW won't clip itself.
    – Tetsujin
    Jun 29, 2020 at 10:31
  • Btw, 24 bit gives you 16.8M values, 65k range is 16 bit. Oct 7, 2022 at 15:24

4 Answers 4

3

Building on Tetsujin and ZaellixA responses:

If your wav isn't itself clipped, its encoding (if samples are floating points or are integer numbers, it's bit depth...) may be missing or wrong in the file, leading to a wrong interpretation of the values of the samples by your DAW, and thus exceeding the scale.

You can try to load your file using different encodings in Audacity (it's free), via the menu File->Import->Raw Data... If you succeed, now you just export your brand new recovered file (with another name, for precaution...)

3

0dBFS in floating format is a bit of a misnomer. It's not "full scale" in floating point, instead it's actually defined as the value 1. This is the value that when converted to fixed point matches 0dBFS in the fixed point format, by design. It's the highest level any audio converter will input or output.

In other words, going over 0dBFS in floating point does not imply clipping. Instead, it means "this would clip if sent to the audio interface."

When converting audio from fixed to floating point, the highest value you will ever get is 0dBFS. For 16-bit converters, this corresponds to 32767, which is the highest value for a signed 16-bit integer. (Note that you can also see 0dBFS at the bottom of a wave, which corresponds to the value -32767, in 16-bit fixed format.)

While you won't normally see real clipping inside your DAW (or any floating point audio processing), it's still best to keep internal signal values below 0dBFS. This is because some audio algorithms are very complicated and have to be adjusted from the theoretical equations to avoid infinites and infinitesimals. (That is, some matrix math can work perfectly "on paper" but fail when coded because intermediate values exceed the range of double-precision floating point. So, the algorithm is optimized or adjusted to avoid these cases.) When doing this adjustment, it can help to optimize the adjustments to work best when the signals are in a given range, and that range is usually in the normal audio range, which is say -60 to 0dBFS.

You won't see this issue for simple audio algorithms like delays and convolution reverbs, but you could see it for more complex algorithms.

2

As Tetsujin states in their comment, any decently developed/implemented DAW will use floating-point arithmetics to increase their internal calculations headroom.

This does not mean, in any case, that you can arbitrarily increase gains (even if they are digital) and do any kind of processing without introducing distortion or artefacts.

There must always be a reference as to what is 0 dBFS and the conversion from fixed-point to floating-point numbers is not trivial (have a look at the internal representation of those two - most systems use the IEEE floating-point, a simple explanation can be found here).

To provide an insight as to how many different ways exist to convert fixed-to-floating points, you could consider using the floating-points to add levels in between the fixed point levels, below the fixed point levels linearly or logarithmically spaced, above the fixed point levels or below the fixed point levels! And all those are mere suggestions of what one could do. I am not sure exactly how the conversion is performed but you should keep in mind that there must be a way to represent the 0 dBFS point whether you are using fixed- or floating-point arithmetics and if a WAV file is clipped it should be clipped in the DAW too since the value of the clipped samples should be represented as 0 dBFS in both fixed- and floating-point numbers.

2

Usually, 0dBFS is the maximum level which doesn’t clip on an audio interface. A DAW will typically map it under the maximum float level, then if you increase its level in a filter then reduce it enough in other filter or with the mixer, it won’t clip when sent back to the audio interface.

Note also that an audio interface doesn’t return a clip boolean. Then the DAW can assume the maximum level is synonymous of clipping (it would be hard to tune the gain an have and exactly not clipped signal at 0dBFS).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.