Stemsplit

Split any track into vocals, drums, bass and the rest, offline

Jonas BergLaunched 8 days agoDesktop appWorking · checked 3 hours ago
0:42

About

Drop in a song, get four stems back. Runs locally on your laptop with an open model, so you can use it on unreleased material without uploading anything.

The hard part wasn't the model, it was making it feel like a real music app: waveforms that scroll smoothly, solo and mute per stem, and export straight into Ableton.

How it was made

Shared by the maker. Numbers are their own estimate.

Build time
3 weeks
AI spend
$35
Prompts
~160
Written by AI
75%

Agents

  • Claude Code

    60% of the work

    Python audio pipeline and packaging

  • Cursor

    40% of the work

    Electron UI and the waveform renderer

MCP servers

No MCP servers. Built with the agents alone.

Build recipe

The code is on GitHub. If you’d rather build it yourself than fork it, paste this into your own agent.

Written by Claude Code

From the project’s code and history · 320 words

Build a desktop app called Stemsplit: split any track into vocals, drums, bass and the rest, offline.

What it does

Drop in a song, get four stems back. Runs locally on your laptop with an open model, so you can use it on unreleased material without uploading anything.

Stack

Use Python, PyTorch, Electron, React. The original was built with Claude Code and Cursor in 3 weeks, for about $35 in AI usage.

How it fits together

  • A desktop app with a native shell and a web UI
  • Local processing so files never leave the machine
  • Auto-updates through signed releases

Build it in this order

  1. Scaffold the app shell and package it once for every platform
  2. Build the main view and the core processing on real files
  3. Move heavy work off the UI thread so it stays smooth
  4. Add export and settings
  5. Set up signed releases and auto-updates

A prompt that worked: Make it feel like a music app

The waveform view stutters when scrolling a 6 minute track. Profile it, then move rendering to an OffscreenCanvas in a worker with pre-computed peaks at three zoom levels. Keep the UI exactly as it looks now. Measure before and after and tell me the frame times.

Watch out for

  • Packaging and signing take longer than you think; do it in week one
  • Profile on a slow laptop, not just your own

Done when

  • It installs and updates on macOS and Windows
  • The UI never freezes during heavy work
  • Nothing is uploaded without the user knowing

Before writing code, ask me up to five questions about who this music & audio desktop app is for and what the first version must do. Then work in small steps: after each one, tell me how to try it and wait for my feedback.

Discussion

4 comments · 2 members tried it

  • Priya RamanTried it3 hours ago

    Clean idea and it actually works. The build log is the most useful part for me, I'd love more detail on how you structured the prompts in week two.

  • Noah FischerTried it1 day ago

    Ran it locally in under five minutes. README is great. Would you take a PR that adds a Docker set-up?

    • Jonas BergMaker2 hours ago

      Thanks! Good question, I'll write it up in the build log this week.

  • Amara Okafor2 days ago

    Copied the main prompt and adapted it for a project at work. Saved me an afternoon.