To embellish the answer by enzotib ; these players play files in the order they find them in the File Allocation Table (the FAT, in FAT).
FATSort is therefore one potential solution to the problem. The noted warning is for 2 reasons ;
- The tool edits the file allocation table right at the bare metal level
- It moves the file entries around within the confines of the directory table, so a corrupt filesystem will be more broken than it was before
- As long as the filesystem passes a
fsck.vfat
check, you should be fine.
- The author appears to feel that he hasn't devoted enough time to making his code secure
- Potentially, you could create a (broken) file allocation table that caused a buffer overrun or similar problem in the FATSort application
- In reality, this is unlikely - it's something of a niche application, the opportunities for an attacker to place a specially crafted file system on your MP3 player are limited, and if he had such an opportunity, there are much softer targets he'd go after first
- Again, if your filesystem passes
fsck.vfat
(or a disk check in Windows), you should be fine - this is a belt-and-braces disclaimer by the author
palimpsest
/ Disk Utility has options to do a disk check from the GUI.
Other programs that sort the FAT can be seen here : http://www.murraymoffatt.com/software-problem-0010.html
Alternate solutions ;
Copy files in the play order
The simplest and most obvious is to copy the files to the player in the order which you wish them to play. Nautilus copies files in an apparently indeterminate order to the player file system for much the same reason - it tends to operate on files in the order the iNodes are arranged on disk.
If your track file names have the track number at the beginning, this is ideal. Most of the command line tools will sort things in lexicographic order. As you note, tools like Midnight Commander will also do this.
# Find the files in the source | copy them to the target folder
# Note we use the -print0 | -0 args because media file names
# commonly contain spaces
find /path/to/music/folder -print0 | xargs -0 cp -t /path/to/target/folder
Create a playlist
Some players support playlist files. I keep scripts in my MP3 player filesystem to support generating these playlists. My player is an iRiver device, which has a specific binary playlist format. If your player supports .m3u playlists, the format is extremely simple, and just consists of commented metadata and paths in a text file. I used to make playlists in Rhythmbox and transform them to the iRiver format ; I've not had occasion to make one using Banshee yet (I only make them for workout purposes and my workouts are very predictable...)
As a part of the copy process, the data is buffered into memory and then written to disk. Writing the data to disk takes time, but the software (nautilus) does not show the pending operation.
For details, see
Copy to USB memory stick really slow?
The time required to sync varies by file system on the flash drive and some people have experienced slow write times with NTFS. This seems to be an as of yet unidentifed kernel (ntfs driver).
Why is usb file transfer so slow in 12.10?
At any rate, you want to sync, or write the data from the buffer to the flash drive before you remove it. This principle is true with all OS. Use the eject feature or on the command line,
sync
Best Answer
Is it currently possible? No. Would it be awesome? Yes.
I don't think it's a case of not being intended, it's just something that hasn't been done. If memory serves correctly, it took KDE a while to get it done.
And it's all fairly low-level stuff. It's not a simple bash script that's running
cp
s andmv
s in the background so I don't think it's going to be as easy to hack into as you might like.You might want to find a GIO developer (assuming it's still GIO that handles these things) and shake them until you know why this isn't in there yet. Unfortunately, GIO developers are a stealthy and paranoid bunch. They know you're looking for them so you might have to file a bug against it on the Gnome bug tracker to lure one out.
But in seriousness, remember the devs don't work for you (unless, bizarrely they do work for you -- which would be a strange coincidence). If you do find one, try not to startle them by running up to them, shouting and waving your arms around. Just quietly ask if it's a planned feature and if there's anything you can do to help.