A web-based audio stem separator that extracts vocals and accompaniment from songs using Demucs (htdemucs_ft).
- 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_ftmodel running server-side
- Node.js 16+
- Python 3.9+
- PyTorch (with optional CUDA/MPS support for GPU acceleration)
# Install frontend dependencies
npm install
# Install Python dependencies
pip install -r server/requirements.txt# 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- Open http://localhost:3000
- Drag and drop an audio or video file (MP3, WAV, M4A, MP4, WebM)
- Wait for server-side processing to complete
- Download separated vocals and accompaniment as WAV files
- Max file size: 50 MB
- Max duration: 10 minutes
- Supported formats: MP3, WAV, M4A, MP4, WebM
- Frontend: Next.js 13, React 18
- Backend: FastAPI, Uvicorn
- Separation: Demucs (htdemucs_ft) via PyTorch