I Kept Configuring the Music
Music is almost always playing when I am on my computer doing nothing important. I can spend hours driving around in GTA, clicking through random tabs, or just staring at the screen with an album in the background. The funny part is that I have to turn it off the moment I start doing serious work. Apparently my brain can decode Rust or a track, but asking it to do both is too much.
Either way, a music player is one of the most-used apps on my computer, and I could never settle on one.
Spotify and Apple Music look nice, but their Windows apps feel like heavy webapps. They take too long to wake up, find new ways to break, and use a stupid amount of memory even when they are sitting in the background. Mind you, I still pay for Apple Music and I love the iOS app. I just mostly use it as a background-noise filter on the bus.
At my desk, I have a local library of lossless tracks and a nice pair of IEMs. This should have made the obvious choice something like foobar2000, and I did try it. The problem is that foobar gives you enough control to turn listening to music into maintaining a small laboratory. Being a perfectionist, I was spending more time swapping components and messing with EQ than actually finishing an album. A bare install solves that, but then it looks like an app on Windows XP.
The default media player on Windows lasted more than a year, which was honestly impressive. Still, nothing landed in the middle: pleasant enough that I wanted to use it, simple enough that I would leave it alone, and light enough that it did not feel ridiculous.
So, while bored and looking for a challenge, I started building the missing one.
An Empty Window With Good Taste
By then, xcreen had made me fall in love with Rust, and another project had introduced me to Tauri and Svelte. Musicer was a chance to put that new stack somewhere it actually belonged: Rust for the part I wanted to hear, Svelte for the part I would stare at, and Tauri joining the two.
The first version was basically an empty window with a nice title bar. It looked more like a music player than it behaved like one. The next day it got a button to load an audio file, a few playback controls, and the beginnings of the Rust engine underneath.
That order feels very on-brand for me. I had already begun caring about how the thing felt before it could finish a song.
The Part You Can Hear
Audio was a different kind of problem from anything I had built before. I wanted to understand the path between opening a FLAC and hearing it through my IEMs, and I did not want the webview quietly doing the interesting part for me.
For about a month, most of the work was getting the custom Rust pipeline stable and cleaning up a fair amount of vibe-coded slop. Probing and decoding a file was only the start. Tracks had different sample rates, output devices could disconnect, seeking exposed bugs normal playback hid, and “play the next song” sounded much simpler before I cared about the sub-second gap between tracks.
Hearing one of my own tracks come through an audio path I had built was stupidly satisfying. It was one of those milestones that looks like absolutely nothing from the outside. I sat there listening for problems, found none for a few minutes, and felt like I had invented music.
The project grew quickly after that. The Svelte side became the library I had wanted to browse, while Rust learned gapless playback and how to behave like a real Windows app. Musicer could show the current track in Windows media controls and put playback buttons inside the taskbar preview.
The Player That Gives In
Musicer has slowly become a mix of things I genuinely wanted and gimmicks I added because they made me happy.
Pressing Ctrl + K opens a command palette that searches tracks, artists, albums, and playlists. The normal interface can stay calm, but the slightly nerdier version of me still gets a fast way to reach anything in the library without clicking through three pages.
None of that is revolutionary. It just matches how I use my computer. I like interfaces that stay simple until I ask them to become powerful, and I like knowing there is a real audio engine underneath instead of a browser tab pretending to be a desktop app.
The nicest part is that I own every strange decision. If I want taskbar preview buttons, native media controls, a command palette, and a polished library view in the same player, I don’t have to sit and hope someone adds it, or do a PR on a random player which won’t even get merged. They belong together because I want them there.
I did not start Musicer to sell subscriptions or put another player in an app store. I built it because I was tired of switching between everyone else’s idea of the perfect player.
There is still plenty I want to change. The now-playing view will probably be redesigned five times, and I can already tell the mini-player is going to become a minor personal crisis. The difference is that I no longer browse for replacements whenever something annoys me. I open the code.
I have no idea when I will call it done. The same perfectionism that made me quit every other player is now aimed directly at this one, which might have been a tactical mistake.
For now, it’s just me, my IEMs, and a music player that finally gives in to all of my oddly specific preferences. I have to say, music sounds better when you’ve built the player yourself, lol.