Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Monkey's Audio MD5 in foobar2000 is...wrong? (Read 7859 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Monkey's Audio MD5 in foobar2000 is...wrong?

When I transcoded a FLAC file into a Monkey's Audio file, MD5 and Bit Comparison tests in foobar2000 showed the files were identical. Yet when I looked at the MD5s that were stored in each file's metadata, they were totally different. The same thing happened when I transcoded a WavPack file into a Monkey's Audio file. Is this due to a quirk in the APE format and the way it gets an MD5 signature? Or is foobar2000 not reading the MD5 signature correctly?

Monkey's Audio MD5 in foobar2000 is...wrong?

Reply #1
FLAC's MD5 sum is of the file's raw data when decompressed.  Monkey's Audio's MD5 sum is of different parts of the compressed .ape file.  So it's okay that the two don't match up.

Monkey's Audio MD5 in foobar2000 is...wrong?

Reply #2
Monkey's Audio's MD5 sum is of different parts of the compressed .ape file.
Which parts? I trust you you don’t mean everything; computing such an MD5 would require analysing the whole file including its not-yet-existent MD5…

Monkey's Audio MD5 in foobar2000 is...wrong?

Reply #3
Monkey's Audio's MD5 sum is of different parts of the compressed .ape file.
Which parts? I trust you you don’t mean everything; computing such an MD5 would require analysing the whole file including its not-yet-existent MD5…

It's the MD5 sum of everything from the end of the seektable to the end of the file data (not counting any metadata tags), and everything from the end of the descriptor to the end of the seektable.  Since the MD5 sum lives in the descriptor at the start of the file, it all works out.