George logo Why?
Small Print
A GPL'ed MP3 File Reorganizer
GPL © 2000 Frank de Lange


What's the Problem?

The problem is simple. You just ripped all your CD's, albums, cassette tapes and 8-tracks to MP3 files, and have a stack of blank CD's waiting to be enscribed with the fruits of your labour. All that is left is to organize your files in such a way that albums do not get mixed up. And that artists are sorted, sort of. All the while keeping an eye on available CD-space, which you'd like to use efficiently. You can use one of the myriad of existing CD pre-mastering tools, but these tend to be less efficient for this specific job. What you really want is a tool which can deal with multiple sources and CD's at once, which knows how to select directories non-recursively (without including all subdirectories), which creates `cuesheets' (lists of files to include) for your favourite CD-mastering software. And it had better be free software, since you might like to learn a bit in the process by looking at the code (or teach the author of the program how to write better programs...).

A possible Solution

Presented with the aforementioned problems I sat down to hack up some Perl code to automate much of this process. A few cups of tea later, George was born. It did not have a name then, but it performed its tasks to satisfaction of the owner by scheduling a sizeable amount of CD's out of the scattered MP3-populations on various networked boxen. "Hmmm..." I thought, there's bound to be other people in a similar situation, having their files all around waiting for that `big cleanup' which for some reason gets postponed indefinitely. And since I've got this thing for Free Software, why not polish up this program a bit and release it to the ravenous masses on the 'Net? An since all good software has a name... George was born. There's nothing more to that name than a somewhat corresponding subset of characters, really.

Anatomy of George

  • George is written in Perl. Perl works the way I do. It is convoluted, messy and noisy, but it produces results.
  • The GUI-endowned version uses the Gnome libraries. And Gnome needs a lot more, like GTK and friends. It also uses the Glade-Perl extension, since this saves me from a lot of repetitive work. If you don't know Glade and you (intersted in) programming for GTK, try it. It is an interface builder for GTK (and Gnome) which allows you to cobble together an interface in a few minutes. And Glade-Perl in turn depends on GTK-Perl, also commonly known as gnome-perl (in the Gnome CVS repository) or perl-GTK. Get the latest version and save yourself some headaches...
  • George is probably `Unix-only' (where the term 'Unix' is used for everything which looks, quacks and walks like a Unix. Linux is fine, so is FreeBSD or OpenBSD or Solaris). The command line version might work on Win32 (with some working version of Perl) as well. If I feel so inclined, I'll even combine both versions in one program (whee... something I should have done in the first place but remember, this was a simple hack...).
  • George does not do its own premastering, nor does it directly control the CD-writer. For these purposes it relies on mkisofs and cdrecord. You can probably also use mkhybrid to create Mac CD's, but for lack of a Mac I hve not tried this. If you try this, you'll need to add some mkhybrid-specific flags to the preferences hash in George. You'll have to know some Perl to do that.
  • George is licensed under the Gnu Public License. That means that George is what is called `Free Software'. You can copy George all you want, and sell it for all I care, but you are not allowed to restrict others in doing so. For more information on this subject, visit the Free Software Foundation, Land of the GNU and Home of the Hurd.

Download George updated

You can download George from the sourcefourge fto server, or you can get it straight out of CVS is you like living dangerously. Normal mortals click these links:

nametypesize (bytes)location
George-0.2.tar.gz gzipped tar 85865
George-0.2-1.noarch.rpm rpm (noarch) 102922
George-0.2-1.src.rpm source rpm 90343

For the cutting-edge CVS-version which is guaranteed to ruin your live and cause natural catastrophes, do the following:

  • First, login to the CVS server. When you're asked for a password, just hit enter

    cvs login

  • After anonymously logging in you can checkout (co) what you want from the server. Currently there are two modules, George (the program) and George-doc (the documentation and website):

    cvs co George
    cvs co George-doc

  • After initial checkout, you can change into this directory and execute cvs commands without the -d tag. For example:

    cvs update

News updated

Version 0.2 has been put on the web and ftp servers, and the latest version can be found in the CVS server. Go get it, try and test it, and bring on the bugreports/suggestions/lawsuits/whatever! For mailing lists and other George-related paraphenalia you are warmly invited to the project site at SourceForge:

George project at SourceForge

If you want to actually join the discussions (if any...), you'll have to log in to the system. This is free, and I think the people at SourceForge promised not to sell your soul or email-address to the devil.


The documentation for George is included in the tarball and rpms. Being a perl program, the docs are of course included in the program source in `pod' format. This means you can use the usual tools to get documentation in text, html or other formats. If you want to have your docs served to you by this webserver, go to:

The George Documentation site

Screenshots! updated

What is a GUI-program without a screenshot? Even a GUI-program which does not really do anything yet? Therefore, and without further ado, we proudly present for your viewing pleasure: George. If you like your screenshots to be actually readable, click on the pictures for a larger version.

Screenshot George interface 1 Screenshot George interface 2
This is George, just having scanned a couple of directories. The results are shown in the notebook to the right. It is possible to remove tracks (files) and albums (directories) from the selection. The same selection, but now in the Albums view. You can remove albums by right-clicking them and selecting the remove option from the menu (currently the only option by the way...).
Screenshot George interface 3 Screenshot George interface 4
This is the actual reorganization phase of the process. George has arranged your tracks (files) and albums (directories) in a somewhat sorted fashion over a number of CD's. If you want to, you can manually reorganize those CD's before going to the next phase... Here is where the fun starts. Select a CD and click the Create button to... errr create a CD. George will use mkisofs and cdrecord to create the CD in one fell swipe, without bothering about image files and such. Your computer must be fast enough to allow for this to succeed. Also, if any of the source files are on a network-mounted (NFS, Samba, Netware, whatnot) directory you better make sure the access to that directory is fast and reliable enough. If in doubt, just use the simulate option from the preferences page. Speaking of which...
Screenshot George interface 5 Screenshot George interface 6
One of the preferences pages for George. You get the idea, change stuff to get stuff changed. Another preferences page, this one allows you to select settings for the cd-writer and the verification device (George is tailored to use separate device for disc verification, since this is both quicker and offers better verification capabilities. You can use the same device for both tasks if so desired, but if you have a normal CD-ROM player next to a CD-Writer, I'd suggest you use that CD-ROM player for verification. Oh, and if you think that all this verification stuff is nonsense, just look at picture number four. Notice that red 'X'? That was a disc which contained errors after writing :-(

Small Print

(C) 2000 Frank de Lange <>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Right, that's the standard shortened version of the GNU General Public License. If you want to read the full version, you can find it in the COPYING file which comes with George. For the most up to date version go to

Frank de Lange
Last modified: Thu Aug 17 18:41:35 CEST 2000