Callers Caddy — Changelog
Versionierung: 0.XX = Prototyp-Phase (XX = Prototyp-Nummer).
Ab offiziellem Launch wird auf 2.0 umgestellt.
Die Versionen 1.xx bleiben für die alte Version offen
0.31 — Beat Snap Audition (2026-03-16)
- Beat Snap Dialog: Vorhoeren des Loop-Sprungs mit Waveform-Visualisierung
- Doppelte Waveform-Anzeige (Loop-Out oben, Loop-In unten) mit Cursor-Synchronisation
- Playback-Sample-Counter (
_playback_sample) in Audio-Engine fuer praezise Positionsbestimmung - Engine-Loop wird waehrend Audition deaktiviert (verhindert Doppel-Sprung durch Feed-Ahead)
- Layout-Versionierung:
_LAYOUT_VERSIONverhindert korrupte Dock-States bei Aenderungen - Versioned
saveState()/restoreState()— alter State wird automatisch verworfen - Bugfix: Dock-Widgets liessen sich nicht mehr einrasten nach P30→P31 Dock-Aenderung
0.30 — BPM-Detection, Reports, Lyrics-Kontrast (2026-03-14)
- Auto-BPM-Erkennung via Comb-Filter-Bank (scipy/numpy, keine neuen Pakete)
- Sub-Harmonik-Korrektur: Integer-Vielfache pruefen, hoehere Tempi bevorzugen
- BPM-Detection laeuft in QThread (nicht blockierend)
- Reports-Widget: Setlist/Musikfolgeliste fuer GEMA mit TXT-Export
- Bidirektionale ComboBox-Filterung (Lokation ↔ Datum)
- Lyrics-Kontrast: WCAG-basierte Farberkennung fuer Word-HTML (bgcolor, background, color)
- Sanitizer entfernt Block-Hintergruende, behaelt Inline-Highlights, ersetzt schlechte Textfarben
- Default-Stylesheet wird bei jedem Skin-Wechsel und setHtml() aktualisiert
0.29 — Release-Vorbereitung (2026-03-12)
- Internationalisierung: i18n-Modul mit JSON-Translations (Deutsch/Englisch)
- 5-Stufen-Ordnerstruktur: 1_Source, 2_Test, 3_Build, 4_Release, _archive
- Build-Pipeline: PyInstaller-Spec + build.py (Vollpaket, Update, Source-ZIP)
- Clean-DB-Skript: Entfernt User-Daten, behaelt Referenzdaten (Sequenzen, Teaching Order)
- Migration-EXE: Separater Access-Import-Prozess
- Portable Pfade: App-Verzeichnis neben EXE statt Prototypen-Ordner
0.28 — Sequenzen-Fenster + Design-Menu + Audio-Fix (2026-03-11)
- Neues dockbares Fenster „Sequenzen“ (Dock 9, getabbt mit Lyrics)
- Import von 885 Singing-Call-Sequenzen aus Access-MDB (caller.mdb)
- Cached Live-Mapping gegen Burleson-Vocabulary (Teaching Order)
- Contains-Filter: Autocomplete-Suche nach enthaltenen Calls
- Limit-Filter: Nur Sequenzen bis zu einem bestimmten Programm-Level
- Lazy Loading (50er-Bloecke) fuer schnelles Scrollen
- Detail-Dialog mit allen Calls und Programm-Tags
- Remapping-Button (Zahnrad) fuer Teaching-Order-Neuberechnung
- Zoom [-/+] mit Prozentanzeige (wie Lyrics-Widget)
- Neues Modul: sequence_mapper.py (Burleson-Mapping-Logik)
- DB-Erweiterung: sequences + sequence_calls Tabellen mit Indizes
- Design-Menu: Layout laden/speichern/wiederherstellen + Skin-Wechsel zur Laufzeit
- Benannte Layouts: Caller koennen „Live.ini“, „Workshop.ini“ etc. speichern
- Playlist-Manager umbenannt zu „Planner“ (kuerzer, ueberall umbenannt)
- Caller-Workflow-Guidance: Lokation → Planner-Button rot → Planner bestaetigt → Playlist fokus
- Audio-Fix: Persistenter Stream (kein Knacken/Brummen bei Song-Start)
- WSOLA-Warmup: 200ms Einschwingphase wird als Stille ausgegeben
0.27 — Performance-Optimierung (2026-03-11)
- Performance-Messframework mit Phase A (Baseline) und Phase B (Stresstest mit 10k Songs)
- Testmethodik: 10 Wiederholungen, Statistik (Mean/StdDev/Min/Max), CSV-Export
- Pool-Tabelle im Playlist-Manager: 40% schneller durch optimiertes Tabellen-Pattern
- Songliste: 7% schneller durch gleiche Optimierung
- Erkenntnis: QTableWidget-Rebuild ist der Flaschenhals, nicht DB oder Sortierung
- Optimiertes Pattern:
setRowCount(0)+setRowCount(n)+setItem()stattinsertRow()
0.26 — Lyrics-Anzeige (2026-03)
- Lyrics-Widget als dockbares Fenster (getabbt mit Song-Daten)
- Unterstuetzte Formate: HTML/HTM, RTF, TXT
- Auto-Fit: Schriftgroesse wird automatisch angepasst wenn Text auf eine Seite passt
- Auto-Scroll: Proportional zum Song-Fortschritt
- Smarte Farb-Bereinigung: Hintergruende entfernt, Sektionsfarben beibehalten
- Toolbar mit Auto-Scroll/Auto-Size Toggle und Zoom +/-
- Light Blue Skin: Zweites Farbschema (helle Oberflaeche, blaue Akzente)
- Muted- und Indicator-Farben fuer besseren Kontrast in beiden Skins
- Loop-Save-Bugfix: Snapshot-Mechanismus sichert Loop-Werte vor Song-Wechsel
- Gemeinsame Datenordner (music/, lyrics/, playlists/) sparen Plattenplatz
0.21 — Playlist und Playlist-Manager (2026-03)
- PlaylistWidget: Schlank, getabbt neben Songliste, Laden/Speichern als .txt
- PlaylistManagerWidget: Zwei-Panel-Ansicht mit Song-Pool und Playlist-Spiegel
- Song-Transfer: Doppelklick, Pfeil-Buttons, Drag & Drop
- 4 Sortierungen: Alphabetisch, Qualitaet, Zuletzt gespielt, Empfehlung
- Filter: Alle / nur Pattern / nur Singing
- Auto-Advance: Naechster Song bei Song-Ende, Stop oder Fade-Out
- Fade-Out: Konfigurierbarer linearer Volume-Ramp (Default 3s)
- Empfehlungssystem integriert (urspr. P25)
- Playlist-Builder integriert (urspr. P24)
0.20 — Abspielhistorie (2026-03)
- Drei-Schichten-Architektur: play_history, song_location_stats, On-the-Fly-Berechnung
- „Zuletzt gespielt“-Spalte in der Songliste
- Lokations-bezogene Statistik (wann wurde welcher Song wo gespielt)
- Umbenennung: „Club“ wird zu „Lokation“ (generalisiert fuer Club + Special)
- INI-Setting fuer Datumsformat (deutsch/amerikanisch)
0.19 — Lokationen (2026-03)
- Club- und Special-Verwaltung als auswaehlbare Kontexte
- Lokationsauswahl beeinflusst Songempfehlung und Historie
0.18 — Pattern/Singing-Modus (2026-03)
- Songs als Pattern, Singing oder beides markierbar
- Typ-Kuerzel (P/S/PS) in Songliste und Pool-Anzeige
- Filter im Playlist-Manager nach Modus
0.17 — Heutiges Tempo (2026-03)
- Gespeichertes Tempo pro Song fuer den heutigen Abend
- Tempo wird beim Laden eines Songs automatisch wiederhergestellt
0.16 — Songliste mit Suche (2026-03)
- Songliste als QTableWidget mit Echtzeit-Suchfilter
- Suche ueber Titel, Label und Dateiname
0.15 — Portable Pfade (2026-03)
- Relative Pfade fuer Songs und Daten
- Anwendung kann auf USB-Stick oder zwischen Rechnern verschoben werden
0.14 — Auto-Save (2026-03)
- Automatisches Speichern aller Aenderungen (Song-Daten, Einstellungen)
0.13 — Song-Datenmodell (2026-03)
- SQLite-Datenbank fuer Songs, Lokationen, Historie
- Song-Felder: Titel, Dateiname, Label, Qualitaet, Pattern/Singing, Tempo
0.07 — Dock-Fenstersystem (2026-03)
- QDockWidget-basiertes Fenstersystem mit freier Anordnung
- Fenster verschieben, andocken, stapeln, Groesse aendern
- Layout wird gespeichert und beim Neustart wiederhergestellt
- Resize-Regeln pro Fenstertyp
- Integriert: P8 (Ein-/Ausblenden), P9 (Verschieben), P10 (Resize-Regeln), P11 (Docking), P12 (Layout-Persistenz)
0.06 — Loop mit Tempoanpassung (2026-03)
- Loop-Region bleibt bei Tempowechsel stabil
- Eigener Streaming-WSOLA-Algorithmus (kein Rubber Band/SoundTouch)
0.05 — Loop-In / Loop-Out (2026-03)
- Markierbare Loop-Region mit Start- und Endpunkt
- Nahtloser Loop waehrend der Wiedergabe
0.04 — Tempo und Pitch gleichzeitig (2026-03)
- Unabhaengige gleichzeitige Tempo- und Pitch-Steuerung
0.03 — Pitch-Steuerung (2026-03)
- Tonhoehe stufenlos aendern, unabhaengig vom Tempo
0.02 — Tempo-Steuerung (2026-03)
- Wiedergabegeschwindigkeit stufenlos aendern
0.01 — MP3-Wiedergabe (2026-03)
- MP3-Dateien laden und stabil abspielen
- Grundlegende Transportsteuerung (Play, Pause, Stop)
- Positionsanzeige und Seek-Slider