Why the way you store our music matters
Im one of those people who have big problems adopting iPuke,,, iTunes I mean =) But recently I´ve come to the conclusion that a flat folder structure scales better than a hierarchical one. One reason is that in a hierarchical structure leads to higher coupling because information about the entities (mp3 files) has been extracted from the actual entity into the file path. For example, to describe a song by Metallica I have to look at the path, \Albums\Rock\Metallica - Enter Sandman.mp3, to know that this file is of the genre "rock" and is created by Metallica with the title "Enter Sandman". And this will lead to complexity as the music collection expands.
Compare the previous described hierarchical structure to a flat structure where information about each entity is held together with the entity in the form of metadata (ID3 tag). To scale I don´t have to put new albums that belongs to the genre "Rock" at one pre-specified location. Well this isn´t rocket science but as I gained this insight I also realised that I had to change the way my music archive was organized. Moving from a classic hierarchical model to a flat one. This is the way I changed it:
A hybrid approach
When I designed my archive I primary had two goals in mind: seamless scaling and a design that supports collections created by me.
First I had to make sure my music was properly taged. This was achieved by using the "Auto-tag" feature in Winamp (quering Gracenote DB). Juding by my experience the automatic taging was about 90 percent correct which I find allright.
Even though I probably wound't find much use of correct folder and file names, I decided to name these artificats in a consistent manner. To do this my plan was to extract information from the ID3 tag.
After trying a couple of applications I found MP3tag (
Mp3tag - the universal Tag Editor (ID3v1, ID3v2, APEv2). Great app!
With MP3Tag I was able to create my own actions that worked in batch mode. Using ID3 tag data I could manipulate files in these ways:
- Change folder name to "Artist - Album"
- Change file name to "Track number - Song name"
I also created an action that instead of setting the folder name from ID3 tag data "album" it went the other way around setting the folder name as the album data! This is how I managed to create a logical unit (each had the same album tag) of my own collections.
So now my music archive looks like this:
\albums\
\my Collections\
Wow I almost forgot, you had a question =) Here is what I would have done:
Use winamp auto-tag feature to get all the ID3 tag data (track numbers, artist name, album..). This should probably be enough to solve your problems and if you got inspired by my hybrid folder structure approach, MP3tag is the utility you need. The actions I created wasn´t very hard to create, but just let me know if you need them.
/E