Skip to content

huchukato/stemify-audio-splitter

Repository files navigation

Stemify - The Audio Splitter

Stemify - The Audio Splitter

License: MIT Python React Flask AI Platform

A web application for audio track separation. This application allows you to upload an audio file and separate it into its components: vocals, drums, bass, and other instruments.

πŸš€ Features

  • Intuitive web interface
  • Real-time track separation using AI
  • Audio preview of separated tracks
  • Download individual tracks
  • Support for various audio formats
  • Fast processing with Demucs v4

πŸ“‹ Prerequisites

  • Python 3.12 or higher
  • uv (Python package manager) - install it with: curl -LsSf https://astral.sh/uv/install.sh | sh
  • npm (Node Package Manager)
  • Git

πŸ’» Installation

Quick Installation for Linux and macOS

  1. Clone the repository:
git clone https://github.com/huchukato/stemify-audio-splitter.git
cd stemify-audio-splitter
  1. Run the installation script:
chmod +x linux_mac_install_run.sh
./linux_mac_install_run.sh
  1. Open your browser and navigate to http://localhost:5173

Manual Installation

  1. Backend Setup:
cd demucs-backend
uv sync
mkdir -p temp separated
uv run python -m gunicorn --bind 0.0.0.0:5001 --workers 1 --timeout 120 app:app
  1. Frontend Setup (in another terminal):
cd demucs-gui
npm install
npm run dev
  1. Open your browser and navigate to http://localhost:5173

🎡 How to Use

  1. Upload an audio file (MP3, WAV, FLAC, etc.)
  2. Wait for the AI to process and separate the tracks
  3. Preview each separated track
  4. Download the individual tracks you want

πŸ› οΈ Technology Stack

  • Backend: Flask + Demucs v4
  • Frontend: React + Vite + Tailwind CSS
  • Audio Processing: Facebook's Demucs v4 model
  • Package Management: uv (Python), npm (Node.js)

Windows Installation

  1. Clone the repository:
git clone https://github.com/huchukato/stemify-audio-splitter.git
cd stemify-audio-splitter
  1. Run the installation script:
.\win_install_run.bat
  1. Open your browser and navigate to http://localhost:5173

🎡 How to Use

  1. Upload an audio file (MP3, WAV, FLAC, etc.)
  2. Wait for the AI to process and separate the tracks
  3. Preview each separated track
  4. Download the individual tracks you want

πŸ”§ Troubleshooting

  • Backend not starting: Make sure port 5001 is not in use
  • Frontend not loading: Check that npm installed successfully
  • Audio processing fails: Ensure the audio file is under 20MB

�️ Security

This project maintains a strong security posture with regular vulnerability assessments and prompt patching.

Recent Security Fixes:

  • βœ… March 2026: Complete security audit resolution
    • Fixed all 15+ vulnerabilities via npm audit
    • Updated rollup (CVE-2026-27606), tar (CVE-2026-26960), minimatch (CVE-2026-27903)
    • Resolved all HIGH and MODERATE severity alerts
    • Status: 0 vulnerabilities (npm audit)

Security Practices:

  • πŸ” Regular Audits: Automated Dependabot monitoring
  • πŸš€ Prompt Updates: Security patches applied immediately
  • πŸ“‹ Vulnerability Disclosure: Transparent security reporting
  • πŸ”’ Secure Dependencies: All packages kept up-to-date

οΏ½πŸ“ License

This project is open source and available under the MIT License.

πŸ‘₯ Author

πŸ™ Acknowledgments

  • Facebook Research for the Demucs v4 model
  • The open-source community for the amazing tools and libraries used in this project

About

🎡 AI-powered audio separation tool - Split any audio file into vocals, drums, bass, and other instruments using advanced machine learning. Built with React, Flask, and Facebook's Demucs v4 model.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors