Doing the right thing: resume, rewind, or skip ahead?

Originally posted to Shawn Hargreaves Blog on MSDN, Thursday, February 10, 2011

My second example of a problem where "just do the right thing" turns out to be surprisingly complicated is a feature that does not exist, but ought to.

Being a luddite who has not yet cottoned on to this newfangled MP3 player fad, I like to listen to CDs in my car.  My daily commute takes around half an hour.  The average CD is longer than that, but luckily my car has a feature that remembers and automatically resumes from the previous play position.  Without this I would get stuck listening to the first half of a CD over and over again!

The problem is that when I start the car, music blares out in mid phrase, which is not aesthetically pleasing. When near the start of a track, I would prefer it to rewind and start over. If near the end, it would be better to skip ahead to the next track, rather than irritate me by jumping into the last seconds of a fadeout.

To work well, such a system should take the length of the track into account. When playing three minute pop songs, I pretty much always want to rewind or skip ahead, and never resume in mid song. But I also enjoy classical symphonies and sprawling prog rock epics, and don't want to get stuck restarting the same 20 minute jam every time I get in the car. The longer a track is, the more willing the system should be to resume in the middle of it.

Another interesting factor is how long the car has been idle:

This would not require any visible user interface, and I suspect many users would never even notice it, but a smart implementation could vastly reduce how often I have to manually operate the forward or rewind buttons. Why should I have to bother pressing them, when my wishes are so predictable and easily automated?

Blog index   -   Back to my homepage