Skip to content

binary-pixels/Stemify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stemify

A web-based audio stem separator that extracts vocals and accompaniment from songs using Demucs (htdemucs_ft).

Screenshots

Home

Processing

Results

Architecture

  • Frontend: Next.js — drag-and-drop file upload with real-time progress polling
  • Backend: FastAPI (Python) — receives uploads, queues Demucs jobs, serves results
  • Separation: Facebook's Demucs htdemucs_ft model running server-side

Requirements

  • Node.js 16+
  • Python 3.9+
  • PyTorch (with optional CUDA/MPS support for GPU acceleration)

Setup

# Install frontend dependencies
npm install

# Install Python dependencies
pip install -r server/requirements.txt

Run

# Start both frontend and backend (requires concurrently)
npm run dev:all

# Or start separately:
npm run dev          # Next.js on http://localhost:3000
npm run server       # FastAPI on http://localhost:8000

Usage

  1. Open http://localhost:3000
  2. Drag and drop an audio or video file (MP3, WAV, M4A, MP4, WebM)
  3. Wait for server-side processing to complete
  4. Download separated vocals and accompaniment as WAV files

Limits

  • Max file size: 50 MB
  • Max duration: 10 minutes
  • Supported formats: MP3, WAV, M4A, MP4, WebM

Tech Stack

  • Frontend: Next.js 13, React 18
  • Backend: FastAPI, Uvicorn
  • Separation: Demucs (htdemucs_ft) via PyTorch

About

Stemify project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors