>
Tech News

Meloville puts Bluetooth headphone controls at the center of design

Linux desktop music players have not changed much in ten years. A few Electron monsters that eat RAM, a few minimalist tools that ignore the desktop, and a long tail of older Qt apps that nobody quite maintains anymore. Meloville is a new entrant that picks a single fight and tries to win it: media-key playback on wireless headphones. After a day with it, that focus is the most interesting thing about the project, even when some of the surrounding pieces are still early.

The reason the focus matters is that headphone buttons on Linux remain a coin flip. Pause sometimes pauses, sometimes triggers nothing, sometimes fires twice. On a wireless set during a morning coffee, that is the kind of friction that pushes people back to a phone. Meloville treats media keys as a first-class feature rather than a checkbox, which is a small choice in design terms and a meaningful one in daily use.

The Qt 6 base is the right pick

Meloville ships on Qt 6 with SVG assets, which means it stays sharp on HiDPI displays where a lot of older players turn into blurry mush. The interface is not flashy. It is plain and readable, with a library on the left and a track view on the right. There is a metadata editor built in, which is the kind of feature most desktop players have quietly stripped out over the years. None of this is exotic. All of it makes the app feel like it was built by someone who actually uses a desktop music player.

What surprised me was the file format support. MP3, FLAC, M4A, and OGG all work with the headphone buttons without any extra setup. There is no per-format toggle, no library scan option to enable, no plugin to install. That is the right default for a player aimed at general use, and it is the kind of detail that makes the difference between an app you trust and one you fight with.

Library storage that does not punish you

Most desktop players store playlists as paths to files. Move a folder, rename a track, swap to a different mount, and the playlist silently breaks. Meloville stores playlists against track name plus artist. The playlist survives every filesystem change I could think to throw at it. That is a small piece of architecture with a large effect on trust. Once a player stops breaking under the weight of a real library, you start using it differently.

The smaller touches around that decision add up. Tracks that list a featured artist still file under the primary artist’s album instead of fragmenting into a phantom discography. The playlist artwork is auto-generated from the four most common cover images in the list. The library remembers what you actually have, not what the filesystem path happens to point at. None of these features show up on a marketing page. They are the things you only notice once a player gets them right and you switch back to one that does not.

Lyrics need your own files

Lyric support is one of those features that looks easy until you actually try to use it. Meloville supports standard .lrc files (timestamped sidecar text files that scroll along with a song). Drop one with the same name as your audio file anywhere in the configured music folder and Meloville picks it up on the next start. No plugin. No third-party service. No cloud account.

The trade-off is honest and worth naming. There is no built-in fetch from Genius or Musixmatch. You bring the lyric files yourself. For a privacy-first, offline-first player that never sends data anywhere, that is the correct design. For a casual user who expects lyrics to appear automatically, it is a real gap. The right answer depends on which audience you are.

Listen Along works, mostly at home

The feature I did not expect is the local stream. Meloville can spin up a small web server on your machine that streams the currently playing track to any device on the same Wi-Fi with a browser. Someone on your couch can open a URL and hear whatever you are hearing, with no install on their end. For sharing inside the house, this is genuinely fun.

Sharing outside the house is where the design stops being friendly. The listen-along endpoint has no built-in authentication. If you forward a port on your router to expose it to the internet, you are publishing an unauthenticated stream. That is the wrong default for the open internet and the right default for a home LAN. The deployment story requires the usual care: put a reverse proxy in front of it, add authentication, treat it like any other self-hosted service. The player is honest about that boundary, but it does not enforce it for you.

A few things to know if you decide to expose Listen Along outside your home network:

  • Put a real reverse proxy in front of the local web server
  • Add authentication, since the built-in endpoint has none
  • Restrict the port forwarding to the specific device that runs Meloville
  • Watch your network bandwidth on the host machine, since streaming adds load
  • Treat the feature like any other self-hosted service you would expose

Those are not complaints about Meloville. They are the standard care for any self-hosted service. The player gets you the feature, the deployment is your responsibility.

Distribution and packaging are the real bottleneck

The single biggest limitation today is distribution. Arch Linux users can grab a PKGBUILD from the developer’s GitHub, although the package has not landed in the AUR yet. Fedora, Ubuntu, and openSUSE users are compiling from source until community packaging lands. There is no double-click installer for non-Arch distros. If you are comfortable running a build script and pulling dependencies, that is fine. If you want a .deb or .rpm you can install without thinking, you are waiting.

That is normal for a project this early. The features that are implemented work well. The features that are missing are mostly packaging and distribution work, which is the natural next phase of any open-source app that wants to grow past its first audience. Community packaging will almost certainly fill the gap once the project matures.

Trade-offs

The Bluetooth control focus is the headline, and the focus shows. The trade-off is that the player is still small. Distribution support outside Arch means compiling from source today. Lyrics require you to bring your own files. Listen Along works at home and needs real lock-down work before exposure outside. The metadata editor and the playlist-by-name design are wins that most players have abandoned. If you want a packaged, polished, ready-for-everyone player today, Meloville is not it. If you want a player built around the frustrations you actually have, it is the most interesting new option I have seen this year.

What I would tell past me

Start with the wireless headphones. That is the test that tells you whether the developer succeeded. Then build a quick playlist, rename the underlying folder, and confirm the playlist still plays. If both work as described, keep an eye on the project as it grows. The GitHub repo is where packaging updates will land first, and it is where the most useful feedback loop will be.

If you decide to dig deeper, the developer has been responsive to issues on the GitHub tracker, and the README is honest about what works and what does not. That is the kind of early-project signal that tells you whether a tool is worth investing time in. Meloville earns that investment today for the right audience, and it has a clear path to a wider audience once packaging lands.