Current version: 1.30 Released Apr 24th, 2004 [ download ] [ Released under the GPL (Gnu Public License) ] by Philip Jacob Copyright © 2003, 2004
This software creates an index file that the Turtle Beach Audiotron home audio device uses to dramatically speed up the otherwise lengthy process of making a list of all the music files on your file server. Instead of reading data from all of your music files, the Audiotron instead reads in the TOC file (probably takes < 30 secs depending on the size of your collection). When your collection starts to go over a few hundred music files, you will certainly see the need for a TOC generator. Once you start amassing a large collection (> 2000 files), relying on the AT without using a TOC generator becomes wholly impractical.
I wrote this code because I wanted an Audiotron TOC generator that I could run via cron on my Linux file server which holds my mp3 files. At the time I wrote this, there were two other popular command line TOC generators out there, but I didn't like either of them (hacky, hard-to-modify code or limited features), so I put this together. There are other GUI apps out there, but the fact that I wanted to run this via my cron scheduler influenced my decision to write this in a language that is conducive to that kind of non-interactive environment (i.e. perl).
I think it is better designed than most of the TOC generators out there and the fact that it uses a cache to store previously parsed mp3 files really speeds things up. I am quite sure that there are a few lingering bugs existing in it, but I will be happy to fix them as they are brought my attention.
First: You need Perl (I'm using 5.8) and the following modules. Please note that this should happily work with perl 5.6 or possibily even earlier versions as long as the following modules are available.
File::Basename - Included with perl 5.8
LWP- you might need to install this
File::Find - Included with perl 5.8
File::stat - Included with perl 5.8
MP3::Info - you might need to install this
Set::Scalar - you might need to install this
Storable - Included with perl 5.8
Text::Iconv - you might need to install this (Not required if you plan on running this on Windows; in fact, Text::Iconv won't even work on Windows)
strict - Included with perl 5.8
If you are not already using the wonderful CPAN
module, you can automate most of this installation if you have a working
version of perl. In fact, unless you have a good reason not to do so, I highly
recommend that you use
cpan to install the modules above. If you are running MS Windows and are using ActiveState's ActivePerl distribution, you can use their included PPM utility to install the modules.
Second: Apart from that, after you have downloaded
the code, you should open it up and modify the values clearly marked in the
END USER CONFIGURATION section (that's you!). For now, you need to modify the
@music_dirs to reflect the
pathnames on your system and also provide the hostname, username and password for your Audiotron. Then, just run it. You will see output like this:
phil@localhost:~/audiotron-toc$ perl audiotron-index.pl Whirlycott Audiotron TOC Generator <http://www.whirlycott.com/phil/software/audiotron/> Copyright (C) 2003 Philip Jacob Starting... Time stamp for this run will be 1061322712 Reading in cachefile... Found 5479 MP3 files... Checking cached files for modifications since 1061158163 ... Found 0 modified or changed files. Done! Going to reuse old cache data... Doing full checks on 24 files... Processed 10/24 Processed 20/24 Storing cache file... Done! Generating TOC... Done! Checking to see if a newer version of this code is available... The version you are using is: $Revision: 1.5 $ The latest version is: $Revision: 1.5 $ Exiting happily.
After this initial run, a cache file will have been created that stores most of the data needed to regenerate the TOC without having to re-scan all of the mp3 files.
Please email me with any bugs you find or features you want (note that the email address has been slightly obfuscated to avoid spam-harvesting robots). In order to provide you with a fix, I will need any and all diagnostic information that you can provide to me.