:. Project / My Music Setup
Here you learn about my music organization. This is mainly here to help/give ideas to anybody that has problems keeping everything sorted. Mainly, iTunes (or similar program) users that only use it for its organization, I want to show you that there are better ways with less overhead. The only stipulation is that you have to use more programs. Without further ado...
Step 1: There are three folders on my computer. One is for downloaded & sorted music, one is for downloaded but unsorted music, and one is for unfinished downloads. Most download clients have an option of "move to x folder after finished download." This helps to make sure you never try to play an unfinished mp3.

Step 2: Download and install a small program called MusicBrainz Tagger for Windows or Mac OS X. This program does automatic lookups on mp3s based upon filename, song name (ID3 tag), duration, artist, genre, etc. It also computes a checksum on all mp3s and can look up this checksum in case the mp3 has no tag information and poor filename. It automatically detects RIAA corrupted mp3s as being 10-20 minutes long, so it wont match any given information.
Step 3: Set up the MusicBrainz client. It can automatically watch directories for new mp3s. I set this to my unsorted downloads directory, so it can just watch that for new music files. If theres a match over 90%, it can automatically re-tag and move the file to the appropriate location. I use this extensively. This is mostly the extent of what iTunes does for you, with the exception of adding the files into playlists by genre, which WinAMP can do for you in the media manager.

Now into some of the stuff I made to go beyond the rest. I'm a hobbyist programmer, so these are all original programs made by myself.
Step 4: When MusicBrainz sorts music, if it finds 2 mp3s that are named exactly the same, it names the first one XXXXX.mp3 and the next XXXXX (1).mp3. It counts up from there. Well I don't want duplicate files filling up my hard drive, so instead, I made a program to search through MusicBrainz duplicately named files. This PERL script recursively looks through my music, deleting exact duplicates and warning about duplicates that are of different sizes. I then can manually duplicate that has a lower file quality or verify that the music was saved correctly.
Step 5: A second program (similar to the one in step 4) goes through and looks up lyrics for each mp3 based upon ID3 information. Once again, this program is written in PERL, and this one requires a special module called WWW::Lyrics. The program saves all lyrics to a special directory: D:\Documents\Lyrics and sorts them all by artist and album.
I run a web server on my computer with a MySQL backend. The following 3 steps are for the setup related to that.
Step 6: When I listen to music, I use the Now Playing plugin for WinAMP. I set it up so it submits file information to this script on my web server, which essentially saves all tag information from the currently playing song into a file. I can then pull any of this information up in any web service, including flash files, web pages, etc. My favorite is the web lyrics program I wrote, which attempts to look up the lyrics file stored on my computer from Step 5 based upon artist and song information. Once it finds the lyrics, it just copies the file into the body of the webpage.
Step 7: Another custom program I made finds all new music on my hard drive and outputs it to a html file. This program generates this page. My friends check this list sometimes for reasons in the next step. A second, similar program stores all this information into 1 central database. I should probably combine these two programs together, but I haven't gotten around to it.
Step 8: The last program is an mp3 search for the aforementioned web server. It's still pretty basic because I taught myself PHP by making the search engine. People can search through by artist/filename/genre/etc. Also, the homepage of my website keeps an updated list of what songs I played last via a WinAmp plugin. Only people with an IP range on campus can access these songs/the search engine. There's another program I wrote in PERL which zips up directories on the fly, so people can search for an album and directly download the whole thing, instead of song by song.
Step 9: The instant messaging program I use, Gaim, allows for all sorts of custom plugins. One of the plugins I use is the MusicInfo plugin, by Reubin Balik. This ties in my currently playing song to my AIM profile, and I added a link to my web lyrics program from Step 6.