The Music Library Management blog has moved!

Please visit:
http://www.blisshq.com/music-library-management-blog/
and update your bookmarks.

Wednesday 2 June 2010

Organising 'Various Artists' album files

Everyone has compilation albums featuring multiple artists in their digital music collections. How they are tagged and how the music files are organised is much more variable. This goes for both the differences between collections but also differences within collections.

It's the differences within collections that need fixing. If compilation track files are named with inconsistent artist names, for instance, they become harder to browse on your hard disk and so more difficult to administer and, potentially, listen to.

How should the files in 'Various Artists' compilation albums be arranged, then? The first step is that the file and directory names should be based on the tags located within the music files themselves, and when the tag changes, so should the file name or file structure.

The next step is to work out how you want the 'album artist' to appear for compilation albums. You could choose 'Various', 'Various Artists' or whatever (depending on your language of course!) but the important thing is that this applies consistently across your entire music library. The text you choose should be applied to the 'ALBUM_ARTIST' tag within your music files.

Once all your compilation albums have the same ALBUM_ARTIST tag, it's time to work out how this is applied to your file structures. Somewhere in your file structure you will probably have the artist name. A 'pattern' for the file organisation may be:
/[album artist name]/[album name]/[track name].mp3
Or
/[album artist name]-[album name]/[album artist name]-[track name].mp3
Wherever '[album artist name]' appears, your chosen artist name tag should appear.

The final decision to make is how to treat capitalisation and whitespace. The latter only matters if you choose an artist name with whitespace, for instance 'Various Artists'. Assuming you did choose 'Various Artists', how capitalisation and whitespace is treated would give you the following differing example file structures:







Title case, allow spaces
/Various Artists/My Compilation/Intro.mp3
Lower case, replace whitespace with underscores
/various_artists/my_compilation/intro.mp3
Personally, I use lower case, replacing whitespace with underscores. This is because I use Linux whose files are case-sensitive. It makes writing scripts easier if files and directories do not have spaces in them.

The keyword for managing music files is consistency. Consistency of how the artist for each compilation album is named, and consistency in how you treat capitalisation and whitespace when applied to file structures.

I wish you luck!
Thanks to Mulad for the image at the top of this article

2 comments:

  1. The rule I prefer is
    [album artist name]/[album title]/[artist name] - [track title].[compression]

    I presume the rule language you're working with/on will support access to all the tags, so we can separate [artist name] from [album artist name] in them.

    How expressive do you expect to make the macro expansion language / compliance language be? E.g., is there a way to say what field to use if the preferred field has no value?

    From your example, it sounds like you're also thinking of some way of saying 'Capitalized', 'Replace spaces with underscores' (gsub?), etc. What other predicates/functions are you considering?

    ReplyDelete
  2. I only meant that syntax as an example really. For bliss itself, I would probably attempt some UI, but it would be nice to think we could come up with an expressive language as an 'advanced' option.

    Yeah I would expect to make a full set of tags/fields available as variables.

    The way it works so far is that the format of the variables infer how the tag is to be treated when it becomes a filename. For instance:

    [ALBUM TITLE] would write it capitalised
    [Album Title] would write it title case
    [album_title] would write it lower case with underscores separating

    It's not hard to think of areas where that might break down though, so I did wonder about some generic parameterisable approach:

    [album title?caps=title&spaces=underscore]

    Doesn't look as nice or as elegant though, in my opinion.

    Other parameters/functions? Not sure yet, I'm hoping the users of bliss will help me out on that one!

    ReplyDelete

Note: only a member of this blog may post a comment.