Tuesday, December 13, 2005

iTunes and Windows Media Player Play Nice

I've been playing with Home Theater PC software for a couple years.  I settled on Windows Media Center Edition as my platform a few months back. 

It isn't the best, but it is the easiest.  It works out of the box, and has a great remote preconfigured.  I got tired of fiddling, and wanted an appliance that just worked.  MCE discourages fiddling, because it isn't as configurable as other packages.

The one drawback for me in using MCE is that all my personal CDs are ripped as iTunes AAC files.  Actually, every HTPC front end I tried had this drawback, so it wasn't unique to MCE.  Fortunately, MCE uses the media library from Windows Media Player.  Getting WMP to play AAC files is a snap using the 3ivx codec.

The trouble begins when you want to see tag info.  You won't see any artist, album or track info after you add the files to WMP's library.  In fact, you may find your AAC files in the "Other Media" ghetto... er, I mean node.

So here's the fix I worked out:  Remove all AAC (.m4a) files from your WMP library.  Apply the m4a.reg registry patch linked below.  Add the AAC files into your WMP library.  At this point you should be ready to run my little import app, but there's a caveat. 

If your music is on a network drive, you need to be sure that it is added to iTunes using the UNC path. (e.g. \\computer\share)  WMP will add the files mapped this way even if you have the share mapped to a local drive.  Since I use the fully qualified file name as my means of relating the tracks in both libraries, this gave me some trouble.

The program (iTunes2WMP.exe) included in the .zip file below doesn't actually enable WMP to read the tags in AAC files.  It reads the relevant information (artist, album, etc.) about a file out of the iTunes library, and then writes it into the WMP library.  The result is the same as if WMP had read the tags directly.

I didn't set out to write a program to do this.  I tried two utilities that I downloaded (from a forum that shall remain unnamed), and they both sucked.  Not only did they not work for me, but the code was embarrassing to read.  When I don't know what I'm doing, I try to copy someone who does.  I can only assume that these people don't realize that they don't know what they are doing.

I wrote this utility in C# 2.0 because I wanted to try out some of the features of the new release.  I can report that code snippets are a terrific productivity boost in Visual Studio 2005, but the real super-duper feature for 2.0 is generics.  I created a strongly typed dictionary with one line of code, and I assure you that I did not know what I was doing when I started.  It's just that easy.  .NET generics are THE BOMB!  "Stone guaranteed to blow your mind" as James Taylor would say.

If you use this utility, I'd like to hear your comments.  I don't promise to make any improvements.  That's why you have the source.  I would just like to know if others find it useful.


PS: The following files are provided without warranty, or assurance of fitness for any purpose.  They could melt your synapses, give you bird flu or worse, crash your system.  If they do, I'm not responsible.  Got it?

iTunes2WMP.zip (68.03 KB) m4a.reg.txt (.66 KB)
Comments are closed.