Github Repository
I’ve been aware of the self-hosting community for quite a while. Running your own services, controlling your own data, and avoiding unnecessary subscriptions has always been something that interested me.
But strangely, self-hosting music never really crossed my mind.
Like most people, I was using Spotify and paying the monthly subscription without really thinking about it.
That was until I stumbled across the self-hosted music community.
I stopped and asked myself a simple question: why am I paying monthly just to listen to music?
That’s when I started looking into running my own music server.
Discovering Self-Hosted Music
After a bit of research I discovered Navidrome, a lightweight self-hosted music server that implements the Subsonic API. Within minutes I had set up my own server, added some tracks, and began streaming my music from my own server.
It worked great. However, the Navidrome Web UI is quite basic and did not match the aesthetic I was going for.
So the next logical step was finding a desktop client to listen from.
There are already several clients in the ecosystem, and they work well, but none of them quite matched what I wanted from a desktop music experience. Some were minimal, others felt dated, and a few simply didn’t look the way I wanted.
So I decided to try something ambitious.
I would build my own client.
Building Tritone
That project became Tritone.
Tritone is a modern desktop client for Subsonic-compatible music servers,
designed to provide a polished and feature-rich listening experience.
The goal was simple: build a modern desktop music player that works seamlessly with Subsonic-compatible servers.
To get started I spent a lot of time:
- Studying how existing Subsonic clients work.
- Looking into the source code of existing Subsonic clients.
- Reading the Subsonic API documentation.
- Exploring the documentation for Navidrome.
- Examining open source implementations to understand common patterns.
From there I began building the application using Electron, focusing on creating a desktop experience that felt polished and responsive.
Now here I am, many revisions and bug fixes later. I finally have something I’m genuinely proud of.
What Tritone Does
Tritone connects to any Subsonic-compatible server and lets you browse, stream, and manage your music library from a desktop interface.
Some of the features include:
High-Fidelity Streaming:
Tracks stream directly from your Subsonic server with configurable bitrate settings.
Real-time Synchronized Lyrics:
Lyrics are fetched automatically and synchronized with the currently playing track using LRCLIB.
Dynamic Interface Theming:
The UI dynamically extracts dominant colors from album artwork to theme the interface in real time.
Discord Rich Presence:
Your listening activity can appear on your Discord profile with track information and progress.
But that is just the start, I am currently working on V2.0.0 which will completely revamp Tritone and introduce tons of new features such as:
- Queue Persistence
- Last.FM Scrobbling
- 10-Band Equaliser
- Custom Color / Font
- Gapless / Crossfade Playback
- Audio Visualizer
- Listening Stats Page
- And Way More!
Why Open Source
Tritone started as a personal project while experimenting with self-hosted music, but it quickly became something I wanted to share.
The Subsonic ecosystem thrives because of open source clients, servers, and tools built by the community. Making Tritone open source felt like the right way to contribute back.
Try It Out
If you run a Subsonic-compatible server like Navidrome, you can try Tritone today by checking out the repository here!
The repository includes further UI screenshots, installation instructions, and developer setup steps.
If you like the project, consider starring ⭐ it on GitHub, let's grow the self-hosted music community together!
Feedback Welcome
Tritone is the most advanced project I have ever undertaken, and it is still evolving.
It is by no means perfect but I am determined to improve it, release by release.
If you try it out and have suggestions, feedback, or ideas for features, feel free to open an issue on the repository.
Building tools like this is one of the most enjoyable parts of the open source ecosystem and Tritone is my small contribution to it.



Top comments (0)