View Single Post
Old 05-08-2013, 04:43 AM   #15
spmike
 
spmike's Avatar
 
Drives: 2011 Camaro RS
Join Date: May 2013
Location: Saint Paris, Ohio
Posts: 7
Major problems, incompatible files

While this thread started out very positive, it's going to end very negative. While my tests with a few test mp3 files worked just fine, after copying several thousand files to the flash drive, nothing will play. "No supported data found"

I started searching, and someone posted that the radio does not support special characters in file names. Mine had parenthesis, hyphens, spaces, etc. Someone else wrote that the radio does not support file names with more than 100 characters in the name. Some of mine had up to 137. So I mounted on the flash drive on a Linux machine and wrote the following Perl script to rename all the files, remove the special characters, and truncate the length of the files to 80 characters:

#!/usr/bin/perl

# rename all music files on a thumb drive to a format
# compatible with the 2011 Camaro radio format.

# where the USB drive gets mounted:
$basedir="/media/CAMARO/music";

# length of file names to truncate to (takes last N characters):
$lengthlimit=80;

chdir($basedir);
@allfiles=`find . -type f -print`;

$maxlength=0;
$renamed=0;

$count=$#allfiles;


for $i (0 .. $count)
{
$file=$allfiles[$i];
$file=~ s/\.\///;
$file=~ s/\n//;
$newfile=$file;
if ($file=~ /.*[A-Za-z0-9]mp3/) #missing .mp3
{
$tempfile=$newfile;
$tempfile=~ s/mp3$//;
$newfile="${tempfile}.mp3";
}
$newfile=~ s/\s/_/g;
$newfile=~ s/\~/_/g;
$newfile=~ s/\!/_/g;
$newfile=~ s/\#/_/g;
$newfile=~ s/\$/_/g;
$newfile=~ s/\%/_/g;
$newfile=~ s/\^/_/g;
$newfile=~ s/\&/_/g;
$newfile=~ s/\*/_/g;
$newfile=~ s/\(/_/g;
$newfile=~ s/\)/_/g;
$newfile=~ s/\-/_/g;
$newfile=~ s/\=/_/g;
$newfile=~ s/\\/_/g;
$newfile=~ s/\|/_/g;
$newfile=~ s/\[/_/g;
$newfile=~ s/\]/_/g;
$newfile=~ s/\{/_/g;
$newfile=~ s/\}/_/g;
$newfile=~ s/\;/_/g;
$newfile=~ s/\:/_/g;
$newfile=~ s/\'/_/g;
$newfile=~ s/\"/_/g;
$newfile=~ s/\</_/g;
$newfile=~ s/\>/_/g;
$newfile=~ s/\,/_/g;
$newfile=~ s/\?/_/g;
$newfile=~ s/\`/_/g;
$file=~ s/\`/\\\`/g;
$mylength=length($newfile);

if ($mylength > $maxlength)
{
$maxlength=$mylength;
$maxname=$newfile;
}

if ($mylength > $lengthlimit)
{
$pos=$mylength - $lengthlimit -1;
print "mylength=$mylength, lengthlimit=$lengthlimit, pos=$pos\n";
$tempname=substr($newfile, $pos);
print "truncating $newfile to $tempname\n";
$newfile=$tempname;
}

if (!("$file" eq $newfile))
{
print "$i: renaming $file to $newfile \n";
system ("mv \"$file\" $newfile");
$renamed++;
print "------------------------------------------------------\n";
}
}

print "\n----------------------------------------------------------\n";
print "\ndone!\n";
print "\n#of files renamed: $renamed\n";

----------------------------------------------------------------

Thinking it will work now, I insert the drive into the car. No supported data found. The cussing begins. Back to searching. someone else posted that they thought the max file length was 32 characters. Again, why can't we get an explicit declaration from GM??? So fine, I write another perl script to rename every song to song1.mp3, song2.mp3 ... songN.mp3:

#!/usr/bin/perl

# where the USB drive gets mounted:
$basedir="/media/CAMARO/music";

chdir($basedir);
@allfiles=`find . -type f -print`;

$renamed=0;

$count=$#allfiles;


for $i (0 .. $count)
{
$file=$allfiles[$i];
$file=~ s/\.\///;
$file=~ s/\n//;
$newfile="song${i}.mp3";

print "$i: renaming $file to $newfile \n";
system ("mv \"$file\" $newfile");
$renamed++;
print "------------------------------------------------------\n";
}

print "\n----------------------------------------------------------\n";
print "\ndone!\n";
print "\n#of files renamed: $renamed\n";


----------------------------------------------------------------------

It has to work now, right? Wrong!!! No supported data found. More searching. Posts say that the radio only supports certain bit rates, like 128Kbps, but my tests were with 256kbps mp3's and they worked. Again, GM WHERE IS THE LIST OF SUPPORTED FORMATS???

Even if I can determine what bit rates work, there is no way I am going though all of my songs, checking the bit rate, and re-encoding them to a supported bit rate. I'm about to give up and subscribe to SiriusXM.

As a programmer, what disgusts me is the (lack of) error handling in this GM radio. If they only support certain formats that is fine, but if they encounter a song they cannot play, they should simply skip over that song and go onto the next one, not invalidate the entire drive!!!! If I had access to the source code I could fix it myself, but I probably have better odds of getting hit by lightning than for that to happen.

I have always loved Chevrolet, but that love is fading fast because of this.
No documentation on supported formats in the owner's manual or the GM web site, very limited mp3 support, yet I can download Winamp for FREE that will play almost any mp3 on the planet. GM, you blew it on this one.

spmike is offline   Reply With Quote