Music is a part of life. Wikipedia's article on the history of music contains this great phrase: "Since all people of the world, including the most isolated tribal groups, have a form of music...." Well, we open source folk form a tribe—that's for sure. I propose that our "form of music" includes open music players. Over the past year, I've been taking a look at the various players available; in December 2016 I summarized my ongoing evaluation of open music players using these six criteria:
- Must be configurable to pass the music through unchanged to ALSA. (max 5 marks)
- Should have a good "smart playlist" feature. (1 mark)
- Should not force the user to always interact through playlists. (1 mark)
- Should provide a simple approach to cover art—use the embedded cover art or fall back to cover.jpg (or .png) in the music directory. (1 mark)
- Should show the signal level and effective bit rate as the music plays. (1 mark)
- Should present good-to-great overall organization, layout, and performance. (1 mark)
Three players suggested to me by kind readers were not available in my repositories: Aqualung, Lollypop, and GogglesMM. Not wanting to install stuff from the wild on my work computer, I promised to configure a "test bed" for this purpose and detail the results.
Aqualung has a clearly written website that explains its various features. One of the comments there I found interesting was this one:
"You can (and should) organize your music into a tree of Artists/Records/Tracks, thereby making life easier than with the all-in-one Winamp/XMMS playlist."
This puzzled me because I think I have always had my music organized into a tree of artists, albums, and tracks. But maybe this explains why I find the XMMS-derived players to be a bit odd in terms of their music browsing capability.
According to the Aqualung download page, the official release is source-only. While the comments there suggest that most major Linux distributions include a built copy of Aqualung, this is not the case with the distro I'm currently using on my work computer, Ubuntu 16.10. Launchpad.net does have personal package archives (PPAs), but they seem a bit out of date, so why not build from source?
I installed pkgconf and dev versions of libasound, libflac, libmp3lame, libvorbis, libxml2, libglib2.0, and libgtk+-2.0, generally following the suggestions of the compiling page on the site and the usual "hints" from the configure script. Next, I was able to configure cleanly and do a make and a make install. And from there, I was able to execute /usr/local/bin/aqualung.
Aqualung, unable to switch resolution.
Once Aqualung was up and running, I saw a straightforward and relatively barebones two-window user interface, the player itself and the "Music Store." I opened Preferences by right-clicking on the music pane of the player and looked around to see where I could select my AudioQuest DragonFly digital-to-analog converter, but I saw no sign of anything there. However, the site notes that you can specify the output device on the command line. I ended up needing to use the plughw device to get Aqualung to start.
At that point, I was disappointed to discover that Aqualung seems to require a fixed output sample rate. I could play my 44.1-KHz files just fine with the default setting, but to play my 96-KHz files, I had to stop and restart with that sample rate. Aqualung will not pass the bit stream unchanged through to the digital-to-analog converter. With that, I did not bother to continue my evaluation.
The lovely Lollypop user interface.
Lollypop has a gorgeous website. Although it's not in my work computer's repositories, there is a "Download Ubuntu/Debian" link that points to an up-to-date PPA on launchpad.net. The site offers other downloads for Flatpak, Arch Linux, Fedora, FreeBSD, and OpenSUSE. Out of curiosity, I took a look at the Fedora link on Fedora COPR, and it also looks quite up-to-date, offering builds for Fedora 23–26.
One build from source was enough excitement for that day, so I decided to try the PPA. I was able to execute Lollypop from the command line. The Settings menu was obvious in the upper right of the screen. After updating my music, I went looking for my output device configuration, but after some poking around, I couldn't find how to select the output device. Even executing on the command line with –help did not enlighten me.
After some searching on the Internet I found a Lollypop developer stating that I needed gstreamer libav to get Lollypop to work. From this I have tentatively concluded that there may be a gstreamer configuration possibility to make this work, but I'm not going to pursue that for now, at least.
Lollypop has a lovely user interface to match its lovely web page, but for now, I did not rate it. I have another reason to learn more about gstreamer.
GogglesMM, out of the box, looks somewhat like Rhythmbox. I found the Audio tab under Settings > Preferences, which let me select ALSA and set my output device. I confirmed that I can play MP3, 44.1-KHz / 24-bit and 96-KHz / 24-bit music by looking at /proc/asound/DragonFly/stream0 and the LED color on the DragonFly itself; therefore, 5 points for "rate/depth passthrough."
GogglesMM playing at 96/24, showing output device.
The documentation for GogglesMM is not largely detailed at this point, but as far as I am able to tell, the developers use filters to implement something like "smart playlists." I reviewed the functioning of filters as best as I could with the three albums installed on my test bed, and while I like what I see (especially being able to define selection criteria for songs based on a broad range of criteria), this is not what I mean when I use the term "smart playlists," which I think of as using some kind of community database of "songs like the current one." Maybe I should call this "automatic DJ" instead, but as far as I am able to determine, this feature does not exist in the current version of GogglesMM, so 0 points for "smart playlist."
As for the queue versus playlist operation, the application supports either playing through the selected songs both in order or randomly or putting songs in a playlist, so 1 for "queue option to playlist."
Similarly, it seemed to manage my cover art well without extra intervention (each album contained the appropriate cover art, which was recognized automatically by GogglesMM), so 1 for "embedded cover art or cover.jpg."
I could not find any way to show signal level or effective bit rate. Nor could I find any way of seeing the bit rate and bit depth; although the application can display a "format" column, it doesn't show anything in that field on my music, so 0 for "signal level and effective bit rate."
With respect to overall organization, GogglesMM hits all the right buttons for me. I can see what's in the play queue, the time and proportion of song played and left to play, album cover, song name, album title, and artist. Also, the available display column list seems quite large and useful, including composer for example. Finally, a really wonderful thing, the volume control actually controls the ALSA volume. If I bring up alsamixer and adjust the volume in either GogglesMM or alsamixer, the other's volume control moves and the volume adjusts. This is pretty cool and surprisingly not all that common, so 1 for overall organization.
In total, then, GogglesMM merits an 8. Excellent performance indeed.
The ratings so far
As I've mentioned in the past, my favorite player is Guayadeque, which gets a perfect 10, according to my ranking. Take a look at a summary of my ratings to date (N/R meaning "not rated," because I was unable to determine how to configure those players to work in bit-perfect, passthrough mode so that my digital-to-analog converter receives the PCM data at the bit rate and bit depth of the source):
Please note that my ranking scheme is not for everyone. In particular, many people don't find value in music files at higher-than-CD resolution, and many people are happy with proprietary formats that promise better audio quality.
Meanwhile, I will continue to evaluate some of the promising non-rated options. I especially like the look of Lollypop, and I feel that there is a secret spell for gstreamer just waiting to be unlocked that will let gstreamer-based players pass their data through without conversions.
And the music...
My vinyl buying spree continues, and I have some great recommendations.
First is Nils Frahm's album, Felt, which was a very thoughtful gift from my daughter. I really, really like this album, which was largely recorded late at night with microphones very close to the piano strings and lots of interesting ambient piano noise—really beautiful music. Like other Nils Frahm music, the vinyl comes with a download code that allows the downloading of the album in up to 96-KHz, 24-bit FLAC format.
The second is Mad Professor's remix of Massive Attack's album, Protection, titled No Protection. You can get an idea of it here, and if you would like to try out the original, here is what it's all about. Originally released in the 1990s, this album is back on vinyl and it sounds fantastic. Unfortunately, no download code accompanies it.
The third is Primitives by Bayonne. Here is an idea of what it's like. The Guardian newspaper has lumped this in with "the new boring," how's that for a genre? Really, if it's all so boring, maybe it's time for a career change, Anyway, give this one a whirl; maybe you'll find it boring, or maybe, like me, you'll like it!