Saturday, August 15, 2015

Android Nirvana Through Music



For the moment, I am content. This has been a long time coming, as I've been trying to replicate the best features of gadgetry in my life with new bits I find along the way to enable my "phone" to perform tasks seamlessly with little interaction needed on my part, while managing to increase my overall quality of life. Today, I'm going to talk about music.

If I look back at my earlier life, I've loved having music with me at all times. Much of my leisure time was spent curating my music collection, and while I haven't dedicated nearly as much to that pursuit in the last few years, my wife and children have helped fill in the gaps. What I have now are a few apps that help make my phone a musical monster. I've got tunes on as I'm typing this, in fact, pumping through some of the finest headphones you can get for a reasonable price.

My preferred jukebox is Google Play Music, because I can administer my music from any web browser and download any of it to my phone at any time. I'm sure there are others that many would argue are better for any number of reasons, but I value it's level of portability most after spending many hours with various playback devices and media storage schemes. As in many features I have configured for my phone, I have done my best to get the actual software out of the way so I can simply enjoy the music, wherever and whenever I want.

Just as there are many choices for media playing apps, there are many choices for sound enhancements. Some integrate their own equalizers and effects, while others ignore this completely, leaving it to the device manufacturer or user to fuss over such details. My go-to app for universal sound enhancements on the "phone" is Viper4Android. There is a price to be paid for this free app, however, in that it needs root privileges to be installed and is further complicated when you are running the latest versions of Android. We'll get into that in a bit, however. The point right here is that Viper4Android can replicate any effect you can think of, even going so far as supporting profiles for specific models of headphones to help correct for their shortcomings. It is flexible enough to offer separate settings depending on the output being used (headset/phone speakers/Bluetooth/usb dock).

Many effects apps offer convenient ways to change the mode of operation, but Viper does not, so in order to maintain such audible clarity and flexibility I've had to come up with with my own scheme to interact with it. I use Tasker and AutoInput to enable and disable the headset EQ depending on the device connected to my "phone". I haven't figured out a way to give Tasker complete and seamless control of Viper (still looking, if you have any tips), but AutoInput simplifies the process greatly by sensing the context of visible controls to make sure Viper is driven appropriately.

Tasker is also the glue used to start and stop most media playback and associated volume control changes. Whenever a cable is attached to the headset jack, the phone comes to life and gives me activity choices based on the connector inserted, then adjusts the volume and EQ settings as needed to begin playing music.

The last piece of the puzzle is something occasionally supported by phone manufacturers out of the box, long pressing the volume keys to navigate tracks. I became very attached to this feature years ago, thanks to Sony Ericsson, but I've found it is much harder to find with Android phones. My experiments with custom ROMs have shown me that there are plenty of other people that value this feature, though. While I'm using a custom ROM at the moment, it is based on parts from stock LG ROMs, so by default the volume buttons start the note-taking app or camera. The way to get around this is to install Xposed, an app that allows access to features buried deep in Android that are normally hidden away. Developers can write modules for Xposed that allow new or different functions than what was originally provided by the ROM. The module I am using has had a few iterations and names, but is now known as Physical Button Music Control. After using the option provided by my ROM to disable the default volume button shortcuts, PBMC lets me assign short, long, double, and triple presses to different media functions.

Having finally found the right combination of theses apps, I'm never far from my music, and that makes me happy.


Google Play Music  
Viper4Android   
Tasker 
AutoInput 
Xposed 


1 comment: