Image of music streams

Machine Learning in Linux: StemRoller – separate vocal and instrumental stems from songs

With the availability of huge amounts of data for research and powerful machines to run your code on with distributed cloud computing and parallelism across GPU cores, Deep Learning has helped to create self-driving cars, intelligent voice assistants, pioneer medical advancements, machine translation, and much more. Deep Learning has become an indispensable tool for countless industries.

This series looks at highly promising machine learning and deep learning software for Linux.

StemRoller is software which lets you separate vocal and instrumental stems from any song with a single click. It uses Facebook’s Demucs algorithm for demixing songs and integrates search results from YouTube.


We tested StemRoller on Ubuntu 22.10 and Manjaro. The developer of StemRoller doesn’t support Linux and there isn’t even a package in the Arch User Repository for Manjaro. We have to take the manual installation approach.

The first step is to install ffmpeg, a software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams.

$ sudo apt install ffmpeg ## Ubuntu
$ sudo pacman -S ffmpeg ## Manjaro

Mext, install demucs with pip, a Python package manager.

$ pipx install demucs

This command installs many packages. On our Ubuntu system, it installs the following software.

Successfully built demucs julius dora-search antlr4-python3-runtime treetable
Installing collected packages: lameenc, antlr4-python3-runtime, treetable, submitit, retrying, omegaconf, nvidia-cuda-runtime-cu11, nvidia-cuda-nvrtc-cu11, nvidia-cublas-cu11, einops, nvidia-cudnn-cu11, torch, torchaudio, julius, dora-search, diffq, openunmix, demucs
Successfully installed antlr4-python3-runtime-4.9.3 demucs-4.0.0 diffq-0.2.3 dora-search-0.1.11 einops-0.6.0 julius-0.2.7 lameenc-1.4.2 nvidia-cublas-cu11- nvidia-cuda-nvrtc-cu11-11.7.99 nvidia-cuda-runtime-cu11-11.7.99 nvidia-cudnn-cu11- omegaconf-2.3.0 openunmix-1.2.1 retrying-1.3.4 submitit-1.4.5 torch-1.13.1 torchaudio-0.13.1 treetable-0.2.5

We can now proceed and clone the project’s GitHub repository and change into the newly created directory.

$ git clone
$ cd stemroller

Install the dependencies:

$ npm i -D

Next page: Page 2 – In Operation and Summary

Pages in this article:
Page 1 – Introduction and Installation
Page 2 – In Operation and Summary

Share your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.