Es ist bereits fast ein Jahr her, das ich über die real-time stems separation in VirtualDJ geschrieben habe und das Thema die Tonspuren eines Musikstückes zu trennen ist nach wie vor aktuell.
Damals ging mehr oder weniger der Hype im Spleeter voraus. Weitere Tools, ganz gleich ob für’s Studio wie z.B. iZotope RX (ab Edition “Standard”, dort “Music Rebalance” genannt) oder für’s DJing wie Neural Mix Pro gibt es ebenfalls. Ganz neu war ist ist dieses Thema also nicht.
Eine weitere Alternative existiert mit dem Facebook-Projekt Demucs. Dieses ist wie Spleeter open source, setzt (wen wunderts) auf ein vorab trainiertes KI-Modell und läuft unter Python. Das Tool lässt sich auf alle gängigen Plattformen ausführen, Anleitungen hierzu findet man auf der Projektseite. Unter Windows installiert man zuerst Anaconda und klont zunächst das Git-Repository:
cd %HOMEPATH% conda install git git clone https://github.com/facebookresearch/demucs
Um nun den eigentlichen Vorgang durchzuführen benötigt man folgende Zeilen im Anaconda Prompt:
cd %HOMEPATH% cd demucs conda activate demucs python.exe -m demucs.separate -d cpu --dl "PATH_TO_AUDIO_FILE_1"
Anbei ein Screenshot eines Versuchs:
Je nach Umfang des Musikstücks oder der Leistungsfähigkeit des Computers benötigt der Vorgang ein wenig. Das Ergebnis findet sich dann unter
%homepath%\demucs\separated\demucs\<Name der Audio-Datei>\
aufgeteilt in einzelne Dateien mit den Namen
bass.wav drums.wav other.wav vocals.wav
Vor nicht all zu langer Zeit habe ich mal die Ergebnisse von VirtualDJ mit einer vorberechneten Stem-Datei, Spleeter und Demucs verglichen. Hörbar am besten bei diesen Kandidaten ist die Ausgabe von Demucs. Fairer-weise muss man sagen, das der Fokus bei VirtualDJ auf die Echtzeitfähigkeit liegt, schließlich soll ja live und direkt eingegriffen werden können. Bei Spleeter oder Demucs wird ja sozusagen in aller Ruhe berechnet. Die Ergebnisse können zudem je nach Ausgangsmaterial variieren.
Eine Idee für VirtualDJ könnte sein, das bei vorberechneten Stems ein besseres Verfahren angewendet wird.

Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Hallo Andy, durch deinen Blog hier bin ich auf demucs gestoßen. Auch wenn sich mittlerweile die Befehlszeile zum trennen der Spuren wohl geändert hat ( der –dl Befehl führt bei mir zu einer Fehlermeldung, ohne diesen gehts) , funktionert das im Prinzip mehr oder weniger erstaunlich gut – je älter die Aufnahme, umso störanfälliger wird das System. Und hier hab ich ein Problem: Ich habe ein Soundfile, bei dem demucs beim trennen der Quelle in 2 der 4 Ausgabedateien und deutlich hörbares hochfrequentes Pfeifen erzeugt. Ich werd wahnsinnig. Ich hab mir bei Google einen Wolf gesucht, um irgendwie heraus zu bekommen, ob man mit spezielleren Befehlen eine Art “Finetuning” vornehmen kann. Aber vergebens. Ich weiss bis jetzt na nicht einmal, wozu eigentlich dieser –dl Befehl da ist, ist jetzt aber auch nciht so wichtig. . Ich finde keine deutsche Foren die sich überhaupt mit Anaconda/demucs beschäftigen, auch in einschlägigen Audio/Hifi/Sound Foren findet man nichts. Hast du irgendeine Idee, wieso bei diesem File dieses Pfeifen beim demix entsteht und wie man das evtl verhindern kann? Eigentlich ist das ein Bug, denn es kann ja nicht Sinn der Sache sein, ungewollte Töne beim trennen zu erzeugen die da nicht hin gehören. Da das erst mit dem eigentlichen Sound beginnt, kann man nichtmal im nachhinein ein Noise-Profile erstellen und das weeder rausfiltern. CIh wär dir für eine Kurze Antwort dankbar, bitte auch kurz mitteilen, falls du keine Zeit hast, dich damit zu beschäftigen. Danke und Grüße, Dennis
Hallo Dennis,
da kann ich leider nichts zu sagen. Habe demucs seit dem Beitrag nicht mehr verwendet. Du kannst dein Anliegen auf der Projektseite als Bug melden. Den Befehl hatte ich aus der Doku übernommen. Alternativ kannst du dir Mal Acoustica anschauen:
Acoustica 7, spleeter-dj VST3 und mehr um Stems zu erzeugen
Acoustica 7.2 – Zwei Möglichkeiten Stems zu erzeugen bzw. Vocals zu entfernen
Acoustica 7.2 und höher: Stems beim Laden eines Musikstücks erzeugen
Acoustica 7.3 mit verbesserter Remix-Funktion
Gruss, Andy