A desktop application for combining and subtracting audio stems. Built with Python and PyQt5.
Add or Subtract Stems lets you manipulate audio files by adding (mixing) or subtracting stems from a song. This is useful for:
- Isolating leftover artifacts – The majority of AI stem separation tools leave out pieces of the original audio. Just try adding the separated stems back together, they won't quite equal the input audio - some algorithms leave more out than others but in general AI stems aren't complete until you subtract them from the song you started with and spit out what's left. The Subtract Stems part of this tool greatly speeds up this task compared to using a DAW.
- Combining stems – Mix multiple audio files together, allowing you to (for example) mix leftover artifacts back into one of your stems or average the results from multiple algorithms - (for those unaware, -6db = half amplitude, so combining two stems @ -6db is the same as averaging the two stems, useful for averaging the results of two AI algorithms)
- Lowering volume before unmixing – Before running AI stem separation algorithms, you will get better results if you first lower the volume because it helps avoid clipped output audio. To do this quickly and easily, I made it so you can just drag a single file into the Add Stems tab and select how much you want to lower the volume.
- Drag and drop multiple audio files to combine them
- Option to lower volume before summing (0dB, -1dB, or -6dB)
- Automatic clipping detection with the option to reduce volume or to let it clip
- Single file mode for simple volume reduction or format conversion
- Drag your original song on the left
- Drag the stems you want to remove on the right
- The app subtracts the stems from the original, leaving you with what remains
- Multiple output formats: Export as FLAC or WAV. Why only lossless output? Because the only way to get a perfect sum is with a lossless format. Try to avoid using .mp3 for AI stem separation, it won't do as good a job as FLAC or WAV
- Customizable themes: Choose from a variety of color themes organized by color category
- Cross-platform: Works on Windows, macOS, and Linux
- WAV, W64
- AIFF, AIF, AIFC
- FLAC
- OGG, OGA, Opus
- MP3
- AU, SND, CAF
- And more (RAW, VOC, PVF, XI, HTK, SD2, SPH, NIST, SF, MAT)
Download the latest release for your platform from the Releases page.
-
Clone the repository:
git clone https://github.com/smcconne/Add-or-Subtract-Stems.git cd Add-or-Subtract-Stems -
Install dependencies:
pip install PyQt5 numpy soundfile
-
Run the application:
python "Add or Subtract Stems.py"
To create a standalone executable:
pip install pyinstaller
pyinstaller "Add or Subtract Stems.spec" --noconfirmThe executable will be in the dist folder.
- Launch the app
- Choose a tab:
- Add Stems: For combining audio files or adjusting volume
- Subtract Stems: For removing stems from a song
- Drag and drop your audio files into the drop zones
- Select options (volume reduction, output format)
- Click the action button to process
- Find your output in the same folder as your input files
When you subtract stems from a song, the app performs sample-by-sample subtraction. This works best when:
- The stems were originally extracted from the exact same mix
- The audio files have matching sample rates
- The stems are properly aligned (same starting point)
Note: This is phase-cancellation subtraction - for best results, use stems that were split from the same master file.
This project is open source.
- App icon by Pop Vectors
