Volvo XC60 cannot play (some) MP3 tracks

(0 comments)

My Volvo XC60 (2012), when reading MP3 music tracks from a USB stick, is often complaining with a "track unreadable" message. Initially I was blaming the USB stick, but the issue was still there with a different stick, and a PC never had problems reading all tracks...

Maybe the problem was related to the encoding of certain MP3 files, so I tried MP3 Diags to check and correct common issues. No way.

Still worse, when the Volvo software stumbles upon a sequence of "unreadable" tracks, it is likely to crash - and it will do it so badly that it will not play any file until you perform a reboot of the system, i.e. when you turn off the car and then start it again. Simply turning off and then on the audio system won't work!

Fortunately, someone had already nailed this anomaly here, and it was affecting Volvo V40 as well (for cars produced in the same years).

Citing buzby:

[Volvo software] is very strict on parsing the header and tag information of MP3 files - if they do not conform exactly to the MP3 spec, you will get the 'track unreadable' error despite that actual audio data in the file being valid.

buzby also offered the solution, represented by mp3packer (https://wiki.hydrogenaud.io/index.php?title=MP3packer).

On recent Debian systems, it seems this software is not (anymore) in the standard repositories, and active development probably stopped a few years ago.

However, it is still downloadable here: https://altlinux.pkgs.org/p9/autoimports-x86_64/mp3packer-2.04-alt1_12.x86_64.rpm.html as an RPM package. Even if not properly installed, once extracted the CLI binary runs successfully and, most importantly, solves the Volvo playback issue if run against problematic tracks.

In optimizing the tracks, it happens to also rewrite MP3 headers in a way that Volvo cars like...

To run mp3packer over all the mp3 files in a directory, I found it was necessary to invoke it repeatedly on a single file, so here is the simple script to do it:

#!/bin/bash

mp3pkrbin=/usr/local/bin/mp3packer

for f in "${@%/}"/*.mp3
do
    echo "$f"
    $mp3pkrbin -u --keep-ok out "$f"
done

Using the -u and --keep-ok out switches allows to correct the files "in place":

-u              Updates the input file and renames the orig to the output name

-keep-ok both  What files to keep when no errors occur. [out|both]

Current rating: 5

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required