Join the 85,000 open source advocates who receive our giveaway alerts and article roundups.
Test driving 4 open source music players and more
Test driving 4 open source music players and more
Let's take a look at the phono pre-amp kit, four open source music players, and end on a closed source MQA rant.
Get the newsletter
In my last article, I described my latest music problem: I need an additional stage of amplification to make proper use of my new phono cartridge. While my pre-amplifier contains a phono stage, its gain is only suitable for cartridges that output about 5mV, whereas my new cartridge has a nominal output of 0.4mV.
Based on my investigation, I liked the looks of the Muffsy phono kits, so I ordered the head amplifier, the power supply, and the back panel. I also needed to obtain a case to hold the boards and the back panel, available online from many vendors. Muffsy does not sell the “wall wart” necessary to power the unit, so I ordered one of those from a supplier in California. Finally, inspecting my soldering iron, solder “sucker,” and solder, I’ve realized I need to do better—so a bit more shopping, online or local, is in order there. Finally, for those, like me, whose soldering skills may be rusty and perhaps were not all that great to begin with, Muffsy kindly offers links to two instructional videos.
So far, all that’s arrived is the rather hefty “wall wart.” Good thing I’m a patient person. I’ll be writing an update or two as things progress, so stay tuned...
One clarification: The Muffsy kits aren’t fully open source, at least according to point #6 of the Open Source Definition. Muffsy releases its designs “for personal, non-profit use only,” which contravenes that definition, but the source code is available.
When I use my computer (laptop, desktop, or music server) to play music, I have a dedicated, standalone digital-analog converter, or DAC, set up to process the data stream and convert it into high-quality sound. I want to keep it separate from alerts, web ads, and other sounds.
I have noticed that the designers of Linux audio systems like PulseAudio and Phonon don’t tend to view that use case as important; rather, they tend to focus on basic playback, convenience, and flexibility in using and sharing the built-in audio.
So when I go looking for music playback software, the first thing I try to do is to configure the software to bypass PulseAudio (if installed) and use ALSA to get the music files as-is to the DAC.
I see that in March 2017, some work was done on PulseAudio to create something called “smart resampling.” I haven’t investigated this fully, but it appears that it may at least pass the sampling rates of the original music files untouched. Unfortunately, the maintainer’s comment 10 continues to promote the (proven false) theory that CD quality is all we need, ignoring Joshua Reiss’s meta-analysis in JAES Volume 64, which shows that not only can listeners detect high-resolution content, but they can be trained to improve their detection of same.
Anyway, my experience with high-resolution content is that it’s a pretty reliable indicator of someone taking more care in the preparation of the music files. This means using a lower level, less compression, and, in the case of older music, sometimes going back to the original analog masters as source material. So, I’m willing to pay the surcharge and dedicate a decent DAC to the playback of those files.
So far, Guayadeque has had the most useful set of features for my use patterns. It can be configured to pass the digital music stream untouched through ALSA, it has a smart playlist and queue option to playlist, it handles both embedded cover art and cover.jpg well, it displays signal level and effective bit rate dynamically, and it presents a clean, well-designed user interface. I also like Goggles Music Manager for its lightweight and direct-to-ALSA connection (Guayadeque interposes gstreamer).
I’ve also tried Audacious, Rhythmbox, Clementine, Qmmp, Amarok, LXMusic, AlsaPlayer, Aqualung, and Lollypop, but was unable to configure those players to pass music through without resampling (generally due to inability to configure a direct connection to ALSA).
I like, and use, Music Player Daemon (MPD). While its client-server architecture and design introduces some limitations (for example, no dynamic display of bit rate, nor level on clients), it also allows me to have dedicated low-cost music servers that provide my home listening environment with lovely high-quality music.
According to its web page, “Music is the new GNOME music playing application.” When I first started Music, I was greeted with a mostly blank full-screen application with a cool-looking graphic in the center advising me that my music folder contents would replace it. So I waited... and waited some more. I headed off to the kitchen to check on Sunday dinner, came back 15 minutes later; no news...
I clicked on the “Music folder” link and was taken to my Music folder, so that wasn’t the problem. I tried starting it from a terminal with the debug option. I received lots of information in the terminal about window resizing and the like but nothing about music files. Some online searching led me to realize that I needed
tracker running. I started that up with
tracker daemon -s
gnome-music from the command line. Definitely more happening at this point, but still no sign of music folder contents in the GNOME Music screen. While I was waiting, I started searching for instructions on how to point GNOME Music at the digital-analog converter that I have dedicated to music playback, which led me into lots of pages about configuring PulseAudio.
Hmmm. This seems a lot more complicated than I want it to be... perhaps I’ll try GNOME Music again another day.
This started up in a much more promising fashion, asking me whether to use ~/Music or something else. I chose ~/Music and sat back to watch.
A message shows on the Musique screen above, reading “Musique is using Last.fm to catalog your music. This will take time depending on your collection size and network speed.”
I’m not sure I really want this; I’ve spent a fair bit of time getting my music metadata the way I want it. And, true to the comment, this is taking a while... Meanwhile, I decided to look around for output configuration options. None of the menu items shown above indicate an opportunity to edit “preferences,” “options,” or anything similar. When the conversation with Last.fm was completed, artists began to show up in the leftmost window, seen in the image below. Not clear on the sort order of the artists—Led Zeppelin before Emancipator?
The application's website doesn’t seem to have any information on configuration, and an online search was fruitless as my favorite search engine didn’t want to distinguish “musique” from “music.” Oh well, maybe another day.
The only other KDE-oriented player I’ve tried is Amarok, and I could not find a way to get bit-perfect playback with it. So I had high hopes for JuK.
In a fashion similar to Musique, Juk opened up asking for the location of my music directory. I sent it off in the direction of ~/Music and away it went, cataloging my music (I guess). While it was busy, I was unable to access the menus on the top of the screen. The great news is that it took about one minute to catalog my 6,633 songs. Here it is:
Something odd going on in that left-hand panel—I see "Dehli 9," an album by Tosca, followed by two .flac files. Obviously some learning necessary there; let’s leave that for now and try to configure the output. The Settings menu doesn’t seem to have anything about output.
I tried to launch the JuK handbook, but the KDE help center was not installed on my GNOME desktop. Some online searching for “JuK output configuration” and “JuK ALSA configuration” led to articles on configuring Phonon, configuring PulseAudio, and configuring Amarok.
Another “park for another day.”
I was clearly not having a great deal of luck here!
Jajuk is a Java-based player. As someone who likes Java a lot—and some of its JVM relatives, like Groovy, even more—I was interested to see what kind of music player could be created with it.
Right off the bat, when I started Jajuk it was easy to see it was a Java application—I was confronted with a default look and feel that needs some work:
Jajuk wasn’t crazy-speedy loading up my ~/Music directory for the first time, but it wasn’t terrible—it took 369 seconds to load the 6,633 songs.
Less promising is the matter of getting at my DAC. On the Configuration > Preferences > Sound tab there is an “Enable bit-perfect” checkbox, but no ability to select the device.
Nothing obvious on the site, and a search for “jajuk configure output device” took me first to some page on configuring SAP (yep, that SAP).
Taking a quick look around, it appears that Jajuk is a very feature-rich music player, with a “Karaoke” mode and a “Prepare party” tool. But I don’t see how to get it to sneak around behind the default mixing environment. Moreover, when I look up “Jajuk bit perfect” I see this comment:
“The new Sound/”Bit perfect” option make sure you get the best possible sound. It disables any gain or sound processing option from mplayer. Note that under this mode, sound volume is disabled, you’ll have to set volume from your operating system mixer.”
Hmmm, mplayer? Operating system mixer? Well. This isn’t looking easy, either.
Music players: Lessons learned
I’m not sure that what I want a music player to do is mostly irrelevant to a lot of music player designers out there, but it’s starting to feel like it. I need to check out that “avoid resampling” setting in PulseAudio. Really, it would be super cool if I could just fire up Rhythmbox or whatever default player came with my distro and get it to play to my DAC without resampling, mixing, and other tomfoolery. But for now, Linux users who want to feed their music files through ALSA to their DAC without any intervening changes clearly have a limited set of options: Guayadeque, Quod Libet, gmusicbrowser, DeaDBeeF, VLC, Goggles Music Manager, and MPD (with its clients).
Master Quality Authenticated (MQA)
One of the worst things happening right now, in terms of music and open source, is the steady progression of Master Quality Authenticated, or MQA, music.
For those of you arriving late to the MQA conversation—and really, there’s nothing wrong with arriving late to this conversation—MQA is a way of compressing digital music by putting the high-frequency, lower-energy music “underneath” the noise floor of the lower-frequency music. There’s also something about compensating for the original analog-to-digital conversion in the decoding. So, technically, MQA is kind of a cool thing in that it allows a higher compression of audio signal than just regular compression (like that in FLAC, for instance).
But leaving that technical thing aside for a moment, the big problem is that MQA is patented and available only to those who participate in the audio production chain under license. And that includes the consumer.
Just to be clear: MQA is a closed source encoding-decoding mechanism. You and I, the consumers, must buy an MQA-licensed decoder to listen to MQA-encoded music in its full resolution; otherwise, we get a sort-of CD-quality result.
So when a big music company decides to make high-resolution music available only in MQA format, you and I, the consumers, must either buy an MQA-licensed decoder or pay for the delivery of the extra bits but be unable to use them. We must not reverse-engineer the data stream and come up with our own encoder. To add insult to injury, MQA-encoded music is delivered in FLAC format. Really?
Now, I’ve written about MQA before, and I’ve posted my opinions on more than one site on what I see as the foolishness of broadly accepting a closed music format when so many of us have pushed hard to see music delivered in open formats. So why am I all worked up about this again? Take a look at this article, where you will see one of the senior MQA marketing people advocating that MQA should replace all other high-resolution content, along with many responses from people who are not only willing to throw away the freedom of open music formats but who think that those of us who worry about such things are not worthy of serious consideration.
Whew! End of rant!
And the music
In my last music column, I ran out of time and space to mention a few new things that are worth checking out.
First is Nils Frahm’s new album, "All Melody." Available from those wonderful Linux-friendly online music sites Erased Tapes (Mr. Frahm’s label) and Bleep in glorious 96/24 digital or even more glorious vinyl, this is a really fine, atmospheric album; a nice mix of electronic and (very closely miked) acoustic piano. Mr. Frahm is also on tour, which could be the best open source way to hear this excellent music.
Also heard recently, and purchased: Khruangbin’s "Con Todo El Mundo." Now lemme see—a three-piece band from Texas with a Thai name, but none of the band members are Thai. And on this album they play... hmmm, how would I describe this? Kind of The Ventures meets Los Lobos, but more like downtempo Steve Ray Vaughan (not that I’ve ever heard downtempo SRV). Yes, this album is lo-fi. Who cares, it’s great! And it’s available on Bandcamp, that wonderful Linux-friendly and artist-friendly online music site.
Since I mentioned Newen Afrobeat last November, I’ve managed to buy two of their albums. One is an EP with several African musicians, led by Seun Kuti, Fela Kuti’s youngest son, and including Cheick Tidiane Seck. The performance of Opposite People, one of Fela’s signature numbers, on this album is spectacular and this video gives a great idea of the energy of this group. And Newen Afrobeat is available on Bandcamp.
All this great music, available in open formats from artists and stores that respect your right to choose.