I search for a tool that can check my 24bit downloads I have purchased over the years. Honestly its just a handful compared to my whole 16bit FLAC collection but I often wondered whether these 24bit files are actually true or just upconverted 16bit.
Many sellers nowadays sell these and I am honestly not even sure whether it is worth it paying more for them. I btw do NOT care whether the difference in quality is audible or not, that is NOT my point. I simply want to know if the 24bit FLAC files actually have 24bit audio information and not just zeroes because it is upconverted 16bit.
Of course 48khz+ audio files are easier to check because you can analyze the spectrums but this doesnt work with bits.
The FLAC bitrate should be a clue. FLAC is "smart enough" not to waste space with repeated zeros. So if we assume 44.1kHz stereo I'd expect 16 bits to give you a bitrate in the ballpark of 850kbps and 24 bits around 1250kbps.
But if they add dither or make something like a 0.1dB volume change, or just about any change, while up-sampling, those lower 8-bits would contain non-zero data.
You could try a bit meter. A few are available as VST plugins, for example Bitter (https://www.stillwellaudio.com/plugins/bitter/). Conversion with dither will result in the least significant bits showing activity and a gap above them. On a spectrogram you could look at the noise floor during fadeouts. Adust the range to at least -130 db and check some 16-bit files.
Thanks.
Is there something that doesnt require purchase or other software to function? I only have Foobar2000. Something simpler would be cool.
I was actually wondered that this Lossess Audio Checker doesnt have a bit check function to check 24bit files. Should be fairly easy to implement.
EDIT: Nvm. Seems like that VST doesnt need a purchase. I loaded it into Foobar2000 via foo_vst and it seems to work as expected. So I guess when it shows over 16bits being used while playbacking the audio, it actually is a legit 24bit file? Tried a couple 16bit and 24bit files and seemed to work fine. However, some of my 16bit CD rips actually do show 24bits and more all the way up to 32bits. Others cut off after 16bit. I suspect this plugin does something else than what I actually want? Or maybe I missunderstand something? Does it depend how the files were mastered no matter whether they are 16bit FLAC or not? I am not entirely sure whether this tool really does what I want.
Maybe that recommendation from DVDdoug is a better guideline for me. Because I indeed noticed a couple of 24bit releases that actually seem to have almost the same bitrate as their 16bit counter parts, which probably means they are fake, no?
Someone produced a tool when the same question was asked in 2012: https://hydrogenaud.io/index.php?topic=97746.0
MusicScope has, or rather had such feature.
How exactly do I use this cmd script? When I open it in the same directory where my FLAC audio files are and also the flac.exe, nothing happens and it just closes. I am not too skilled when it comes to cmd. What do I have to do exactly to get it running?
I tried MusicScope and it looks fancy. But what exactly do I have to check whether to know if a file is true 24bit? Some audio information? dB?
You load a file, run full analysis, click on Bit Monitor and if there are any blue stripes, that many bits are unused.
Ok, figured it out. Thanks.
Thing is... I didnt really come upon any 24bit audio files that have blue stripes/unused bits so far. Which either means they are actually all legit, or this way of checking isnt really reliable whether its upconverted. Meh. I mean sure, it is nice if they are all legit but I seriously doubt this somehow... Unless Qobuz really means business and checks audio files themselve before they are released.
It is often enough to apply any kind of hires processing after upscaling to make all the bits being actually used, even lossy encoding might add some noise. Seeing black stripes in Music Scope means that those bits are barely used and might indicate upscaling too, if there is at least 8 of them in 24bit file and all the rest is gray/white.
I think eac3to will do it when converting.
Try something like:
eac3to yourfile.flac test.wav
So.... It should be pretty easy to "fake" and it's possible to "accidently fake" if the file is normalized (volume change = rounding errors) or if Audacity is used without disabling dither (added low-level noise), etc.
Or somebody could digitize vinyl at "24-bits" not even knowing that they have 16-bit soundcard. Windows will up-scale without telling you. And again, volume adjustment or normalizing or any "processing" will replace the zeros with "real data."
But if the lower 8-bits are actually zeros, every 3rd byte (following the file header) will be zero and that's easy to spot if you decompress to WAV (without dither) and open the WAV with a hex editor (http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm).
If lower 8 bits are zero, it can be detected with SoX also.
sox.exe inputfile.flac -n stats
DC offset -0.000047
Min level -0.662384
Max level 0.633606
Pk lev dB -3.58
RMS lev dB -21.95
RMS Pk dB -11.47
RMS Tr dB -59.30
Crest factor 8.29
Flat factor 0.00
Pk count 2
Bit-depth 16/16
Num samples 287k
Length s 5.986
Scale max 1.000000
Window s 0.050
However, some of my 16bit CD rips actually do show 24bits and more all the way up to 32bits. Others cut off after 16bit. I suspect this plugin does something else than what I actually want?
You would have to insert
any bit meter before volume change or resampling DSPs, which will always activate all bits. In Foobar you need to
disable ReplayGain volume adjustment and place the VST at the top of the list of active DSPs. Other programs might automatically resample to the chosen project rate, in which case you can only check tracks that match it.
Example: 20-bit export with moderately shaped dither at 24 bits & spectrogram fading to full black. LtAuQFP.png (https://i.imgur.com/LtAuQFP.png) J2QtqZv.png (https://i.imgur.com/J2QtqZv.png)
Example 2: 16-bit upsampled with blue noise floor at 120 db and traces of data reduction in the difference channel. BBBeg7W.png (https://i.imgur.com/BBBeg7W.png)
Of course 48khz+ audio files are easier to check because you can analyze the spectrums but this doesnt work with bits.
Spectrograms are not reliable as well:
https://hydrogenaud.io/index.php?topic=108864.msg948272#msg948272
https://hydrogenaud.io/index.php?topic=108864.msg948350#msg948350
There is no way to 100% ensure something is not upconverted as long as you are not the one who recorded and produced the audio file, so just give up.
If you were to convert a 16 bit 44KHz file to 96KHz then back to 24 bit 44KHz, it would be impossible to know this.
100% free and clean... Lossless Audio Checker
https://losslessaudiochecker.com/
Just tried Lossless Audio Checker, converted Flac 16 bit, 44KHZ to Flac 24 bit and it detected as upscale.
Added dither to the 24 bit conversion (triangular) and it detected no upscale (clean).
Removed dither and converted to 24 bit, then to 96Khz, then back to 44Khz and no detection either.