Shuffle into the Background

I recently made a very long drive, and made good friends with my iPhone’s shuffle feature on the way. He’s good for moral support, but don’t trust him with anything important. A few hours into the drive I began to notice that my iPhone would pick somewhere between 5 and 8 artists, then only play songs by them for some period of time, then pick a new set of artist (possibly overlapping with the previous batch of artists) and do the same. I frequently got 4 or 5 songs by the same group in a row. Obviously this isn’t exactly how it behaved 100% of the time, but that was the general impression I got after using the shuffle feature for 17 hours.

For me this was maddening. However, the key thing to note is that this behavior is statistically valid for two reasons: one, I have far more songs in my library by some artists than others—20 hours worth of Radiohead vs 30 minutes of McLusky—and two (statisticians, please forgive my phrasing if I botch this), random patterns of sufficient length will always contain sections that “look” non-random to a casual observer. So Apple’s random number generator is working — it’s just not producing my desired results.

The non-random appearance of truly random numbers is an issue that has been addressed at least a few times, including specific discussions relating to iPod shuffling. It’s also come up more generally; the most high-profile case I can think of is the item drop rate in World of Warcraft, where Blizzard switched from a “roll of the die” drop determination to what they call progressive percentage drop rates.

It’s a non-issue to people who don’t care (e.g. Apple and people who aren’t anal-retentive about their music listening habits), but given my pretension to be a problem solver I started thinking about how to fix the iPhone’s “broken” shuffle. Starting at the algorithm level, my initial thought was that an artist should be picked randomly first, and a song by that artist would then be randomly selected.

This would be a satisfactory solution, but not perfect, because it would still be weak to statistical argument #2 above: you could still get the same artist twice or three times (or any number of times, with diminishing probability) in a row; and there would be issues with slightly mislabeled band names (“Akron Family” vs “Akron/Family”, “Built to Spill” vs “Built To Spill” etc.) showing up as two separate artists. Well, this got me thinking about band name normalization, and caching the last X minutes of artist names and blah blah blah, and it doesn’t really matter what because that’s when something much bigger hit me.

Apple. Doesn’t. Care. This shuffle algorithm is keeping millions and millions of iTunes, iPod and iPhone users happy as it is, right now. Ok then, I’m a programmer [1], I’ll write something to solve my needs and move on. I’ll write an app that just shuffles my entire music library and plays it back, the way I want it to. But then it would have to be running all the time because there’re no background apps on the iPhone, and that would suck. Well, maybe I can write a little notification listener daemon… no, that would still have to be a full app.

That sure sucks: no background apps. They’ve got to be coming in the future though, when the hardware catches up. But what if I accidentally leave my hypothetical Awesomeshuffle app running with the volume turned down? What happens if my mom can’t figure out how to quit it? What happens when my mom launches every app on her iPhone and the (now) damned thing grinds to a halt?

I know what you’re thinking: “Dummy, just put a quit button in there” — but that doesn’t cut it. Or rather: it’s not mom-proof. No matter where your quit button is, it will never be as convenient as the home button, which is already the accepted “I want out” mechanism for millions of iPhone users. Touch it and you’re home, no matter what.

So here’s the point I’ve been trying to make. It’s been an undertone in many iPhone background app discussions, but I’ve never seen it explicitly stated: Background apps break the iPhone user experience. It completely changes the feel of the device. It moves the iPhone from “magic box that can do cool things” to “another bullshit piece of technology that I have to micromanage just to function.” The “background app box” idea, where you can fit X number of app icons into a designated area on your home screen, and those apps are granted magic powers to run in the background, doesn’t fix this. If a user puts even one powerhouse app in the background box the entire iPhone suffers. And that’s aside from the fact that the cognitive load for managing the background box is way too high for most users, especially if they want their background-blessed apps to change frequently, given how frustrating reorganizing icons on the iPhone is (without keeping it permanently chained to a Mac running the latest iTunes). There is no easy way around this.

The recently proposed Cover Flow style task manager is a nice idea, at least for power users, but it fails the mom test. How many less-than-technically adept friends have you seen with a fully lit dock on their desktop and, therefore, a slow-as-molasses Mac? (This is partially due to the Mac-specific [2] idea that closing all of an app’s windows does not exit an app, which inexperienced users don’t expect; keep this in mind for the next couple paragraphs.)

For the topic at hand the real issue is that, as alluded to above, the iPhone already has exactly one established convention for app exit: the home button, with a slightly complex but extremely intuitive schema.

An exit and resume of a properly programmed iPhone app should feel like pausing and resuming a video game, not a fresh restart. Kind of like leaving the app running in the background, but not. Disassociating the home button from quit functionality is akin to leaving an app running after the last window has closed –– and would be completely non-intuitive for the average mom.

In the real world, most apps don’t want or need background functionally, and the processing, cognitive and user-experience overhead of the so-far suggested solutions aren’t worth the benefits that would come from the few apps that do.


1. Note: Programmers and power users in this case are two separate breeds. My first thought was code, not semi-satisfactory smart playlist hacks.

2. Mac Vs. Windows here. Not Mac Vs. every other desktop/task/application manager ever.

A. To be clear, the iPhone and iPod Touch are devices targeted at general consumers. Those who are extremely vocal about background tasks are grossly overwhelmed by those who would complain about a 3 hour battery life (whether or not it's their fault for leaving Pandora radio running). There are trivial solutions for anyone in desperate need of background apps: switching platforms and jailbreaking, but whomever chooses those paths chooses to exit Apple's playground as must accept the consequences.

← back