AI-Powered · Open Source · Portfolio Project

Hierarchical
Stem Separation

Not just 4 tracks — StemForge AI splits any song into lead vocal, backing vocals, kick, snare, hi-hat, cymbals, bass, guitar and synth in a two-stage AI pipeline.

Bad Omens Somebody Else The Death of Peace of Mind
Live processing is disabled — high CPU/GPU requirements. This demo uses pre-processed audio. To run your own tracks locally, clone the repo.
▶ Press Play to hear the main stems. Sub-stems (lead vocal, kick, snare…) start muted — click M to toggle them. Mute a parent stem (e.g. Drums) before unmuting its sub-stems to avoid doubling.
0:00.0 / 0:00.0
Bad Omens Somebody Else
Loading stems…

How it works

Two-stage hierarchical pipeline — Demucs handles the main separation, then custom spectral models go deeper into drums and vocals.

🎵 UploadMP3/WAV/FLAC
FastAPIREST API
Celery + RedisJob Queue
Demucs htdemucs_6svocals · drums · bass · guitar · synth
Drum Sub-sepHPSS + freq masking
+
Vocal Sub-sepWiener + mid-side
🌐 Web MixerReact + wavesurfer.js
Frontend
Next.js 14
Styling
Tailwind CSS
Waveform
wavesurfer.js
Backend
FastAPI
Queue
Celery + Redis
Main AI
Demucs v4
Drum AI
HPSS + scipy
Vocal AI
Wiener masking
Infra
Docker Compose

Limitations & Future Work

Live AI processing requires ~5–15 min/song on CPU or a dedicated GPU. Not suitable for shared hosting. Backing vocal separation is experimental — mid-side masking works best on professionally mixed stereo tracks. Drum separation uses spectral methods; LarsNet integration is planned for better component isolation. Future work includes GPU support, user accounts, and a public API.