DJ Cataclysm – DJ-Tool v1.0.0 ShopVerkaufsseite DEEN

Vorwort

Herzlich willkommen zum DJ-Tool.

Dieses Tool ist aus meinem persönlichen Bedarf entstanden. Als DJ ist es wichtig, Tracks vorzubereiten. Dazu gehört nicht nur die Anpassung der Lautstärke, sondern auch die Konvertierung des Ausgangsmaterials in verschiedene Formate. Für eine gut strukturierte Musiksammlung spielen ferner ID3 Tags eine große Rolle.

Anstatt mehrere Tools zu benutzen, wollte ich eine einfache, zuverlässige Möglichkeit, meine Audiodateien für Streaming-Plattformen entsprechend vorzubereiten, und zwar in einem Tool, welches meine Bedarfe deckt.

Herausgekommen ist mein DJ-Tool.

Das DJ-Tool normalisiert WAV- und MP3-Dateien auf den Streaming-Standard von −14 LUFS / −1 dBTP, konvertiert zwischen Formaten und bietet einen vollständigen ID3-Tag-Editor mit automatischer BPM- und Tonart-Erkennung, Anbindung an MusicBrainz und Discogs sowie CSV-Im-/Export und Rekordbox-XML-Export.

Ferner ist es für macOS (Silicon) und Windows 10/11 verfügbar.

Ich hoffe, dass auch Dein Workflow damit erleichtert wird.

Viel Spaß im Mix!

DJ Cataclysm

1 Systemvoraussetzungen und Einschränkungen

1.1 Systemvoraussetzungen

ffmpeg ist vollständig im App-Bundle enthalten. Es muss keine weitere Software installiert werden.

1.2 Einschränkungen

2 Installation

2.1 Installation macOS

xattr -cr "/Applications/DJ Cataclysm - DJ-Tool.app"

ffmpeg ist vollständig im App-Bundle enthalten (Contents/Frameworks/ffmpeg). Es muss keine weitere Software installiert werden.

2.2 Installation Windows

ffmpeg.exe liegt im selben Ordner wie die Executable und wird automatisch gefunden. Die beiden Dateien müssen immer zusammen bleiben – ffmpeg.exe darf nicht verschoben werden.

3 Oberfläche im Überblick

3.1 Hauptfenster und Navigation

Die App startet mit dem Hauptfenster und zeigt die Navigationsleiste (links) sowie das untere Ausgabefenster an.

Das Hauptfenster besteht aus drei Bereichen:

3.1.1 Kopfzeile

Die Kopfzeile enthält den App-Namen, die Versionsnummer und ein Sprach- Dropdown. Die Sprache lässt sich auf DE, EN, ES, IT, PL oder RU umschalten. Nach der Auswahl muss die App neu gestartet werden, damit die Sprachänderung wirksam wird.

Die Tab-Leiste enthält die folgenden 5 Menüeinträge:

3.1.3 Log-Bereich

Beim Log-Bereich (unten) handelt es sich um ein scrollbares Ausgabefenster mit Statusmeldungen. Die Höhe lässt sich durch Ziehen der Griffleiste (• • •) zwischen Inhalt und Log vergrößern oder verkleinern.

Die Navigationsleiste wird beim Start der App vollständig geladen. Ein Wechsel zwischen den Menüeinträgen ist jederzeit möglich. Laufende Prozesse (z. B. Normalisierung) werden davon nicht unterbrochen.

3.2 Kurze Beschreibung der Hauptfunktionen

3.2.1 Normalisierung

Die Normalisierungsfunktion passt die Lautstärke von Audiodateien auf den Streaming-Standard −14 LUFS / −1 dBTP an. Originale werden nicht verändert.

3.2.2 Konvertierung

Im Menübereich Konvertierung kannst Du Audiodateien zwischen MP3, WAV und FLAC umwandeln, optional mit wählbarer Bitrate bei MP3.

3.2.3 ID3-Tags

Hier findest du einen vollständigen Metadaten-Editor mit Online-Anbindung an MusicBrainz, Discogs und Spotify sowie lokaler BPM- und Tonart- Erkennung, Cover-Artwork-Verwaltung, Fingerprint-Suche (AcoustID) und einem Audio-Player.

3.2.4 Batch & Export

Alle Werkzeuge die auf die gesamte geladene Dateiliste (ID3-Tags) wirken sind hier dargestellt:

3.2.5 Dateiinfos

Darstellung verschiedener Dateieigenschaften in Listenform.

4 Normalisierung

4.1 Hintergrund: Was bedeutet −14 LUFS?

LUFS steht für Loudness Units relative to Full Scale – die Maßeinheit für integrierte Lautheit nach dem Standard ITU-R BS.1770-4. Streaming-Plattformen normalisieren alle Inhalte auf einen Zielwert:

Der True Peak (dBTP) begrenzt den maximalen Signalpegel nach der Analog-Digital-Wandlung. Der Standardwert −1 dBTP verhindert Clipping bei verlustbehafteter Wiedergabe (Bluetooth, AAC-Streaming). Das DJ-Tool normalisiert nach dem Standard ITU-R BS.1770-4 auf den einstellbaren Zielwert und begrenzt gleichzeitig den True Peak.

Peak-Limiting: Falls die Verstärkung auf −14 LUFS den True Peak über −1 dBTP heben würde, wird der Gain automatisch zurückgenommen, bis der Peak-Grenzwert eingehalten ist. Im Log erscheint dann [PEAK-LIMITED]. Das ist korrektes Verhalten – nicht ein Fehler.

Hinweis: Die Rekodierung ist technisch eine Generation Loss. Bei hohen Bitraten (192–320 kbps) ist der Qualitätsverlust praktisch nicht hörbar. Für professionelle Zwecke empfiehlt sich die Arbeit mit WAV als Quelldatei und MP3-Konvertierung als letzten Schritt.

4.2 Audio-Dateien auswählen

Alle Dateien werden in den Ausgabeordner kopiert und nur dort wird die Normalisierung durchgeführt. Deine originalen Audio-Dateien werden nicht verändert.

4.3 Normalisierungs-Parameter

Als Standard sind −14,0 LUFS und −1,0 dBTP eingestellt. Diese Werte kannst Du anpassen und über die Schaltfläche Standard wiederherstellen zurücksetzen.

4.4 Normalisieren / Analysieren

Erst durch Klicken der Schaltfläche Dateien normalisieren werden die Dateien im Ausgabeordner normalisiert. Mit Dateien analysieren (nur messen) werden LUFS-Wert und True Peak gemessen, ohne Änderungen zu schreiben. Nützlich zur Kontrolle, ob Tracks bereits auf dem Zielwert liegen.

4.5 Ausgabe

Das untere Ausgabefenster zeigt Statusmeldungen zu jeder verarbeiteten Datei, inklusive gemessener LUFS-Werte, angewendetem Gain und eventueller Fehler.

5 Konvertierung

Der Tab Konvertierung wandelt Audiodateien zwischen den Formaten MP3, WAV und FLAC um. Akzeptierte Eingabeformate: MP3, WAV, FLAC, OGG, M4A, AAC, WMA, AIFF, OPUS.

5.1 Dateien wählen

5.2 Zielformat & Bitrate

5.3 Konvertieren

Der Konvertierungsprozess startet durch Klick auf Dateien konvertieren. Die Konvertierung erfolgt ohne Anpassung der Lautstärke.

Tipp: Wer Normalisierung und Konvertierung kombinieren möchte, normalisiert zuerst (WAV → WAV, normalisiert) und konvertiert dann das Ergebnis in das Zielformat.

6 ID3-Tags

Der Navigationspunkt ID3-Tags ist das Herzstück des DJ-Tools für die Musikbibliotheks-Verwaltung. Hier lassen sich Metadaten lesen, bearbeiten, automatisch beziehen und speichern – einzeln oder über den Navigationspunkt Batch & Export für die gesamte Sammlung.

6.1 Was sind ID3-Tags?

ID3-Tags sind Metadaten-Container, die direkt in Audiodateien eingebettet werden. Sie enthalten Informationen wie Titel, Künstler, Album, Genre, BPM und Tonart – all das, was DJ-Software, Musik-Player und Streaming-Dienste brauchen, um einen Track zu identifizieren und anzuzeigen.

Technisch unterscheidet man:

Warum sind korrekte ID3-Tags für DJs wichtig?

6.2 Audiodateien laden

Auch hier hast Du die Möglichkeit, einzelne, mehrere oder einen kompletten Ordner mit Audio-Dateien zu laden.

Nach dem Laden erscheint jede Datei in der Dateiliste rechts. Ein Klick auf einen Eintrag öffnet den Track im Editor links.

6.2.1 Dateilisten-Farben

Die Dateiliste färbt Einträge nach Tag-Vollständigkeit:

6.2.2 Suche und Sortierung

6.3 Tag-Felder imDetail

Unter Tags bearbeiten werden alle verfügbaren Metadatenfelder angezeigt und sind direkt editierbar. Sofern ein Cover vorhanden ist, wird dieses ebenfalls dargestellt.

6.3.1 Titel (ID3-Frame: TIT2)

Der Tracktitel, so wie er auf dem Display des Hardware-DJ-Players oder in der DJ-Software erscheinen soll. Beispiel: "Bassline (Original Mix)". Unicode wird vollständig unterstützt.

6.3.2 Künstler (TPE1)

Der Haupt-Interpret des Tracks. Bei mehreren Künstlern üblich: "Artist 1 & Artist 2" oder "Artist 1, Artist 2".

6.3.3 Album (TALB)

Der Album- oder EP-Name. Für Single-Releases: häufig identisch mit dem Titel oder z. B. "Bassline EP".

6.3.4 Album-Künstler (TPE2)

Wird genutzt bei Compilations oder VA-Alben (Various Artists). Beispiel: "Various Artists". Bibliotheksprogramme nutzen TPE2 zur Album-Gruppierung – alle Tracks mit gleichem Album-Künstler erscheinen unter demselben Ordner.

6.3.5 Jahr (TDRC)

Das Veröffentlichungsjahr als vierstellige Zahl, z. B. "2024".

6.3.6 Track-Nr. (TRCK)

Position des Tracks im Album. Format: "5" oder mit Gesamtanzahl "5/12".

6.3.7 Genre (TCON)

Das Musik-Genre. Freier Text. Empfehlung: konsistente Schreibweise verwenden, z. B. immer "Techno" statt manchmal "techno" oder "TECHNO". Die Funktion "Genre normalisieren" im Batch & Export-Tab hilft dabei.

6.3.8 BPM (TBPM)

Beats per Minute – das Tempo des Tracks. Wird entweder manuell eingetragen oder automatisch per BPM-Analyse ermittelt. Ganzzahliger Wert, z. B. "128".

6.3.9 Tonart (TKEY)

Die musikalische Tonart in Standard-Notation: "C", "C#m", "Dm", "F#" usw. Groß-B = Dur, kleines m = Moll. Das DJ-Tool zeigt den zugehörigen Camelot- Code (z. B. "12A") direkt neben dem Eingabefeld an.

6.3.10 Energie (TXXX:Energy)

Ein Energie-Wert von 1 bis 10, der die Intensität des Tracks beschreibt. Wird als TXXX-Frame mit der Beschreibung "Energy" gespeichert, dem gleichen
Format, das Mixed In Key, Rekordbox und Traktor verwenden.
Beispiel: Intro-Track = 2–3, Peak-Time-Banger = 9–10.

6.3.11 Label (TPUB)

Das Plattenlabel der Veröffentlichung, z. B. "Drumcode", "Ninja Tune", "Self- Released".

6.3.12 Komponist (TCOM)

Der Komponist oder Produzent – oft identisch mit dem Künstler, kann aber bei Remix-Releases abweichen.

6.3.13 Rating (POPM) – Sternbewertung 1–5

Eine persönliche Bewertung des Tracks von 1 bis 5 Sternen. Wird als POPM- Frame gespeichert. Neben dem Eingabefeld erscheint automatisch die Stern- Darstellung, z. B. ★★★☆☆ für 3.

6.3.14 Kommentar (COMM)

Freitext-Kommentar ohne festes Format. Beispiele: "Lieblings-Opener", "Habe ich beim Festival gespielt", "Original Mix", Remix-Notizen.

6.4 Online-Quellen: MusicBrainz, Discogs, Spotify

Das DJ-Tool kann Metadaten automatisch aus drei verschiedenen Online-Datenbanken beziehen. Die Quelle wird über die Radiobuttons ausgewählt.

6.4.1 MusicBrainz

MusicBrainz ist eine freie, gemeinschaftlich gepflegte Musikdatenbank. Keine Anmeldung erforderlich, keine API-Keys nötig. Was wird gesucht: Die App sendet Künstler + Titel – bei Treffer werden Titel, Künstler, Album, Album- Künstler, Jahr und Genre eingetragen. Zusätzlich lädt die App automatisch das Cover-Artwork aus dem Cover Art Archive (coverartarchive.org).

Hinweis: MusicBrainz ist besonders stark bei bekannten Releases aus Rock, Pop, Hip-Hop und klassischer Musik. Für Vinyl-Releases aus der Clubszene (alte Techno/House-Weißlabel-Platten) ist Discogs oft vollständiger.

6.4.2 Discogs

Discogs ist die weltweit größte Plattendatenbank, spezialisiert auf physische Releases. Besonders stark für elektronische Musik, DJ-Releases und Remixes.

Einmalige Verbindung per OAuth: Discogs erfordert ein kostenloses Konto und eine einmalige Anmeldung über den Button "Discogs verbinden ...". Dabei öffnet sich ein Browser-Fenster, in dem Du Dich einloggst und der App Zugriff gewährst.

Der Zugriffstoken wird lokal gespeichert (~/.dj_tool_discogs_token.json) und muss nur einmal eingerichtet werden.

6.4.3 Spotify

Spotify enthält praktisch jeden modernen Track mit korrektem Titel, Künstler, Album und Albumcover. Darüber hinaus liefert die Spotify Web API über den Endpunkt /v1/audio-features auch Tempo (BPM) und Tonart, die automatisch in die entsprechenden Felder eingetragen werden.

Als besonderes Feature ist es möglich, die ID3-Tags über Spotify zu beziehen.

Hierfür benötigst Du eigene API-Credentials (Client ID + Client Secret) – jeder Nutzer verwendet seinen eigenen kostenlosen Spotify-Developer-Zugang. Das ist erforderlich, weil Spotifys Nutzungsbedingungen das Einbetten eines geteilten API-Keys in verteilte Software ausdrücklich untersagen.

Spotify-API-Key einrichten (einmalig, ca. 2 Minuten)

Die Credentials werden lokal in ~/.dj_tool_spotify.json gespeichert und müssen nur einmal eingetragen werden.

Zusammenfassung: Spotify liefert Titel, Künstler, Album, Album-Künstler, Jahr, BPM, Tonart und Cover-Artwork – ein vollständiges Set aller wichtigen Metadaten in einem Schritt.

6.5 Schaltflächen im Detail

6.5.1 Online einlesen

Liest die Metadaten des aktuell ausgewählten Tracks aus der gewählten Online-Quelle ein und füllt alle passenden Felder im Editor aus. Cover- Artwork wird ebenfalls geladen, wenn vorhanden.

Wichtig: "Online einlesen" verändert nichts an der Datei. Erst "Speichern" schreibt die Tags dauerhaft in die Datei. Vor jedem "Online einlesen" wird automatisch ein Undo-Snapshot gespeichert.

6.5.2 Speichern

Schreibt alle geänderten Felder und das Cover-Artwork als ID3-Tags in die Datei. Vor dem Speichern erscheint ein Diff-Dialog (Feld | Vorher | Nachher): Nur Felder mit tatsächlichen Änderungen werden aufgelistet. Bei "Abbrechen" wird nichts gespeichert.

6.5.3 Aus Dateinamen

Extrahiert Künstler und Titel aus dem Dateinamen. Muster: "Künstler - Titel".

Beispiel:

Praktisch für Ordner mit schlecht getaggten Tracks, bei denen der Dateiname das korrekte Muster "Künstler - Titel" trägt.

BPM + Tonart analysieren:

Analysiert das Audio des aktuell geladenen Tracks und ermittelt BPM und Tonart vollständig lokal – ohne Internetverbindung.

BPM-Erkennung:

Tonart-Erkennung (Krumhansl-Schmuckler-Algorithmus, 1990):

Hinweis: BPM- und Tonart-Werte erscheinen zunächst nur im Editor. "Speichern" ist nötig, um sie in die Datei zu schreiben.

6.5.4 Rückgängig

Macht die letzte Änderung im Editor rückgängig. Die App speichert automatisch Snapshots vor: "Online einlesen", "Aus Dateinamen", "BPM + Tonart analysieren" und "Tags einfügen" (bis zu 20 Snapshots). Wechsel zu einer anderen Datei löscht den Undo-Stapel.

6.5.5 Tags kopieren / Tags einfügen

"Tags kopieren" speichert alle Felder und das Cover-Artwork in eine interne Zwischenablage. "Tags einfügen" überträgt diese Werte auf eine andere Datei. Praktisch: Album-Infos von einem Referenz-Track auf mehrere andere übertragen.

6.5.6 Fingerprint-Suche (AcoustID)

Die Fingerprint-Suche identifiziert einen Track anhand seines Klangs – unabhängig von Dateinamen oder vorhandenen Tags. Nützlich für:

Ablauf:

Voraussetzungen:

Ohne fpcalc bleibt der Fingerprint-Button deaktiviert und ist nicht zugänglich.

6.6 Cover-Artwork

Das Cover-Artwork wird als APIC-Frame (Attached Picture) im ID3-Tag gespeichert. Es erscheint in DJ-Software, auf CDJ-Displays und in Music-Apps.

6.7 Track anhören

Mit den Schaltflächen Abspielen und Stop kannst Du einen ausgewählten Song zum Reinhören starten bzw. stoppen. Der Player gibt direkt über das Standard-Audiogerät wieder und stoppt automatisch bei Auswahl einer anderen Datei.

Einschränkung: Auf ARM64-Macs unter Windows (Parallels) steht kein Audio-Interface zur Verfügung – der Player ist in diesem Fall nicht nutzbar.

7 Batch & Export

Der Navigationspunkt Batch & Export enthält alle Werkzeuge, die auf die gesamte geladene Dateiliste wirken. Dateien müssen zuerst im Tab ID3-Tags geladen werden.

Rechts im Batch-Tab erscheint eine Übersicht der geladenen Dateien. Ein Klick auf einen Eintrag wechselt direkt in den ID3-Tags-Tab und öffnet die Datei im Editor.

Wichtig: Alle Batch-Operationen arbeiten immer auf der vollständigen geladenen Dateiliste, nicht auf der gefilterten Anzeige.

7.1 Online-Tagging

7.1.1 Alle taggen & speichern

Führt für jeden Track automatisch eine Online-Suche bei der gewählten Quelle durch und speichert die Ergebnisse sofort. Zwischen den Anfragen wird eine Pause von mindestens 1 Sekunde eingehalten (API-Vorgabe). Ist kein Treffer vorhanden, bleibt die Datei unverändert.

7.1.2 Cover für alle ohne Bild

Sucht für Tracks ohne Cover-Artwork automatisch ein passendes Bild und speichert es als APIC-Frame in die Datei. Tracks mit vorhandenem Cover werden übersprungen. Alle bestehenden Tags (Titel, Künstler, BPM usw.) bleiben vollständig erhalten.

7.2 Analyse

7.2.1 BPM + Tonart analysieren

Identisch zur Einzel-Analyse, aber für alle geladenen Tracks nacheinander. Die Ergebnisse werden sofort in die ID3-Tags geschrieben.

7.2.2 ReplayGain berechnen

ReplayGain ist ein Lautstärke-Normalisierungsstandard, der die Audiodaten nicht verändert, sondern einen Gain-Wert als Metadaten-Tag speichert. Kompatible Abspielerprogramme (foobar2000, VLC, MusicBee) lesen diesen Wert und passen die Wiedergabelautstärke dynamisch an.

ReplayGain vs. LUFS-Normalisierung

ReplayGain

Wie wird der ReplayGain berechnet?

Referenzpegel: −18 LUFS (ReplayGain 2.0 Standard, ITU-R BS.1770-4)

Formel:

replaygain_track_gain = −18 − (gemessener LUFS des Tracks) [in dB]

Beispiele:

7.2.3 Plattform-Vergleich

Misst die LUFS-Lautheit jedes geladenen Tracks und zeigt an, wie viel Gain jede Streaming-Plattform anwenden würde:

Positiver Wert in der Ausgabe: Plattform dreht Track hoch (Track leiser als Ziel). Negativer Wert: Plattform würde herunterdrehen (Track lauter als Ziel).

Für Beatport und SoundCloud: Da diese kein automatisches Loudness-Management betreiben, hört man exakt das, was hochgeladen wurde. Tracks für diese Plattformen sollten auf −8 bis −10 LUFS normalisiert werden.

7.3 Batch-Umbenennen

Benennt alle geladenen Dateien nach einem frei definierbaren Schema um.

Beispiele:

Fehlende Tags: Ist ein Feld leer, wird der Token durch einen leeren String ersetzt. Die Dateiendung (.mp3, .wav usw.) bleibt immer erhalten.

Immer die Vorschau prüfen! Das Umbenennen kann mit "Umbenennen rückgängig" zurückgesetzt werden (bis zu 20 Schritte).

7.4 Batch-Feld setzen

Setzt ein bestimmtes Metadatenfeld für alle geladenen Dateien auf denselben Wert. Verfügbare Felder: Genre, Album-Künstler, Label, Komponist, Kommentar. Ein leerer Wert löscht das Feld.

7.4.1 Genre normalisieren

Vereinheitlicht Schreibweisen häufiger Genre-Bezeichnungen, z.B.:

7.5 Auto-Sortierung

Sortiert die geladenen Dateien automatisch in Unterordner nach einem frei definierbaren Schema.

Verfügbare Tokens:

Verfügbare Tokens in der Auto-Sortierung: {genre}, {artist}, {year}, {title}. Kein {album}, {tracknumber} oder {bpm}.

7.5.1 Beispiel-Schemas und entstehende Ordnerstrukturen

7.5.2 Was passiert bei fehlenden Tags?

7.5.3 Verschieben vs. Kopieren

Immer die Vorschau prüfen bevor die Operation bestätigt wird.

7.6 CSV & Export

7.6.1 CSV exportieren

Speichert alle Metadaten der geladenen Tracks als semikolon-getrennte CSV- Datei mit UTF-8 BOM-Encoding (Excel-kompatibel).

Enthaltene Spalten: Dateiname · Titel · Künstler · Album · Album-Künstler · Jahr · Track-Nr. · Genre · BPM · Tonart · Energie · Label · Komponist · Rating · Kommentar

7.6.2 CSV importieren

Liest eine bearbeitete CSV-Datei zurück. Die Zuordnung erfolgt über den Dateinamen. Nicht gefundene Dateien werden übersprungen und im Log vermerkt.

Typischer Workflow:

7.6.3 Rekordbox XML

Erzeugt eine XML-Datei im DJ_PLAYLISTS-Format für Pioneer Rekordbox 6. Enthält Titel, Künstler, Album, Genre, BPM (2 Nachkommastellen) und Tonart. Import: Datei → Bibliothek → Rekordbox XML → Importieren.

7.6.4 Traktor NML / Serato M3U

Exportiert eine Sammlung für Native Instruments Traktor (NML) bzw. eine Playlist-Datei für Serato DJ (M3U).

7.6.5 Gespeicherte Tags

Das DJ-Tool schreibt zwei TXXX-Frames in die ID3-Tags:

ReplayGain und LUFS-Normalisierung schließen sich nicht aus: Ein Track kann gleichzeitig auf −14 LUFS normalisiert UND mit einem ReplayGain-Tag versehen sein. In den meisten DJ-Setups ist LUFS-Normalisierung die praktischere Lösung.

7.7 Duplikate

Duplikate suchen erkennt doppelt vorhandene Tracks anhand von Künstler und Titel (Groß-/Kleinschreibung wird ignoriert). Gefundene Duplikate werden im Ausgabe-fenster aufgelistet. Nützlich, um redundante Kopien in der Bibliothek zu identifi-zieren.

Das Tool löscht keine Dateien automatisch. Der Nutzer entscheidet welche Version behalten wird.

7.8 Harmonic Mix

7.8.1 Das Camelot-Wheel

Das Camelot-Wheel ordnet jeder der 24 Tonarten, eine Kombination aus Zahl (1–12) und Buchstabe (A=Moll, B=Dur) zu. Harmonisch kompatibel sind: gleiche Zahl (A↔B), Nachbarzahlen (±1).

Vollständige Zuordnung (Camelot → Tonart):

1A = Am / 1B = C
2A = Em / 2B = G
3A = Bm / 3B = D
4A = F#m / 4B = A
5A = C#m / 5B = E
6A = G#m / 6B = B
7A = D#m / 7B = F#
8A = Bbm / 8B = Db
9A = Fm / 9B = Ab
10A = Cm / 10B = Eb
11A = Gm / 11B = Bb
12A = Dm / 12B = F

7.8.2 Camelot-Rad anzeigen

Öffnet ein interaktives Camelot-Wheel als modales Fenster. Äußerer Ring: Dur (B). Innerer Ring: Moll (A). Orangefarbene Punkte zeigen Tracks aus der geladenen Dateiliste in diesem Camelot-Feld.

7.8.3 Harmonisch sortieren

Sortiert die geladene Dateiliste nach Camelot-Nummer (1→12), dann Buchstabe (B vor A). Aufeinanderfolgende Tracks sind so harmonisch miteinander kompatibel – ideal für die Setlist-Planung.

8 Dateiinfos

Unter Dateiinfos werden technische Details zu den Tracks aufgelistet, die im Tab ID3-Tags geladen wurden.

Spalten der Tabelle:

Die Tabelle wird aktualisiert, wenn sich die geladene Dateiliste ändert. Ein Klick auf eine Spaltenüberschrift sortiert die Tabelle nach diesem Wert.

9 Updates

Über die Schaltfläche Auf Updates prüfen kann eine neuere Version der Software heruntergeladen werden. Die App holt eine kleine JSON-Datei (version.json) vom Server und vergleicht die enthaltene Versionsnummer mit der installierten Version.

Dabei werden keine persönlichen Daten übertragen.

9.1 Changelog

Eine vollständige Übersicht aller Änderungen je Version ist unter djcataclysm.com/changelog.html verfügbar.

9.2 Hilfe

Die Schaltfläche Hilfe öffnet ein Popup mit den Links zur Website und dem Handbuch.

Außerdem wird die Kontakt-E-Mail-Adresse angezeigt.

Viel Spaß im Mix!

DJ Cataclysm

10 Marken und Urheberrechte Dritter

Die in diesem Handbuch u.U. genannten Produkt- und Markennamen sind Eigentum ihrer jeweiligen Inhaber. Rekordbox ist eine eingetragene Marke der Pioneer DJ Corporation. Serato ist eine eingetragene Marke der Serato Audio Research Ltd. Traktor ist eine eingetragene Marke der Native Instruments GmbH. Mixed In Key ist eine Marke der Mixed In Key LLC. Spotify ist eine eingetragene Marke der Spotify AB. Apple Music und macOS sind Marken der Apple Inc. YouTube ist eine Marke der Google LLC. Tidal ist eine Marke der Aspiro AB. SoundCloud ist eine Marke der SoundCloud Ltd. Beatport ist eine Marke der Beatport, LLC. Discogs ist eine Marke der Zink Media, LLC. Windows ist eine eingetragene Marke der Microsoft Corporation. foobar2000 ist ein Produkt von Peter Pawlowski.

MusicBrainz und AcoustID sind Projekte der MetaBrainz Foundation. ffmpeg und Chromaprint sind freie Open-Source-Projekte unter ihren jeweiligen Lizenzen.

DJ Cataclysm – DJ-Tool ist weder mit den genannten Unternehmen, Organisationen oder Projekten verbunden noch wird es von diesen gesponsert oder befürwortet. Die Nennung der Marken erfolgt ausschließlich zu Zwecken der Kompatibilitäts-beschreibung und Produktidentifikation.

Lizenzen und Drittanbieter-Software

Überblick

Dieses Dokument listet alle Software-Bibliotheken und externen Dienste, die in der Anwendung »DJ Cataclysm – DJ-Tool« eingesetzt werden. Die App läuft auf macOS (Apple Silicon) sowie Windows 10/11. Für jede Komponente werden Lizenz, Version, Verwendungszweck und Umfang der Nutzung dokumentiert.

Enthaltene Features:

Zweisprachige Oberfläche (DE / EN): Sprachumschaltung per Dropdown in der Kopfzeile, Einstellung wird in ~/.dj_tool_config.json gespeichert.

Update-Funktion: Prüfung auf neue App-Versionen per Schaltfläche „Auf Updates prüfen" in der Kopfzeile (zusätzlich im Menü: Hilfe → Auf Updates prüfen …) (HTTP-Abfrage einer Versions-JSON auf dem Server; bei verfügbarem Update wird Download-Link im Browser geöffnet).

ffmpeg ist ab dieser Version vollständig im macOS-Bundle enthalten (statischer arm64-Build aus imageio-ffmpeg v7.1). Der Nutzer muss nichts separat installieren.

Komponenten-Übersicht

Komponente Lizenz Version Verwendungszweck Umfang der Nutzung

Python 3 PSF License 2.0

3.14.2 (macOS) / 3.12.9 (Windows)

Laufzeitumgebung. Standardbibliotheken: tkinter, struct, json, urllib, threading, subprocess, platform, sys, io, hmac, hashlib, base64, secrets, webbrowser.

Vollständig ins App-Bundle eingebettet via PyInstaller. Keine Änderungen.

(kommerziell frei)

pyloudnorm MIT License

0.2.0 Lautheitsmessung und Gain-Berechnung nach ITU-R BS.1770-4. Ziel: −14 LUFS / −1 dBTP.

Als Python-Modul importiert und ins Bundle eingebettet. Keine Modifikation.

(kommerziell frei)

soundfile BSD 3-Clause

0.13.1 Lesen und Schreiben von WAV- und FLAC- Audiodateien als NumPy-Float-Arrays.

Als Python-Modul importiert und ins Bundle eingebettet. Keine Modifikation.

(kommerziell frei)

numpy BSD 3-Clause

2.4.4 Verarbeitung von Audio-Sample-Arrays (pyloudnorm, soundfile). Direkt genutzt für BPM- und Tonart-Detection: Autocorrelation, Chroma-Profil-Korrelation (Krumhansl- Schmuckler).

Als Python-Modul importiert. Keine Modifikation.

(kommerziell frei)

scipy BSD 3-Clause

1.17.1 Signal-Verarbeitung für BPM- und Tonart- Detection: STFT (scipy.signal.stft), Resampling (resample_poly), Korrelationsberechnung (numpy.corrcoef). Bereits indirekt über pyloudnorm.signal im Bundle enthalten.

Als Python-Modul importiert und ins Bundle eingebettet. Keine Modifikation.

(kommerziell frei)

tinytag MIT License

2.2.1 Fallback-Lesebibliothek für Metadaten (FLAC, OGG, M4A, AIFF). Liest auch BPM.

Als Python-Modul importiert. Keine Modifikation.

(kommerziell frei)

sounddevice MIT License

0.5.5 Audio-Wiedergabe im ID3-Tab (Mini-Player: Abspielen, Pause, Stop, Positionsanzeige). Optionale Abhängigkeit — bei Fehlen erscheint ein Hinweistext statt der Player-Schaltflächen.

Optionaler Import (_HAS_SD- Flag). Ins Bundle eingebettet wenn vorhanden. Keine Modifikation.

(kommerziell frei)

Pillow (PIL) HPND License**

12.2.0 Dekodierung und Skalierung von JPEG-/PNG- Cover-Art für die Thumbnail-Anzeige im ID3- Editor (128 × 128 px).

Als Python-Modul importiert und ins Bundle eingebettet. Nur UI- Vorschau — APIC-Rohdaten-

(kommerziell frei)

Speicherung erfolgt ohne Pillow.

Spotify Web API Freier Webdienst (mit Registrierung)

GPL 2.0

7.1 MP3-Dekodierung (PCM-Pipe), MP3- Neukodierung nach Normalisierung, Audio- Konvertierung (alle Formate → MP3/WAV/FLAC), Bitrate-Erkennung.

Statischer arm64-Build, eingebettet in Contents/Frameworks/ des macOS-Bundles. Externer Prozess via subprocess — keine Verlinkung, kein 'Derived Work'. Nutzer kann die Binary ersetzen (Dateisystem-Zugriff möglich).

(statischer Build

- konform umgesetzt

mit libx264/x265)

Online-Suche nach Titel, Künstler, Album, Jahr, Track-Nr., Cover-Art. Nutzer trägt eigene Client ID / Client Secret ein (Spotify Developer Dashboard).

Quelle:

imageio-ffmpeg v7.1

HTTP via urllib. Client Credentials Flow (kein OAuth-Token im Nutzer-Account). Rate-Limit per Code erzwungen. Kein Massenspeichern. AcoustID API + fpcalc

(Chromaprint) API: Freier Webdienst, API- Key erforderlich (kostenlos).

fpcalc-Binary: Chromaprint, LGPL 2.1 — optionale externe Abhängigkeit. fpcalc wird NICHT gebündelt; Nutzer installiert es separat (macOS: brew install chromaprint; Windows: fpcalc.exe neben ffmpeg.exe ablegen (github.com/acoustid/chromaprint/releases)). Fingerprint-Berechnung über fpcalc (subprocess), Lookup via AcoustID-API (urllib). Keine LGPL-Pflichten für unsere App, da keine Verlinkung. Feature bleibt deaktiviert, wenn fpcalc nicht gefunden wird. ffmpeg (macOS, gebündelt)

ffmpeg (Windows, beigelegt) LGPL 2.1

8.1 Gleiche Funktionen wie macOS-Version. ffmpeg.exe liegt neben der App- Executable im dist-Ordner. Externer Prozess via subprocess. Nutzer kann die Binary ersetzen.

(essentials-Build von

gyan.dev,

ohne GPL-Komponenten)

imageio-ffmpeg BSD 2-Clause

0.6.0 Stellt den statischen macOS arm64 ffmpeg- Build bereit, der ins Bundle eingebettet wird.

Nur im Build-Prozess (Binary wird kopiert). imageio-ffmpeg wird zur Laufzeit nicht importiert

(kommerziell frei)

und ist nicht im Bundle enthalten.

PyInstaller GPL 2.0 mit

6.20.0 Baut das macOS .app-Bundle und den Windows-Ordner aus dem Python-Skript.

Nur im Build-Prozess. Nicht an Endnutzer weitergegeben. Bootloader-Ausnahme erlaubt proprietäre kommerzielle Apps.

Bootloader-Ausnahme

(kommerziell frei*)

MusicBrainz API Freier Webdienst

— Online-Suche nach Titel, Künstler, Album, Jahr, Track-Nr.

Nur auf Nutzerinteraktion. HTTP via urllib. Rate-Limit ≥ 1 s per Code. User-Agent korrekt gesetzt.

- konform umgesetzt

Cover Art Archive API Freier Webdienst

— Automatischer Download von Album-Cover-Art nach erfolgreicher Tag-Suche.

Nur auf Nutzerinteraktion. HTTP via urllib. Gleicher User-Agent wie MusicBrainz. Fehler werden silent behandelt.

- konform umgesetzt

* GPL-Bootloader-Ausnahme: erlaubt proprietäre kommerzielle Apps ohne Quellcode-Offenlegung.

** HPND (Historical Permission Notice and Disclaimer): OSI-genehmigte permissive Lizenz, vergleichbar MIT/BSD.

ffmpeg — Einbettung und Lizenz-Details

macOS — statischer Build im Bundle

Ab dieser Version ist ffmpeg vollständig im macOS-App-Bundle enthalten. Der Nutzer muss nichts separat installieren.

Da ffmpeg ausschliesslich als externer Prozess aufgerufen wird (subprocess), entsteht kein 'Derived Work' unserer Anwendung. Die GPL gilt nur für ffmpeg selbst.

GPL-Anforderungen für die Verteilung des ffmpeg-Binaries:

Windows — LGPL-Build beigelegt

Auf Windows wird ffmpeg.exe zusammen mit der Anwendung im Distributions- Ordner ausgeliefert. Die App sucht ffmpeg in folgender Priorität:

1. Neben der Executable (dist-Ordner) — bevorzugter Pfad 2. System-PATH: winget install Gyan.FFmpeg 3. Bekannte Pfade: C:\ffmpeg\bin\ffmpeg.exe C:\Program Files\ffmpeg\bin\ffmpeg.exe

Der beigelegte Build stammt von gyan.dev (Gyan Deshpande), LGPL 2.1 'essentials' (ohne GPL-Komponenten wie libx264). LGPL-Anforderung: Nutzer kann ffmpeg.exe ersetzen — gewährleistet durch die separate Datei im dist-Ordner.

ffmpeg-Erkennung im Code

_find_ffmpeg() sucht in folgender Priorität (wenn als Bundle gestartet):

1. Contents/Frameworks/ (macOS .app — --add-binary Zielort)

2. sys._MEIPASS/ (PyInstaller _internal/)

3. neben sys.executable (Windows: user legt ffmpeg.exe daneben)

4. shutil.which('ffmpeg') (System-PATH)

5. Bekannte Pfade (Homebrew, C:\ffmpeg\bin\, ...)

Plattform-Abstraktion im Code

Plattformunterschiede werden über Konstanten am Dateianfang gesteuert:

_WINDOWS = platform.system() == 'Windows'

FONT_UI = 'Segoe UI' if _WINDOWS else 'Helvetica Neue'

FONT_MONO = 'Consolas' if _WINDOWS else 'Menlo'

Build-Prozess

macOS (muss auf einem Mac mit Apple Silicon durchgeführt werden):

python3 -m PyInstaller --windowed --name "DJ Cataclysm - DJ- Tool" --onedir \

--add-binary "ffmpeg:." [--exclude-module ...] normalize_gui.py

Windows (muss auf einem Windows-Rechner durchgeführt werden):

python -m PyInstaller --noconsole --name "DJ Cataclysm - DJ- Tool" --onedir ^

--version-file version_info.txt [--exclude-module ...] normalize_gui.py

Nach dem Windows-Build: ffmpeg.exe (LGPL-Build von gyan.dev) in dist\DJ Cataclysm - DJ-Tool\ kopieren.

MusicBrainz und Cover Art Archive — Nutzungsbedingungen

MusicBrainz API

Die MusicBrainz-API ist kostenlos und kommerziell nutzbar. Umgesetzte Anforderungen:

_MB_UA = "DJ_Cataclysm_-_DJ-Tool_v1.0.0 (dj.cataclysm.contact@gmail.com)"

Cover Art Archive API

Das Cover Art Archive (coverartarchive.org) wird nach einer erfolgreichen MusicBrainz-Suche automatisch abgefragt:

Hinweis zum Urheberrecht: Album-Cover-Art ist urheberrechtlich geschützt. Das Einbetten in eigene Musikdateien ist Standardpraxis bei Tag-Editoren (iTunes, foobar2000, MusicBrainz Picard). Die Verantwortung liegt beim Endnutzer.

Discogs API

Die Discogs-API wird als Alternative zu MusicBrainz für Online-Tag-Suche und Cover-Art-Download genutzt. Sie erfordert OAuth 1.0a-Authentifizierung:

Gesamtbewertung für den kommerziellen Vertrieb

Gesamturteil: Keine Lizenz-bedingten Hindernisse für kommerziellen Verkauf als proprietäre Closed-Source-Software auf macOS und Windows.

↑ Nach oben