BölkerBlog

Die Traktor-Collection synchronieren

Es folgt ein kurzes Intro - wer keinen Bock auf meine Hinführung zur Thematik hat, sollte direkt zu Punkt 1 wechseln. Für alle Anderen: ich habe einen Rechner, an dem ich meine Musik verwalte und drei zusätzliche MacBooks, mit denen ich auflege. Wer gut in Mathe ist, erkennt hier direkt: drei Rechner. Traktor, oder genauer Traktor Pro 3 von Native Instruments, ist jetzt aber nicht so richtig Fan einer Cloud-Lösung für die Collection, die in der DJ-Software angelegt wird, was bedeutet: pro Rechner eine Collection. Das ist an sich schon gar nicht mal so toll. Egal, ob es um eine History-Liste geht oder um eine von 7.938 archivierten anderen Playlists oder simpel und allein nur um die bereits analysierten Tracks. Jetzt kann man sich damit behelfen, dass man die gesamte Collection, die komplette Musik auf ein externes Laufwerk schaufelt und dann jedes Mal von Hand synchronisiert. Das funktioniert. Kann man hier nachlesen. Jetzt ist aber nunmal Corona, heißt: ich hab viel Zeit mir Gedanken zu machen. Und ich hab mir gedacht: das muss doch noch einfacher und vor allem dezentraler gehen. Ist doch gar nicht mal so cool, dass man immer an dem Rechner, an dem man die Collection vorbereitet, darauf warten muss, dass alles fertig kopiert hat. Oder immer an eine Festplatte denken muss. Wie schon erwähnt, macht Traktor einem das aber gar nicht so leicht.

Dieses Tutorial wurde ausschließlich für Traktor Pro 3 entwickelt und nicht für Traktor DJ 2.


Alles in diesem Tutorial kann mit den Bordmitteln von macOS, Synology DSM und Traktor Pro erreicht werden.

    Auf gehts: worin liegen die Hauptprobleme einer Synchronisierung der Traktor-Mediathek?

    1. Der Dateipfad zur Musik im lokalen System ist nicht zwingend der Gleiche, Traktor erlaubt aber weder ein Alias, noch andere Variablen

    2. Alle Dateien müssen auf allen Klienten synchron sein, also irgendeine Form von Cloud ist für das Synchronisieren zwingend notwendig (wenn die Synchronisation abgeschlossen ist, wird aber keine Internetverbindung mehr benötigt)

    3. Das Ganze muss in jegliche Richtung funktionieren


    Was ich in diesem Tutorial nicht erläutere ist, wie man eine Traktor-Collection einrichtet und organisiert oder wie man einen Synology NAS-Server einrichtet und als "eigene Dropbox" fertig macht.


    1. Das Dateisystem vorbereiten

    Damit Traktor immer glaubt, dass die gleiche Mediathek geöffnet wird, muss dafür gesorgt werden, dass auf allen Rechnern identische Klone der Dateien sind. Um das zu erreichen, tut es letzten Endes jeder Cloud-Dienst, völlig egal, ob Dropbox, Google Drive oder iCloud - die einzige Voraussetzung ist, dass dort genug Speicherplatz für die gesamten Traktor-Dateien, sowie die gesamte Musik ist. Und daran scheitern dann auch viele Dienste direkt wieder. Deswegen empfehle ich die Nutzung eines NAS-Speichers. Hat auch den Vorteil, dass alle der erwähnten Daten nochmal zusätzlich redundant gesichert sind.

    Ich nutze einen Synology NAS. DSM (Disk Station Manager, die Standard-Software von Synology) bringt von Haus aus eine Synchronisierungssoftware mit, inklusive Desktop-Software für macOS und Windows. Ich verzichte hier auf Details, wie man den Server oder den Synology Drive zur Daten-Sychronisierung einrichtet, stehe aber gerne helfend zur Seite, wenn Fragen offen sein sollten. Was hier aber wichtig ist, ist das sowohl das Traktor Root Directory (bestenfalls mit Sample und Remix Directory darin, ansonsten die beiden zusätzlich), als auch das gesamte Musik-Verzeichnis mit dem Server synchronisiert werden. Je nach Größe der Sammlung kann das schon mal ein zwei Tage dauern, bis dann alles auf dem Server ist.

    OBACHT! Da Traktor alle Musik-Dateien bei der Erst-Analyse nochmal bearbeitet, empfiehlt es sich die Collection vor der ersten Synchronisierung komplett analysiert, aufgeräumt und eingerichtet zu haben. Denn sonst lädt man alles doppelt und dreifach hoch. Und das kostet unnötig Zeit.


    2. Traktor Vorbereiten

    Ich erwähnte oben bereits das Traktor kein Alias als Dateipfad erlaubt. Wenn man das Alias im Browser in Traktor auswählt, dann wird der Pfad zum Alias in der Anzeige durch den echten Dateipfad ersetzt. Das ist nicht das, was wir möchten. Denn in den Traktor-Einstellungen müssen auf jedem Klienten dieselben Pfade stehen, sonst können die Dateien nicht synchron sein.

    Also verarschen wir Traktor einfach. Wir setzen einen Alias, obwohl das eigentlich nicht gehen sollte. Aber keine Sorge, Traktor nimmt uns das nicht krumm - es wird dann zwar bei jedem Start behauptet, dass das Musik-Verzeichnis nicht existiert, das kann aber getrost mit einem Klick auf "No" und einem Klick auf "Cancel" ignoriert werden. Denn der automatische Import funktioniert trotzdem. Wenn man also alle Einstellungen angepasst hat - bis auf die Dateipfade -, dann beendet man Traktor einfach.

    Bevor der Alias allerdings gesetzt werden kann, muss er erst angelegt worden sein. Hier kommt ein entscheidender Punkt: das kann ein Pfad sein, der auf einem der Rechner tatsächlich existiert, oder auch einer, der auf allen Rechnern via Alias angesteuert wird, aber es muss zwingend überall der Gleiche sein. Diese Bedingung bedeutet zwei Dinge:

    das schließt Benutzerordner auf Rechnern aus, auf denen die Benutzer unterschiedlich heißen, und das Alias muss immer auf einem gleich benannten Laufwerk liegen. Was beispielsweise auf allen macOS-Systemen, deren interne Festplatte "Intern" heißt, funktioniert, ist folgender Pfad:

    /Intern/Users/Shared/

    In diesem Ordner können die Aliase angelegt werden, die auf die eigentlichen Orte verweisen.

    Das Alias kann dann als Pfad in der "Traktor Settings.tsi" festgelegt werden. Daraufhin wird die "Traktor Settings.tsi" im Root Directory mit einem beliebigen Text-Editor geöffnet. Dann sieht man ganz viel tolles Kauderwelsch. Hier folgt eine Liste der Dinge, die man in der Datei anpassen muss:


    Zum Root-Directory-Eintrag:

    <Entry Name="Browser.Dir.Root" Type="3" Value="DER:PFAD:ZUM:ALIAS"></Entry>

    Zum Remix-Directory-Eintrag:

    <Entry Name="Browser.Dir.ContentImportRoot" Type="3" Value="DER:PFAD:ZUM:ALIAS"></Entry>

    Zum Sample-Directory-Eintrag:

    <Entry Name="Browser.Dir.Loops" Type="3" Value="DER:PFAD:ZUM:ALIAS"></Entry>

    Wichtig ist hier, dass der Pfad nicht mit den üblichen Slashes angegeben wird, sondern stattdessen mit Doppelpunkten - das macht Traktor halt so.

    Dann die Datei wieder abspeichern, als wäre nichts passiert und fertig.

    Jetzt das Ganze noch auf allen Rechnern simultan erledigen, die später auf die gleiche Traktor-Mediathek zugreifen sollen und schon hat man ordentlich was geschafft. Wenn man dann Traktor öffnet und in den Einstellungen den Reiter "File Management" anklickt, werden - hoffentlich - die Alias-Verlinkungen angezeigt:



    3. Die Collection konvertieren

    Und schon sind wir beim Hauptproblem überhaupt angekommen: auch wenn wir bis hierher Traktor zwar Aliase als echte Pfade verkauft haben, so wird doch bei der Analyse der physisch korrekte Pfad in die Collection geschrieben. Und das ist nicht gut, denn das bedeutet, dass wenn sich der Pfad zur Musik auf den Rechnern unterscheidet, dann meldet Traktor plötzlich bei jedem Song auf einem Klienten, dass er die Datei nicht findet. Was wir also tun müssen, ist Traktor immer kurz sagen, auf welchem Rechner wir gerade arbeiten. Leider ist das echt der unschönste Teil der Arbeit und auch das, was jedes Mal händisch erledigt werden muss.

    Das Ganze kann man über den Automator erledigen - bis Herbst 2021 (genauer bis macOS Monterey) zumindest, dann werden die Kurzbefehle in macOS den Automator ersetzen, dann wird das nochmal einfacher und ich werde den Artikel hier aktualisieren. Ich hoffe, dass dann auch Programmstarts als Trigger für automatisierte Kurzbefehle gesetzt werden können - wir werden es erleben.

    Aber bis dahin muss man auf jedem Klienten ein Automator-Programm ablegen, das einmal dafür sorgt, dass die Datei "collection.nml" auf den richtigen Pfad der Musik des entsprechenden Klienten angepasst wird. Dieses muss jedes Mal ausgeführt werden, bevor man Traktor auf einem anderen Klienten als zuvor startet. 

    Das Automator-Programm macht nichts Anderes als die Pfade in der Collection zur Musik umzuschreiben, also zum Beispiel von "Extern" auf "Intern". Dafür sind drei Befehlszeilen und ein kleiner Abschluss-Befehl notwendig. Das Ganze sieht dann so aus:

    Ich empfehle das Umschreiben der NML-Datei in drei Schritten:

    1. Das Volume in der Titel-Auflistung anpassen. Also von "Ursprungsvolume" in "richtiges Volume". Hierbei ist sehr wichtig, dass beide Anführungszeichen, also vor und nach dem Volume-Bezeichner übernommen werden, da sonst Fragmente von Liedtitel überschrieben werden könnten, das Wort "International" beispielsweise würde bei mir ohne Anführungszeichen nach dem Prozess "AkustischIVational" heißen.

    2. Die Volume-Bezeichner in der Playlist-Struktur anpassen. Auch hierbei gilt: das vorherige und folgende Trennzeichen übernehmen, siehe Screenshot. Also sowas wie "Ursprungsvolume/: zu "richtiges Volume/:.

    3. Die Anpassung des tatsächlichen Dateipfades. Auch hier möchte Traktor gerne besonders sein und stellt Dateipfade mit Slash und Doppelpunkt dar. Das bedeutet für die Änderungen: /:alter/:Pfad/: zu /:neuer/:Pfad/:

    Außerdem muss natürlich der korrekte Dateipfad zur "collection.nml" angegeben werden. Ich habe hier den aus dem Beispiel eingetragen. Man kann die Datei aber auch einfach via Drag'n'Drop in das Automator-Fenster an die richtige Stelle ziehen, dann wird der korrekte Pfad automatisch dort eingetragen.

    Hier nochmal alle entsprechenden Zeilen zum Kopieren:

    sed -i .backup 's|"FESTPLATTE-FALSCH"|"FESTPLATTE-RICHTIG"|g' /Pfad/zur/collection.nml

    sed -i .backup 's|"FESTPLATTE-FALSCH/:|"FESTPLATTE-RICHTIG/:|g' /Pfad/zur/collection.nml

    sed -i .backup 's|/:PFAD/:ZUR/:MUSIK/:FALSCH/:|/:PFAD/:ZUR/:MUSIK/:RICHTIG/:|g' /Pfad/zur/collection.nml

    Puh, das war doch ganz leicht.


    An sich würde ich - damit weniger schief gehen kann - immer das Programm "MassReplaceIt" empfehlen. Leider kommt das mit so großen Sammlungen wie meiner nicht klar, da es hier um knapp eine Millionen Ersetzungen geht. Ich habe dies bereits dem Entwickler zurückgemeldet und bin gespannt, ob dieses Problem gelöst wird. Wenn ja, ersetze ich die Automator-Anleitung an dieser Stelle durch eine MassReplaceIt-Anleitung, da das deutlich simpler ist.


    4. Testen

    Bevor man das nun einfach hinnimmt als "Jau, wird schon laufen" empfehle ich sehr ausdrücklich, das ausgiebig zu testen. Für solche Tests sollten folgende Vorbereitungen am gewählten Klienten getroffen werden:

    1. Internetverbindung trennen

    2. Ein Backup der Datei "collection.nml" an einem beliebigen Ort erstellen


    Wenn irgendwas nicht klappt, dann muss die Original-"collection.nml" die geänderte Version im ursprünglichen Verzeichnis ersetzen, bevor die Internetverbindung wieder hergestellt wird, sonst wird auch die Datei auf dem Hauptrechner überschrieben. Und das würde bedeuten, dass die ganze Collection nicht mehr funktioniert. Das sollte doch eher vermieden werden.


    Wenn dann alles klappt, hat man Folgendes erreicht: man kann die Musik-Sammlung dezentral verwalten und vorbereiten. Danach reicht eine (in der Regel) kurze Internetverbindung, um den Klienten auf den aktuellen Stand zu bringen. Nach dem Gig oder dem Umsortieren oder Anlegen von Playlists reicht ebenfalls eine kurze Internetverbindung, um die gesamten Änderungen auf den Hauptrechner oder einen anderen Klienten zu übertragen. Somit hat man immer überall den letztmöglichen aktuellen Stand der Traktor-Bibliothek, ohne externe Laufwerke, inklusive der kompletten History und aller gesetzten CUE-Points und so weiter.


    ende.

    Ich freue mich wie immer sehr über Fragen, Anmerkungen und/oder Anregungen.

    2 Kommentare

    Hallo Ihr Lieben, ich habe nun schon drei Nächte mit diesem Tutorial verbracht und komme nicht weiter. Traktor erkennt mein iCloud Drive immer noch und akzeptiert das Alias anscheinend nicht. Können wir irgendwie in Kontakt kommen?
    LG Kolja

    Antworten

    Hey Kolja, das tut mir voll Leid! 😔 Ich hab dir eine Mail geschrieben - falls du die nicht direkt siehst, kontrolliere bitte auch deinen Spam-Ordner! Leider wird unsere Domain noch immer ab und an aussortiert. 🙈
    Falls wir rausfinden, was das Problem ist, werde ich das hier anschließend dokumentieren - damit es für andere verhindert werden kann 😊
    Lieben Gruß, der Lukas

    Antworten