I'm surprised the author didn't list KDE's Elisa: https://apps.kde.org/elisa/ Especially since they referenced KDE when they voiced their wish for Strawberry to be more modernized to match the appearance of KDE's Plasma desktop.
I haven't used it for a while (I generally don't listen to music outside of my drive to work these days), but I remember it being a pleasant replacement for MusicBee when I first switched over to a Linux distro full-time, coming from Windows. The Elisa UI is nice too imo, though it's more of a "native UI" look compared to some of the others in the list, though which style is nicer is up to personal preference.
It may also be a plus to some that it is not using Electron , and uses Qt instead (Well, apparently it uses QML, so still kind-of using ECMAScript/Javascript. But only for the user interface, and not the main business logic.)
I don't use it much, but for a default audio player for KDE, it's surprisingly slow to open audio file just to play it once (around a second on my machine)
I remember struggling with it in the beginning (it has some quirks in the UI and how you configure folders and what have you) but once I got a hang on it it was pretty good
I'm not thrilled by the music player options on Linux. I've tried many and found most of them awful.
Even the author of this article notes negatives about all of the listed players, which I find unacceptable (except for Recordbox, I'll have to look at that). And these are their favorites out of 200 players!
It's the typical problem of free software: bad UI.
I use Music on macOS (disable the music store and it's fine) and have used Rhythmbox on GNOME (passable).
Still looking for something good on Linux.
List from the post, with the author's own criticism:
Amberol
This barely fits my criteria for features … no library management
Euphonica
you will also need to set up MPD … The UI chokes … wish it had a song search function … changing the volume requires using my scroll wheel on the volume knob
Feishin
You will need a music server … Electron app
Lollypop
the user experience is painful
Plattenalbum
you will need to bring your own MPD … cannot even see a list of all albums
Strawberry
less intuitive than I’d like it to be … giant translucent strawberry in the middle of my screen at all times
Tauon
“everything-is-a-playlist” approach … overwhelming and confusing … stretched icons … scroll bar is on the left of the window for some reason
> less intuitive than I’d like it to be giant translucent strawberry in the middle of my screen at all times
You can disable the background image that in the options under Appearance. It's a holdover from Clementine's branding which I also find annoying. I also dislike the glow animation on currently playing track in the playlist which can also be disabled.
I've been using it for ages. It's awesome. I think the only issue I've ever had with it is some Bluetooth weirdness. Honestly, the reason I keep using it is the ability to use custom genres from the metadata as search windows. I have a bunch of custom genres (like performer which removes all the ft. xyz nonsense in artist listings) that I always find hard to access easily on most other players.
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.
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'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.
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.
That's because Gtk4 does "client side decoration".
That has the advantage (or otherwise, depending on your point of view!) that the application can now place custom widgets in the title bar, and the disadvantage that when apps do that, the part of the title bar available for dragging windows around becomes significantly smaller.
My main objection to client-side decoration is that middle-clicking a window's title bar to push it to the back no longer works. (Plus, for those of us with eyes that aren't as young as they once were, it's now much harder to choose a window border style that clearly indicates which window has focus.)
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/
The thing I don't understand is alphabetic ordering of albums, which is the default most everywhere. Albums of a particular artist should obviously be ordered by when they were released (I don't care whether from newest or from oldest).
It appears I'm an alien: almost none of the music players' authors care about this - they happily show albums from A to Z.
I use Clementine which can be set up to order albums by year. Any other options?
It's possible in mpd+ncmpcpp, but I just encode this in the filesystem hierarchy. My library is basically setup like music/artist/year album/trackno trackname. I had to spend a few hours going through by hand with perl-rename to normalize things, but after that it was great (I don't trust automatic tools to do these things after bad experiences with beetz and similar).
It's probably not gonna help you, but that's possible in Music (macOS). There are two sorting criteria, so you could choose to sort by artist first, then for each album of a given artist sort by year. Or you can sort all albums by year, then inside each year alphabetically (album or artist) if that's what you meant.
It's a simple option to implement. But most developers without UI skills don't seem to think about stuff like that.
> [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.
Sounds like you have a music discovery process in nicotine? Can you elaborate on how you find new things to listen to? Just my looking at what individual other users listen to?
Music discovery is the one thing I cannot drop Spotify for. I want to make a playlist with 10 songs and then have an algorithm suggest 20 more - ideally songs I have never listened to before, or songs I haven't listened to in a long time.
Spotify is mediocre at that task, but I just can't find a replacement at all...
Then, when downloading in nicotine, you can click a user to see all their shares, so I just scroll through what other kind of stuff they have, and download anything that strikes my fancy.
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.
> 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.
I tend to use strawberry these days, as an amarok convert from back in the kde3 days. My "workflow" is to go fish for the stuff that I'm in the mood to listen to in the moment, using the collection tree view, dragging and dropping mostly whole albums in a (new) playlist, then fine-tuning with the queue (generally hand picking 3-5 tracks I want to start with and then placing the marker on top of a whole album or something like that).
I like the ability to build playlists with tracks from different sources, including subsonic-compatible servers (my "staging area" for new music is my local drive, and that then goes to a remote navidrome server once "curated").
Over time, I end up with a dozen "topical" playlists, and here again, strawberry is pretty good at keeping things approachable and high-level.
I also like that the grid control intro which the tracks are listed is so configurable.
Great list! Not sure how I've missed all these in my search but I've had success with Plexamp (Gnome, Fedora), with Plex served from my Synology NAS. Opinions on Plex aside, it's been the most successful "native" experience across mobile/linux that just works.
Majority of GTK/Adwaita solutions are always so close but missing something critical, especially when using DLNA (e.g treated as secondary to local library, intermittent first load issues etc) That said, I got quite far with Gapless [1]
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.
I went the other way. I just want to shuffle all my songs or a playlist (m3u) without any of the other crap. Add and remove favourites. Album-focused players are a non-starter. Players without a simple global search box are a non starter.
Ended up 80% vibe coding one in Qt (PySide6) in a couple of evenings that does everything I want, exactly how I want. Added lyric fetching via LIBLRC (saved to .lrc files - no proprietary databases) and register as a music player with DBUS so it can be controlled. Working really well.
It's 2026, anyone who is unhappy with their player can pretty quickly LLM their way into adding any missing functionality or tweak behaviour they don't like, or just make a whole new player.
I like Amberol's approach - no library management, just use the file-system. I use Picard to organise my music into a sensible directory structure, and so Amberol can see that and play by album or artist. It's really nice.
It's crippled by its ridiculous refusal to see symbolic links. I want to use symlinks to create "playlists", without having to copy music files around, but now, to Amberol, it's as though sym-links don't exist.
I looked into it, and it's down to weird Gnome and Flatpak policies, which are bizarrely averse to sym-links, because they are a "security risk". Yes, that's kind of true if you are root, but who runs their music player as root???
For anyone who self hosts their own music library with Plex or Jellyfin, I'd recommend keeping an eye on Chromatix[0]. It's a great client for Plex or Jellyfin based libraries on macOS and Windows, and a Linux version is on the roadmap.
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.
I was surprised not to find cantata[1], another MPD graphical client, on the list. Used it for the past three years, despite it being unmaintained for quite some time now. The client is very featureful, allows downloading lyrics and covers automatically (TBF had many mismatches, like downloading some Gillette ad as an Eminem's album cover). Most important to me is the ability to listen do directories and not artists/albums, which cantata does perfectly. Recently nixpkgs replaced cantata with a fork[2], so cantata is kind of online again.
There is a lot of choices in that area, but for me every time there was something I was unhappy with. So in the end I just wrote my own. It works exactly like I want, and it was a fun project to do anyway.
Next stuff I want to add in it, is the automatic translation of lyrics (maybe with the deepl api).
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.
> MacOS however truly takes the cake. An OS that’s great for creative softwate, working with images, video, audio and so on
Funny since there was quite a thread here yesterday or the day before about Mac users regretting the dumbification of their software, using aperture as a striking example.
Don't read me wrong, I'm not saying that MacOS doesn't have great software, I just no longer trust Apple to pander to their users. A stable, open and progressive OS like Linux+KDE with "specialty" software on top seems like the most productive combo, I hope more software editors will consider that.
He also made a section of the site that allowed you to login via Spotify and it would aggregate your listening history and tell you how much it would cost to buy all of your most listened to albums. Annoyingly Spotify seems to restrict the oauth app creation process, so users have to be invited by email to access that.
I am still with Spotify, but for local playback I like ncmpcpp with MPD. My wishlist is for a native client that, in addition to local playback, integrates well with various streaming services like Spotify, online radio, Jellyfin, etc. But it's a hard problem. When I last checked it seemed Clementine used to be a good candidate for this but the Spotify plugin, at least, was no longer working at the time.
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.
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.
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.
Right. Though one of this intro -> 1st song transitions from a metal album (Gamma Ray, No World order) immediately pops into my head when thinking of examples where the gap was annoying.
But Pink Floyds Dark Side of the Moon would be be completely destroyed by the breaks.
After going through most of the rest I settled on Elisa as a good amalgam if winamp and itunes UX. I didn't realise it is obscure judging by no mention of it here.
Weird timing, I was just lamenting today how limited Linux music players are. The best looking one I've found is still Amberol but it doesn't even save your music. Then again the music player selection on Windows isn't that much better
Complaining about predatory business practices while dumping all your money to Taylor Swift is like giving the homeless guns and complaining about rising murder rates.
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.
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.
It is still GPL, it is still free software, the source code is there. Only the Windows and macOS binaries are behind a paywall, but you can build yourself the binaries, or use it on Linux. RedHat does this and is "an example of free software monetization", Strawberry does it "and it should no longer be called free software".
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 for one still like the good old Cantata. It's still maintained by the community after the original dev bailed out, and it has good UX and lots of features. Feishin is also great but it's way heavier on RAM being basically a glorified website and all, so unless you have a reason to have Navidrome up and running it's overkill for most people
I have lots of music in exotic formats and an installation of foobar2000 that plays all of them. I keep using foobar2000 even though I switched to Fedora KDE because I don't see any alternative that will allow me to play music without forcing me to convert everything. Also, I have an Android app to control foobar2000 from my phone.
Big downsides are that scaling is broken on Wine so the UI is tiny. Moreover, whenever I manually change tracks using the mouse, it lets out a massive fart before continuing normally. But I can live with that.
Hmmm, now that I think of it - I've never made any GUI app. Suppose I want to write my own music player, what's the best way to approach this?
Oh this is a funny topic; I just found myself looking for a decent music player on linux like a month or so ago and the situation was... disappointing.
The nicest looking one I could find was amberol, but that was a bit too minimalistic for me. I like minimal UIs but that doesn't have to translate to minimal feature sets as well.
But in the end I didn't find any simple but hackable players that I liked; in the end I just settled on audacious because it's just simple enough in terms of UI and good enough in terms of features. I do like the playlists as tabs idea though.
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.
I don't know how foobar2000 somehow got it so right so long ago and no one is replicating it making me stuck with it. I don't like the feeling of being stuck with software like this... What if it is abandonded or something...
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.
I made my own web app using boring technology(1). It's not available anywhere since it's completely tailored to my own needs so probably not useful to anyone else. Also some parts of the code need cleanup and there is no documentation.
(1) SQLite/Django/Bootstrap5/Unpoly app. SQLite is used for all the data and the full text search. Huey is used for background tasks. Tinytags gets metadata from audio files. LastFM API provides similar artists functionality. YT-DLP is used to fetch music that is not easy (for me) to get (no bandcamp, only on streaming, old stuff not easy to find...). Bootstrap provides a clean look and the usual responsive stuff. Dropbox API is used to maintain a copy of the music files in my dropbox account. The app currently handles a collection of 70k files and runs on a raspberrypi behind the caddy web server.
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 surprised the author didn't list KDE's Elisa: https://apps.kde.org/elisa/ Especially since they referenced KDE when they voiced their wish for Strawberry to be more modernized to match the appearance of KDE's Plasma desktop.
I haven't used it for a while (I generally don't listen to music outside of my drive to work these days), but I remember it being a pleasant replacement for MusicBee when I first switched over to a Linux distro full-time, coming from Windows. The Elisa UI is nice too imo, though it's more of a "native UI" look compared to some of the others in the list, though which style is nicer is up to personal preference.
It may also be a plus to some that it is not using Electron , and uses Qt instead (Well, apparently it uses QML, so still kind-of using ECMAScript/Javascript. But only for the user interface, and not the main business logic.)
I don't use it much, but for a default audio player for KDE, it's surprisingly slow to open audio file just to play it once (around a second on my machine)
I remember struggling with it in the beginning (it has some quirks in the UI and how you configure folders and what have you) but once I got a hang on it it was pretty good
I'm not thrilled by the music player options on Linux. I've tried many and found most of them awful. Even the author of this article notes negatives about all of the listed players, which I find unacceptable (except for Recordbox, I'll have to look at that). And these are their favorites out of 200 players!
It's the typical problem of free software: bad UI.
I use Music on macOS (disable the music store and it's fine) and have used Rhythmbox on GNOME (passable). Still looking for something good on Linux.
List from the post, with the author's own criticism:
Amberol
This barely fits my criteria for features … no library management
Euphonica
you will also need to set up MPD … The UI chokes … wish it had a song search function … changing the volume requires using my scroll wheel on the volume knob
Feishin
You will need a music server … Electron app
Lollypop
the user experience is painful
Plattenalbum
you will need to bring your own MPD … cannot even see a list of all albums
Strawberry
less intuitive than I’d like it to be … giant translucent strawberry in the middle of my screen at all times
Tauon
“everything-is-a-playlist” approach … overwhelming and confusing … stretched icons … scroll bar is on the left of the window for some reason
> less intuitive than I’d like it to be giant translucent strawberry in the middle of my screen at all times
You can disable the background image that in the options under Appearance. It's a holdover from Clementine's branding which I also find annoying. I also dislike the glow animation on currently playing track in the playlist which can also be disabled.
How is Quod Libet not here? Cross platform and its plugin system should be enough reason on its own
https://github.com/quodlibet/quodlibet
I popped in to see if it made it.
I've been using it for ages. It's awesome. I think the only issue I've ever had with it is some Bluetooth weirdness. Honestly, the reason I keep using it is the ability to use custom genres from the metadata as search windows. I have a bunch of custom genres (like performer which removes all the ft. xyz nonsense in artist listings) that I always find hard to access easily on most other players.
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.
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'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.
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.
> and ignores the window manager decorations.
That's because Gtk4 does "client side decoration". That has the advantage (or otherwise, depending on your point of view!) that the application can now place custom widgets in the title bar, and the disadvantage that when apps do that, the part of the title bar available for dragging windows around becomes significantly smaller.
My main objection to client-side decoration is that middle-clicking a window's title bar to push it to the back no longer works. (Plus, for those of us with eyes that aren't as young as they once were, it's now much harder to choose a window border style that clearly indicates which window has focus.)
I am running KDE, and they look just fine. If you mean they won't follow your theme, yes, but also a lot of other apps don't (e.g. Electron).
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/
I'll throw out Fooyin for QT
Fooyin is great. For those spoiles by foobar2000, there are no alternatives.
All these players will never dethrone DeadBeeF's interface. Foobar2000 simply has the perfect layout - and it's customizable.
I ended up running foobar2000 in Wine. I had some problems during setup, but it runs fine now.
The thing I don't understand is alphabetic ordering of albums, which is the default most everywhere. Albums of a particular artist should obviously be ordered by when they were released (I don't care whether from newest or from oldest).
It appears I'm an alien: almost none of the music players' authors care about this - they happily show albums from A to Z.
I use Clementine which can be set up to order albums by year. Any other options?
It's possible in mpd+ncmpcpp, but I just encode this in the filesystem hierarchy. My library is basically setup like music/artist/year album/trackno trackname. I had to spend a few hours going through by hand with perl-rename to normalize things, but after that it was great (I don't trust automatic tools to do these things after bad experiences with beetz and similar).
It's probably not gonna help you, but that's possible in Music (macOS). There are two sorting criteria, so you could choose to sort by artist first, then for each album of a given artist sort by year. Or you can sort all albums by year, then inside each year alphabetically (album or artist) if that's what you meant.
It's a simple option to implement. But most developers without UI skills don't seem to think about stuff like that.
> [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.
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.
Sounds like you have a music discovery process in nicotine? Can you elaborate on how you find new things to listen to? Just my looking at what individual other users listen to?
Music discovery is the one thing I cannot drop Spotify for. I want to make a playlist with 10 songs and then have an algorithm suggest 20 more - ideally songs I have never listened to before, or songs I haven't listened to in a long time.
Spotify is mediocre at that task, but I just can't find a replacement at all...
I scrobble from navidrome to listenbrainz.
Then, logged in, I look here https://listenbrainz.org/explore/fresh-releases/ "for you" tab. Or here https://listenbrainz.org/explore/similar-users/
Then, when downloading in nicotine, you can click a user to see all their shares, so I just scroll through what other kind of stuff they have, and download anything that strikes my fancy.
You can get your listen history? How?
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.
Can't you GDPR request that data?
I'm not in Europe, but, otherwise, that's a great idea.
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.
> 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.
10 years to realize it ? What took so long ?
I tend to use strawberry these days, as an amarok convert from back in the kde3 days. My "workflow" is to go fish for the stuff that I'm in the mood to listen to in the moment, using the collection tree view, dragging and dropping mostly whole albums in a (new) playlist, then fine-tuning with the queue (generally hand picking 3-5 tracks I want to start with and then placing the marker on top of a whole album or something like that).
I like the ability to build playlists with tracks from different sources, including subsonic-compatible servers (my "staging area" for new music is my local drive, and that then goes to a remote navidrome server once "curated").
Over time, I end up with a dozen "topical" playlists, and here again, strawberry is pretty good at keeping things approachable and high-level.
I also like that the grid control intro which the tracks are listed is so configurable.
I like moodbars <3
Great list! Not sure how I've missed all these in my search but I've had success with Plexamp (Gnome, Fedora), with Plex served from my Synology NAS. Opinions on Plex aside, it's been the most successful "native" experience across mobile/linux that just works.
Majority of GTK/Adwaita solutions are always so close but missing something critical, especially when using DLNA (e.g treated as secondary to local library, intermittent first load issues etc) That said, I got quite far with Gapless [1]
1. https://gitlab.gnome.org/neithern/g4music
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.
Shoutouts to Audacious
https://audacious-media-player.org/
Been flying with Audacious and deadbeef for ages. Minimalistic but quick and effective.
Not mentioned in the article, so I'd like to give a shout-out to cmus.
https://cmus.github.io/
For all my fellow terminal friends <3
yes, GUI players come and go, cmus stays.
I went the other way. I just want to shuffle all my songs or a playlist (m3u) without any of the other crap. Add and remove favourites. Album-focused players are a non-starter. Players without a simple global search box are a non starter.
Ended up 80% vibe coding one in Qt (PySide6) in a couple of evenings that does everything I want, exactly how I want. Added lyric fetching via LIBLRC (saved to .lrc files - no proprietary databases) and register as a music player with DBUS so it can be controlled. Working really well.
It's 2026, anyone who is unhappy with their player can pretty quickly LLM their way into adding any missing functionality or tweak behaviour they don't like, or just make a whole new player.
I like Amberol's approach - no library management, just use the file-system. I use Picard to organise my music into a sensible directory structure, and so Amberol can see that and play by album or artist. It's really nice.
It's crippled by its ridiculous refusal to see symbolic links. I want to use symlinks to create "playlists", without having to copy music files around, but now, to Amberol, it's as though sym-links don't exist.
I looked into it, and it's down to weird Gnome and Flatpak policies, which are bizarrely averse to sym-links, because they are a "security risk". Yes, that's kind of true if you are root, but who runs their music player as root???
For anyone who self hosts their own music library with Plex or Jellyfin, I'd recommend keeping an eye on Chromatix[0]. It's a great client for Plex or Jellyfin based libraries on macOS and Windows, and a Linux version is on the roadmap.
[0] https://chromatix.app/
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.
I was surprised not to find cantata[1], another MPD graphical client, on the list. Used it for the past three years, despite it being unmaintained for quite some time now. The client is very featureful, allows downloading lyrics and covers automatically (TBF had many mismatches, like downloading some Gillette ad as an Eminem's album cover). Most important to me is the ability to listen do directories and not artists/albums, which cantata does perfectly. Recently nixpkgs replaced cantata with a fork[2], so cantata is kind of online again.
[1]: https://github.com/CDrummond/cantata
[2]: https://github.com/nullobsi/cantata
There is a lot of choices in that area, but for me every time there was something I was unhappy with. So in the end I just wrote my own. It works exactly like I want, and it was a fun project to do anyway.
Next stuff I want to add in it, is the automatic translation of lyrics (maybe with the deepl api).
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.
I also can recommend fooyin[0]. I really miss foobar2000 after switching away from Windows, and fooyin fills that hole in my heart.
Technically fooyin also builds on macOS, but it's not officially supported yet, there's some works here[1] and there[2].
[0]: https://github.com/fooyin/fooyin
[1]: https://github.com/fooyin/fooyin/pull/476
[2]: https://github.com/fooyin/fooyin/pull/579
> MacOS however truly takes the cake. An OS that’s great for creative softwate, working with images, video, audio and so on
Funny since there was quite a thread here yesterday or the day before about Mac users regretting the dumbification of their software, using aperture as a striking example.
Don't read me wrong, I'm not saying that MacOS doesn't have great software, I just no longer trust Apple to pander to their users. A stable, open and progressive OS like Linux+KDE with "specialty" software on top seems like the most productive combo, I hope more software editors will consider that.
My friend made this site to try and surface the best place to buy music: https://streamtoshelf.com/
He also made a section of the site that allowed you to login via Spotify and it would aggregate your listening history and tell you how much it would cost to buy all of your most listened to albums. Annoyingly Spotify seems to restrict the oauth app creation process, so users have to be invited by email to access that.
Surprised there's no mention of the tried-and-true VLC.
VLC does not show up when searching for "music player" on nixpkgs [1] which is what was used. Searching for "media player" does [2].
[1] https://search.nixos.org/packages?channel=unstable&query=mus...
[2] https://search.nixos.org/packages?channel=unstable&query=med...
This still comes across as ignorance of the area. How does one miss VLC?
I am still with Spotify, but for local playback I like ncmpcpp with MPD. My wishlist is for a native client that, in addition to local playback, integrates well with various streaming services like Spotify, online radio, Jellyfin, etc. But it's a hard problem. When I last checked it seemed Clementine used to be a good candidate for this but the Spotify plugin, at least, was no longer working at the time.
Maybe it's just me, but I still like the plainness of MPD + ncmpcpp.
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.
Thanks, gotta check that out!
MyMPD is an awesome web client for MPD https://github.com/jcorporation/myMPD
I added it on my RPi and it offers a really nice a home "Spotify" :)
CMUS for me, and for internet radio pyradio.
Imo last good Linux player was... XMMS. Never understood why it went away from most distributions forever.
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.
Which players on Windows are you talking about?
MusicBee and foobar2000 with the old SimPlaylist plugin.
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.
> My guess is not everyone is annoyed by that, or knows about the option.
It depends on the genre, I’d guess. For metal, there’s rarely continuous songs, mainly sometimes intro -> 1st proper song.
Right. Though one of this intro -> 1st song transitions from a metal album (Gamma Ray, No World order) immediately pops into my head when thinking of examples where the gap was annoying.
But Pink Floyds Dark Side of the Moon would be be completely destroyed by the breaks.
maybe not metal but the whole Offspring - Americana has this thing
It also happens for metal. I said "rare" ;) One might not encounter it.
There is a music player called Gapless that might help :) https://github.com/neithern/g4music
Also https://github.com/vicrodh/qbz for Qobuz supports gapless playback
Whats the most similar to something like AnyTune?
https://www.anytune.app/
After going through most of the rest I settled on Elisa as a good amalgam if winamp and itunes UX. I didn't realise it is obscure judging by no mention of it here.
https://apps.kde.org/elisa/
Weird timing, I was just lamenting today how limited Linux music players are. The best looking one I've found is still Amberol but it doesn't even save your music. Then again the music player selection on Windows isn't that much better
Complaining about predatory business practices while dumping all your money to Taylor Swift is like giving the homeless guns and complaining about rising murder rates.
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.
The blog one would write around 2006 is what we define as the 'alivenet'; and it's still there - https://vvesh.de
Strawberry is a really good one.
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.
https://forum.strawberrymusicplayer.org/topic/1848/pay-for-t...
I was not left with a very positive impression.
It is still GPL, it is still free software, the source code is there. Only the Windows and macOS binaries are behind a paywall, but you can build yourself the binaries, or use it on Linux. RedHat does this and is "an example of free software monetization", Strawberry does it "and it should no longer be called free software".
Audacious comes with Game Music Emu (Thank you Blargg!) for playing original game music data (nsf, gbs, spc, etc)
I'm still looking for that perfect spotify replacement though
I want to switch to Roon, but the lack of a web client (let alone a native linux client!) makes it a total dead end.
Cool. I didn’t know there was a fork of clementine. I hope it fixes a few bugs I have. It’s clearly my favorite player ever. Thanks.
https://webamp.org/
So, why do they look so clumsy all together? I am using Audacity with the XMMS theme. That's what I am used to.
Doesn't even mention MOC.
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.
Ohhh I just remembered Amarok!
Came here to note that contrary to what is said here, Lollypop is not "new", nor is it representative of current so-called "GNOME-isms".
It uses UI idioms and technologies (gtk 3) of its mileage, 2017.
A lot of its UI idioms are quite unique to Lollypop, as well.
I for one still like the good old Cantata. It's still maintained by the community after the original dev bailed out, and it has good UX and lots of features. Feishin is also great but it's way heavier on RAM being basically a glorified website and all, so unless you have a reason to have Navidrome up and running it's overkill for most people
Cries in DeaDBeeF
mocp is all you need
I have lots of music in exotic formats and an installation of foobar2000 that plays all of them. I keep using foobar2000 even though I switched to Fedora KDE because I don't see any alternative that will allow me to play music without forcing me to convert everything. Also, I have an Android app to control foobar2000 from my phone.
Big downsides are that scaling is broken on Wine so the UI is tiny. Moreover, whenever I manually change tracks using the mouse, it lets out a massive fart before continuing normally. But I can live with that.
Hmmm, now that I think of it - I've never made any GUI app. Suppose I want to write my own music player, what's the best way to approach this?
Oh this is a funny topic; I just found myself looking for a decent music player on linux like a month or so ago and the situation was... disappointing.
The nicest looking one I could find was amberol, but that was a bit too minimalistic for me. I like minimal UIs but that doesn't have to translate to minimal feature sets as well.
But in the end I didn't find any simple but hackable players that I liked; in the end I just settled on audacious because it's just simple enough in terms of UI and good enough in terms of features. I do like the playlists as tabs idea though.
In conclusion, nothing simple and aesthetic like Winamp v5, Vox.app v2, or Aural.app (current), not surprising.
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.
I don't know how foobar2000 somehow got it so right so long ago and no one is replicating it making me stuck with it. I don't like the feeling of being stuck with software like this... What if it is abandonded or something...
I think ncmpcpp might check all those boxes, with the caveat that it's a TUI player. Have you tried it?
No mention of ncmpcpp?! Pshaw.
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.
My own software on a raspberrypi, a bluetooth receiver on my yamaha amp and my phone between the two. Simple setup, a joy to use.
Can you elaborate what app (?) you use on your phone?
I made my own web app using boring technology(1). It's not available anywhere since it's completely tailored to my own needs so probably not useful to anyone else. Also some parts of the code need cleanup and there is no documentation.
(1) SQLite/Django/Bootstrap5/Unpoly app. SQLite is used for all the data and the full text search. Huey is used for background tasks. Tinytags gets metadata from audio files. LastFM API provides similar artists functionality. YT-DLP is used to fetch music that is not easy (for me) to get (no bandcamp, only on streaming, old stuff not easy to find...). Bootstrap provides a clean look and the usual responsive stuff. Dropbox API is used to maintain a copy of the music files in my dropbox account. The app currently handles a collection of 70k files and runs on a raspberrypi behind the caddy web server.
Plex. Connected to a digital audio input. Or, chromecast compatible audio equipment. Tidal does this too.
Yes, I am surprised too. I moved back to MC and vinyl years ago.
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.