Sunday, March 16, 2014

Android Audio Stutter -- Fixed!

Motorola DROID RAZR M
Not long ago I finally bit the bullet and replaced my old flip phone with a smart Android phone. I had several reasons: I had an increasing need to respond to people texting me, and the ability to check email and sync up work and personal calendars on one device was attractive too. I also figured I could take advantage of 32GB SD storage to put my entire music collection on the device, and have it with me always. Or so I thought.

Android audio playback was a disappointment. The audio quality was fine, if you can call stuttering, choppy audio fine. It would be playing along perfectly; I'd be enjoying the music, not thinking about the hardware, when all of a sudden it would stop for a half second or so. Very jarring -- disconcerting even! It doesn't take much to pull all of the enjoyment of music out of an experience when you get yanked back into reality every few minutes at random.

This pattern occurred with all three music apps I use: Amazon MP3, Pandora and Play Music. Choppy audio is usually due to multi-tasking other applications. I tried shutting down all the other running apps, trying to find the culprit. Unfortunately, even with all apps disabled, it kept happening. Then I stumbled upon the Power Control Widget. The Power Control Widget allows me to disable the sync feature (it turns off the periodic email, calendar and other data fetching functions). It appears the sync feature is what stutters the audio.

Android Power Control Widget
Left to Right: Wireless, Bluetooth, GPS, Sync, Screen Brightness

The sync feature may be a poorly written app, or maybe it really needs the hardware to run at a higher priority than keeping the audio buffers full, or feeding audio from the buffers into the D/A converters in real time. Whatever the reason, disabling sync seems to be the solution.

So, I set up a home screen with all of my audio apps, and with the Power Control Widget at the bottom. Now, when I go to play audio, I simply turn off sync. I admit, it's a pain to remember to do that (especially turning sync back on when I'm done listening), but it's better than the alternative. Maybe someday, the Android developers will fix this, but in the meantime I'll live with it as-is.