Digital album art

I have finally updated my electronic music library to include all the correct album art so it looks perfect in Vista Media Center (VMC) over my five XBOX 360 extenders. I have about 6,000 tracks in my MP3 library and what should have been a simple fix to a little annoyance turned into a major project lasting almost a month. What follows is what I learned from this exercise.

There are no standards when it comes to the handling and storage of album art
I use lots of media players to access my media library which I store on an Ubuntu based NAS share. Namely, Media player 11, itunes, Songbird, Media Monkey and of course – VMC. They all seem to handle art differently. I wanted to find a solution that would work best for all players – not just for VMC.

Vista Media Center uses the Media Player 11 db and art engine
VMC and Media Player share the same database and album art handling engine so essentially they can be treated as one. From here on I will refer to VMC only for convenience.

Embedding art is the way to go
I found through research that there is actually a standard for embedding art in MP3 files. There are dedicated tags for the storage of all sorts of related art. What’s more just about every media player is aware of this and supports it. It seems the reason why so few rely on it is that so few files have art embedded and embedding art in each file is relatively space inefficient. But disk is cheap these days so the benefit of portable mp3 files with consistent art outweighs the small % waste in space.

VMC will not embed art into tags by default
VMC will read art embedded into tags but does not seem to write or update them at time of scanning.

VMC extenders act like a unique user and have their own unique art cache and media database
Media extenders get their own unique media database and do not share the primary user database. Each database must be created/maintained separately. This works fine but only after you have your art sorted first.

VMC is REALLY slow to refresh a screen if it can’t find the album art jpg files in the library
Originally, I had configured VMC to user a read-only share of my music library. This was to stop it from messing with my tags and art. It works, but it’s really slow. As soon as I let it create the .jpg files with cover art all was fast again.

This tells something about what VMC is doing under the hood when it’s trying to display art. It’s probably slow because it’s forced to read the embedded art from the multiple tracks and this is far slower than reading the one small file. So you can’t stop VMC from writing .jpgs to your library unless you want it to be really slow.

VMC does not like v2.4 mp3 tag IDs.
Avoid them. If VMC can’t read a tag, it displays an “audio error”. As it can’t read v2.4 tags you just end up with a lot of tracks you can’t play. They will work fine in just about everything else which is very confusing. Be careful when using 3rd party tools to make mass changes that they don’t use v2.4 tags!

Media monkey is a REALLY cool mass MP3 tagging tool
It’s a pity it only works on Windows. Google it. Download it. Use it.

Art for most albums can be downloaded from Google image searches
Many of the tagging tools have engines to search through amazon and other sources for art but I found google image search is always better and faster. Search download, import, embed. Don’t ask me how legal it is though.

The weird, weird world of album art on VMC
I don’t know what the Microsoft media player 11 development team were smoking the day they designed the database and album art handling cause they have seriously botched it. They seem to have gone to extreme lengths to make it almost impossible for a mere human to get their album art correct. Seriously, what’s the point of including a feature like album art if no-one knows how to make it work? From the outside, it seems unfinished and rushed. Sounds like Vista in general doesn’t it?

First off they used a closed db for storing your media information so you can’t get in there and edit it or make bulk changes. Nor are there any third party tools to edit the db. Then they go and hide it in a mass of nested hidden files and folders. It’s like they were embarrassed and were trying to hide it… Why they didn’t use Microsoft’s own very reliable MSDE (now SQL Express) is beyond me. Thanks guys. Really.

Then there’s the logic – if you can call it that. When VMC scans your music tracks, it will create various .jpg files in your album art – if it can. If there is no embedded art it will try to “guess” the album and then download the art from its online db. Often though it guesses wrong so the wrong art is downloaded and if/when it does find the art, it’s only 200×200 pixels which looks horrid on a HD plasma.

But the way VMC determines a unique album is plain weird. As there are no standards for this, media players have a big problem in handling compilation albums by multiple artists. VMC’s method of fixing this issue is to hijack a standard ID3 tag and rename it as “Album artist”. This field is derived from the track Artist tags of the tracks in the album. If all tracks have the same artist the album artist tag is set the same value as the tracks and there is no problem.

The problems start when just one track has a slightly different artist name. More often than not, VMC will assume this is a different album and hence require its own unique album art or you end up with a duplicate album in your db with the same name but by a different artist. Just one letter wrong or a mis-spelling in a single tag and you’re dead. Many third party tagging tools (especially in the Linux world) are not aware about the “Album artist” tag (as Microsoft made it up) so you can’t use them. Media Player can be used to fix this and so can Media Monkey (but both of these only work on Windows).

VMC tries to store album art caches in multiple files in the (hidden) Users\\Application data\Microsoft\Media Player\ArtCache folder. You have to delete all of them and the .wmdb files to force it to rebuild and rescan. VMC willupdate its db from the source mp3 library in the background but this can be very slow and time consuming especially with large libraries.

In summary, this is what I think happens when VMC scans your library with respect to albums and album art:

  1. Read all file tags in the library and store in memory.
  2. Group all tracks into unique “albums”. Gather all tracks with the same album name and year and genre(?). If all artists for all tracks of an album are the same, set “album artist” in all tracks to track artist. If all different set album artist to “Various artists”. If some same, create one album for each unique artist name and set the “album artist” to the track artist.
  3. If all tracks for an album have embedded album art, extract the art from the first track (?) and store as various sized jpg files in the library.
  4. If no embedded art found, look the album up on online db and download 200×200 art if found. Store the downloaded image as various jpg files in the libary. Donot embed the art into the tracks.
  5. If album not found on online db skip and keep going.
  6. Store all the data into a proprietary .wmdb (database) file.
  7. At the end of scanning, read the .jpg files it created (or links to) into the db and cache. If no .jpg files try and read the embedded art from the files.
  8. Show the art on the screen in VMC or Media Player.

But how do I fix my art?
So having reverse engineered VMC’s logic over the past few weeks by trial and error, I am pretty confident I have come up with a good method for fixing album art so it works on VMC (and most other media players too!).

  1. Remove any v2.4 tags from your tracks
  2. Fix all your tags – especially album name, artist and year. Make sure all tracks from the same album have the same album and and artist (unless of course its a compilation).
  3. Download and embed art into every track using a Google and a third party tagging tool like Media Monkey
  4. Make a backup of your music files
  5. Let VMC scan your media and use the embedded art
  6. Fix up any duplicates, missing art manually (track by track) in Media Player
  7. Wait for VMC to pick up the changes or force a rebuild
  8. If still broken, restore files and go back to step 1.

Thanks to all those who bothered to post their frustrations and findings re album art on the net. It helped me find a way through the mire…

Leave a Reply




You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>