Füge README.md hinzu und dokumentiere Funktionen zur Verwaltung von Hot Cues und Memory Cues in Rekordbox XML-Dateien.
This commit is contained in:
185
README.md
185
README.md
@@ -0,0 +1,185 @@
|
||||
# Rekordbox XML Hot Cue Tools
|
||||
|
||||
Ein Python-Skript zur automatischen Verwaltung von Hot Cues und Memory Cues in Rekordbox XML-Dateien.
|
||||
|
||||
## 🎯 Funktionen
|
||||
|
||||
### 1. **Copy-Modus**: Hot Cues als Memory Cues kopieren
|
||||
- Kopiert alle vorhandenen Hot Cues als zusätzliche Memory Cues
|
||||
- Die ursprünglichen Hot Cues bleiben erhalten
|
||||
- Automatische Duplikatserkennung verhindert mehrfache Kopierung
|
||||
|
||||
### 2. **Convert-Modus**: Hot Cues zu Memory Cues konvertieren
|
||||
- Wandelt alle Hot Cues direkt in Memory Cues um
|
||||
- Die Hot Cues werden dabei entfernt
|
||||
- Entfernt automatisch Farb-Attribute (Red, Green, Blue)
|
||||
|
||||
### 3. **Automatische Umbenennung**
|
||||
- Der erste Hot Cue mit dem Namen "1.1Bars" wird automatisch zu "Start" umbenannt
|
||||
- Die Umbenennung erfolgt am Original Hot Cue vor dem Kopieren
|
||||
|
||||
## 🛡️ Schutzfunktionen
|
||||
|
||||
Das Skript überspringt Tracks automatisch in folgenden Fällen:
|
||||
|
||||
### Track-Level Schutz
|
||||
- **Keine Hot Cues**: Tracks ohne Hot Cues werden ignoriert
|
||||
- **Einzelner Hot Cue**: Tracks mit nur 1 Hot Cue werden übersprungen
|
||||
- **Bereits konfiguriert**: Tracks mit mehr als 1 Memory Cue werden nicht bearbeitet
|
||||
|
||||
### Cue-Level Schutz
|
||||
- **Duplikatserkennung**: Hot Cues werden nicht kopiert, wenn bereits ein Memory Cue an derselben Position existiert
|
||||
- **Position-Vergleich**: Basiert auf dem "Start"-Attribut der POSITION_MARK Elemente
|
||||
|
||||
## 📋 Voraussetzungen
|
||||
|
||||
- Python 3.6 oder höher
|
||||
- Rekordbox XML-Datei
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
```bash
|
||||
# Repository klonen
|
||||
git clone <repository-url>
|
||||
cd rekordbox
|
||||
|
||||
# Abhängigkeiten sind bereits in Python enthalten (xml.etree.ElementTree)
|
||||
```
|
||||
|
||||
## 📖 Verwendung
|
||||
|
||||
### Grundlegende Syntax
|
||||
|
||||
```bash
|
||||
python main.py <command> <xml_file> [optionen]
|
||||
```
|
||||
|
||||
### Copy-Modus (Empfohlen)
|
||||
|
||||
```bash
|
||||
# Hot Cues als Memory Cues kopieren
|
||||
python main.py copy rekordbox.xml
|
||||
|
||||
# In neue Datei speichern
|
||||
python main.py copy rekordbox.xml -o rekordbox_modified.xml
|
||||
|
||||
# Ohne automatisches Backup
|
||||
python main.py copy rekordbox.xml --no-backup
|
||||
```
|
||||
|
||||
### Convert-Modus
|
||||
|
||||
```bash
|
||||
# Alle Hot Cues zu Memory Cues konvertieren
|
||||
python main.py convert rekordbox.xml
|
||||
|
||||
# In neue Datei speichern
|
||||
python main.py convert rekordbox.xml -o rekordbox_converted.xml
|
||||
```
|
||||
|
||||
### Hilfe anzeigen
|
||||
|
||||
```bash
|
||||
python main.py --help
|
||||
python main.py copy --help
|
||||
python main.py convert --help
|
||||
```
|
||||
|
||||
## 🔧 Optionen
|
||||
|
||||
| Option | Beschreibung |
|
||||
|--------|-------------|
|
||||
| `-o, --output` | Ausgabedatei (optional, überschreibt sonst die Original-Datei) |
|
||||
| `--no-backup` | Kein automatisches Backup erstellen |
|
||||
|
||||
## 📊 Ausgabe-Beispiel
|
||||
|
||||
```
|
||||
Backup erstellt: rekordbox.xml.backup
|
||||
Hot Cue 0 (Start: 16.235) von '1.1Bars' zu 'Start' umbenannt
|
||||
Hot Cue 0 (Start: 16.235) als Memory Cue kopiert
|
||||
Hot Cue 1 (Start: 64.471) als Memory Cue kopiert
|
||||
Hot Cue 2 (Start: 128.941) übersprungen - Memory Cue existiert bereits
|
||||
Track 'Artist - Title' übersprungen - bereits 3 Memory Cues vorhanden
|
||||
Track 'Artist2 - Title2' übersprungen - nur 1 Hot Cue vorhanden
|
||||
|
||||
Ergebnis gespeichert in: rekordbox.xml
|
||||
Verarbeitete Tracks: 15
|
||||
Übersprungene Tracks: 8
|
||||
Kopierte Hot Cues: 42
|
||||
Übersprungene Hot Cues: 3
|
||||
(Übersprungene Tracks: bereits mehr als 1 Memory Cue vorhanden oder nur 1 Hot Cue)
|
||||
(Übersprungene Hot Cues: Memory Cue an gleicher Position bereits vorhanden)
|
||||
```
|
||||
|
||||
## 🔍 XML-Struktur
|
||||
|
||||
Das Skript arbeitet mit Rekordbox XML POSITION_MARK Elementen:
|
||||
|
||||
### Hot Cue (Num >= 0)
|
||||
```xml
|
||||
<POSITION_MARK Name="" Type="0" Start="16.235" Num="0" Red="0" Green="255" Blue="0"/>
|
||||
```
|
||||
|
||||
### Memory Cue (Num = -1)
|
||||
```xml
|
||||
<POSITION_MARK Name="" Type="0" Start="16.235" Num="-1"/>
|
||||
```
|
||||
|
||||
## 📋 Bearbeitungsbedingungen
|
||||
|
||||
### Tracks werden bearbeitet wenn:
|
||||
- ✅ 2 oder mehr Hot Cues vorhanden sind
|
||||
- ✅ Maximal 1 Memory Cue vorhanden ist
|
||||
|
||||
### Tracks werden übersprungen wenn:
|
||||
- ❌ Keine Hot Cues vorhanden sind
|
||||
- ❌ Nur 1 Hot Cue vorhanden ist
|
||||
- ❌ Mehr als 1 Memory Cue bereits vorhanden ist
|
||||
|
||||
### Hot Cues werden übersprungen wenn:
|
||||
- ❌ Bereits ein Memory Cue an derselben Start-Position existiert
|
||||
|
||||
## 🔄 Workflow
|
||||
|
||||
1. **Backup erstellen** (automatisch, außer mit `--no-backup`)
|
||||
2. **XML laden und parsen**
|
||||
3. **Für jeden Track:**
|
||||
- Memory Cues sammeln und Position-Set erstellen
|
||||
- Hot Cues sammeln und nach Start-Zeit sortieren
|
||||
- Schutzregeln prüfen (Anzahl Hot Cues, Anzahl Memory Cues)
|
||||
- Ersten Hot Cue "1.1Bars" → "Start" umbenennen (falls vorhanden)
|
||||
- Hot Cues als Memory Cues kopieren (mit Duplikatsprüfung)
|
||||
4. **XML speichern**
|
||||
5. **Statistiken ausgeben**
|
||||
|
||||
## ⚠️ Sicherheitshinweise
|
||||
|
||||
- **Automatische Backups**: Das Skript erstellt automatisch Backups der Original-Datei
|
||||
- **Nicht-destruktiv**: Der Copy-Modus behält alle ursprünglichen Hot Cues bei
|
||||
- **Duplikatschutz**: Verhindert mehrfache Ausführung auf derselben Datei
|
||||
- **Bestandsschutz**: Respektiert bereits konfigurierte Memory Cue-Setups
|
||||
|
||||
## 🐛 Fehlerbehebung
|
||||
|
||||
### Häufige Probleme
|
||||
|
||||
**"XML-Datei nicht gefunden"**
|
||||
- Prüfen Sie den Dateipfad
|
||||
- Verwenden Sie absolute Pfade oder navigieren Sie in das richtige Verzeichnis
|
||||
|
||||
**"Fehler beim Parsen der XML-Datei"**
|
||||
- Die XML-Datei ist möglicherweise beschädigt
|
||||
- Verwenden Sie eine gültige Rekordbox XML-Export-Datei
|
||||
|
||||
**"Keine Tracks verarbeitet"**
|
||||
- Alle Tracks haben entweder keine/einen Hot Cue oder sind bereits konfiguriert
|
||||
- Prüfen Sie die Ausgabe für Details zu übersprungenen Tracks
|
||||
|
||||
## 📝 Lizenz
|
||||
|
||||
Dieses Projekt steht unter der MIT-Lizenz.
|
||||
|
||||
## 🤝 Beitragen
|
||||
|
||||
Feedback und Verbesserungsvorschläge sind willkommen!
|
||||
|
Reference in New Issue
Block a user