Recent submissions

Comment · 14 days ago
Not suno :) I was a chillout trance DJ on my previous life ( 20 years ago or so ) so this is one of my tracks that that I rebooted with my wife :)
Comment · 14 days ago
Sorry to disappoint you but those are my tracks :) it was tempting to use suno to get the result fast but I paired with my wife to create those tracks ( we both have musical background )
Comment · 14 days ago
That's me actually, I just didn't wanted to drop then on GitHub so I went to r2 storage :)
Comment · 14 days ago
actually I'm a big fan of source, used this guy since the beginning of times :)
Comment · 2 months ago
You cant run from the mobile but you can access from it, the mobile interface is available through QR scan on the app :)
Comment · 2 months ago
thanks! hope that you are enjoying it :)
Comment · 2 months ago
not noob at all, but im afraid that's outside of the purpose of the app, right now you can split lead and backing vocals though.
Comment · 2 months ago
cool questions right there :

For packaging, StemDeck uses a private portable Python runtime rather than depending on the user’s system Python. The CPU builds include the CPU version of PyTorch. The NVIDIA builds intentionally do not bundle the full CUDA stack because that would add roughly 2.5 GB and can exceed GitHub’s release-asset limit. Instead, first launch detects the GPU and driver, then installs the matching CUDA-enabled PyTorch build into the private runtime. If CUDA setup or verification fails, StemDeck restores the CPU build and remains usable. Model weights are downloaded separately and cached.

For Demucs memory use, I am not dynamically adjusting the segment size or overlap based on available VRAM yet. The current worker uses Demucs splitting with its default segment selection, 0.25 overlap, and either one or two shifts depending on the selected quality mode. A GPU failure automatically retries the separation on CPU, but that is recovery rather than proactive memory management. Detecting available VRAM and selecting safer parameters before starting would be a worthwhile improvement.

The desktop port issue is already handled similarly to your suggestion. StemDeck first attempts to reserve the configured port, which defaults to 8000. If that port is unavailable, it asks the operating system for a free ephemeral port and launches the backend there. The shell also gives each backend instance a unique token and verifies it through the health endpoint, so it cannot accidentally connect to another StemDeck instance or an unrelated service.

Named pipes or domain sockets could still reduce the loopback surface, but they would complicate the browser and mobile interfaces, which intentionally connect to the same FastAPI backend. Thank you for the thoughtful review. These are exactly the kinds of implementation details I hoped people would challenge.

:)

Comment · 2 months ago
concern from my side as well at some point, But The name comes from audio “stems” and the multitrack “deck” interface, but I understand that it can be confused with Steam Deck or Stream Deck. There is no affiliation with Valve or Elgato, and I’ll take any legitimate trademark concern seriously. Naming things really is the hardest problem in software. :)

For overall reference:

"In audio production, a stem is a discrete or grouped collection of audio sources mixed together, usually by one person, to be dealt with downstream as one unit. A single stem may be delivered in mono, stereo, or in multiple tracks for surround sound."

Comment · 2 months ago
Not yet. StemDeck currently ships with htdemucs_6s, and there is no general model-loading interface today. This is something I’m actively exploring. MDX-Net and RoFormer are especially interesting because different models can perform better on different instruments and mixes.

I agree that running the same track through multiple models and A/B comparing individual stems would be far more useful than presenting one model as universally “best.” The difficult parts are model licensing, package size, hardware requirements, and providing a consistent output format across models.

I also want to avoid making every user download several gigabytes of weights they may never use. The likely approach would be optional, on-demand model downloads with cached results and a model selector. So the short answer is no today, but alternative models and proper A/B comparison are absolutely on the roadmap. Contributions and model recommendations are very welcome thoyugh :)

Comment · 2 months ago
Rust could certainly handle much of the audio pipeline, but using Rust everywhere would not automatically make the application simpler or more reliable.

Other options may be available but for me FFmpeg provides mature, well-tested support for decoding, transcoding, resampling, mixing, and muxing across a wide range of formats. Web Audio handles synchronized multitrack playback, per-stem gain, mute and solo, metering, looping, speed control, and the browser-based mobile interface. Since the separation model already depends on Python and PyTorch, rewriting the surrounding audio stack in Rust would not remove the largest runtime dependency.

As for RUst itself its currently used for the Tauri desktop shell and process lifecycle. A native Rust audio engine may make sense later if it produces a measurable improvement in latency, memory use, or reliability, but replacing proven components purely for architectural consistency would add considerable complexity.

For the vibe coding part:

AI tools have assisted with development, and I am transparent about that. However, the architectural choices are deliberate, the code is reviewed, and the project has automated backend and browser testing. I would still welcome specific technical criticism or examples of places where the current design is causing real problems.

That's where my background kicks in, seasoned musician here with over 25+ year working on IT industry, so as i like to joke, im the maestro of the orchestra :)

On another words. i actually know how to cook , but to do it faster i need the assistances otherwise as a family man, I would never have the time to ship that and help my kid on a useful time.

Comment · 2 months ago
That's actually the whole point for me. As i have no itention to monetize anything. Most people that are there are people that i Personaly know and that have a positive impact on my life or companies like empress/ Thoman that im a fanboy and their support has been amazing towards any product that i bought with them.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton