In order to fully appreciate all the artwork that can be found here, you might want to organize all your music. This allows the cdART Manager plugin to save the artwork together with you music to allow easy backup of your whole library. And this also gives you the ability to browse your collection and play your songs with VLC, etc…

I do have to warn you, this is my preferred way( and I think its the best way). Some parts can be skipped if you don’t need it.


The useful programs to help you manage all your music are:

  • Puddle tag
  • XBMC
  • soundKonverter (not really necessary)


Although some people tend to disagree, I like to keep all the track in my library the same format. I chose ogg vorbis as it allows arbitrary comments, is smaller in size, sounds better (to me) and it’s free. Of course, when re-encoding music you will lose some information and quality but I find the difference between an MP3 320 / FLAC and OGG quality 5 barely noticeable. And as it’s a bit smaller, more music can be stored and thus preferred.

To convert the files I use soundKonverter. It has the ability to convert whole folders and copy the structure to a new place. This program is so straight forward, I don’t think this is worth mentioning.


If you already have a nice collection of properly tagged music, this step is rather quick. Otherwise, using puddletag appropriately, it will also be rather quick.


Album Artist and Multi Disc

In order to fully support XBMC, you might want to add the albumartist field to puddletag since it isn’t enabled by default. If you don’t want to use this, you can skip this part since XBMC can work without it.

To add this field: go to Edit -> Preferences. Here you can add the field to Tag Panel and Columns. I would suggest that you use row 0 in the Tag Panel because this will add the field next to the Artist field. The field is ‘albumartist’ and the name is ‘Album Artist’.

You can also add a disc field to support multi-disc albums. This could improve your collection a bit since adding this field can help you organize your files more efficiently.

And of course every other field that could be handy can be added this way.


To help you do repetitive things more easily, you can create ‘actions’. These contain several functions called after each other. To create an action, click on the lightning bolt (without the cube) and press the paper icon to create a new action. Then you can queue functions which should be executed. I must note that in order to save the action, you have to apply it once. You must select an file to which you want to apply the action. So I suggest that you add the actions when you need them.

Some nice actions are:

  • Format track field  – This will change 1 and 1/10 to 01.
    • Replace with RegExp | field = “track” | Regular expression = “/\d*” | Replace with is empty
    • Format value | field = “track” | format = “$num(%track%,2)”
  • Clean – This will remove anything between ( and ). This can be rather aggressive so use with care
    • Replace with RegExp | field = “~comment” | Regular expression = “\(.*\)” | Replace with is empty
  • Move to Folder – This will update the name of the files and directories to reflect the metadata
    • Tag to Filename | “$num(%track%,2) – $if($neql(%artist%,%albumartist%),”%artist – “,””)%title%”
    • Format field | field = “__dirpath” | format = “/path/to/music/%albumartist%/%album%$if(%year%,” (%year%)”,””)$if(%disc%,”/CD %disc”,””)”
  • Auto Album Artist – This will fill empty Album Artist fields with the Artist field.
    • Format field | field = “albumartist” | format = “$if(%albumartist%,%albumartist%,%album%)”

The above list uses ‘function name’ | ‘edit box name’ = ‘what to enter without quotes (“”)’ | … . Just use common sense ;). When you use the edit dialogs, you can hover over the edit boxes to get additional information. (How do you think I learned all this…)

Unfortunately, you cannot create a new directory conditionally with Tag to Dir. Fortunately, you can write to arbitrary fields with format field, even the special __dirpath field. Please note that if this doesn’t work, you have to resort to /$if(%disc%,”CD %disc”,”CD 1″). “CD 1” can be replaced by anything you want.

Rapid tagging

Puddletag has the ability to tag your music from filename. The most efficient way is to use the edit box in the toolbar. Some nice fields to remember:

  • %track% – The number of the track
  • %title% – The title of the track
  • %artist%, %albumartist% – The name of the artist/album artist
  • %album% – The name of the album
  • %year% – The year of the album…
  • etc.

I find it the most efficient way to select the folder containing one artist and look if all the fields are filled. If some important and simple fields like artist, album or year are not filled, I select all the items and edit them using the Tag Panel. And using Ctrl+S to write the changes.

If some difficult fields like track and title are not filled, I try the tag from filename (Ctrl+T or T-icon) function. If that’s not possible I edit them by hand and using MusicBrainz as the source for the correct names and track numbers. I also use MusicBrainz for the year field.

Preview Mode

It might be handy to enable Preview mode  if you want to do a lot of manual changes. The preview mode will remember all changes and when you are ready, it will apply them at once. So instead of editing one file, Ctrl+S, and selecting a new file; you can edit one file and directly select a new file without saving first (and waiting for puddletag to write the changes). You do have to explicitly save the preview mode.

To use the preview mode, you can use the Preview Mode-menu or use Ctrl-Shift-P to start and Ctrl-W to save. (I don’t know if I set those shortcuts or if they were set by default)

Organizing based on tags

When all the tags are correct. You can use the action I described in Setup – Actions to mass-move all the files to the correct place and in the correct format. Once this has been done, you can add this folder to XBMC and let the cdART Manager get your images. Unfortunately, puddletag needs an empty target directory for it’s move function. Therefore I manage my collection as follows:

I have a directory Music_to_Convert with different subdirectories for artists. I use soundKonverter to convert the music to OGG quality 5 and let it copy the structure to Music_Converted. I use puddletag to edit the tags from the files in the Music_Converted directory and as a last step let puddletag move the files into a directory Music. If you’re done, the Music_to_Convert and Music_Converted directories are empty and the directory Music has your complete and organized music collection.

And of course, since puddletag supports deleting track you don’t want, you can directly filter your library with unwanted (live) recordings.

Maybe this is more about how to tag with puddletag but as you can see, you only need one program to organize your library.