A Byte Of Life

The Digital Lifestyle of Ian Wij
posts - 368, comments - 408, trackbacks - 15

My Links

Archives

Articles

Friends

Links

Referrals

Building A Digital Music Library

I've been building a digital music library for a while now and thought I'd collect together all the decisions I made and share it. Generally, I think the approach you take is based on the scale of the collection you're aiming at. As it gets bigger, you're forced to think things through more carefully. My collection consists of about 900 non-classical CDs. I'm not claiming I have it all figured out but the scheme is working well for me at the moment. There might be some ideas here you can use.

Individual Track Files or CD Images?

The majority of people rip each track to its own file. This is what I do. I like to see the individual files in Windows Explorer and be able to click on them and re-organise them.

However, you do have an option to rip a CD to a single file depending on the file format you're using. For example, you can rip to a single FLAC file and index it using a CUE file. I only bring this up because if you ever want to recreate the original CD, this is your best option. A single file allows you to maintain channel information besides the audio track and can be very useful for CD's of live music where gap information can be important.

Of course, there's nothing stopping you from using a mix of individual files and CD files. From this point on, I'm assuming you have individual files.

Ripping and Encoding Tools

You should visit Hydrogenaudio and read all the pro's and con's of ripping software and encoding formats. If you want a long term digital music library, it makes sense to rip to a lossless format and then encode on demand to lossy formats for portable devices as you need. Hard disk space is cheap and I never want to re-rip my collection. My choice of encoding format is FLAC.

One critical aspect to look at is the preservation of gaps. If you want to be able to reproduce playback of tracks that have no gap between them (e.g. Dark Side Of The Moon) don't choose MP3.

The choice of lossless format isn't too critical since you can theoretically convert from any lossless format to the other. However, each format uses a different system of tagging and depending on how much tagging you do, you will want to preserve these tags if you do switch formats.

My choice for ripping software is Exact Audio Copy along with Accuraterip.

When ripping, most software will correctly fetch the basic tags for a CD - often from FreeDB. It's useful to capture the FreeDB id and with FLAC, it would be best to store this in the DISCID tag. However, this isn't a unique identifier.

I configure EAC (Compression Options.External Compression) to call flac.exe with the following command line:

flac.exe -6 -T "artist=%a" -T "title=%t" -T "album=%g" -T "date=%y" -T "tracknumber=%n" -T "genre=%m" -T "discid=%f" %s

Track Naming Scheme

You need to name your tracks. For me, the naming scheme varies depending on where it sits in my collection. You'll see this later on. I'm sure many people like a single consistent naming scheme. It's your choice.

I strongly recommend you set the tags when you rip and not rely on encoding the tags into the track naming scheme. You can't do this correctly since the allowed characters in the file system is smaller than the characters used to name tracks (eg ? \ :). Yes, you could use a escape sequence but that gets ugly. The point is to rely on tags more than file names.

But you will need to seperate any tags used in the track name. I use the '¬' character. It's much better than using '-' since '-' appears in song titles. I've never found a song yet that uses '¬' and every keyboard seems to have it. I would highly recommend you use a character unlikely to appear in a song title.

Ripping is the easy part. Organising and tagging is where the fun starts.

Organizing Music Files

There are many ways to organise your music files on your hard disk and it can be a bit of religious issue with no absolute right or wrong. I'm just going to describe my method and the logic behind it.

First, the top level folders are:

\Lossless

\Lossy

\Misc

I don't mix lossless and lossy formats. In many ways, I treat the lossy files as second class citizens that I eventually want to replace with lossless files. I don't spend so much time getting lossy files tagged correctly. They're not really part of my "permanent" collection even though I'm sure I'll have them for many years - especially rare tracks or those ripped at 256kbps or higher. I often find that I acquire a low quality MP3 rip of a CD to check it out and eventually replace it with a lossless rip if I really enjoy the album.

That said, sometimes you don't want lossless. There's no need to have audio books encoded above 128kbps (but don't go under 64kbps).

The \Misc directory is where I keep odd-ball music and tracks. It has Christmas and Halloween music. I also have some interviews and novelty recordings. It's the kind of things you wouldn't listen to regularly and don't want popping up when you randomly play your collection.

The next level down under the Lossless folder is ownership. This was a recent innovation in my hierarchy and works well in a multi-person household. For examples:

\Core

\Ian

\Jenny

\Robyn

The idea is that if there are tracks that any two of us like, they go into the \Core directory. However, if there is music that only one of us likes, it stays in that individuals directory. The music collection for each person then consists of \Core plus their own name. If anyone buys some new music, it goes into their own directory first. Eventually, it might migrate over to \Core.

It's true that if Ian and Jenny enjoy something that Robyn hates it will wind up \Core and into her collection too but it would be too difficult to cover all the combinations.

The \Core directory is carefully backed-up by the household administrator. Each individual is responsible for their own music directories. I keep a changes text file that tracks what new music gets added to the \Core directory.

I don't use this ownership structure under \Lossy.

The next level down below the ownership level of \Lossless is primary genre. What genres you choose are up to you but it's the best way to broadly partition up a music library. I recommend choosing broad genres that you don't usually cross in a single listening session and that are relatively easy for anyone to determine for any track. Your choice will depend on where the bulk of your own tastes lie. I use the same genres that are found in any music store:

\Popular

\Jazz

\Classical

\World

\Electronica

\Soundtracks

\SpokenWord

Note that I only have SpokenWord under \Lossy. For me, it's the biggest lossy genre I have.

The next level under genre has combinations of the following folders:

\AlbumsByArtist

\TracksByArtist

\Compilations

\Tracks

The Core Collection

The biggest part of my collection is under the \Core subdirectory so let's start there. The goal is to create definitive collections of significant individual artists. By definitive, I don't mean everything they've ever done but everything they've done that you want to collect. One hit wonder artists don't go here either.

Under \Core, I have \AlbumsByArtist and \TracksByArtist. The \Core collection is only organised by Artist and contains no compilations by mulitple artists. We want to avoid duplicate tracks. If I get overlap between CD's, I'll often disaggregate one of the CD's (usually the Greatest Hits one) and keep the other (usually a studio album).

The disaggregated non-duplicate tracks then end up in \TracksByArtist. For example, a lot of Jimi Hendrix tracks got packaged multiple times so I keep his main studio and live albums in  \AlbumsByArtist while collecting other tracks I like in the \TracksByArtist.

I like some old Black Sabbath but not everything they did. I don't have any of their studio albums and just keep a small collection of my favourties under \TracksByArtist.

One problem you run into is hidden remastering. I've often found that the same track can sound quite different. Typically an old studio album has one version while a recent Greatest Hits album has the same track but the sound engineer has mucked around with it. Often, they crank up the drums and bass. You need to check both versions and decided whether it's one track or two different ones and what you want to keep.

So now let's drill into organising \AlbumsByArtist and later we'll take a look at \TracksByArtist.

AlbumsByArtist

The \AlbumsByArtist folder has a three level structure:

\[Artist]\[Album]\[Track]

I almost went with a two level folder structure with each folder having an "[Artist] - [Album]" naming scheme and many people do this. The cover art on the folders would look consistent but the icon label got too long and I thought, in the long run as it grew, it would be easier to locate just the artist first. Having an artist folder is also convenient for keeping other files you want to associate with the artist. It would make more sense to go "[Year] - [Album]" to get the sort order correct but it just doesn't read correctly to my eyes.

So to be precise, my naming scheme is:

\[Artist Name]\[Album Name]([Year])\[Track Number] ¬ [Track Name].flac

An example would be:

\Lossless\Core\Popular\AlbumsByArtist\The Beatles\Revolver (1966)\01 ¬ Taxman.flac

In EAC (EAC Options.Filename), the you would enter this naming scheme:

%A\%C (%Y)\%N ¬ %T

Personally, I find this nice and readable. Some people prefer to duplicate all the information again in the file name. I'm happy to make sure all the information just appears somewhere in the path. That way, there is a possibility of regenerating most of the tag information from the path but as I said before, you can't trust it. Metadata is your friend.

TracksByArtist

For \TracksByArtist, a two level folder structure is used:

\[Artist Name]\[Artist Name] ¬ [Track Name].flac

For example:

\Lossless\Core\Popular\TracksByArtist\The Beach Boys\The Beach Boys ¬ California Girls.flac

There's no point keeping a track number or album as it is no longer associated with a CD. It's true that we don't really need to duplicate the Artist Name in the track name. That's a personal preference.

Various Artists

Stepping back to our folder hiearchy, I place all compilations of various artists in a folder under each genre called:

\Compilations

Remember that various artist compilations are not part of the core collection and go under a named individual directory. My naming schema for them is:

\[Album Name] ([Year])\[Track Number] ¬ [Artist Name] ¬ [Track Name].flac

For example:

\Lossless\Ian\Electronica\Compilations\Café del Mar I (1994)\01 ¬ Jose Padilla ¬ Agua.flac

In EAC, this naming scheme would be entered as:

%C (%Y)\%N ¬ %A ¬ %T

I find compilation albums highly problematic. First, you start getting a lot of duplicate tracks. Second, the year that gets set for the tracks is the year of the compilation and not the year the song was recorded. The genre often doesn't apply to every track in the compilation either. Overall, my inclination is to disaggregate compilation CD's into single tracks. In fact, you can think of a compilation album as just a playlist.

Soundtracks

I currently treat Soundtracks as their own genre although theoretically, you could have soundtracks folders under each genre. I don't have enough of them to justify it and when looking up a soundtrack, I don't want to think about what genre the soundtrack belongs to. So I just have one.

\Soundtracks

In terms of structure, the Soundtracks directory is exactly the same as a Compilations directory since that's usually what they are. For example:

\Lossless\Ian\Soundtracks\The Blues Brothers (1980)\01 ¬ The Blues Brothers ¬ She Caught The Katy.flac

Single Tracks

What if you don't like an entire album? Rip it apart! Give it a few listens before you do or consider keeping the whole thing because your taste in music does change. But if you really only like a few tracks, then disaggregate it. These mish-mash of tracks get organised in:

\Tracks

and use the naming scheme:

[Artist Name]-[Track Name].flac

It's called \Tracks and not \Singles since that would be confusing with official singles that a recording label releases.  An example would be:

\Lossless\Ian\Popular\Tracks\Various\Focus ¬ Hocus Pocus.flac

If the genre isn't too large, the \Tracks folder might consist of a single level with a bunch of files. But since it will get large, you ought to provide a second level of folder organisation. One advantage of keeping a compilation album whole is that the compilation provides a kind of context (e.g. Best Of The 80's). It makes sense to have subfolders under the \Tracks directory that organise the files by subgenres, moods or decades. This adds back that lost context.

In my example, I use the folder \Various which is just a catch-all.

I find that the tracks in the \Tracks directory are generally by obscure one-hit-wonder artists or by artists for whom I have no other album. If you find you do have many tracks by a single artist then maybe a \TracksByArtist folder structure is warranted but there's a good chance you might want to move them over to \Core instead.

MultiDisc CD's

Now what about two disc CD's? Do you treat them as completely seperate CD's or merge them together? Do you merge them physically or by just using the tags?

I like to add another level under \[Album Name] where I create directories for each: \CD1, \CD2, \CD3, etc. For example:

\Lossless\Core\Popular\AlbumsByArtist\Neil Young\Decade (1977)\CD1\

\Lossless\Core\Popular\AlbumsByArtist\Neil Young\Decade (1977)\CD2\

In the tagging section, I'll look at how to merge them into one logical album.

We now have our physical file structure in place. We know where each file goes and how to name them. The next step is to get the tags correct.

Tagging

For tagging, I used mp3tag and highly recommend it. If you can't do it with the UI, there's sure to be a way of doing it with a little bit of scripting.

Each file format has a different tagging system. This section is about Vorbis Comments which is the tagging system FLAC uses. How you tag will depend on what devices and playback software you're using and how it makes use of the tags. The sad truth is there are a lot of inconsistencies between software players. Bad players force you into hacking the tag data. The good news is that players are slowly getting better and the conventions are evolving. Generally, I try to resist too much tag hacking and wait for the software to catch-up. But that means you live with various quirks. It's worth checking out the tagging standards used by Music Brainz.

I'm using MediaMonkey and SlimServer by SlimDevices.

Be careful of using ID3 tags with FLAC files. It's possible to use them but they're not official supported and can lead to some strange behaviour. It's best to strip them out and only use Vorbis Comments.

When ripping, most software will correctly fetch the basic tags for a CD. However, there's still some work you need to do.

GENRE

Genre is good for two things:

  1. a playlist for playing the same "type" of music (good when the list is randomized)
  2. a way of quickly navigating to an Artist or Album

It's common to disagree with others about genre as it depends on your musical experience and listening background. My advice is not to get to hung on it as it's a very crude box to stuff music in. I tend to not have too many of them just to keep navigation simple. For example, I use a genre called "Sixties" to lump together all the popular music of that era.

Alternatively, it's useful to tag a track with multiple genres such as "Latin", "Jazz" and "Female Vocal".

An important consideration is whether the genre applies to the whole CD or should some of the tracks have a different genre? Sometimes, I will go in and change it on a track by track basis. I've also found that some artists start in one genre and end up in another as their career progresses.

I like the idea allmusic.com uses which is to include styles and moods along with genre but no players support it and it would be a lot of work to tag. It's a useful website if you're not too sure what genre a track belongs to.

YEAR

Are you going to fix the track years on compilation CD's? The CD booklet often has the proper year listed for each track. If the CD was remastered, do you use the year it was remastered or the year the original CD was released? What if the year of recording is different to year of release? I like the year to reflect the original release year for that specific track and just add a comment if the CD is a remastered version.

If you want to be a purist, you should add the tag "ALBUMYEAR"

I particularly make an effort on any tracks going into the Core collection to make sure their year is correct. For studio albums, it's easy but it's a pain for Greatest Hits albums.

I have not found an automated way of fixing the year yet. Let me know if you find one!

What "The"?

I would like to pause here and make an appeal to not put ",The" and the end of an Artist or Album name. It's "The Cure" and not "Cure, The". Putting "The" at the end is a hack to compensate for poor sorting in a media player. I do tweak metadata to make things work well but this one is just too ugly.

ALBUM

The Album name is generally straightforward but there's a couple of special cases.

For a multidisc CD, are you going to keep the album tag identical or have Disc 1, Disc 2 or something similiar after the name? I keep it identical so it's easy to play the entire set and creates shorter album lists.

Avoid naming any album "Greatest Hits". Some software will list several Greatest Hits albums in a row and give you no hint whose greatest hits it is! It's better to add the artists name in front (eg The Beach Boys Greatest Hits). You need to make album names unique so they don't unintentionally aggregate together.

In \TracksByArtist and \Tracks, I get rid of the Album tag entirely. I just make a note in the comment tag as to the original source.

In the Core collection, if you have all the tracks of an artist in \TracksByArtist and nothing in \AlbumsByArtist, I find it reasonable to give the collection the name "[Artists] Greatest Hits". It then shows up on the album list rather than "unknown" and it *is* their greatest hits as far as you're concerned.

TRACK

I prefer a leading zero ("01" rather than "1") in my track numbers. Since a file name often starts with a track number, it helps them to sort correctly.

I avoid renumbering tracks in multidic CD's.  Instead, I add the DISCNUMBER Vorbis tag (see below). If you have no other choice, I think it's fine to renumber the tracks. It depends on how clever the music player is.

In \TracksByArtist and \Tracks, I get rid of the track tag entirely.

ARTIST

You need to be very consistent with how you name an Artist so that tracks will group properly. For example:

  • do you used " & " or " and " (e.g. Martha Reeves & The Vandellas)
  • how do you handle "featuring Another Artist" and duets?

Well, I use & rather than "and" to keep the length just that little bit shorter.

If another artist is featured in a track, I put the information in the track name within parentheses "(feat. Shirly Bassey)". This is a good way to handle duets. Put the singer you most associate with track in the artist tag and add the second singer in the track name as a featured artist.

In jazz, it can be unfair to attribute a track to just one musician. You can solve this by using multiple Artist tags if your format supports it. Typically, I don't go this far since most media players don't recognise the extra tags and only the first artist tag will be used when converting it to MP3.

Is it Oscar Peterson or the Oscar Peterson Trio? I usually drop "Trio" and "Quartet". I sometimes use the comments field to note other significant artists on the track or the proper name of the group. By dropping the distinction, the tracks aggregate better under that artist without causing any confusion.

Another option is to use the album name as the artist tag in order to avoid a proliferation of single artists with one or two tracks. This can be a good solution for something like "Moulin Rouge" which has many duets.

I never put "Various" as the value of Artist but I've noticed that some people do this.

ALBUMARTIST

Slimserver uses "ALBUMARTIST". Other programs use "ALBUM ARTIST" or "BAND". I set this to the same value as ARTIST on any CD in an AlbumByArtist folder. It's a way to filter out all the one hit artists.

Some people like to set value of ALBUMARTIST to "Various" for compilation albums. If you player software forces you to do this then so be it. It smells of a hack to me.

COMPOSER

I'm not using this tag yet but if you have a lot of classical music, you should give it a value.

COMPILATION

This is another tag used by Slimserver. By setting it to 1, you can get Slimserver to create a list of all compilation albums underneath the artist "Various Artists". It's also used by iTunes. I set this on any CD in a Compilations or Soundtrack directory.

DISCNUMBER

Another tag used Slimserver for identifying the CDs that together make up the set in a multidisc album.  Keep the ALBUM value the same for all CDs. Set DISCNUMBER to 1 for the first CD, 2 for the next one and so on. Slimserver is clever enough to append "Disc n" to the end of the album name dynamically and number tracks using the sequence 1-1, 1-2, 1-3, etc.

Album Art

I like getting the album art for each CD I rip. I find it easier when I'm browsing my music collection to see those covers. It just looks great. Some players are also clever enough to pick up the art work and display it when you're playing the tracks.

I just look-up the CD using Amazon or resort to image searches through google. I save the picture in the album folder and call it folder.jpg so Windows XP will pick it up properly.

With flac, you can go a step further and embed the picture into each track. I don't do it.

Of course, there are plenty of programs that will find album art for you.

Summary

So to sum up, after ripping a CD to my local disk, I add it to the rest of my collection sitting on a server. Here's a snapshot of part of that hierarchy just to give you a picture.

\Lossless

\Core

\Popular

\AlbumsByArtist

\TracksByArtist

\Ian

\Electronica

\AlbumsByArtist

\Compilations

\Jazz

\AlbumsByArtist

\Compilations

 \Popular

\AlbumsByArtist

\Compilations

\Tracks

\Soundtracks

\Lossy

\AlbumsByArtist

\Compilations

\Sountracks

\SpokenWord

\Tracks

As you can see, there are more levels of organisation under Lossless than Lossy as that reflects where the bulk of my collection is found. The point is that the basic structure works and it can grow.

I find the challenging work is to prune out the dross and duplicates by disaggregating CD's. I've only disaggregated CD's that come under Popular so that's why it's the only genre with a \Tracks or \TracksByArtist folder.

The next step for me is automate the process of disaggregation. And then there's the problem of playlists...

Print | posted on Tuesday, December 13, 2005 10:21 AM |

Powered by: