As the title suggests, I'm looking to either download, or create, a 24 bit audio file, that only has data in the lower 8 bits. The point of this would be to determine, definitively, if a piece of audio equipment, portable player, sound card, etc. is actually putting out 24 bits, or simply cutting the last 8 bits out.

I would think (open to suggestions) best case would be something somewhere around 200-500Hz, I'm not sure what form would be best, but knowing that it would be a very small amplitude, and would require a lot of amplification to even hear, I'd like it to be directed at, and playable by woofers, just for the fact that they can handle more shock.

I usually deal with analog, and most I usually do with digital has been to make sure it approaches or barely hits 0db at the loudest of everything. My guess is that recorded as loud as will fit in the last 8 bits, in the right form (triangle??) should give me something audible with high enough amplification, and universally verify 24 bit capability for any device the test file is heard through.

I'm definitely thinking pcm inside of wav. I know I need to stay in the bottom 1/256 of the amplitude range, but I don't know the algorithm. Can anyone tell me, if I use a test tone generator program, to get as high as I can while staying within the bottom 8 bits, is it possible just by setting the output very low to a 24bit file?

The free program I have goes from 0 to -100 dBFS Say by setting it to -99dB? -99.7dB? 99.97dB? It seems that with this program, I can set the output to the 1/100 of a dB. Can anyone tell me what decibel levels relate to which bits? Specifically what level would keep it in the bottom 8 bits?

  • You can do it in sox. Something like: sox -n -b24 -r 48k out.wav synth 60 sine 200/500 gain -90. Later check it with sox out.wav -n stats, for how many bits are used.
    – jojeck
    Aug 11, 2020 at 20:20
  • I'm not entirely sure that this is possible. I may be wrong and am totally ready to be corrected but I don't think digital audio works that way. Bit crushing (24 bits of audio forced down into 8 bits) is not what this is asking for. This isn't like analogue audio where you could just cut off a frequency range or brick-wall limit the volume. Digital audio is encoded in the full 24 bits - zeroing out bits 9 to 24 is likely to register as malformed data in the DAC. As I said I could be totally wrong about this so go ask questions elsewhere too - then come back and tell us all. Aug 1, 2021 at 19:41

2 Answers 2


I am pretty sure, you can only achieve this by creating the data yourself manually, and this requires writing a little program. There should be libraries for many programming languages that might help, relieving you of dealing with things like file headers. Just write a bytestream to the sample sections of the file, place your zeros where the upper 16bit are. Should you have more questions on the programming, go to Stack Overflow.

Obviously you need an uncompressed format, like PCM/LPCM in a WAV container. Google for specs on the format.

Here's one question for PCM that might help to gain a bit of insight.

You could then generate a test file with any audio editor, save it in 24 bit and open that in your programm and replace the highest 16 bit with zeros.


One bit gives you a signal noise ratio of 6.02dB. Then 16bits gives you a signal noise ratio of 96dB if the signal is at the maximum (0dBFS by definition).

Then if you add to a 24bits file a sinus at -96dBFS then truncate at 16bits, the sinus amplitude will be near the quantization noise. This doesn’t mean the sinus won’t change anything. Some process (noise shaping or dithering) add a low noise before a 16bits truncation to enhance the resulting signal.

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.