Release Notes

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_VERSION verhindert 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() statt insertRow()

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