One of the things I love about my Volvo is that it has a complete comms system built in. USB which will work with iPod (if I had one), or the iPhone (if I hadn’t swapped it for a WP8 phone) or just a plain old USB memory stick, aux, which is fed by my Pure DAB Highway, CD, radio, phone and nav.
One of the things I hate about my Volvo is the USB port, when I add a memory stick appears to play my tracks in a bizarre order. This blog explains how I changed that…
A quick google and I find that it reads the MP3 files in the order they are presented to the store when copied over. This is not necessarily in the order they are shown on a directory listing. I know this refers to my Volvo, but this is pretty generic of a number of car systems that play media files, and should work on them as well (worked on the SD card used by my friends Mercedes).
So, some fiddling, and I have found the light – my USB now plays in the sequential order of the files.
First thing I always do, is ensure that the meta-tags are correct for the music, so I use EasyTag on Linux to ensure that these are all correct. The neat thing about this app is the ability to do bulk changes based on it finding the info in CDDB – means I can change a couple of gig of music in a few seconds. There are plenty of blogs out there explaining how to update MP3 tags – go google my friends!
Next thing to do is to copy the files onto the USB stick and ensure they are ordered correctly. For this, I’ll present 2 options; the Windows way and the Linux way (Linux being quicker) – note [enter] means press the Enter key.
The application needed here is Microsoft’s Robocopy.exe (google and download, it’s part of the Server 2003 Res Kit).
I’m lazy, and hate long paths when working with the command line. So I do tend to work from the root of the drive (x:\) at this point.
- Copy ROBOCOPY.EXE to the root of the drive you are working in
- Open a command line window (Start / Run type CMD press ok)
- Create a directory, I call mine USB (mkdir c:\usb [enter])
- Copy all of the files / directories off the USB stick into this folder
- Make a note of the drive letter of the USB stick (my pc calls it E:)
- From the command window we need to use Robocopy. This bit is really important, one slip and you can flatten a drive (lose all the data held on it).
- The command we will use is robocopy /mir <source> <dest> The source is the directory we copied the data to, and the dest is the drive letter of the USB drive. For me, this would be robocopy /mir c:\usb\. e:\. [enter]
- The /MIR is the important bit here, it says mirror the data from the source to the destination – this means if the destination shows anything different, it ERASES it. But, the command will chronologically copy the files 1 at a time over. So, for a large USB stick, it will take a while.
A bit quicker and simpler here. There is an application out there called FATSORT. This application will sort the FAT database on the USB stick so it matches the chronological order of the data, rather than the copy order.
I use Ubuntu Linux, and for this it’s quite easy…
To install the application just sudo apt-get install fatsort
The process is as follows (this I had to figure out, as other blogs don’t seem to order this correctly):
- Press [ctrl] [alt] [t] to open a terminal window
- Go into Root mode sudo -s [enter]
- Plug in the USB stick
- Type mount [enter]
- This will list the storage devices mounted on your PC. My PC tends to find the USB stick as /dev/sdb1
- Type fatsort -fc <device> [enter] this tells it it to force the rebuild, and ignore the case (Linux is case sensitive). So, on my PC, the command is fatsort -fc /dev/sdb1 [enter]
- Type eject <device> [enter] ; so mine would be eject /dev/sdb1 [enter] to cleanly deactivate the device from the PC.
- Remove it and enjoy…
I’ve noticed that fatsort will complete this in a few seconds, which is a blessing over the Windows method.