I scanned my music library with both Mp3test and Mp3val. Both programs detected different errors in various files. I recently ripped an album with foobar2000 that was ripped with minor errors, neither program detected these when scanned. How accurate are programs that are intended to detect errors and what does fixing these errors accomplish as far as audio quality?

Those programs look at the MP3 file structure. They can't tell you if there was a problem with the ripped-data fed-into the MP3 encoder. If you get a ripping error that makes a "click", "tick", or skip in the sound, your MP3 encoder will happily encode that defective sound and the MP3 file won't have errors... It will just have bad sound.

This is similar to digitally recording a vinyl LP. The clicks & pops are defects in the audio, but those clicks & pops are not data-errors. Or, it's like an error on a spreadsheet. If you type the wrong number into your spreadsheet, there is nothing wrong with the file.

Fixing the MP3 file won't fix the audio problem. But, if you can't hear any problems caused by ripping errors, it's no big deal. Especially if you are encoding to a lossy format like MP3. Tiny details you can't hear are often thrown-out during MP3 endoding anyway.

QUOTE

Both programs detected different errors in various files.

I'll add another MP3 tool.. And, I've had similar issues... I sometimes use VBRFix. I've had errors found by Mp3Val that it can't fix (missing XING header???). After running VBRFix, Mp3Val still finds an error (number of bytes???), but it can fix it the 2nd time. i don't know where these errors came from... Maybe an older version of LAME???

So ... how do these various tools work? As of now, I have just tried foobar2000's 'Rebuild MP3 stream' function, and the MP3Repacker tool (which does not really boast of repairing anything, but it does take a faulty file in and return something which verifies as OK). Do they simply remove faulty frames, leading to a minor skip? (The mp3val documentation suggests so.) And is that what is usually done on playback?

Premise:MP3 files are composed of blocks (packets) of fixed size, that have a header indicating what is inside. Some of these packets have special meaning, like the VBR header (the vbr header is a packet that allows correct seeking and song length estimation for VBR files). MP3 files also use to have "attached" data like ID3 tags at the end(v1, v2.4?) or start (v2.3).

* MP3Val: Checks that each block starts where it is supposed to start, that the header of those blocks is consistent within the file and that, if present, the VBR header is consistent with the length of the file.

*VBRFix: Its only use is to correct the VBR header. This header has 100 points to seek from start to end of file in steps of 1% of the duration. It can fix it or add it, if missing.

* Foobar2000: As the name implies, foobar rebuilds the stream. This means reading the file and packing it again. Its use is the same as MP3Val, but foobar2000 also writes the vbr header and maintains the tags.

* MP3repacker: This program has two uses: get a VBR file out of a CBR file and viceversa. To do this, it needs to rebuild the stream and in doing so, it will correct any packet that could have a problem (IIRC, it reports such situation).

And as has been said in previous posts, this only corrects errors in the file, not in the audio.