Friday, February 17, 2012

How to Spot Fake Lossless Music

I'm sure that if you had downloaded and stored lossless file in your music library you would have thought that they are indeed lossless. 

Sadly but true, this kind of misconception is false as there are chances that some of those music files that you had downloaded are 'fake' lossless. 

Just some general FAQ's before we proceed with the tutorial.

How 'fake' lossless music is created
So there is this 'fake' lossless file, but how are they created? The answer is simple, which is by the means of upscalling a lossy mp3 files (could be varies in bitrate, even 128 kbps!). However, when played back using media player it will labelled as lossless or havinga  bitrate highter than 320 kbps, which is the highest bitrate for mp3. 

Why upload 'fake' lossless music
This might be done for the purpose of getting people to download it or generate high visitor counts for the site that shared these. 

Where are these 'fake' lossless music can be found?
It varies. But they can be mostly found from forum sharing site, e.g. vnsharing.net or VeryCD.

How to early spot true or fake lossless music
In most, but not all cases of a true lossless music, the uploader will include the EAC (Exact Audio Copy) log file that include additional AccurateRip information, if the album is in the AccurateRip database. Missing this log file doesn't necessary means that the album is fake lossless though.

How to spot 'fake' lossless music
Since the perception of music hearing is subjective and varies from people to people. In times it might be hard to actually hear the difference between a lossy or lossless music, even for those with highly trained ears. This happens because of the improvement that had progressed in the lossy music codec and the high transparency rate that can be achieved. 

An alternative would be using expensive and exotic audio equipment, including speakers, DAC (Digital Analog Converter), pre-amplifier, amplifier, etc.). This coupled with a high trained ears of an audiophile will surely spot the difference instantly. But seriously, how many of us can actually afford those kind of equipments.

And so comes the final solution, which is by the means of using software. If you are a foobar media player user, which is very popular among audiophiles), you could try out the following tools, fooaucdtect. 


How to integrate fooCDtect with foobar
Just follow the steps below and you are golden.
1) Download fooCDtect here.
2) Extract it to a common folder, e.g. C:\Program Files\foobar2000\tools\fooCDtect
3) Open foobar, select any tracks or album that you would like to check, then right click > Convert > ... 
*This is a one time setup to configure foobar to use the tool
4) Click Output format and select Add New button.
5) Enter the information as below. 


Parameters: --autodel --tpath "C:\temp\foo_temp" --output %d --threads 8 --mode 0
Change the number of threads according to your CPU threads. i7 support 8 threads.
* Visit here for additional explanation of the parameters.

6) Now click on the Destination and select where should the output is stored. It is recommended to select a temporary path as the output files only served to aucdtect for validation.

7) Click convert and wait for the conversion to finished. Meanwhile another window such as the one below will appear to show the results. 

fooCDtect GUI frontend

So here is how it works. Whenever you want to test the lossless authenticity for a track, you will convert it using the setting profile that you just created. Each of the selected tracks will then be converted and fooCDtect front end GUI will read the converted file and generate the result, which will be storedas track.auct (in 1KB binary file size) in the specified destination folder.


How to read the result?
You might be seeing 2 types of result
CDDA - lossless
MPEG - mp3


The percentage followed is the probability that the track is CDDA or MPEG3. So CDDA-100% means that the track is true lossless while MPEG-60% means that the track could be mp3 with a probability of 60%.


So that's basically covers it. But wait, there's more things to note...

One important thing to note about fooCDtect is that the result generated might be incorrect. Let me give an example, if the music is recorded in low peak and involve only single instrument, such as piano soundtrack, the peak might be not high and fooaucdtect might report it as mp3 due to the low frequency cutoff. Therefore leading to a false result.

So to further validate the result, another software called Spectro is used. What this software does is generate the full sound spectrum in a colored graph called spectrogram. An example is given below:

If this is your first time seeing such graph, do not panic as it is quite easy to read the graph. For starters, what you want to take note is how high does the peak goes. In typical case for lossy music, it is often that the sound will be cutoff at certain frequency, e.g. therre won't be any line above 80% of the spectrogram, such as:

A fake lossless track from Aeon Flux OST downloaded from VNSharing

As for lossless music, the line will most probably covered the full range of the spectrograph, which can reach as high as 22KHz, especially for vocal track or track with high tempo or loudness.

A true lossless track (12 - Battle in the Forgotten City from Final Fantasy VII Advert Children OST)
The spectrogram shown below is the case where the music is true lossless but reported as MP3 by fooCDtect due to the soft volume and the nature of the instrument. Music is Track 02 Brand New Days -The Beginning- from Persona 3 FES OST.

fooCDtect report that the track is confirmed an upscaled music from MP3.


Spectro shows that it is the nature of the music that leads to the falsified result.

Tips to use both tools efficiently
For me, I normally use fooCDtect to run a batch scan for my music library to early identify the 'fake' ones. Only then Spectro is used to further validate the result.


References:
http://translate.google.com.my/translate?hl=en&sl=ru&tl=en&u=http%3A%2F%2Faudiophilesoft.ru%2Fload%2Fcoders_utils%2Ffoocdtect%2F7-1-0-60

http://spectro.enpts.com/