A privacy-first desktop app that removes vocals from audio and video files with one click. Create karaoke tracks by removing vocals from various audio and video formats. All processing happens locally on your device.
- One-click vocal removal
- Support for multiple audio formats:
- MP3, WAV, FLAC, AAC, OGG, M4A, WMA, AIFF, ALAC
- Support for multiple video formats:
- MP4, AVI, MOV, MKV, WMV, FLV, WEBM, M4V, 3GP
- Generates both instrumental and acapella versions
- Real-time processing status updates
- Local processing (no data leaves your device)
- Clean, minimal UI with dark mode support
- Cross-platform (macOS, Windows, Linux)
- Auto-updates support
- The app uses FFmpeg for audio processing and vocal removal.
- When you drop a file:
- For video files: The audio is extracted and converted to WAV format
- For audio files: The file is converted to WAV format if needed
- The audio is then processed to:
- Generate instrumental version (vocals removed)
- Generate acapella version (isolated vocals)
- Both versions are saved in the same directory as the input file
- Node.js 16 or later
- npm or yarn
- FFmpeg (automatically installed via ffmpeg-static)
- Clone the repository:
git clone https://github.com/yourusername/vocal-remover.git
cd vocal-remover
- Install dependencies:
npm install
- Start the development server:
npm run dev
This will:
- Start the Vite development server
- Launch the Electron app in development mode
- Enable hot reloading
- Open DevTools automatically
npm run dev
- Start development servernpm run start
- Start Electron in development modenpm run build
- Build the React appnpm run preview
- Preview the built app
npm run build:all
This will build the app for macOS, Windows, and Linux.
# For macOS
npm run build:mac
# For Windows
npm run build:win
# For Linux
npm run build:linux
The built apps will be available in the release
directory.
The app uses electron-builder for packaging. Configuration can be found in package.json
under the build
field:
appId
: Unique identifier for the appproductName
: Display name of the apppublish
: GitHub release configuration- Platform-specific settings for macOS, Windows, and Linux
The app uses semantic versioning. To create a new release:
# For patch updates (bug fixes)
npm run release:patch
# For minor updates (new features)
npm run release:minor
# For major updates (breaking changes)
npm run release:major
The app includes auto-update functionality:
- Checks for updates on startup
- Downloads updates in the background
- Prompts user to install when ready
- Supports GitHub releases
- Update version:
npm run release:patch # or minor/major
- Build for all platforms:
npm run build:all
- Create a GitHub release with the built files