Playing music on the computer

Continuing difficulty thereof

November 26, 2014 — April 4, 2022

computers are awful
faster pussycat
making things
music
photon choreography
standards
Figure 1

1 Desktop listening

Alternatives? Too many, mostly indifferent. Luke Baker reviews media players that work on Linux specifically, and slant does linux/macos and geez there are a lot and if just a few of them pooled their efforts I bet the outcome would be awesome. As it is…

My requirements are simple, I think. I would like a music player that

  1. …plays music from my hard drive, in all the common modern formats.
  2. …allows me to mark a song I like while it is playing so that I can find it again.
  3. …allows me to track which music I recently added to my collection so I can hear it and decide whether to keep it.
  4. …does not require the bulk of my CPU cycles or RAM to list or play music.
  5. …runs on my linux machine or, even better, cross-platform on mac windows and linux.
  6. …does not index every audio file on my computer, or even in my Music folder, because I work with audio as a musician and an audio machine learning researcher, and have hundreds of gigabytes of drum samples and audio training data, far outnumbering songs, and I will never wish to shuffle-mix individual snare one-shots into my dinner-time music, especially not at massive cost in RAM.
  7. …(optionally) allows custom metadata for keeping track of dj-able tunes (metadata, tags).
  8. …(optionally) plays streaming music servics.
  9. …(optionally) handles music scrobbling, tracking, recommendation etc, but NBD if not.

These do not seem controversial requirements to me, but they are fulfilled by few of the players out there, as far as I can tell.

1.1 iTunes

⭐️⭐️

It syncs to my phone, good. It integrates well into the OS. There endeth the advantages. Whilst it was cutting edge when I first started using it more than 15 years ago, iTunes has stagnated in features and forged ahead with annoyances even as it slides backwards on performance. It uses huge amounts of CPU to play music. It is increasingly based on streaming music from the cloud which is nice if you live in Silicon Valley and don’t DJ. I don’t live in Silicon Valley and fail to not DJ, so I seek other alternatives.

1.2 Amarok

⭐️⭐️⭐️

Amarok, (Linux, windows kinda, macOS not really) the KDE default player, is not bad even if it seems only intermittently updated. Its internal ecology of plugins and extension resembles the overall music player ecosystem, which is to say, it co-mingles enthusiastic innovation and broken-hearted abandonment. It has scripting based on elderly javascript. Works fine, and currently sort-of actively maintained, although not so active; one has the feeling the developers are latchkey parenting here.

1.3 Clementine

⭐️⭐️⭐️⭐️

Clementine, (windows/macOS/Linux) is a Qt4 fork of the sporadic Amarok. It did seem itself to be abandonware for a while, and maybe is again? This is what I currently use on macOS. It is fast and more-or-less-ok, UI-wise. The graphics are a little dated and it is hard to find the metadata edit button. It has notionally many useful features, supporting streaming services and online metadata services, last.fm scrobbling, and quixoticaly weird features, like Wiimote control. Half-baked ambition is Clementine’s watchword.

There are various bugs easter-egged through it, such as claiming to play spotify but giving you an error if you try. The worst of these is the library management; It will helpfully move files into the library for you and give them useful names and metadata and so on so you can find them again and sort them and such. However, under certain circumstances it will delete the files instead. I do not care enough to work out when. I suspect it is something to do with case sensitive file systems, or NTFS file systems, or something, or just an interface that is designed as if on purpose to make you shoot yourself in the foot.

1.4 Strawberry

⭐️⭐️⭐️⭐️

Strawberry (Windows/Linux/macOS) is an active Qt5 fork of the inconstant Clementine, which is a Qt4 fork of the sporadic Amarok.

Do I care about which number Qt all these forks use? Not especially. The difference to me as an end user seems small. I’m not a C++ guy though, so maybe something important happens. Strawberry seems exceedingly similar to Clementine to me and I do not know how to choose between them. Strawberry had a new release more recently, so is fresher/moderner/better? It has fewer features than Clementine, but the features it does have seem less buggy.

1.5 DeaDBeeF

⭐️⭐️⭐

DeaDBeeF (linux/macos/windows) gets good reviews. It is functional and fast. It supports plugins in C.

Shortcomings: There is no capacity to write useful metadata, such as “I love this song”, so it is hard to come back to tracks or mark them for later use in your DJ set or whatever, so it fails at point 2. You can make playlists instead, which is not that smooth. There is no notion of keeping track of recent music, so it fails at point 3.

1.6 Rhythmbox

⭐️⭐️⭐️

RhythmBox is capable and fairly efficient. AFAICT it was the GNOME default player for a while. It has been superseded by the sexily-named GNOME Music. It includes plugins such as a file organizer and python extension API. I’d probably want to use beets or quod libet if I really wanted to hack my music player though. Nonetheless, it is a solid low-fuss music player that just goes and is available without any special installation.

1.7 GNOME music

⭐️

The GNOME music standard is GNOME Music. Its unique selling proposition is that it leverages built-in GNOME infrastructure including something called Tracker which should make it simple to manage files and such I suppose. That sounds nice. However, on my computer it crashes on startup, probably because of point 6, so it is dead to me. It might be worth revising one day when I have restructured my music folder or the software is better.

1.8 Banshee

Banshee is another lineage of music player; I have a vague notion from some internet forum that Banshee does good metadata management, and in particular BPM detection? However it does not install easily on ubuntu. Something something antiquated package management system etc.

1.9 Lollypop

Another GNOME music aspirational standard, Lollypop claims to be… nice? I am just so very tired of trying out new music players and I have not got to this one.

sudo add-apt-repository ppa:gnumdk/lollypop
sudo apt-get update

1.10 Melody

Melody is another slightly different player that also tries to sync music to my phone. How do people have the energy to get out of bed and face the day, knowing that there is such a looming horde of music players ready to pounce upon them?

1.11 Swinsian

Swinsian (USD20, macOS) is a simple music player that tries to preserve the good bits of iTunes and not the rest. Consequently, it is a tiny fraction of the size of iTunes. I think I bought it? But then my Mac died.

1.12 Beets

beets, the extensible open-source music manager, claims to do music playing too, via the browser

Supports automatic machine listening-driven metadata management, which is neat. How many of these plugins are well maintain, though? How much debugging do I wish to do around the experience of expeditious finding classic songs on demand?

1.13 Quod libet

quod libet is a kind of converse of beets in that it is GUI-first but has a sideline in metadata management and extensibility. It includes extensive command line support. I cannot remember what happened when I tried this; maybe it worked just fine.

1.14 XMMS

XMMS the primordial media player I can vaguely recall using for X11 in the year 2000, turns out to sort-of still exist, which is to say, radically altered and rebuilt progeny with the same family name survive. Will eventually try for nostalgia reasons.

A player called Audacious claims to be in this same lineage.

1.15 MPD

MPD abstracts away the desktop GUI entirely. It is a protocol supporting distinct music playing backend servers and frontend clients. Reportedly the protocol is in a state of standards logjam but it is probably functional and has a huge mass, an unmaintainable riot really, of clients. It is intrinsically networked so you can do cute things like having a collective smartphone party dj app, although that only sounds like a good idea until you have tried it.

Beets supports MPD via bpd. Luke baker also likes Cantata, which is a friendly frontend.

1.16 Tauon

⭐️⭐️

Tauon gets a at least one thumbs up review. It has such features as actually organising the files music library. Other highlights include

  • Import tracks and create playlists by simple drag and drop.
  • Batch transcode folders of music.
  • Last.fm scrobbling with track love support heart
  • Download cover art function.
  • Edit tags with MusicBrainz Picard (when also installed).
  • Keep track of play counts. Visualise these so you always know which tracks were your favorite.

My experience of it was short and unsatisfactory due to failing at point 6: not indexing all my hundreds of thousands of non-musical audio files.

1.17 Qoobs

foobar2000 is a cult windows player. Do I care about it? not enough to bother at the moment. There is a semi-clone called qoob that runs on non-windows platforms, based on a theoretically hackable and customisable python+QT framework combination. USP: hipster music in the screenshots instead of bland wallpaper pop.

1.18 Nuclear

Nuclear is an open-source streaming client:

There’s no need to use services that limit your freedom and seek to exploit you just to listen to your favourite artists. Nuclear empowers you to listen to what you want, where you want, and how you want, for free. Stream from any free source on the internet. Nuclear supports Youtube and Soundcloud out of the box, with a plugin system allowing for easy addition of more. Nuclear supports scrobbling to last.fm and updating the now-playing status.

Figure 2: The original version of Amarok

1.19 plex

Plex a freemium media playing system for pretty much every platform can also play music. I am unsure of features.

2 Spotify

Also plays local files and it OK at it. I am irritated that spotify constantly recommends various podcasters that I never want to listen to, but apparently I can fix this by injecting stylesheets into the desktop app using spicetify-cli, a “Commandline tool to customize Spotify client. Supports Windows, MacOS and Linux.”

2.1 Cassette tapes

Will continue to work after the apocalypse, more or less.

3 Karaoke

4 Music discovery

Slightly obsessive completist personality? Don’t worry, it afflicts many nerds. How about you channel that twitchy compulsion into something productive: analysing your music collection so that you can be a better DJ, which is the most socially acceptable type of completist obsessiveness there is?

So anyway, my preferred service in the quantified-self race was last.fm, which was delightful when it was ascendant and has now fallen on hard times. This catalogues your music listening history and puts it online, often with cute graphs. Hey, at least letting the world know about that is less harmful than other data people collected about you without your consent. Unfortunately, development has languished for years, and the client is shitty, enormous, slow, crashes a lot, and fills your syslog up with weird errors. I already have iTunes to do that.

One alternative to the last.fm client for Mac is mxcl’s dashboard scrobbler. Max Howell is a genius of minimalism, please send him free money. Also the Amarok-derived clients, like Clementine all support last.fm natively and some other apps besides.

Increasingly independent discovery systems like last.fm have become less relevant — one uses Apple music or Spotify or Tidal or whatever. But there is something satisfying about the ownership one gets from last.fm.

5 Mobile devices

🏗

6 Media centers

6.1 Custom hardware

Sonos, et al, for people who find wires too complicated, access to the audio to be too flexible, and a heavy wallet a great burden.

6.2 Generic hardware

Raspberry Pi or other SBC-based home media system hacks, perhaps?

There are complete distros that turn these boxes into media centres.

7 Media Center software

7.1 Volumio

volumio is a cheap computer-oriented player in the form of a music-focussed linux distro.

The boss of the project, Michelangelo, is an entertaining and lovely guy and his work deserves a shout out on that basis too.

Volumio is meant to be a headless dap (digital audio player), just connect it to your home stereo system or your DAC.

Then, connect it to your home network and control it just from a browser: Pc, Mac, Android or iOS.

Volumio can take your music from USB, Network Storage, streaming services like Spotify and act as a DLNA Player or Airplay receiver.

7.2 kodi

Kodi (formerly XMBC) is the media centre at the heart of lots of rasppi media centres. But how to package it up? A million different ways all of which are tedious to compare against each other and differ in ways you’d rather not know anything about! Welcome to the 21st century.

As a rule, the JeOS distributions run their own tweaked packaging systems so you have to do more work to get unsupported software, but less work to get supported software.

  • LibreELEC is a JeOS Kodi host. (seems active)

  • OpenELEC is a JeOS Kodi host. (seems a little slow on updates)

  • OSMC is a Kodi-focussed debian. Creators also make a pre-loaded one-board-computer device, the vero4k.

  • XBian

    Just like Debian, XBian incorporates rolling releases. This means that different from other distributions such as OpenELEC or Raspbmc, XBian doesn’t release fixed images that often.

    In contrast, XBian offers new package updates at least once a week. This means that new improvements and bugfixes are delivered quickly and easily.

    Sounds lofty. Should the ghastly design of their web-page make me nervous about their UX though?

jwz and friends hate Kodi.

8 Media server software

8.2 Subsonic

Subsonic. Airsonic appears to be an open source fork.

8.3 Jellyfin

Jellyfin is a streaming media server that plugs into media centers such as Kodi.

9 DJing

See DJing.