Corrupted files

Hi,

To my fright I found out that I have about 144 corrupted files in my local library. I assumed that Roon audio analysis would detect these corrupted files when I moved my local library from LMS to Roon. This is not the case, Roon audio analysis detected just one corrupted file (Skipped files). I was happy that Roon audio analysis detected just one “Skipped file” at first.
I also use TuneFUSION to make a .mp3 copy of my .flac library for use in my car. When changing the source path from a local path to a network path it had to resynchronize all files and detected 144 corrupted files. TuneFUSION is right, a random check of files reported by TuneFUSION all confirm the files are corrupted.
I hoped that Roon would keep an eye on the health of my local files.

Cheers,
Dennis.

Roon doesn’t perform that level of analysis. 3rd party software is needed. I use dBpoweramp to check the integrity of my FLAC files from time to time.

Do you know if a dBpoweramp check can be scheduled (maybe from command line / Batch Converter)?

Would you mind to share how?

You can run dbpoweramp format converter set to Test mode.

2 Likes

AudioTester64

Old but freeware and works very well

1 Like

How do you do that? I see only a checkbox to verify the written file, which I take to mean the file written out as the converted file…

I use the Batch Converter, highlight the folder with my music in it and use the “Test Conversion” option (see screenshot below)

This will test the integrity of each file. I think it only works with certain file types, but one of those is FLAC. I’m no expert (therefore excuse any incorrect terminology), but I think that this is a checksum test that compares the encoding as is now with the encoding as was when the FLAC was created. If the two don’t match then there’s a file corruption.

4 Likes

I don’t, I’m afraid.

#!/bin/bash

flac=/usr/bin/flac
flaclist=./flaclist
temp_file=$(mktemp)

if [ ! -f "$flaclist" ];
then
	echo "creating FLAC list"
        find "." -type f -iname "*.flac" > $temp_file
        sort $temp_file > $flaclist
        rm $temp_file
fi

echo "Files to process:  " $(wc -l $flaclist), press CTRL-C at any time to interrupt

while [ -s $flaclist ] ; do
    file=$(head -1 $flaclist)
    if ! $flac -t --totally-silent "$file" ; then
        echo $file corrupt  >> bad.files
        echo Corrupt: $file
    fi
    # remove current file from list
    sed -i.prev '1d' $flaclist
done
rm $flaclist.prev
rm $flaclist
3 Likes

If for some reason you don’t have bash in /bin, the following is my recommendation. Makes it a bit more flexible when supporting multiple *nix distros.
#!/usr/bin/env bash

That has been my experience at least.

2 Likes

Thanks for this! Didn’t know about this option.

From the dbpoweramp forum

Re: Test Conversion
If for example you have FLAC files, it decodes the flac files and compares the decoded result with the stored md5, thus being able to detect corrupted files.

Each audio format is different, such as wave with little corruption detection in the format.

I also have Perfect Tunes and didn’t know this possibility.
However, if iunderstand your message, the control is limited to files created with dbpoweramp. It doesn’t work with rips made for example with EAC, or with flacs directly purchased and downloaded.
Right?

No - it’s done using the Batch Converter that comes as part of the dBpoweramp suite of apps. The Test conversion will work for any FLAC files.

1 Like

It compares the md5 fingerprint which should be in all flac files.
As explained here
https://wiki.slimdevices.com/index.php/Technical_guide_to_FLAC.html

2 Likes

Are ALAC files as easy to scan for corrupted files?

No. They don’t automatically have an embedded checksum in the files (as FLAC files do). That’s one of the great advantages of FLAC over other lossless formats such as ALAC, WAV, AIFF, etc.

3 Likes

I knew I read it somewhere. :wink:

1 Like

I’m not sure how Roon checks for corruption. In the case that you described, it appears that it isn’t very thorough. I’m assuming that Roon carried out a full re-analysis when you moved your local library. It usually does.

Perhaps those with a better understanding than me of Roon architecture can comment?