Okay, I have the new indexer in place. I need to do a bit of cleanup before I release a public beta, but I need some sleep so I'm done for the night. I'll try to finish up tomorrow.
The indexer now works the same in both DOS and Windows, and is built in to the jukebox so JUKELIST is no longer necessary. (Huzzah!).
Multiple directory trees of files can now be specified, and the directory scan is now recursive so subdirectories will be searched up to a depth specified in jukebox.ini. If you have ID3 support enabled in jukebox.ini, ID3 information will be used when available; if individual fields or the entire tag is missing, it will use the filename for the subject and either the current folder name (if it's one level off the top of the tree) or the parent folder name (if the current folder is deeper than one level off the top of the tree) is used for the artist, or Various if the file is in the root of the tree. Titles will have excess information cropped from the beginning of the title, so a file called "02 - Avril Lavigne - Complicated.mp3" will come out as "Complicated". This auto-crop looks for the last "- " (a dash followed by a space) in the filename and crops anything before it. You can disable this behavior by setting SmartCrop to False in jukebox.ini.
File identifiers are created from the last six digits of the file size plus the first four non-space characters of the filename, and are thus compatible between DOS and Windows. File identifiers are resolved to file paths at run time; becase of this, you can store song files on removable media and they will simply not appear if the media is unavailable.
All this indexing takes time. On a system with 500 MP3 files, the first run takes about 40 seconds to get all of the ID3 information from the files and build the database. Subsequent runs take about 1.5 seconds to resolve file identifiers to filenames. If you are running in an environment where your song files rarely change, you can set AutoUpdate to False in jukebox.ini to load the previous indexes, which causes the jukebox to start almost instantly. Deleting the index file (but not the database) will force the indexer to re-run, grabbing any new files and re-resolving old ones.
--Chris