Choosing a Linux Music Player
Updated November 25, 2013
Everyone loves a good media player. In Userland, managing your music library is more important than kernels, ASLR, access control or any of that lame stuff. Thus I see no wrong in going full OCD and Synaptic shopping for a music player you’d want to get all snuggly with.
I’ve been using Banshee since…well, forever, but I was curious about potential replacements and ended up trying out many other GUI music players. Sure I weighed features, style, stability & such things, but I also looked at their RAM and CPU usage to sort out the “bloated”, the “hogs”, the “small”, the “lightweight” and other such vaguely defined words. Here I write to you having emerged from Userland with much perspective and I invite you to partake in the snuggliness.
- All players were used with a regular ‘ol Intel Sandy Bridge mobile chipset, meaning no standalone sound card. The CPU is a one year old i5 with 2 cores & 2 threads at 1.6 Ghz and turbo up to 2.4 Ghz. The operating system was 64-bit Ubuntu 13.04.
- Library size will affect the player’s performance in some areas. My music library has about 1500 MP3 songs which is small by many people’s standards.
- The total installed size and amount of package dependencies is according to Synaptic. The restricted extras option was marked when Raring was installed so some codecs were already present.
- CPU use was sourced from Top and memory readings came from Gnome System Monitor. The min and max CPU usage numbers were occasional or rare spikes and dips. All players spent most their time in the middle of the range.
- Except for the screenshots, all players were used in totally default configurations. If you change settings, remove or add plugins, then memory, processor usage and sometimes even program stability will also change.
- Except when mentioned otherwise, all players have base features like repeat, shuffle/random, replay gain, MPRIS integration, internet radio & podcast support, crossfading for gapless playback, a 10 band graphic equalizer and song ratings.
- Ex Falso for bulk ID3 tag editing is great, but if you want to embed cover art, Easytag is what you’re looking for. If you decide on a player which doesn’t do CD ripping, Sound Juicer will solve this. All 3 programs are in Ubuntu’s repositories.
- It should go without saying that your results may vary depending on your hardware setup, software versions and possibly your favorite kind of pie.
- Update: This article made its way onto Reddit where it was received overwhelmingly in the positive. A huge thanks from tSc to the Reddit community.
Kicking things off we have Amarok, the heaviest player of this list. What constitutes “heavy”, you wonder? For starters, the 125 packages required to make Amarok work, totaling 249 MB of used disk space.
If you’re using KDE or KDE programs, you won’t see that much because you already have most of Amarok’s dependencies. But in any other desktop environment, you’re basically half-installing the KDE Plasma desktop and you’ll also have a handful of extra KDE processes running.
Universally affecting all desktop environments is Amarok’s memory and CPU use. The player starts up right into low 60′s for used megabytes of RAM which increased to nearly 180 MB after an hour of playback and poking through menus. CPU use was among the highest with the most variation ranging from 10.3 to 17 percent of a single CPU core. While changing tracks, Amarok used between 21.3 & 43.6 percent CPU and when idling (stopped & minimized), it skipped from 0 to 0.3 to 0.7 percent every few seconds.
* * * * *
So what do you get for all that resource consumption? In return, you have a stable, robust, attractive music player with many bells & whistles. Amarok’s main areas of expansion are its plugins, scripts and applets. Plugins handle support for iPod, MTP, USB & UPnP devices, DAAP sharing and internet sources like Last.fm, Jamendo, Ampache and others. Lyrics, artist info from Wikipedia, guitar tabs, similar artists and even their upcoming events are accessible by applets in the player’s center context window. The scripts are for Librevox (audiobooks) and some internet radio channels.
There’s also ID3 tag editing, custom keyboard shortcuts and Amarok can connect to a MySQL database. If you want to use the moodbar, you need the Moodbar Generator script from kdeapps.org. Amarok’s equalizer was weird. Instead of adjusting specific frequencies, they’re listed as bands 1-9 and the last is labeled as n/a. It’s obviously not a parametric equalizer; you just use the presets or move sliders to see what sounds different, which is all I suppose most people do anyway.
If you switch off most of the things which are on by default, Amarok will use much less CPU and memory than it does out of the box. Turning off automatic lyric scrolling alone knocked CPU use down to around 10 – 13 percent. Amarok is the king of eye candy in this list. Not to say other players listed aren’t good looking, Amarok just has more fading animations and moving parts. Not bad if you’re into that sorta thing.
* * * * *
You’re probably thinking all that plushness requires a lot of internet traffic to work. Yup, Wireshark revealed Amarok as the most talkative of all players here. On launch it connects to Last.fm, Mangnatune and Internet Archive but when you play a track, there’s a hemmorhage of web traffic.
Youtube, Myspace, Harvard, Rolling Stone, RIAA (…wtf??), Associated Press, WordPress, Wikipedia, MTV, USA Television and Huffington Post are contacted simply by playing a song. And those are just the ones you’d likely recognize; there were many more hostnames which you’d be forgiven for not knowing.
However, 1005 of the 2183 packets generated from launch and two songs played were DNS lookups. The only TCP conversations going on (meaning, the only data really ‘communicated’) were with the usual music player lookup sites like Wikimeida, Internet Archive, Magnatune and Last.fm. If you disable all the plugins, scripts and applets which require internet access then, surprise surprise, Amarok does’t use the internet.
Despite being a well adored little workhorse of the Linux music world, I never used Audacious before this trial run. It and I really bonded and while not perfect (if such a thing exists) it earned a truckload of props from my nearly insatiable nature. Audacious is simple, elegant and to the point. I really liked the tasteful contrast of the Info Bar and how the program still looks clean when used in a small window, no need for horizontal scrolling or other such contortions.
Audacious does files and URLs only. There are no podcasts, music stores, lyrics, artist biographies or CD ripping, not even song ratings. There’s also no official iPod or MTP support but you can access music from your external device if it mounts as a USB drive. If you put Audacious into Winamp mode, it can use Winamp skins instead of the default GTK+ look.
Audacious with dependencies brought in 16 packages for a total install size of 10.3 MB. Memory use started up to 10 MB and many tracks about an hour later, it barely nudged past 18 MB of RAM.
CPU use out of the box was only average, but fixable. While idling, Audacious fluctuated from 0 to 0.3 to sometimes 0.7 percent CPU every few seconds and this is common for most players listed here. CPU use during playback stayed between 6.3 to 8.3 percent but spent most of its time around 7%. Changing tracks bumped CPU up to 9-12 percent.
Here’s a tip: Go to the View menu and uncheck Show Info Bar Visualization. This removes the pretty blue frequency response animation at the bottom right but now the program’s CPU use while playing music hovers around 4%. Superb. Audacious also did not open any internet connections unless told to.
Here stands a Linux media heavyweight. Banshee does audio, video, Amazon music, Internet Archive, iPod, MTP, UPnP and USB external device support and it can rip CDs all its own. It can even do variable bitrate MP3s. Banshee also has a reputation for being crashy, heavy on resources and people further hate on this player because of its Mono dependencies.
Software politics aside, Banshee 2.2 was the first non-Winamp styled music player I settled into with Linux back in days of Mint Julia. I remember it certainly wasn’t rock solid. Version 2.6 has greatly improved and I have yet to experience a full on Banshee crash with 2.6, even in Ubuntu 12.10.
That said, Banshee likes to devote all its attention to scanning your music library for the first time so don’t disturb this ritual or you could temporarily lock it up. The full install of Banshee with dependencies took 72.9 MB, 45 packages total and Ubuntu’s repositories have many more plugin packages for Magnatune, Shoutcast, lyrics and all kinds of things.
* * * * *
You may not want Banshee handling video playback if you prefer VLC or something else. For video, Banshee can’t compare to VLC, SMPlayer, Gnome Mplayer or Totem for features and customization. If some video containers default to opening in Banshee, this is most easily remedied with a new .desktop file in ~/.local/share/applications. Just copy the main Banshee.desktop from /usr/share/applications and remove all the video mimetypes.
I found several annoyances with Banshee, mostly minor. When I set the program’s volume and search bar width, they reset themselves tbe next time I launchd the player. The volume can be modulated with the equalizer preamp but when I opened the EQ, there was no way to close its window without closing Banshee. Gapless playback didn’t work at all and there’s no way to hide the bottom status bar so if you don’t think the repeat button deserves its own toolbar, it’s just a waste of screen real estate.
Banshee’s CPU use was mostly good. When paused, it bounced from 0 to .3 to .7 percent every 5 seconds or so. Changing tracks in Banshee spikes CPU use up to 23.6% – 37.4% percent while playing music varied between 6.0% and 8.7% but mostly stayed around 7%. Banshee idled at about 39 MB of RAM and reached to just under 60 MB during playback for an hour.
Shortly after importing my library, Banshee connected to musicbrainz.org to download any remaining cover art which wasn’t already embedded. This was all it did for internet connections and online cover art fetching is a plugin which can be disabled. There’s even a selection in the Preferences, “Disable features which require internet access.”
Beatbox left me with an impression beyond expectation. It’s a straightforward music player with a clean, well laid out interface and some useful extras like Last.fm scrobbling, URL streaming, lyrics and support for USB mass storage devices & iPods.
The “Wow” factor for me was a neat trick in the program’s GUI. I preferred the cover art view and what’s great about it, and what no other player in this list handles with such fresh finesse, is how you access tracks from there.
If you want to play songs in a particular album, you double-click on that album and a popup window opens with the track list. It stays open until you close it, even if you change view to a playlist, podcast or something else. There’s also the traditional library list view if cover art isn’t your candy.
Another plus is that Beatbox is one of few players on this list which lets you search your library simply by having the player as the focused window. No need to place the cursor in the Search bar, just click anywhere in the main window and start typing an artist, album or song name. Beatbox will return accurate results. I absolutely love scouring though my music like this.
Beatbox was well behaved with resources. It started into about 30 MB of RAM which moved into the mid 50′s after playing for an hour. CPU on idle did the 0, 0.3, 0.7 thing every 5 seconds or so, playback increased CPU to between 4 and 6 percent and skipping tracks took between 12 and 15 percent. Install size was 5 packages and 6.5 MB on disk.
* * * * *
Alright, so what are the downsides? This player is a hobby so developmental pace is not necessarily as quick as the bigger names, but a Raring build is in the works as of late April. Until that’s ready, Beatbox is only available by .deb or PPA for Precise, Quantal and their Ubuntu based cousins.
I first installed Beatbox into Mint Maya from the DEB file but the player didn’t launch. Terminal said something about an undefined symbol. Reinstalling from the Beatbox PPA included two more packages (libgranite-common and libgranite1) but fixed the error. A minor but annoying inconsistency is the white Settings icon on the top right from the Elementary theme which clashes with the others when using Faenza.
Beatbox was built with the Last.fm API but unfortunately no way to turn it off. This means that the player will make a TLS encrypted connection to ws.audioscrobbler.com for every track change. This is also when the lyrics plugins are disabled and a Last.fm account was not being used.
While Beatbox was the only player which communicated over the internet with encryption, this always-on behavior is unnecessary, undesirable and even a bit careless. The connection can be stopped with a UFW application rule to block Beatbox from the IP address, or IP range in case the API has several backup addresses. Other than the audoscrobbler thing, I really fawned over this player. Too bad it’s no longer being developed but Noise is a worthy successor.
Clementine is nothing less than a titan. It originated as a fork of an earlier Amarok version but you don’t need KDE libraries installed, just a few for QT. Thus the install size is only 10 packages totaling 21.3 MB including dependencies. Not bad at all, especially considering what you’re getting.
In addition to the obligatory base features, Clementine does transcoding and can connect with iPod, MTP & USB players, then further integration with Google Drive, Spotify, Last.fm, Grooveshark, Icecast, Jamendo, Jazzradio.com, Magnatune, Sky.fm, SomaFM and SoundCloud. You can assign custom shortcut keys & notifications, there are lyrics, artist biographies, concerts in your area and similar artist recommendations to name a few more.
Then there’s Background Streams; three different sound which play as background noise while Clementine is running. When you play songs, the streams are still audible underneath and you can adjust their volume levels independently against the main playback volume. You get rain, a kind of low rumbling or wind noise and then something called Hypnotoad. This is a tone distortion likely used as an interrogation tactic at absurd decibel levels and timespans. From Zen in the rain to hanging by your wrists for 8 hours a day, Clementine give the full spectrum of experience.
* * * * *
You would think such a program would have a large memory footprint but Clementine was very well behaved with RAM use. Memory on startup stayed around 30 MB and eventually ran up to the mid 80′s after playing for several hours. Though it scores at the higher end of this list, processor use is good too. While idling, Clementine doesn’t use any CPU, it didn’t even do the constant 0.3, 0.7 CPU bumps like nearly all other players did. Playing songs meant that CPU was between 14.6 and 18.3 percent and changing tracks used between 22.3 and 30.3 percent.
However, just like with Audacious, turning off the frequency response visualization reduced playback processor use down to 12-13%. Disabling both the freq analyzer and the playlist’s glow animation brought CPU down to 8.7-10 percent. Creating song moods took the most processing power (up to 215%) but they can be disabled or saved for future imports.
* * * * *
I did catch some internet activity from Clementine. A few seconds after launching, the player connects to Magnatune and Google. If you don’t use it, Magnatune can be disabled which will stop that connection. The Google call, however, persisted even when all the extras were disabled.
Clementine sends a GET request to a 1e100 server wanting my geolocation (by IP address) info and Google responds with the date and time, my city name, latitude & longditude and country. This happens every time Clementine starts and the developers said it’s used by the Songkick API to find concerts in your area for artists you’re listening to.
I was assured this info is not sent to Clementine’s servers (which some further packet sniffing confirmed) and this location info is not kept in Clementine’s local database on your computer. If you don’t want this geolocation call to happen, there’s no way to stop it from within the player itself. The easiest way would be to block the IP address(es) with UFW as mentioned with Beatbox.
I was excited to finally try DeadBeef after seeing it mentioned often in comments on various sites. They formed the idea in my head of the player having an underdog, Fight Club kind of image. While not in Ubuntu’s repositories, Deadbeef still has a loyal following. Add to that a coarse name and an icon which looks recovered from a UFO crash site and we’ve got a recipe for something kickass. Dammit I hate hyping things up to myself.
Deadbeef is ultra minimalistic, even moreso than Audacious. Similarly, Deadbeef will only play songs from folders, a URL stream or a CD. There’s no ripping but you can do transcodes; no crossfading, podcasts or MPRIS interfacing. You can set hotkeys, there’s a visually impressive 18 band graphic equalizer and there are several plugins available from the Deadbeef website which aren’t included in the with the player.
Using Deadbeef took me a few minutes to figure out that it works a lot like Winamp. You can add a specific folder of songs from anywhere, or all your ~/Music contents for one huge playlist. You then hunt through your list (Control f) and can set up a queue and other playlists.
The plugins packaged in the DEB installer didn’t seem to work or I didn’t figure out how to enable them. Cover art, the info bar and importing .pls & .m3u playlists all did nothing. Disappointed, yes, but I did not investigate further. The player was 13.8 MB installed and did not need any extra dependency packages.
For memory use, Deadbeef started up using just over 10 MB and after an hour of listening, it got up to 14.2 MB. CPU use was good but not great for such a basic player. Idle (minimized & not playing) was constantly varying between 0 and 0.3 percent and but during playback it was as low as 5.3% but as high as 10.6%. Changing tracks had no definitive CPU spike and most of the time Deadbeef stuck close to 6.3%. Deadbeef made no internet connections on its own.
Yet another player I never tried before. Exaile feels similar to Audacious but comes with a lot more extras. You get plugins for DAAP, Jamendo, Librivox, Last.fm scrobbling, CD ripping (incl. VBR MP3s), lyrics, iPod & USB devices, moods and plenty more. Install size of the 5 required packages for Exaile was 7.7 MB. Startup memory use was about 40 MB and went up to the mid 50′s during playback.
CPU on idle was mostly at 0% with the occasional bumps to 0.3 and 0.7 percent. Exaile was otherwise erratic with CPU use. During playback, it peaked at 10.7 and dipped as low as 4.3 percent but was mostly around 8%. Changing tracks showed between 11.7 and 26.6 percent.
* * * * *
Now for a true story. I installed Exaile and right away imported my music. After going through a few tracks I noticed the cover art I meticulously embedded into each song’s ID3 tag didn’t show in the info area. Edit – Covers – Fetch Covers. Fixed.
Now Exaile is reading the JPG images from a locally stored cover art cache it created. But now Exaile is also using 217 MB of memory. Two tracks later that increased to 544 megabytes…seriously. I then noticed that changing tracks shot CPU use up to a minimum of 23% but worse was that changing songs froze the entire desktop for a solid 5+ seconds. This happened regardless of whether track changes happened manually or by the player. Can you say Deal Breaker?
Exiting and restarting the program restored RAM to a sane level. From then on, sometimes when I used the player, memory increased again to about 215 MB where it stayed even when the music was stopped and player minimized. Other times, memory used was in the normal 55 MB vicinity. I deleted ~./local/share/exaile/covers and that restored order to the chaos. There’s also a setting to not display cover art but that made no performance difference once the cache was created. Besides, I didn’t embed all those images for nothing.
Needless to say, Exaile was useless for me but would otherwise be a good if it were stable. A quick internet search didn’t turn up any other people’s issues with the destktop freezes so who knows what was going on there. MPRIS integration didn’t work either, which I need to get through the day. The Last.fm, lyrics and other plugins which need the internet can be disabled so Exaile makes no outbound connections.
Gmusicbrowser is a different animal than what’s been covered so far. It’s a jukebox player which specializes in big music collections and huge GUI customization. Its party piece is the ability to mimic the visual layout of several other music players including Audacious, Exaile, iTunes and Rhythmbox.
While it’s not an exact match and the skins naturally lack areas of functionality found in those other players, it’s welcome if you don’t like Gmusicbrowser’s standard grid layout (which I didn’t). Many of the skins I found cluttered and generally unappealing but eventually settled into Shimmer Netbook. Even that tested my patience because the less than intuitive grouping options took some learning. Subjective? I would never...
A unique trait to Gmusicbrowser is playing tracks at random by default from anywhere in your library. You can lock the player on a specific artist or album and create filters to exclude, or confine the player to, certain chunks of your music. Even then, it won’t play songs linearly, which is kinda cool. For extras, the player gives you ID3 tag editing, Icecast & Last.fm support (no podcasts) and plugins for album info, lyrics, karaoke and various other things.
* * * * *
Gmusicbrowser is also lauded as being very economical on system resources. Yet for all the talk about lightness, this player did nothing special. It needed 31 additional packages for a 14.6 MB total installation size. It launched right into 62 MB at idle which settled into the low 80′s after an hour of music playing and skin changes. At one point I even spotted it at 91 MB. CPU hit 0.3% every 3-5 seconds when paused and varied from 5.7 to 7 percent during playback. Most of the time it stayed around 6.7% and changing tracks increased CPU to between 9 and 11 percent.
I first found interacting with Gmusicbrowser like trying to slay a hydra without fusing the neck wounds. I swear there were a few times when I opened the player and needed to reset all the GUI changes I made. MPRIS didn’t relay cover art to the taskbar controller like it should and the non-linear playing is awkward if you’re not accustomed to it or don’t want it. Then there was the Elementary theme’s Settings button which didn’t match the rest of the Faenza theme, just like with Beatbox.
I did grow into the player and I do really like it’s jukebox-ness & the netbook view. If you just want to start a music player and have it randomly crawl through your library, Gmusicbrowser is for you. It also made no unsolicited internet connections.
Instant -100 for requiring a settings fix to work. On first launch, Guayadeque refused to import any songs. The player automatically set itself to ~/Music but rescanning the library was futile. Eventually I figured out that I had to go into the Preferences, then Collections and set Default Copy Action from blank to Default. Really..? Obscure setting sure is obscure.
Guayadeque gives you scrobbling for Last.fm and Libre.fm; Jamendo, Magnatune and lyrics. It lets you record to MP3, OGG or FLAC which no other in this list does. Forcing gapless playback still resulted in a gap between tracks, yet when I unchecked gapless playback, the crossfade worked.
Guayadeque needed 4 packages and used 18.1 MB of disk space. Then there was just under 18 MB of RAM used on start which moved into the low 50′s on playback. CPU use stayed around 8.7% during playback, peaking at 10.7 and dropping to 8.3 percent. CPU while changing tracks was between 22 and 27 percent and while idle, skipped from 0 to 0.7.
Guayadeque has intelligent playlists where it can add tracks from your library to a currently opened playlist based on what’s already in it. Wireshark showed how this works; Guayadeque asks audioscrobbler.com for similar tracks to the playing song and is then served a list. If any artists or albums on the list match what’s in your library, they’re added to the playlist. Guayadeque also has bulk editing ID3 tags which is incredibly useful if you’ve ever assigned tags to hundreds of albums.
Again courtesy of Wireshark, there’s no way to turn off lyric or cover art fetching. You can hide the tabs from view in Guayadeque, but GET requests are still sent out to lyrics.com, lyricsmania.com, images.amazon.com, coveralia.com, loudson.gs, lettras.mus.br, among many, many others. The player tries a lot of different sources for lyrics and cover art before giving up so Guayadeque will spit out a lot of internet traffic if you listen to lesser-known artists.
As mentioned in comments in Ubuntu’s Software Center, Guayadeque takes album art and creates a cover.jpg file in the album’s directory. I wasn’t ecstatic about that and it seems that even though Guayadeque still creates a cover art cache as other players do, it’s only used for some things. The cover.jpg files were full size extractions of the album art I embedded in each track so I thought it pointless to write all these image files I must now clean out. +100 for directory backups.
Juk is another KDE player so like Amarok, if you’re not already using KDE or programs with KDE depenencies, you’ll find yourself pulling in 104 packages totalling 178 MB installed. Juke is like a KDE built version of Deadbeef, Audacious and some of the other more simplistic players. You get Last.fm scrobbling, cover art, bulk file renaming and bulk tag editing but no song ratings.
There is no URL streaming or podcasts, track crossfades did not work and I’d prefer the Artist/Album playlist links did not look like web links longing for a CSS file. Then again, I wouldn’t have clicked on the titles if they hadn’t looked like links. Ah, social engineering, you win yet again.
Juk varied between 5.3 and 8 percent CPU during playback and 15-20 on track changes. CPU when idle was 0 with no variation or tiny rises like with other players. The player launched to barely over 20 MB of RAM and increased to the low 50′s after playing for an hour.
ys show song info (MPRIS broken) and each time Juke changed a track, it contacted lyrics.wikia.com. This was despite the lyrics option being unchecked and the pane hidden from view so there’s no way to disable that. Sloppy.
MPD, or Music Player Daemon, is a server daemon which plays music locally, from remote sites or from any client device you connect to the MPD server. The default configuration for MPD is to listen on localhost so it’s not accessible over a network, it doesn’t send any data over the internet and it supports TCP wrappers if you do use it with remote servers.
Getting MPD up and running in Raring was a matter of installing the main daemon (6 packages, 1.5 MB) and adding my user to the Audio group (sudo useradd -G audio your-user-name). Then I could edit /etc/mpd.conf and tell it where to find my music library. The conf file also controls gapless playback, replay gain, output server (Pulse, ALSA, etc.) and other more advanced options.
There are several frontend packages for MPD. I tried Gnome Music Player Client, Sonata and Xfmpc. Gnome MPC is the more feature-full of the three. It gives you the usual base features, lyrics, guitar tabs & that kinda stuff and doesn’t bring any Gnome packages into Unity (3 total, 9.5 MB). Xfmpc is another super minimalistic interface but easy to use. It does need a few XFCE packages for 9 total, 3.5 MB installed. Sonata’s features are somewhere in-between Gnome MPC and Xfmpc with lyrics, URL streaming, cover art fetching, crossfading and Last.fm scrobbling. It installed 5 packages for 3.8 MB.
MPD itself started up to 10.9 MB of RAM and didn’t move from there. CPU was between 1 and 2 percent during playback and jumped up to 3% for track changes. When idle, MPD occasionally went up to 0.3% CPU. Gnome MPC, Sonata and Xfmpc all showed similar CPU use as the MPD process but the memory was about 15-25 MB, 20-30 MB and 5-15 MB, respectively.
Embedded cover art didn’t work. Sonata and Gnome MPC would only display downloaded covers (no cover support in Xfmpc). The package mpdris2 will give you MPRIS support and the volume control in Gnome MPC also didn’t work.
Ok, so for internet connections, MPD itself of course made none when set to localhost, all connections were 127.0.0.1. Sonata and Xfmpc wanted nothing to do with the internet either. Gnome MPC on the other hand, connected to many different addresses; Last.fm, Akamai Technologies, discogs.com and server4you.org. Disabling cover art fetching and metadata handlers stopped the connections.
Nightingale is a leviathan of a program. A fork of Songbird which dropped Linux support some 3 years ago, it plays audio, video and has its own web browser. It’s not in the repositories but there is a PPA for Ubuntu and tarballs for anyone else.
Getting Nightingale to work was nightmarish and when it did, it lacked that Soviet missile train level of solidity I like to see. I first used the PPA to install Nightingale into Ubuntu Raring which proved monstrously unstable. Segfaults, core dumps, mysterious Mozilla-related errors, Unity errors—it was a mess.
Then I went into Mint Maya and grabbed the tar.gz from the player’s website. Since Cinnamon has a Gnome 3 skeleton, I opted for the tarball with Gnome/Unity integration. In Maya, Nightingale finally would not crash but there was no system integration at all. The player runs from wherever you extract it and there were no notifications or menu entries—nothing. This could probably be resolved with some tinkering or at least creating a desktop file, but I can think of a thousand other things I’d rather do.
Nightingale’s immediate impression is the disarray of waking up and not knowing where you are. The player is built with Mozilla’s XULRunner runtime environment so while the interface looks like iTunes DNA with a Blackbird GTK theme, most menus are straight out of Firefox because the program basically is half Firefox. I’m not complaining about it’s appearance, it’s just that suddenly the snozberries didn’t taste like snozberries anymore.
The fonts were very small on a 1366×768 resolution display, clearly not matching the system’s font settings and no changes made them larger. This rings similar to the font rendering issues with Firefox & Thunderbird from back in the Ubuntu Maverick era. Menus sometimes were blank until I moused over them from top to bottom, then the contents became visible. Embedded cover art didn’t show, I couldn’t get the player to fetch cover art and I don’t know what was supposed to happen in the Visualize Your Sound window, but nothing did. Fortunately it can be collapsed.
* * * * *
On top of the usual features, Nightingale gives you lyrics, Last.fm, Mashtape, Shoutcast MTP and USB device support, ID3 tag editing and SoundCloud. Then there are more extensions on the project’s website and you can do some minor layout changes to the library viewer, but most of the settings available are for the browser.
The extracted size is just under 185 MB and Nightingale launched with a hair over 71 MB of memory used and rose to just over 103 MB after an hour of music. That was without web browsing which would obviously kick that number up a lot. CPU while idling was 2-6 percent and playing a track was in the 16-21 percent range. Without scrolling lyrics, you’ll be around 11-12 percent and changing tracks used from 21-37 percent.
When you start the player for the first time, you’re asked if you want to send anonymous usage statistics. I checked yes to see what would happen. Every following time Nightingale launched, it makes connections to Google Analytics with some header info related to Nightingale (user agent string, encoding & charsets, keepalive time, etc.). It also connected to Nightingale’s servers to retreive locale and language pack info. I’m assuming that not checking the metrics submission option on installtion would stop at least the Google calls.
On track changes, Audioscrobbler, lyrics sites and Google Translate are contacted. Nightingale is set to translate lyric text by default but these connections can be stopped by disabling the relevant services. The inital connections when the program is launched, however, cannot be disabled as easily. You could either use UFW like with Beatbox & Clementine, set Nightingale’s proxy (in Network Settings) to 127.0.0.1 on port 80 or remove ~/.Nightingale and rebuild its profile without metrics reporting.
Most will recognize Rhythmbox as the default music player for Ubuntu and it’s certainly a great choice. There are several Rhythmbox plugin packages in Ubuntu’s repositories but the main rhythmbox-plugins gives you Last.fm & Libre.fm, support for DAAP sharing, iPod and MTP devices, lyrics, online cover art fetching, CD ripping (no VBR MP3′s though) and some other things.
Then there is fossfreedom’s PPA which gives you more extras, including a 10 band EQ, a lovely cover art browser (which is what the image above shows) and even more extras. For reference to those who don’t have Rhythmbox installed by default, Xubuntu 12.04 needed 21 additional packages for 11.4 MB of disk space and Mint Maya needed only 5 packages using 6.5 MB.
Gapless playback didn’t work when Rhythmbox changed tracks on its own. If I manually clicked to the next song (either in the taskbar or the player itself), then the crossfade happened. Rhythmbox was the 2nd of 3 players here which gave me my beloved artist seeking without using the search bar. Clicking in the artist pane and typing a few letters was enough.
Memory on start was around 30 MB and went into the mid 50′s after an hour. CPU use was great and varied from 4.0 to 5.7 percent while playing, 9.3 to 14.3 while changing tracks and mostly stayed at zero while paused. Rarely it hit 0.3 for a moment. The broken crossfade bumped CPU use up to between 5.5 and 7.3 percent during playback. Rhythmbox also made no internet connections unless asked to.
Tomahawk’s primary focus is extensibility for online content. It combines a gazillion different streaming sources and social features with your local music collection for accessing music on your accounts and those of your friends.
Resolvers is the term the developers coined for plugins that connect many different online accounts with Tomahawk, including Grooveshark, Jamendo and Spotify to name a few. “Whenever Tomahawk is looking for a song, it searches all of your available content resolvers and then plays it from your best available source.” says Tomahawk’s website.
There are APIs for extra playlists & web features and if that’s still not enough, you can connect to NAS devices and other Tomahawk instances on the local network. You can create links to songs for using in toma.hk, a music search engine which you use through your web browser. It pipes tracks to your Tomahawk player but I’m not sure how it works beyond that & did not look into it.
Now, I don’t actually subscribe to any of these streaming services so I looked at Tomahawk mainly from the standpoint of a local music player…which is like trying to view a nuclear submarine solely as a mode of transportation. All the focus on social means less emphasis on local playback. There’s no crossfading or equalizer and the only settings available which aren’t for online use are for telling Tomahawk where your local music is.
However, if you do social up and connect other services, but sometimes don’t want Tomahawk interacting with your online accounts, you can check Listen Privately in the settings menu. Multi-booters would be happy to learn that Tomahawk is also available for Apple OS X, all major Linux bases and Windows.
* * * * *
What did I like about Tomahawk? I liked the overall look & feel though the interface can become claustrophobic on a 13″ screen, I liked the idea of staking out their niche with the social stuff. Commitment and specialization isn’t a bad thing, even if some services are limited to the United States. I liked the kind of Toma-Meshnet via LAN idea and Tomahawk by far gives you the most choices for similar artists than any other player, so I definitely did a lot of note taking.
Despite the eye candy and pretty effects, Tomahawk was remarkably courteous with CPU use. Top showed CPU between 14-15.6 percent during playback, 4-5 percent on idle and bumped up to the area of 19% when changing tracks. Tomahawk first started up to about 43 MB of RAM and reached up to 223 MB after after 10 tracks. From then on when I used it, Tomahawk stayed in the general area of 70 MB. Using the main PPA, Tomahawk needed 11 extra dependencies for a total of 22.1 MB of disk space.
And on that note, Tomahawk has several behaviors which are unintuitive, unexpected or simply unappreciated. Here’s one: The My Collection overview doesn’t immediately show album art. It shows you pictures of the artists themselves. These images are photo shoots, live performances and other band art downloaded from various online sources. I actually liked that for the variety. What did not please me was that if you restart Tomahawk, it re-downloads all these images because they (and the album art) are not stored in a local cache. That’s simply careless bandwidth use and my beloved embedded cover art did not show unless Tomahawk was online.
The first time I used Tomahawk, every artist I played was added to the Search History in the left sidebar. After a short amount of time, this became a scrolling mess. Every succeeding time I started Tomahawk, it didn’t even show the search bar unless I did actually search for something. Not a big deal but…bug or learning feature?
The main search bar is for online content only. If you want to search through your local music, you must use the filter bar in My Collection. Though you can search for anything, only artists are returned as results, not songs or albums so you must drill down through the menu from Artist to Album to Song. Tracks don’t play from one album to the other unless queued and you can’t clear a queue unless you play the song (but not its entire length). Anything selected in the right sidebar meant the font color was the same as the background, white on white, so it was unreadable. You can see this in the screenshot, it’s a bug but I know it doesn’t happen in Tomahawk on 12.04.
It probably goes without saying by now that Tomahawk is not a good choice for people with pay-by-bandwidth internet plans. The only way to keep Tomahawk offline is to either block it in ufw or disable the internet connection.
Quod Libet 2.4
According to the FAQ this player’s name means ‘whatever you want’ or ‘whatever you please’ in Latin. Quod Libet boasts scalability for massive libraries (10,000+ songs), complex expression searches, bulk tag editing using Ex Falso (same development team), USB player support and plugins for audioscrobbling, lyrics, custom notifications, online cover art fetching, muting radio ads and many other things.
Right away I noticed that Quod Libet has my favorite feature to click anywhere in the window and start typing to search (3 of 3). Writing this article has broadened my enthusiasm for streaming services so another big attraction for this player is the enormous selection of radio channels for a myriad of genres and languages. Great if you’re always on the lookout for new music so this impressive little player will definitely be in my final considerations.
Quod Libet had one instance of misbehavior. I closed the program through the sound menu in the taskbar and though the player’s window disappeared, it kept playing and I had to kill the process.
RAM started to about 35 MB used and reached into the high 40′s on playback but after some time going through the radio stations, it was in the high 70′s. CPU was between 3 and 5 percent when playing while changing tracks was between 6.3 and 7.3 percent. Quod Libet made no unsolicited internet connections.
From Synaptic, “XMMS2 is a redesign of the XMMS music player. It features a client-server model, allowing multiple (even simultaneous!) user interfaces, both textual and graphical”. The xmms2 metapackage in Ubuntu’s repositories gives you the console based player and support for MP3 and Ogg Vorbis playback. Decoding for any other formats are through the multitude of plugins in the repos.
If you don’t want to use XMMS2 by command line, check out LXMusic as a GUI. It redefines minimal—creating playlists, searching your library and repeat playback are literally all you get, but almost everything worked (except for the Tools menu) which was only slightly more than could be said of the other frontends I tried.
I also took a look at Abraca, Esperanza and Promoe. Abraca was basically dead on arrival (sorting library, search bar, creating playlists didn’t work), Esperanza couldn’t read ID tags with Cyrillic letters but was otherwise alright. Promoe was a Winamp sytled interface and also couldn’t display non-ASCII tags. There are others GUIs available but XMMS2 is a console player. The GUIs I tried are second thoughts to make the XMMS backend somewhat more palatable.
Both the front and backend services were completely stable while I had 5 heads to the server open simultaneously (2 for Esperanza, apparently), messing with settings and changing tracks. I expected some stuttering or errors, maybe even a crash but all was buttery smooth. Then again, I’m not on Quantal anymore.
Unsurprisingly, XMMS2 was very light on resources. 10 packages & 2 MB of disk space and from 4.8 MB of RAM to 12.7 MB. CPU started and stayed at a mere 2.3 – 3.3 percent nearly always, but there were occasions when I caught it spending some time up around 10% with no input from me. The four graphical frontents I tried used within 7-15 MB of RAM and from 2 to 4 percent CPU. None of the XMMS2 clients, nor the server process itself made any unsolicited internet connections.
I didn’t include Xnoise in the original writeup because I was unaware of its humble existence. But now that I am the wiser, the only thing left to say is that Xnoise is truly superb so it must be added. It’s so tight and well tuned; it’s responsive, stable and a pleasure to use. For anyone who wants an audio & video player without other bloat, you can’t afford NOT to try Xnoise. There’s a PPA for Ubuntu, source code of course available and Xnoise is currently in the process of being admitted to Debian’s repositories.
I wouldn’t call Xnoise minimal, but like with the other minimal players here, Xnoise only plays local files and stream from URLs. There are plugins for Magnatune, lyrics & cover art fetching and Last.fm, you can set custom keyboard bindings and edit id3 tags. It also has a very sexy album view which was integrated well with the main playlist view.
The first thing Xnoise does on startup is ask if you want to import your music. You can import multiple locations so you don’t need all your media in one folder. Not many other players can handle more than one import directory so another tip of the hat to Xnoise. From there you wait a few minutes and begin. Using Xnoise was easy & intuitive but uneventful in a good way.
A lot of effort went into making Xnoise as lightweight as possible and it definitely shows. It takes a mere 6 packages and 5.6 MB of disk space. It started up to 35MB of RAM which increased to the mid 60′s after more than an hour of playback. CPU use was wonderful, staying between 4.3 and 5.7 percent while playing but if Xnoise is closed to the notification area, playback processor use decreases to around 3.7-4.7. Xnoise doesn’t have the 0.3, 0.7 CPU ticks when stopped and though changing tracks used around 10.3% CPU, I did spot it bump up to 17.7 once. Forgivable.
Xnoise is set to download song lyrics by default but it only does so if you click on the lyrics tab. With the lyric downloading option disabled, the tab is gone and Xnoise makes no internet connections.
Alright cats & kittens, that’s all I’ve got. I’m now officially tired of all my music but I’ve spared nothing in the name of discovery. My conclusion? I’ll keep Audacious, Banshee and Rhythmbox installed and see which I prefer over the next few weeks. Maybe I’ll hang on to Quod Libet too...and Clementine...or Beatbox when it’s released. I dunno. First world problems + too much choice = meh, I’ll go make a sammich.