Tuesday, April 10, 2007

Making an MP3 CD...

I was on a long trip this past weekend through the mountains of Pennsylvania where there was little to no radio station coverage and it kept changing as I drove through one location to another. I had made a similar trip a week ago with a rental car from Hertz which was configured with a Sirius satellite radio receiver and it was one of the first times I really appreciated the benefit of such a device. However, I don't make this trip all that often to justify the cost of subscribing to the service.

My car, a Chevy Colorado pick-up truck, has a 6 disc CD player so I could, and did, use some audio CDs to fill in with some music, but the number of tracks is quite limited even with 6 potential discs (although I only had one disc with me).

I tried using my FM transmitter for my iRiver Clix, but depending upon where I was, the chosen frequency kept getting overridden by an outside transmitter and I had to keep moving the frequency around -- not a good thing to do driving along at 70-75MPH.

My car's CD player does support the ability to play MP3 data CDs, giving me a 10x improvement in audio quantity, so I set out to create a disc that I could use in the car with my best music. Of course, it can only play MP3 formatted files, not WMA formatted files.

My media player of choice in my computer is Windows Media Player (WMP) and I rip my CDs in 160kbps Windows Media Audio (WMA) format. I have taken great pains to go through my entire collection of music and rate each song and wanted to use some automatic playlists to select the best of the best music for my new CDs (e.g. all 4 or 5 star rated songs). That's where the problem started.

First off, WMP seems to only want to create discs that are either an audio CD (with the standard audio format and thus about 80 minutes of music on a 700MB disc) or it can create a WMA format data disc which has good compression (close to 800 minutes) but unfortunately can't play in my car. I was unable to find a way to get WMP to burn a CD in MP3 format, nor a way to get WMP to generate a directory of MP3s from one of my playlists. Some research on the web indicated that I may have gotten this capability if I purchased the Windows XP Plus! Superpack, but I didn't have that nor did I want to purchase that.

I have Roxio Easy Media Creator 7.5 (yeah, I probably should upgrade to version 9, but they ticked me off when I bought version 7 less than a month before 7.5 came out and they didn't want to give me a free upgrade to 7.5) installed and tried to use that (which does have the ability to create an "MP3 disc" -- which I'm pretty sure is exactly what I'm looking for. However, it was unable to take WMA formated files as input nor was it able to use one of the WMP playlists.

I also have iTunes installed which is able to import WMAs and is able to store files within it's library in MP3 format, but it too appeared to be unable to use a WMP playlist as input to specify the files to copy/convert, nor was I able to find a way to get it to generate an MP3 disc (audio disc yes, backup disc -- whatever that is -- yes, but MP3 disc apparently no).

However, this motley collection of tools, along with some shell scripting, was able to accomplish the task at hand. The steps are shown below:

  1. Create a directory containing the WMA files that I want to have on the MP3 disc. This was necessary so that I didn't have to manually select each song that I wanted to import into iTunes, nor re-generate my ratings/playlists within iTunes because I imported the entire WMA collection. I saved a WMP playlist containing the files of interest and ran the following script within cygwin:
     grep "\.wma" "$OLDPWD/mylist4.wpl" \
             | sed -e 's;.*"M:.My Music.;;' \
                   -e 's;"/>;;' -e 's;\\;/;g' \
                   -e "s-'-'-g"          \
                   -e "s-&-\\&-g"         \
             | cpio -pdm /cygdrive/d/data/tmp/music

    This reads the specified WMP playlist (mylist4.wpl in this case), uses SED to convert the XML into a list of files (XSLT is probably the right way to do this as the file was XML, but a) I don't have XSLT installed and b) the XML was simple enough to do this all with the SED script), and uses CPIO to copy the WMA files to a temporary directory.

  2. Import the files in the temp directory into iTunes. Be sure to change the preferences setting within iTunes to tell it to import the files in 128Kbps MP3 rather than the default AAC format.
  3. Use Roxio's Creator Classic utility to burn an MP3 disc, selecting the iTunes collection as the source (I had no other music in my iTunes installation so this made it pretty easy -- I didn't have to go poking around selecting files to include on the disc.) The default iTunes music directory in my install was "My Documents\My Music\iTunes\iTunes Music".

I presume that someone, somewhere has an easier way to do this and I would love to hear about it as I presume I will need to do this again. It's a shame that WMP didn't offer this capability directly as it certainly has the necessary codecs and could have done so -- but I presume they are more interested in spending time on their hateful DRM stuff.

UPDATE - after all this, I find out that it is only the single-disc player for my car that includes the ability to play MP3s. The 6 disc changer does not have this capability. So it was all a waste!!!

Tags : / / / / / / /


Paul Madsen said...

Seems an awful lot of trouble for Abba and the BeeGees

Conor P. Cahill said...

Yes, but they are well worth it!!!!!

Karl said...

iTunes will natively burn MP3 CDs. If you are using Windows go to Edit, Preferences, Advanced, Burning and you'll see the option to burn Audio CD, Data CD or MP3 CD. I switched from Mac to Windows/Linux so cannot advise where it is on the Mac any more but I do recall seeing it there too in roughly the same place.