Wow usually I’m just blogging on things that I’ve read at other places, this is news I actually discovered on my own!!
It stems from the fact that I always go through a certain process to prep my new music to be added to my music library. I did a full write up on the process at last.fm a few years ago; one of these day’s I’ll copy and upload it here. Basically I tag using Musicbrainz to get the right album, track, and artist tags. Then move it into a holding folder where I listen to it, put an appropriate genre and sub-genre, and a rating.
The problem is that when you edit the ID3 information in WMP12 it rewrites the ID3 header and corrupts all the non-standard ID3 tags on the MP3.
The metadata for MP3s are held in an ID3 header that is slapped onto the front of the file. All the artist, track, and album names are contained in here, including album art files if you want them. In addition to the standard ID3 tags there is the ability for third party companies to append their own tags into the system. Many programs put their own data in these non-standard tags, sometimes to put their own unique identifier tags on the file or with some they can actually put data that can be read by a player to dynamically change the songs as its played (typical with programs that change the track gain).
However many programs abuse the ID3 header. The worst I encountered was an expensive piece of DJ software that calculated the Beats Per Minute and put this info into the header so their software could quickly synch tracks. The problems is that it bullied the other tags, removing them and replacing all data with its own as if it were the only music player you’d ever need.
Luckily after corrupting my whole music library I was able to reload from a backup then get my money refunded for their bogus software. That also lead to my current methods of tagging and storing music; when you have over 40k songs all individually tagged and rated over the last 13 years you don’t want all that info wiped out by a poorly designed piece of software.
All through WMP9 to 11 there was no problem with the way Windows deals with ID3 tags. If you made a change to a tag it would edit just that tag and leave everybody else’s tags alone. But something changed with the new WMP version that is included in Windows 7 x64 (probably x32 as well).
Because now simply adding a rating in Windows Media Player in Windows 7 will screw up all the non-standard tags for the file, in my case erasing the Musicbrainz unique identifier code so it’s a pain in the ass to update tags later down the line.
I used MP3Tag to view the ID3 tags. The happens for ANY ID3 change, it doesn’t matter if you change the rating or the track name which is a standard ID3 field.
After some back and forth with Microsoft support I was told that this is a known issue and that hopefully if will be fixed in the future (I’m not holding my breath). And as Microsoft is promoting it’s Zune player and Media Center more heavily I don’t think WMP will be much of a priority. Too bad too, because I really like Windows Media Player better than iTunes, WinAmp, and foobar.
And finally to rub salt into the wound Musicbrainz currently has a bug where it erases all ID3 tags when it writes its own regardless of it’s setting to disable “erase existing tags”. Musicbrainz caught and reported the bug a year ago but new revisions come about as often as Windows media Player is updated. So you can’t work around the problem by doing one before the other. If you tag in Musicbrainz the WMP rating is gone. If you put a rating in WMP then the Musicbrainz UID is gone.
Hopefully one or the other bugs will soon be fixed and the problem eliminated but if you make any tag changes in Windows Media Player be aware that and special third party applications that use customer tags may have their data lost.
Update: Link to Musicbrainz bug report added. Thanks for the reminder!