Android Music Players

The decline of the iPod

The battery on the old iPod, which mostly lives plugged into a speaker in the bedroom, holds almost no charge. And the newest version of iTunes on my laptop doesn’t recognize it so I can no longer add or remove music. The iPod is often missing from my car on long trips, only remembered when I’ve left the coverage area of the local classical and jazz stations. So the iPod has become less desirable for listening to music.

Music on an Android phone

Recently we took a international vacation trip and I wanted to travel light taking only my current Android phone. It was possible that the airline would have some playlists decent enough to listen to for twelve hours on their entertainment system. But, with a suitably large microSD card, my phone is capable of holding my entire music library. So why not use the phone as a iPod substitute?

It was pretty easy to add the iTunes directory on my laptop and the /sdcard/Music directory on my phone to SyncThing and in a few minutes my phone had all my music. Any new music I buy shows up on the phone shortly after I’ve added it to the laptop. Much easier than the old “plug the iPod into the computer to update” procedure.

I was not able to find a free Android player that did exactly what I wanted, but selected one that could be used for the trip and it worked out pretty well.

Back home, the lack of iPod on longer drives became particularly annoying as I would have my phone with all my music on it but no way to easily legally listen to it. I could not play it through the car’s sound system as the car is too old to support Bluetooth or USB media and it has no analog audio aux input. Where I live wearing earphones over both ears while driving is not legal and in any case it is unsafe so that was out.

Replacing the old Dice iPod adaptor installed years ago with a Grom Audio USB audio adaptor allowed me to play all those tracks on the phone over the car’s sound system, a big step forward.

Back to the Android Audio Player Problem. . .

I don’t want to pick on Apollo as it seems overall a reasonable music player and served me adequately on our vacation. But it is typical in how it handles “songs” in a genre. It might be interesting to play all the tracks named ‘1 Adagio, Allegro . . .’ in order before playing all the second movements to each symphony. Might be interesting to do once. But never more than once! Playing tracks in random order would be no better.

The one feature I really want in a audio player app is the ability to play random albums within a genre. For example, when I select the “classical” genre I want to be able to play all tracks/songs/movements in a symphony or concerto in order. When done with the symphony, I want the app to select another symphony (“album”) at random and play it in order. With this feature, I can set the player up when I start a trip and not have to worry about looking at the audio app or get distracted playing with its controls. Just hours of concertos and symphonies. Or if I get tired of that, then hours of Broadway musicals from overture to finale, etc. Even in the rock music genre there are albums like Tommy or early work by the Moody Blues that are better listened to as a complete album rather than as random songs.

This is not limited to long car trips: At home using the Bluetooth speaker to provide background music or out on my morning constitutional with ear buds this is how I want to listen to my music collection.

Apparently the lack of a “random album” option on Android music apps has been missed by others over the years so maybe I am not alone. But none of the free apps I found do this. Since I don’t let Google on my phone I don’t really have a way to buy an app even if I wanted to and was sure it supported this feature.

Digression

Apparently I am a dinosaur: Not only do I like classical music but I want to own copies of the music I play. This was brought home to me recently reading both the New York Times and Los Angeles Times. Apparently the world is shifting to streaming media. This boggles my mind: Even if you select a free streaming service, you still need to pay for a mobile plan with unlimited or high data limits. I would much rather pay for music once rather than pay every time I listen to it. Decent music is worth listening to multiple times so why not buy it?

Not that I am adverse to streaming music as a concept, I’ve got Transistor on my phone and will often listen to the Internet streams of jazz and classical radio stations when I have WiFi connectivity. If nothing else, this exposes me to music I’ve not heard before that I may wish to buy.

But I am not going to pay for a more costly mobile plan so I can listen to Internet radio while on the road. And I am not going to pay a subscription to a streaming service.

For what it is worth, I voluntarily donate to the stations I listen to the most during their periodic fundraising drives. It seems that most (all?) classical and jazz stations nowadays are non-profit public stations, a sign that neither jazz nor classical music are popular enough to survive on commercial radio stations. But that is a whole different topic.

Yet Another Music Player App

I’ve been retired for a while now but I pretend I can still write software, so why not write my own music player app?

The Android API is frustrating as it is endlessly changing. The official documentation is reasonable for reference but horrible for learning. And because the API is endlessly changing, nearly all the tutorials and examples use deprecated methods. If you are doing this full time and are young enough to be quick at learning I guess it isn’t too bad. But for a retired duffer dabbling about, it can be pretty opaque. Oh well, it helps keep the old neurons in shape to struggle through this.

My second problem is that I’ve not been an UI designer since the days of serial terminals and teletypes. So not only am I slow to figure out “fragments”, “activities”, “services” “providers”, “adaptors”, various interlocking XML resource files and wondering why a pull down list is called a “spinner”, I am not really good at coming up with a good look and feel for an app.

Despite these shortcomings, I’ve now got myself a music app player that lacks all sorts of features in other players: The list of things you can’t do or display is huge.

But you can select a genre. In the selected genre you can scroll through all the songs/tracks/movements. And those songs/tracks/movements are sorted by album (symphony, etc.) and within album by track (movement, etc.).

With another pull down, you can quickly get to the first track on any album within the genre. For playing, you can select sequential, track/song random (both standard features in all the music apps I looked at) and, most importantly, random album.

It has taken me a little while to get things like gapless playback, being nice with other audio media apps, etc. to work. But it seems to be solid enough to be my first choice player now.

If I don’t run into too many bugs in the next little while then I’ll clean up code and release it to GitHub so F-Droid can make it available for others to use. I am sure if I do publish the code, someone out there will complain of lack of features. I can live with that. It is just as likely that someone will figure out how to improve the app and submit pull requests. That has happened with the other projects I’ve published and they were much improved by the help.