I'm very happy that I mostly listen to electronic music (house & techno in its various forms). The predominant way to listen to that is via DJ mixes and recorded Livesets. This field has always been ignored by the commercial streamers, and there is a culture of uploading sets to platforums such as youtube and soundcloud - where you can easily download (albeit youtube making things more difficult in recent years). Since a set is a minimum of 1hour, you don't care for song search, album art etc. You basically need 5-10 files to have music for weeks.
I'm using audacious on macOS installed via homebrew - it has a winamp-like skin. That was peak audioplayer design.
Something I don't get is if you search Spotify for some classic mixes, like Sasha and Digweed's Northern Exposure, for example, you'll find that someone has compiled a playlist of all/most/many of the individual tracks from the mix. But of course listening to the individual tracks is a completely different and much less enjoyable thing. I also don't get why people spend their time doing things like that on closed platforms.
Most of my favourite mixes, like the Global Underground series aren't on there at all. And that's just stuff that came out on CD. Some of the best mixes are things like Radio 1 Essential Mixes or live events.
I've also noticed some artists "redoing" their own tracks on Spotify. If you look for Chicane's Behind the Sun on there you won't even find the original, only a redone version that's nothing like the one you remember.
So yeah, having a personal music collection is still very important.
This is a very good list, thanks for sharing it. Despite having been on a music player journey like the author, in surprised to see several on the list I've not encountered before. This just tells me that the state of music players on Linux is extremely healthy, and that makes sense, it's the only os where the concept of owning your data exists, so of course time and effort is being spent on this part too.
In the end, for me anyway, I'm only listening to music and I didn't really care too much about what the player looked like, not as much as I thought I would. Even VLC, not mentioned here, is a well functioning music player and will do the job just fine.
Worth noting that most of these GTK4/libadwaita players are going to look out of place on anything that isn't GNOME. If you're on KDE or a tiling WM, Strawberry or one of the Qt-based options will integrate much better
I haven't really looked into this, but is it possible to make GTK4 apps look liek standard GTK2/GTK3 applications? It feels like every single modern GTK app I've encountered has that modern Rounded-Material look to them and ignores the window manager decorations.
I've found that libadwaita apps tend to look at least decent outside of their native environment, whereas QT apps near-universally look terrible outside of KDE.
Something that wasn't mentioned in the article - if you're coming from Windows and using Foobar2000, you'll want DeadBeeF https://deadbeef.sourceforge.io/
> You might say that owning is more expensive than renting, even with all the price increases. Sure. But I’ve paid for Spotify for ten years, from 2014 to 2024, and that’s a solid 1200€ with the old pricing. At the end, I had nothing to show for it. My carefully curated “library” was not mine - it was held hostage by a company that can up the prices at any point.
> [regarding spotify] At the end, I had nothing to show for it. My carefully curated “library” was not mine
Not just your library, but your listen history and your playlists. I was very annoyed that I had to pay a 3rd party company to export this data so that I could import it into listenbrainz and navidrome.
Anyway, I manage a homelab (read: a scrapbox ubuntu machine with 64TB of spinning disk attached) with 25,000 songs in it, and upon exiting my last position, spent my therapist-mandated "burnout recovery time" finally using `beet` to organize the damn thing. I still don't really understand beet, but now I have a semi-decent flow for abandoning Tidal: Find new released music on Listenbrainz, download it in Nicotine (filtering for >320). Idly browse a given user's other folders shared in Nicotine while waiting for downloads to see if they have anything else I want. Once done, `beet import /mnt/media/downloads/music2`, go through its flow, add anything to musicbrainz that isn't already in there, wipe the download directory when finished to clear out any cruft, and happily play it on Feishin on desktop (connected to my Navidrome instance).
I'm still sorting the mobile version of this out a bit. "Tempus" on F-droid seems the best Subsonic client, however unfortunately "offlining" music on it doesn't expose those files to the Android system or other apps, so I can only play those files within Tempus itself. That's not such a big deal when I've got my IEMs plugged directly into the headphone jack on my phone (yeah that's right I found a phone in 2026 with a headphone jack: sony xperia), but when I have my usb DAC plugged in, I want to use "USB Audio Player PRO" to bypass the android audio stack, and that can only play audio files it can find in local directories, no subsonic compatibility (but it does have a Tidal integration...). So lately I've tried just downloading playlists and albums from the Navidrome web interface on my phone.
Ah right sorry, I believe I was able to export my Tidal listen history but not Spotify. I did export my Spotify (and Tidal) playlists though, using Soundiiz. I tried to bang out a quick console script but it was tedious and boring so I just dropped the cash.
I’ve made GDPR data requests before as an Australian. The companies just side with always complying with it rather than working out who is actually covered by the laws.
None of the current solutions work for someone like me. I have multiple versions of the same album so the UI needs to incorporate labels, catalog numbers, etc. and the playlists need to accommodate disc subtitles and grouping. The only two players that allow me this functionality are both on Windows so there's little available for the collectors such as myself.
For most of my music listening needs, I self-host SwingMusic and keep it pinned in Firefox. Occasionally I'll open the music files directly with MPV or VLC.
The automatic lyrics fetching and playback sync in SwingMusic is pretty nice. My only complaint is that it doesn't let me do full-collection shuffle. Ideally it would also allow me to do something like "full collection shuffle but only of songs that I have never heard". Sometimes I'll pick up an album because it seems interesting but things happen and I forget that I added it and it might languish without listening to it for months or years.
I'm waiting a bit for this to mature before I try it out, but I've seen that there's a few ongoing projects to analyze your full music collection to do feature extraction and generate smart playlists using AI tools. I'm not sure if it'll pan out but it seems like a fun tool for exploring large music collections and possibly making unexpected connections.
This reminds me the blog one would write around 2006. Not the text content, but the pixelated font and pictures of winamp wibe like that.
Myself, I am rather happily using mplayer - without any gui. Initially it was practicality of not leaking memory - like many gtk+ apps would do. Now, it is pure utility.
Same here! But I recently switched from ncmpcpp to rmpc, which is a much more modern client! A lot more (easily) customizable compared to ncmpcpp as well.
Switching from winslop to linux last year (thanks Satya) I did expect some teething issues. The reality was a bit different than what I imagined: fedora kde the OS is rock solid, but the software choices are a bit lacking. Just finding a good audio player can be a pain, and eventually I settled on some foobar clone fooyin, which while lacking built-in audio conversion mostly does what I want it to.
MacOS however truly takes the cake. An OS that’s great for creative softwate, working with images, video, audio and so on, and every single music player is something designed by aliens and/or buggy and/or missing some basic features. I went through ~five different players just to find one that has a waveform seekbar, eventually finding it in quodlibet, which while somewhat functional fits in the designed by aliens part. Baffling.
Honestly, the best (if you don't mind a TUI) is MPD + a TUI client like ncmpcpp or rmpc. Lightweight, fast and since it is a server, you can control it from outside. You can even output the stream in various format to give be able to play it from anywhere, although if it is having your own self-hosted spotify that you want, just use navimdrome.
I tried using Strawberry a couple years ago. It suffered from a bug where every so often, playback just stops.
(Another bug was that the album art Strawberry displays is a severely downscaled, and then enlarged-with-obvious-pixelation, version of the art embedded in the file. It would be easier, and look better, to just display the embedded art.)
Shortly after I reported this, they decided they wanted to turn into a paid service.
For me peak musicplayer UI is still my customized foobar2000 setup on Windows.
I need a waveform, a playhead, a good browser that can do both metadata based libraries and dumb folders fast and without lagging, a way to build/save/view/load playlists and a way to queue songs.
Most players are just too basic or make the wrong or to many assumptions about my collection. Or the interface is just too cute and dysfunctional for my actual daily use.
This means on Linux I currently use either mixxx or just VLC player, but I surely haven't tested every possible mediaplayer.
TBH the only thing I care for (except maybe for playlist management) is gapless playback. There's no word about it, but I constantly find out that the new players do not really care about the gap, while the music I am listening to is always ripped from my personal CDs and they mostly have music continuing on two or more tracks. Why nobody cares about it?
Do you know this feeling when you get towards the High Hopes on The Division Bell and there's this ugly crack in between tracks?
My guess is not everyone is annoyed by that, or knows about the option. It was a nice surprise of qmmp, it switches to the next song without an extra pause.
I use it with a winamp skin from https://archive.org/details/winampskins, to add to the options. Not sure about streaming support, I use it with local files.
I'm a little surprised that anyone still plays music on their computer. Surely now we've moved into the era where we all have dedicated devices for that. Your phone for 99.9% of people, I'd imagine. And for the audiophiles there's a bunch of very high quality DAPs to pick from.
I can see why, when I work/focus, I like to use my computer instead of my phone because that's where my headphones are connected (easy switch for meetings, etc.) and I generally like to be nice to my phone battery.
Well, I play music on my computer when I'm working on my computer. Nicer interface and I don't have to swap headphones or whatever when going to a video meeting.
I'm using audacious on macOS installed via homebrew - it has a winamp-like skin. That was peak audioplayer design.
Most of my favourite mixes, like the Global Underground series aren't on there at all. And that's just stuff that came out on CD. Some of the best mixes are things like Radio 1 Essential Mixes or live events.
I've also noticed some artists "redoing" their own tracks on Spotify. If you look for Chicane's Behind the Sun on there you won't even find the original, only a redone version that's nothing like the one you remember.
So yeah, having a personal music collection is still very important.
In the end, for me anyway, I'm only listening to music and I didn't really care too much about what the player looked like, not as much as I thought I would. Even VLC, not mentioned here, is a well functioning music player and will do the job just fine.
https://cmus.github.io/
For all my fellow terminal friends <3
10 years to realize it ? What took so long ?
https://github.com/quodlibet/quodlibet
Not just your library, but your listen history and your playlists. I was very annoyed that I had to pay a 3rd party company to export this data so that I could import it into listenbrainz and navidrome.
Not to mention there's a song that Spotify removed from my "Liked" playlist that to this day I can't quite remember, though I can remember just enough of it to drive me mad: https://www.reddit.com/r/tipofmytongue/comments/1hklstg/tomt...
Anyway, I manage a homelab (read: a scrapbox ubuntu machine with 64TB of spinning disk attached) with 25,000 songs in it, and upon exiting my last position, spent my therapist-mandated "burnout recovery time" finally using `beet` to organize the damn thing. I still don't really understand beet, but now I have a semi-decent flow for abandoning Tidal: Find new released music on Listenbrainz, download it in Nicotine (filtering for >320). Idly browse a given user's other folders shared in Nicotine while waiting for downloads to see if they have anything else I want. Once done, `beet import /mnt/media/downloads/music2`, go through its flow, add anything to musicbrainz that isn't already in there, wipe the download directory when finished to clear out any cruft, and happily play it on Feishin on desktop (connected to my Navidrome instance).
I'm still sorting the mobile version of this out a bit. "Tempus" on F-droid seems the best Subsonic client, however unfortunately "offlining" music on it doesn't expose those files to the Android system or other apps, so I can only play those files within Tempus itself. That's not such a big deal when I've got my IEMs plugged directly into the headphone jack on my phone (yeah that's right I found a phone in 2026 with a headphone jack: sony xperia), but when I have my usb DAC plugged in, I want to use "USB Audio Player PRO" to bypass the android audio stack, and that can only play audio files it can find in local directories, no subsonic compatibility (but it does have a Tidal integration...). So lately I've tried just downloading playlists and albums from the Navidrome web interface on my phone.
The automatic lyrics fetching and playback sync in SwingMusic is pretty nice. My only complaint is that it doesn't let me do full-collection shuffle. Ideally it would also allow me to do something like "full collection shuffle but only of songs that I have never heard". Sometimes I'll pick up an album because it seems interesting but things happen and I forget that I added it and it might languish without listening to it for months or years.
I'm waiting a bit for this to mature before I try it out, but I've seen that there's a few ongoing projects to analyze your full music collection to do feature extraction and generate smart playlists using AI tools. I'm not sure if it'll pan out but it seems like a fun tool for exploring large music collections and possibly making unexpected connections.
https://audacious-media-player.org/
It uses UI idioms and technologies (gtk 3) of its mileage, 2017.
Myself, I am rather happily using mplayer - without any gui. Initially it was practicality of not leaking memory - like many gtk+ apps would do. Now, it is pure utility.
I added it on my RPi and it offers a really nice a home "Spotify" :)
MacOS however truly takes the cake. An OS that’s great for creative softwate, working with images, video, audio and so on, and every single music player is something designed by aliens and/or buggy and/or missing some basic features. I went through ~five different players just to find one that has a waveform seekbar, eventually finding it in quodlibet, which while somewhat functional fits in the designed by aliens part. Baffling.
(Another bug was that the album art Strawberry displays is a severely downscaled, and then enlarged-with-obvious-pixelation, version of the art embedded in the file. It would be easier, and look better, to just display the embedded art.)
Shortly after I reported this, they decided they wanted to turn into a paid service.
https://forum.strawberrymusicplayer.org/topic/1848/pay-for-t...
I was not left with a very positive impression.
I need a waveform, a playhead, a good browser that can do both metadata based libraries and dumb folders fast and without lagging, a way to build/save/view/load playlists and a way to queue songs.
Most players are just too basic or make the wrong or to many assumptions about my collection. Or the interface is just too cute and dysfunctional for my actual daily use.
This means on Linux I currently use either mixxx or just VLC player, but I surely haven't tested every possible mediaplayer.
Do you know this feeling when you get towards the High Hopes on The Division Bell and there's this ugly crack in between tracks?
I use it with a winamp skin from https://archive.org/details/winampskins, to add to the options. Not sure about streaming support, I use it with local files.
It depends on the genre, I’d guess. For metal, there’s rarely continuous songs, mainly sometimes intro -> 1st proper song.