iTunes Library Management

I recently ripped a whole bunch of wav files using iTunes and made the mistake of importing them into the iTunes library of a second computer. iTunes did not recognize the songs and wasn’t able to index them, so I made the brilliantly stupid mistake of letting iTunes manage my library, thinking that the index might be refreshed, but what happened instead was iTunes moved all the songs into a sub-directory named, “Unknown Album” in a directory named, “Unknown Artist.” Now I can’t identify artists or albums, only song titles. This has to do with wavs not having this information embedded. I’ve still got the original library file on the first computer, so I can manually link to each file, but at this point, I’ve ripped 851 songs and would like to find a way to do a mass reorganization of these files into appropriate album/artist directories. I believe embedding ID3 tags into the files, would facilitate this, but I’m not aware of an exiting method of accomplishing this. Any ideas?


Error #1: Using WAV file format. While there are valid arguments for ripping to WAV files instead of AAC or MP3, I can think of no good reason not to use AIFF instead of WAV. WAV is a file format, not a music format. WAV can consist of AIFF streams, PCM audio streams, or other raw data streams. If you are going to save music files, saving them in an appropriate music oriented format is wise.

Error #2: Unless you happen to have an unlimited supply of disk space or a tiny music collection, using AIFF or WAV files is wasteful. If you must use a loss-less encoding format, use ALE (which reduces file sizes by about half). If you’re obsessive and absolutely must have your files in a “standard” loss-less format, then use AIFF, the same format your files are already encoded in on the CD-ROM.

When you factor in the excellent sound quality achieved by even 128 bit AAC, using anything less space efficient than 160kbit AAC VBR gains you nothing in terms of audio quality. Lest you assume that I speak from ignorance, it’ll help to know that I play my music collection directly from AAC encoded files on my G5. The G5 is connected to the receiver via a Toslink (fiber-optic) cable. Speakers are reference grade Ascend Acoustics CBM-170. They have no detectable color (amazing!) and we use them for studio monitors when I’m playing Sound Engineer. When all filters (EQ, etc) are disabled, there is no discernable difference between my AAC files and the CD deck.

Caveat: The only purpose I can imagine for using a loss-less format is to remove the need to re-rip your CDs in the future. When a newer audio format arrives that you want to re-encode to, you simply insert your DVDs of lossless encoded music and use the iTunes -> Advanced -> Convert to ___ feature. This would be less laborious than re-ripping all your CDs. iTunes will encode the songs into your format of choice and replace the previous version of the song in your library. This has the added advantage of preserving all your iTunes metadata, such as listen count, song rating, etc.

Caveat Notes: Even if you proceed this way, you will still want to encode all your files to AAC or MP3. That’s the format you’ll use everywhere. Why? You want your song library to fit on your laptop hard drive, iPod, car MP3 player, etc. Using a compressed format with embedded ID tags such as MP3 or AAC will also prevent the problem that you are facing right now.

Now, what can be done about the existing situation?

The original iTunes library file (~/Music/iTunes/iTunes Library) file still exists on computer A. Since the file hierarchy is completely lost, it’s time for one of two options:

#1 – start over. Discard everything and re-rip. Follow my advise above.

#2 – all the info needed to sort out the files is embedded in the iTunes Library file, as well as the .xml file that iTunes creates. Write a perl script that parses through the file. Back the file up first! The Library file will have paths that look like this:

Music/Library/iTunes/iTunes Music/Nickelback/The Long Road/Someday.wav

The existing paths to the files looks like this:

Music/Library/iTunes/iTunes Music/Unknown Artist/Unknown Album/Someday.wav

The logic for the perl script will look something like this:

   for each file in Unknown Artist/Unknown Album
       check for matching song name in iTunes Library
          if there’s only one match
          create the artist and album directory
          move the file to the appropriate directory

That simple script will correctly identify and move 99% of the files in about 3 seconds. There will be a few songs with duplicate names that will need to manually moved. It’s faster to manually move them than to program the logic to fix them automatically.

I’d write an example script but I have two books to read and a greek exam to study for. This is enough to put you on the right track.

Computers and Memory

You’ll seldom find an old-timer in the computer industry with a computer wanting for memory. However, that’s exactly the predicament I’m in. Allow me to explain, and then offer a quick lesson to the less computer savvy. Until yesterday my PowerBook had 1GB of RAM, and life was good. A friend need to run Windows on her iBook for a class she’s taking. I installed Virtual PC and Windows 98 but she had only 256MB of RAM. That is adequate for running Mac OS X, but not a “heavy” application like Virtual PC. After Virtual PC drug her her iBook to it’s knees, I pulled a 512MB chip out of my PowerBook and installed it in her iBook. Voila, one problem solved.

Today, while using my PowerBook, it was quite sluggish when working in iPhoto. A simple operation that should take 10 seconds would take two minutes. Since Greek has my brain running on overload, it took a while before I remembered that I only have 512MB of RAM now. The major clue was that my hard drive was very busy during that “long pause.” That’s a symptom of “swapping” and a huge clue that you need more RAM. With 2,900 photos in my library, 512MB of RAM is inadequate for the task.

When a computer runs out of memory, it starts using hard drive space as “virtual memory.” This is called swapping. It’s a reasonable solution, but hard drive space is at a few orders of magnitude slower than RAM. The only way to get the best performance from your computer is to make sure you have enough memory that it never swaps. For a few people, 512MB is sufficient. For anyone that uses the media features on a modern OS (Mac OS X, Windows XP), you need at least 768MB.

So, I ordered myself a 1GB module. When it arrives, my PowerBook will be back to it’s speedy little self. For reference, the Apple Store wants $500 for a 1GB memory module. I paid $130. I also purchased four extra 512MB laptop SO-DIMMS for $50 each. If you have an Apple laptop that’s running short on memory, come see me and I’ll even install the RAM for you.

Why I love technology

Today we drove from Cadillac, MI to Nashville, TN. It should have taken 10 hours, but it took eleven. We are quite thankful to have only been delayed by an hour, and we owe those thanks to technology. As we cruised through Indianapolis, I glimpsed a flashing sign that said something like “accident on SB I-65, closed at mile 50, seek alternate route”. The 50 mile marker was a good hour away so I cruised onward. We scanned the AM frequency several times looking for more traffic info and found nothing.

Once out of Indianapolis, I used my laptop and cellular Internet connection to Google “I-65 accident Indiana” and got no results. It hadn’t made the news wire yet so the flashing sign back in Indianapolis was the only clue that something was amiss. At mile marker 55, I noticed brake lights and a two lane parking lot where the Interstate should be. I noticed it just in time to catch an off ramp.

Southern Indiana consists of narrow single lane roads and lots of corn fields. We followed the traffic for a while on the most obvious alternate route. As the miles long procession crawled along, it became obvious that it was going to take a very long time (hours) to make it to the next freeway ramp. This is where technology saved the day.

Thanks to a GPS receiver and Route 66 (my mapping software) I had complete maps of the area, and I knew exactly where we were. I veered away from traffic and charted a course through the corn fields down country back roads scarcely a lane wide. My alternate route ended up being about 10 miles longer than the other option but was largely untraveled and much faster.

Today on I-65, motorists fell into four camps. The tragic were involved in the accident. The unfortunate didn’t see the warning sign(s) nor the sea of brake lights until they were stuck in miles of parked cars. The fortunate motorists detoured early, or got lucky and were able to get off the freeway. Of the fortunate, only the enlightened few had suitable maps of the area, or knew the area well enough to get through with only a minor setback. We were through Kentucky and into Tennessee before the State Troopers hoped to get traffic moving.

It wasn’t until late this evening that information became available. At about 9:30AM, a car had a blowout. A truck driver swerved and lost control of his truck. He crossed the median and Southbound lanes and was killed when his truck collided with a guard rail. At 3pm traffic was backed up at least 5 miles. Police hoped to have the scene cleared and traffic moving by 6PM.

Today, we were fortunate. Alert driving spotted the backup, luck provided an exit ramp, and technology allowed us to navigate through the corn fields and back to the freeway.

iPhoto 5 crash solution

As anyone reading my blog knows, many consider me some sort of computing god that can miraculously fix anything that looks, smells, or in any other way resembles a computer. Some even feel that computers fear me, as my mere presense makes them work correctly. “Matt, why does it do….. now that’s funny, it’s working now. I swear it didn’t work yesterday when I did that!”

In reality, I’m nothing close to divine. What I am, beyond being gifted with computers, is highly pragmatic. I’m extremely good at solving problems. So today, I’ll walk you through a problem I just solved and teach you (and others) how to solve similar problems for yourselves.

Two days ago I had a buddy and business associate here at my home. I was demonstratrating some techniques for managing digital media workflow, particularly relating to video and DVD production. As part of this, I was showing off some cool stuff in iPhoto ’05 which I just upgraded to a couple weeks ago. However, I discovered that every time I clicked the “print” button, iPhoto crashed. This does not reflect well on Mr. Computer Wizard.

A quick google didn’t turn anything up, so I resolved to address the problem another day. Today was that day so I did a more extensive Google search which still didn’t turn up anything. There are millions of people using iPhoto, and many thousands that have upgraded to iPhoto ’05. Nobody else has reported this issue so that tells me that this problem is unique to my system. Oddly, everything else in iPhoto works perfectly. It occurred to me that I do have two export plugins installed (BetterHTMLExport & iPhoto2Gallery) so I removed both and still had the same problem.

One of the things I know and love about Mac OS X is that when an app crashes, it writes a crash log, like any good Operating System should. So, I checked out the contents of ~/Library/Logs/CrashReporter/iPhoto.crash.log. That file has all sorts of useful stuff in it for programmers, but it didn’t really indicate what the problem might be.

The next thing to check was the logs to see if they provided any clues. I perused through /var/log/system.log and found that iPhoto is a good app and does log errors to syslog but it didn’t log anything that would help me resolve this problem.

I finally turned to a last resort. I ran iPhoto from terminal (/Applications/ which runs iPhoto and spits any debug output to the terminal window. Not all applications are good enough to actually spit out useful error messages so this was really just a wing and a prayer but it turned out to be the clue that solved my problem. I tried clicking “print” in iPhoto and these were the last lines in my terminal windows as iPhoto crashed:

2005-04-08 11:08:26.042 iPhoto[4631] loaded /Applications/
Bus error

Oh yeah, I had that plug-in installed as well. Doh! I deinstalled it, and voila, my problem was solved. I checked out the developers site and sure enough, a new iPhoto 5 compatible version was available.

In summary, my problem with iPhoto was self-inflicted. I had installed a plug-in, forgotten about it, and then caused myself a problem when I upgraded to iLife ’05. Learn from my error. If you don’t have the skills or bravery to troubleshoot a problem like this, don’t install third party plug-ins. If you neglect this advise, don’t blame your primary vendor when something breaks, it’s most likely your own fault and you should be using techniques I have just demonstrated to determine exactly what the problem is.

Cell Phone Data Plans

I just have to take a minute to rave about how nice it is to have cell phone data service for my laptop. A couple weeks back on our departure flight from Grand Rapids, our flight was delayed a bit due to the inclement weather. We were already boarded on the jet and the attendants never provide you with enough information. I whipped out my laptop and cell phone, visited The Weather Channel and was able to inform the passengers that the storm was below us and unlike everyone in Detroit, Chicago, Cincinnatti, and Indianapolis, we would probably get to depart.

We’re now on our way home, sitting in Atlanta, waiting for our connecting flight. My emails are downloading in the background and I’m posting a blog entry. This is far better than paying for a subscription to WiFi service. With Sprint, I add a $15 Vision pack to my cell phone subscription. The WiFi subscriptions available in some airports cost that much, and only work in a few airports. I have access in any metro area in the country, and on most freeways. Nice.

Our flight back from Costa Rica to Atlanta was uneventful, exactly the way we like flights to be. The weather in Grand Rapids looks interesting, but not severe enough to impact our arrival. We should be home in about 6 more hours.

iMac 17″ for sale

Do you know someone looking for an iMac but can’t afford a new one? I have a 17″ iMac G4 (800MHz) for sale. I am the original purchasor, as this was Jen’s iMac. It was top of the line with the just released 17″ LCD display, 80GB hard drive, SuperDrive, 56k modem, Ethernet, and speakers. I bumped the RAM up to 768MB and added an Airport (WiFi) card. I did a price search on eBay and this system currently sells between $1,000 and $1,200. This system would lean towards the higher end of that range due to the SuperDrive, extra RAM, and Airport options. It’s a great little computer but it’s being replaced because a faster system is needed.

To buy it’s replacement (17″ iMac G5 1.8GHz, 512MB, SuperDrive) costs $1,700 direct from Apple. Despite this systems ability to fetch over $1k on eBay, I’d sell it for a little less to someone I know.

Some people don’t get the iPod

It’s no secret that in psychological terms, humans have a tendancy to project their world view onto others. Because of this, they often have have quite distorted views of reality. I found this iPod user review to be a classic example. It seems iPod users have been giving each other “the nod”. His assumption is that because he bought his to “be cool”, that so too have all other iPod users. How absurd.
Continue reading “Some people don’t get the iPod”

Cellular And IP Telephony Update

I’m now a Sprint PCS customer for the next 12 months. Despite not having quite the plan I wanted, and despite a very limited selection of phones (which do not support bluetooth), they do have a decent nation-wide plan, as well as adequate local service in northern Michigan. Almost as important, it saved a friend a $150 contract termination fee by taking over her contract.

For my purposes, data access is as important as the cell coverage. Sprint PCS has what they call “Vision”. Vision encompasses many things such as web surfing on your phone, picture exchange, etc. The short version is simply that for $15/mo I get internet access at ISDN speeds, anywhere Sprint has vision coverage (most everywhere). This is quite cool.

Today I purchased a $23 cable at Radio Shack. I plugged the cable into the phone and the USB port on my powerbook. Right now, Jen is driving 85mph down US-131 on our way to a Third Day concert in Ypsilanti. At the same time, my cell phone is charging (via my laptops USB port) and I’m typing this blog entry on my Powerbook, connected to the internet through my Sanyo 8100 cell phone. Slick.

Oh, and one more question just got answered. I can also receive calls from telemarketers on the cell phone while connected to the Intenet.

On a related note, my Packet 8 IP phone has a useful “forwarding” feature. Instead of doing a “normal” forward like your traditional (POTS) line, it forwards the call to a number and rings in on the IP phone at the same time. Whichever phone picks up the call first gets it. Now, should you call my home phone, after I fail to answer in two rings, it rings my cell phone. Very slick. 🙂

I am fairly pleased with Packet 8 but their call quality leaves a bit to be desired. As soon as VoicePulse provides service in my area, I’ll be jumping ship. Their service costs $5 more for unlimited national calling but offers a many more useful features in addition to better call quality. If I lived in an area where I could get my number transferred to VoicePulse, I’d do it poste haste.

NicTool announcement

NicTool is a project I’ve been slightly involved with for a few years. I happened upon it while searching for a DNS management application while working for HostPro in Bellevue, back in 2001. We liked it more than the commercial DNS management suites and purchased a license for it, essentially funding development of some features we needed. After that, the founders went their seperate ways and development ceased.

I approached them earlier this year, petitioning them to allow me to Open Source the code and give away NicTool under GPL terms. They agreed so I built the new NicTool web site, made some minor enhancements to the code, and have spent a fair bit of time writing documentation for it. The initial effort is complete. The code is available, documentation exists, and NicTool now has a future.

Cell Phone Conundrum

I need a cell phone and service, and getting the right deal has proven suprisingly difficult. Maybe you can help?

My reprieve from being married to a cell phone is nearing it’s end and I have a choice to make. Because of my personality, I have already done some research to determine what’s available that will suite my needs the best. I have found exactly what I want, I just can’t get it. My ideal service plan is as follows:

AT&T Shared GSM National, two lines with 900 shared anytime minutes (from anywhere, to anywhere), two bluetooth equipped phones (Nokia 6820, Motorola T616), unlimited nights and weekends, nights begin at 7pm, unlimited mobile to mobile, $0 setup, and $80 per month.

For my needs, this is absolutely perfect. We already have unlimited free long distance with our IP phone so it’s highly unlikely that we’d ever exceed the 900 minute plan and AT&T has fantastic coverage all over the country. The only problem with this plan is that I can’t buy it. AT&T doesn’t offer “local” coverage in Northern Michigan and willl not sell a service plan for use here.

I have exactly the same problem with T-mobile. They too offer a very similar package but once again, do not offer service here. I’ve checked with the regional cell phone providers in the area (Cellular One, Alltel) and neither offer a calling plan that I want to be limited by for a year. Cingular doesn’t offer service here, so the only option I see is Sprint.

I dislike Sprint for several reasons. The coverage up here is very spotty, I don’t like the phones they offer, their data service is expensive, and I’d have to pay a fair amount more to activate service and buy the phone. With AT&T and T-Mobile, I can get a cheap data plan, free phone & activation, and a good service plan.

Ideas for a solution anyone? Ideally I could get an AT&T plan but as far as I know, I cannot do so without crossing ethical boundaries.