Files
Phoenix/www/changelog.html
T

589 lines
45 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div class="opt-group">
<details class="changelog-version" open>
<summary>3.8 (Phoenix 1.0)</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 21.07.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li><strong>Analysegrundlage:</strong> Die tiefgehende Code- und DSP-Prüfung, durch die die nachfolgenden Fehler und Verbesserungsmöglichkeiten gefunden werden konnten, wurde durch den Umstieg auf das LLM-Modell GPT-5.6 SOL ermöglicht.</li>
<li><strong>Echtzeit-Datenweg:</strong> WebSocket-Verarbeitung auf „latest value wins“ umgestellt. Messwerte, Spektrogramm sowie Goniometer/Waveform verwenden getrennte, begrenzte Datenwege; alte Frames können keine anwachsende Anzeigeverzögerung mehr bilden.</li>
<li><strong>Browserlast:</strong> Single-Slot-Puffer und Sequenzprüfung für Mess-, Spektrogramm- und Visualisierungsdaten ergänzt. Große Rohsamplefelder werden nicht mehr in jedem JSON-Messpaket wiederholt.</li>
<li><strong>Spektrogramm:</strong> Langzeitstillstand und stotterndes Nachholen beseitigt. Inkrementelles Spaltenzeichnen, Worker-ACK, Watchdog/Neustart und begrenztes Überspringen veralteter Spalten ergänzt. 0,5×, 1×, 2×, 4× und 6× besitzen nun eine feste, FFT- und DPI-unabhängige Zeitbasis.</li>
<li><strong>DIN-/EBU-PPM:</strong> Blockunabhängige Quasi-Peak-Detektoren mit bandbegrenzter Interpolation, korrekter Attack- und Rücklaufballistik sowie automatischen Tonburst-, Frequenzgang- und Polaritätstests implementiert. Eine zweite Browser-Anstiegsballistik und der alte nicht normgerechte DIN-Fast-Attack-Sonderweg wurden vollständig entfernt.</li>
<li><strong>RTW-RTA:</strong> RTW-Profil verbindlich auf die IIR-Oktavteilband-Filterbank festgelegt. Bis zur Vergleichsmessung am realen RTW-Gerät sind die bisherige Phoenix/RTW-Charakteristik und vollständige Butterworth-Bandpässe sechster Ordnung getrennt auswählbar.</li>
<li><strong>RTA-Detektor und Reaktionszeit:</strong> Average (RMS) und Peak (gleitendes 10-ms-Maximum) sind nun getrennt von Fast, Medium, Slow und Impulse wählbar. Fast wurde auf 125 ms korrigiert; Impulse verwendet 35 ms Anstieg und 1,5 s Rücklauf. Die IIR-Detektoren arbeiten samplegenau und unabhängig von der ALSA-Periodengröße. Alte Einstellungen werden automatisch migriert.</li>
<li><strong>RTA-Auflösung:</strong> Umschaltung zwischen 1/3, 1/6 und 1/12 repariert. Alle drei Auflösungen bleiben im RTW-Profil aktiv und verwenden dessen IIR-Filterbank, Darstellung und Ballistik.</li>
<li><strong>Hardwareparameter:</strong> Tatsächlich von ALSA ausgehandelte Samplerate, Perioden- und Puffergröße werden nun durch DSP, Aufnahme, Status und Browser verwendet; die feste 48-kHz-Annahme wurde entfernt.</li>
<li><strong>Goniometer:</strong> Nur neue XY-Samplepaare werden mit einer periodengrößenunabhängigen mittleren Rate von 60 Hz übertragen. Punktbegrenzung wirkt bereits auf den Transport; begrenzte und wiederverwendbare Spurpuffer reduzieren Speicher- und Zeichenlast.</li>
<li><strong>Goniometer-Persistenz:</strong> Reproduzierbare Fast-, Medium- und Slow-Profile sowie ein freies Phoenix-Fade ergänzt. Künstliche Bézier-Verformung der Messspur entfernt; AGC und Silence-Gate arbeiten zeit- beziehungsweise fensterbasiert.</li>
<li><strong>Korrelation:</strong> Kontinuierliche DSP-Messung aus L², R² und L·R mit wählbaren 1,0/2,5 Sekunden ergänzt. Bildratenabhängige Doppelglättung entfernt; Negative-Peak-Memory, Marker und manueller Reset hinzugefügt.</li>
<li><strong>Phasenrad:</strong> Bandpass, Hilbert-Transformation und energiegewichtete L/R-Phasenmittelung laufen nun samplekontinuierlich im Audiokern statt auf ausgedünnten Browser-XY-Punkten. Paketgrenzen beeinflussen den Winkel nicht mehr; Glättung und AGC arbeiten zeitbasiert, und die doppelte AGC-Verstärkung wurde entfernt.</li>
<li><strong>True Peak, RMS und VU:</strong> True Peak verwendet den vierphasigen Referenz-FIR aus ITU-R BS.1770, besteht die EBU-Testfälle 15 bis 19 und zeigt Übersteuerungen in allen Ansichten bis +6 dBTP an. True RMS integriert samplekontinuierlich im Leistungsbereich mit Fast (125 ms), Slow (1 s) oder einem gleitenden 300-ms-Fenster; Browser-Doppelglättung und der RMS-fremde Impulse-Modus wurden entfernt. VU verwendet ein Moving-Coil-Modell mit 300-ms-Sprungantwort und 1 bis 1,5 % Überschwingen; der fälschliche Standardoffset von +1,92 dB wurde auf 0 dB korrigiert.</li>
<li><strong>Qualitätssicherung:</strong> Automatische Regressionstests für PPM, RTA, A/C/Z, mehrere Sampleraten, Korrelationssignale, Goniometertaktung, Binärprotokolle sowie Spektrogramm-Zeitbasis und Langlauf ergänzt.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>3.3.5 (Phoenix 1.0)</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 28.04.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Stoppuhr: Löschfunktion verbessert. Die X-Buttons neben den einzelnen Zeiten lassen sich jetzt über einen separaten X-Button ein- und ausblenden; Reset und Löschmodus sind optisch getrennt.</li>
<li>Online Update: Hinweis ergänzt, dass die Funktion nur für die reine Analyzer-Installation gedacht ist; Volumio-Systeme sollen per Snapshot bzw. manuell aktualisiert werden.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>3.3.4 (Phoenix 1.0)</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 24.04.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Studio-Clock und Clock-Screensaver beim Sekundenblinken angepasst: Der Doppelpunkt läuft jetzt mit exakt 50 % Duty Cycle und schaltet auf der Sekunde an sowie in der zweiten Halbsekunde wieder aus.</li>
<li>Online Update robuster gemacht: Update-Skripte laufen jetzt mit sicherer Fallback-Locale, damit fehlendes de_DE.UTF-8 auf Volumio keine bash-setlocale-Warnung mehr als Fehler anzeigt.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>3.3.2 (Phoenix 1.0)</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 21.04.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>INFO: Ein extern beobachtetes Start-/WebSocket-Problem in älteren Safari-Versionen lag nicht an Phoenix selbst, sondern an einem Safari-/WebKit-Bug; nach Safari-Update funktionierte der Analyzer wieder normal.</li>
<li>Recorder-Liste auf große Browserfenster verbessert: Die sichtbare Listenhöhe passt sich jetzt dynamisch an die tatsächlich verfügbare Fläche an, statt früh auf eine starre Anzahl sichtbarer Einträge zu begrenzen.</li>
<li>Recorder-Layout unten entschärft: Vor Timer und Buttons bleibt nun mehr Reserve, damit der letzte sichtbare Eintrag nicht in den Button-Bereich hineinragt, bevor gescrollt werden muss.</li>
<li>Stoppuhr-Liste ebenfalls dynamisiert: Die Anzahl sichtbarer Zeiten wird jetzt direkt aus der verfügbaren Meter-Höhe berechnet und reagiert sauberer auf unterschiedlich große Browserfenster.</li>
<li>Stoppuhr-Layout bei kleiner Höhe geglättet: Die unteren Start-/Reset-/Auto-Buttons schrumpfen bei knapper Höhe mit, damit die Liste beim Verkleinern nicht mehr schlagartig verschwindet.</li>
<li>Phoenix-Metrics-Stream robuster gemacht: Bei kurzzeitigem Rückstau werden verpasste Frames jetzt verworfen, ohne den WebSocket sofort zu beenden; zusätzlich wurde der interne Metrics-Puffer vergrößert.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>3.3.1 (Phoenix 1.0)</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 20.04.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Layout- und Preset-System weiter ausgebaut: Presets wurden im Optionen-Menü auf eine eigene Ebene gehoben und die Layout-Slots lassen sich zusätzlich direkt aktivieren.</li>
<li>Layout-Boot per URL stabilisiert: Toolbar, aktiver View und geladene Ansicht bleiben bei <code>?layout=1</code> und den übrigen Layout-Slots jetzt konsistenter synchron.</li>
<li>Layout-Speicherung korrigiert: Die Slot-Belegungen der Views werden beim Speichern eines Layout-Slots jetzt zuverlässig mitgesichert und beim Laden wiederhergestellt.</li>
<li>INFO: Ein zwischenzeitlich beobachtetes externes Start-/WebSocket-Problem in älteren Safari-Versionen lag nicht an Phoenix selbst, sondern an einem Safari-/WebKit-Bug; nach einem Safari-Update funktionierte der Analyzer wieder normal.</li>
<li>Weitere Anzeigeoptionen globalisiert: RTA-Oktaven, Peak-History-Optionen, Phase-Wheel-Optionen, Classic-Needles-Quelle, historische RTW-Loudness sowie die konfigurierbaren Farben laufen nun browserübergreifend über die globale Phoenix-Konfiguration.</li>
<li>Quad-/Registry-Pfad korrigiert: Peak History bleibt auch im Quad-View mit gültigen Live-Daten versorgt und fällt dort nicht mehr scheinbar auf 0 zurück.</li>
<li>Online-Update ergänzt: Phoenix kann eine feste Update-ZIP laden, in einen Stage-Ordner vorbereiten und beim Neustart mit Backup, Health-Check und automatischem Rollback auf den alten Stand umschalten.</li>
<li>Online-Update weiter gehärtet: Vor dem Neustart der Kiosk-Browser werden nur die Asset-Caches geleert, damit nach einem Update zuverlässig der neue Web-Stand geladen wird, ohne die eigentlichen Einstellungen zu verlieren.</li>
<li>Online-Update-Logging ergänzt: Download-, Entpack-, Stage-, Neustart- und Rollback-Schritte werden jetzt in eine gemeinsame Update-Logdatei geschrieben und können zusätzlich über einen Phoenix-Endpunkt direkt abgefragt werden.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>3.3 (Phoenix 1.0)</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 20.04.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Software-Presets weiter ausgebaut: Default, Claus und Michael lassen sich jetzt robuster speichern, laden, exportieren und importieren.</li>
<li>Preset-Speicherung bleibt aus Sicherheitsgründen auf den Analyzer direkt beschränkt; externe Browser dürfen Presets laden, aber nicht überschreiben.</li>
<li>Phoenix-URL-/Host-Pfad für Presets gehärtet: Wenn eine gespeicherte Loopback-URL für den aktuellen Browser nicht passt, wird sauber auf den aktuellen Analyzer-Host zurückgefallen.</li>
<li>Preset-Ladepfad stabilisiert: Benutzer-Presets übernehmen jetzt auch den getrennt gehaltenen UI-/View-Zustand zuverlässiger und laden nach Profil-/Cache-Reset wieder nachvollziehbar.</li>
<li>Neue Layout-Slots ergänzt: Vier separate Layout-Presets speichern reine Ansichts-/Fensterbelegungen, unabhängig von globalen Software-Presets.</li>
<li>Layout-Slots werden außerhalb des Browser-Profils serverseitig gespeichert und können per URL-Parameter wie <code>?layout=1</code> direkt in einem Fenster geladen werden.</li>
<li>Options-Menü neu geordnet: Unter <code>Meters → Presets</code> liegen jetzt sowohl die Software-Presets als auch die neuen Layout-Slots gebündelt an einer Stelle.</li>
<li>Erststart-Dialog überarbeitet: statt des alten Kalibrierhinweises erscheint nun eine neutrale Willkommensmeldung zum Phoenix Analyzer.</li>
<li>Header-Farbpfad vereinheitlicht: Header-Text/-Zahlen entkoppelt von Balkenfarben und zusätzlich über eine globale Header-Textfarbe einstellbar.</li>
<li>Waveform-Farben reagieren jetzt wieder korrekt auf Änderungen in den Optionen, auch im Worker-Pfad.</li>
<li>Split-/Quad-Views erweitert: Waveform und Spectrogram können dort als Plot verwendet werden; eingebettete Geometrie und Darstellung wurden dafür nachgezogen.</li>
<li>Weitere UI-/Detailkorrekturen: Peak-History-Geometrie, RTA-/Meter-Beschriftungen, PPM-DIN-%-Skala, Recorder-/Stoppuhr-Header sowie diverse kleinere Konsistenzfehler wurden bereinigt.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>3.1 (Phoenix 1.0)</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 18.04.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>GUI-Performance systematisch überarbeitet: statische Layer werden projektweit gecacht statt pro Frame neu gezeichnet.</li>
<li>Renderloop bereinigt: Hintergrund-Layer gecacht und Zeichenpfad stärker auf echte Audio-/UI-Änderungen ausgerichtet.</li>
<li>Spectrogram deutlich entlastet: Phoenix liefert Spectro-Spalten nur noch bei echten neuen FFT-Schritten, Worker-Takt reduziert und interne Renderauflösung angepasst.</li>
<li>Waveform deutlich entlastet: Worker-Takt reduziert, interne Renderauflösung angepasst und Grid-Layer gecacht.</li>
<li>Peak History deutlich entlastet: Grid, Rahmen und Zeit-/Werteskalen werden gecacht; Verlauf und Live-Meter bleiben dynamisch.</li>
<li>Peak History in der Geometrie nachkorrigiert: `now` rechts sichtbar, linke Endzeit wird explizit gesetzt, Füllung läuft bis zum unteren Rahmen, Verlauf kann unter den letzten Tick weiterlaufen und der Plot beginnt links ohne künstliche Rahmenlücke.</li>
<li>Meter-Views weiter entschlackt: feste Skalen, Ticks, Referenzlinien und Labels von VU, PPM DIN, PPM EBU, RMS, TP und LUFS werden nicht mehr jedes Frame neu gerastert.</li>
<li>Phase Wheel entlastet: tote Trace-Berechnung entfernt und Phase-Trail intern ausgedünnt.</li>
<li>Goniometer/XY weiter bereinigt: RTW-Look beibehalten, Alpha-/Trail-Dichte entschlackt und echte XY-History in Phoenix so angepasst, dass `XY Punkte` wieder sinnvoll wirkt.</li>
<li>Split- und Quad-View bereinigt: statische Containerteile, leere Plots und Meterhüllen werden gecacht statt pro Frame neu aufgebaut.</li>
<li>Recorder- und Classic-Needles-View weiter entschlackt: statische Bühnen, Rahmen und Instrumentenkörper gecacht; beim Recorder zusätzlich unnötige HUD-Layout-Schreiberei reduziert.</li>
<li>RTA/Realtime entlastet: Plot-Grid, Rahmen und rechte Meterhülle werden gecacht, während Balken/Line und Hold/Peak live bleiben.</li>
<li>Projektweit weiterer Cleanup: tote Frontend-Restlogik entfernt, Referenz-Configs für Analyzer/Volumio ergänzt und Doku zu Analyzer-vs.-Volumio-Pfaden/Ports nachgezogen.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>3.0.1 (Phoenix 1.0)</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 18.04.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>PPM/VU/RMS-Alignment korrigiert: PPM DIN, PPM EBU, VU und RMS liegen bei den vorgesehenen Referenzpegeln wieder konsistent zueinander.</li>
<li>RTW-Loudness-Boxen auf dokumentierbaren Momentary-Pfad umgestellt: 400 ms Integration, K-gewichtete Signalbasis, pro Kanal; keine freie ungefilterte Hauskurve mehr.</li>
<li>RTW-Loudness-Offset global gemacht: Der Offset wird jetzt in Phoenix gespeichert und zwischen verbundenen Browsern synchron gehalten.</li>
<li>RTW-Oktavwahl lokalisiert: Die sichtbare RTW-Auflösung 1/3, 1/6 und 1/12 ist jetzt browserlokal und schaltet andere Sessions nicht mehr um.</li>
<li>Fehler in der lokalen 1/6-Oktavdarstellung behoben: Center-Frequenzen und Bandwerte laufen wieder sauber synchron.</li>
<li>Goniometer weiter auf klassische RTW-Anmutung geschärft: dichtere Spur, dickere Linien, geglättete Kurven; dieser Stil ist jetzt fest der Standard.</li>
<li>Volumio-/Raspberry-Pi-Startpfad robuster gemacht: Toolchain-, Netzwerk-, Build- und Session-Handling wurden für frische Geräte und getrennte Volumio-Services nachgezogen.</li>
<li>Build-Kompatibilität für ältere Zielsysteme nachgezogen: Lockfile-/Toolchain-Themen, ALSA-/pkg-config-Abhängigkeiten und plattformspezifische ALSA-Frame-Typen abgefangen.</li>
<li>Volumio-Pfad weiter bereinigt: Analyzer-GUI läuft dort getrennt auf eigenem Port, `toggle-ext` liegt im Phoenix-Baum und der Tab-Umschalter zeigt wieder auf die richtigen Ziele.</li>
<li>Projektlayout weiter bereinigt: `toggle-ext` und die Volumio-spezifischen Startdateien liegen jetzt konsistent im Phoenix-Baum.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>3.0 (Phoenix 1.0)</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 18.04.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Kompletter Architektur-Umbau: Der Analyzer läuft jetzt nativ auf Phoenix statt auf WebAudio/AudioWorklet im Browser.</li>
<li>Phoenix ist neue Single Source of Truth für Audio, Analyse und globale Gerätekonfiguration; die Web-GUI dient nur noch als Anzeige- und Bedienoberfläche.</li>
<li>Audio-Pfad vollständig in Rust/ALSA verlagert: Browser greift nicht mehr selbst auf Audio-Hardware zu.</li>
<li>Analysepfade nach Phoenix übertragen: Meter, RMS, VU, PPM DIN/EBU, True Peak, LUFS/LRA, RTW-Loudness-Boxen, RTA, Spectrogram, Waveform, XY und Phase Wheel werden jetzt nativ im Backend erzeugt.</li>
<li>Recorder komplett auf Phoenix umgestellt: native Aufnahme in WAV, MP3 und WebM/Opus ohne Browser-Chunking oder nachträgliches Zusammensetzen im Frontend.</li>
<li>Direktes Speichern über Phoenix ergänzt: Aufnahmen können ohne Chrome-Download direkt auf dem Gerät im Dateisystem abgelegt werden.</li>
<li>Globale Optionen in Phoenix verankert: geräterelevante Parameter wie Kalibrierung, LUFS-/PPM-Verhalten, Recorder-Defaults und Screensaver-Verhalten werden zentral gespeichert und an verbundene Browser synchronisiert.</li>
<li>Waveform- und XY-Datenpfad auf native Phoenix-Frames umgestellt; Browser verarbeitet keine eigenen Audio-Samples mehr.</li>
<li>Normnähe der Messpfade überarbeitet: True Peak, LUFS, VU sowie mehrere Ballistik- und Bewertungswege rechnerisch an die relevanten Standards angenähert.</li>
<li>Komplette Bereinigung des alten WebAudio-Stacks: Browser-Recorder, MediaRecorder-/Chunk-Logik, AudioWorklet-Altpfade und nicht mehr benötigte Umschaltlogik wurden entfernt.</li>
<li>Deployment/Boot für Raspberry Pi neu strukturiert: separater Webservice, Kiosk-Startskripte, automatischer Phoenix-Build bei Quellcode-Änderungen sowie Build-Logging beim Start.</li>
<li>Projektstruktur auf Phoenix konsolidiert: Runtime-Skripte, `www` und systemd-Units liegen jetzt gemeinsam unter dem Phoenix-Baum.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>2.9</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 09.04.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Recorder: Auto-Split-Threshold jetzt als gekoppelte Zahlenfelder in dBFS und PPM DIN einstellbar.</li>
<li>Stoppuhr: Auto-Threshold jetzt ebenfalls als gekoppelte Zahlenfelder in dBFS und PPM DIN einstellbar.</li>
<li>Optionen: Zusätzlichen Scroll-Puffer im Optionen-Menü ergänzt, damit untere Eingabefelder trotz On-Screen-Tastatur weiter nach oben gezogen werden können.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>2.8 (HOTFIX)</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 25.03.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Audio/Timing: Zusätzlichen Display-/Interpolationspuffer entfernt; Anzeigen werden wieder direkt aus dem AudioWorklet gespeist.</li>
<li>Low Latency: Worklet-UI-Intervall auf 8 ms reduziert und Renderpfad auf 60 FPS gestellt.</li>
<li>Performance: Audio- und Analysepfade berechnen nur noch, was im aktuellen View und in den sichtbaren Slots wirklich benötigt wird.</li>
<li>Cold Start: XY-, RTA-, Waveform- und Meter-Zustände werden beim Umschalten sauber zurückgesetzt, damit keine alten Daten kurz wieder auftauchen.</li>
<li>Performance: FFT- sowie LUFS-/Box-Analyser laufen nur noch bei tatsächlichem Sichtbarkeitsbedarf.</li>
<li>RTA: Neue Option für die Balken-Grundfarbe; Peak-Bereiche bleiben weiterhin rot.</li>
<li>RTA: „Real Time Hold“ und „Real Time Decay“ wirken jetzt tatsächlich auf die Balkenanzeige; höherer Decay lässt die Balken schneller zurückfallen.</li>
<li>UI: Zahlenfelder committen jetzt sauber per Change/Blur/Enter; Eingaben über On-Screen-Keyboard und VNC springen nicht mehr vorzeitig auf Min-/Max-Werte.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>2.5</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 22.03.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Fix: Classic Needles im Quad-View werden nun korrekt angezeigt.</li>
<li>Audio/Timing: Umstellung auf Audio-Zeitstempel und frame-synchron berechnete Display-Pakete zur Glättung der Anzeige und Reduktion von Drift/Jitter.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>2.3.7</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 04.02.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Fix: Audio-Pfad bleibt zuverlässig aktiv und verhindert „Stall“ nach langem Idle/Screensaver.</li>
<li>Fix: Auto-Recovery bei „Audio lost“ nach Screensaver-Wake und User-Activity.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>2.3.6</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 04.02.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Fix: Loudness/LUFS rechter Kanal korrekt normalisiert.</li>
<li>Optimierung: LRA/Loudness ohne wiederholte Array-Allokationen (Ringpuffer + Scratch-Buffer) für weniger GC/CPU-Spikes.</li>
<li>Fix: Config-Load ist jetzt idempotent (verhindert doppeltes Laden beim Start/Options-Init).</li>
<li>PPM DIN: Peak-Hold implementiert (rein visuell), steuerbar über PPM_DIN_HOLD_MS und PPM_DIN_HOLD_DECAY_DB_PER_S.</li>
<li>Peak History: Historie als Ringpuffer statt copyWithin-Shift (weniger CPU, stabilere Darstellung).</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>2.3.4</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 04.03.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>2.3.2</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 02.02.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Peak History: Nach dem Beenden des Bildschirmschoners wird die History nicht mehr in einem Frame mit einem Wert „aufgefüllt“ (kein Backfill nach Pause); nutzt nur frische Audiodaten.</li>
<li>XY / Korrelation: Neue Option „Sofortige Nullstellung wenn kein Pegel“ (setzt den Würfel bei Stille sofort auf 0, ohne Hold/Drift).</li>
<li>Stoppuhr (SlotMeter): Fix für CanvasState/FontLeak, der nach Aktivierung die SkalenSchrift in anderen Views riesig gemacht hat.</li>
<li>Audio/Timing: Anzeige-Update-Intervall reduziert und an die effektive RenderFPS gekoppelt (verringert Jitter/Drift, verhindert MessageBacklogs).</li>
<li>Default: FFT_SIZE auf 4096 reduziert (weniger CPU; betrifft v.a. Spectrogram/LUFS/FFTRTA).</li>
<li>Performance: Keine FFTBerechnung mehr, wenn kein Spectrogram aktiv ist und der Real Time Analyzer auf IIR läuft.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>2.3.1</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 30.01.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>XY / Korrelation: Nach dem Beenden des Bildschirmschoners wird die Anzeige sauber zurückgesetzt und nur mit frischen Audiodaten berechnet (kein Sprung auf +1 ohne Signal).</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>2.3</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 26.01.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>QuadView: KlickVerhalten wählbar (direkt wechseln oder PopupAnsicht).</li>
<li>QuadView: PopupAnsicht rendert exakt wie die EinzelView (Layout/Skalen identisch); Tap/ESC schließt.</li>
<li>SplitView: KlickVerhalten wählbar (direkt wechseln oder PopupAnsicht).</li>
<li>SplitView: PopupAnsicht rendert exakt wie die EinzelView; Tap/ESC schließt.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>2.1</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 26.01.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>SplitView: kompaktere HUDBedienung (schmalere PlotDropdowns, Trennzeichen „|“).</li>
<li>SplitView: SlotZuordnung über Button + Popup (zeigt nur aktive Slots).</li>
<li>SplitView: Popup schließt per Klick außerhalb oder ESC.</li>
<li>SplitView: „Slot:“ wird nur angezeigt, wenn mindestens ein Slot aktiv ist.</li>
<li>Neu: QuadView (4 unabhängige Plots im 2×2Raster).</li>
<li>QuadView: PlotAuswahl über Popup; eigene SlotKonfiguration (unabhängig vom SplitView).</li>
<li>Phase Wheel: PhaseBox im SplitView korrekt positioniert (stabil am PlotPanel, mit Abstand; Box kleiner).</li>
<li>Bildschirmschoner: RecorderUI/Modals sowie SlotPopup werden zuverlässig ausgeblendet.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>2.0</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 22.01.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Neu: SplitView (zwei Plots nebeneinander, Links/Rechts wählbar).</li>
<li>SplitView: optionale MeterSlots (03) mit frei wählbarer Position (links/mitte/rechts).</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>1.8</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 17.01.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>LUFS (Integrated): IZeitfenster wird korrekt gespeichert und angewendet.</li>
<li>LUFS (Integrated): I bleibt bei Stille (unter 70 LUFS Gate) stehen und fällt nicht weiter ab.</li>
<li>Phasenrad: Zahlenanzeige folgt dem Zeiger besser (ruhiger, ohne Nachkommastelle).</li>
<li>Neu: Stoppuhr als auswählbarer Slot (Start/Stop/Reset/Auto, optional 7SegmentAnzeige).</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>1.7.8</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 16.01.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>LUFS (Integrated): Zeitfenster per Slider (110 min) einstellbar.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>1.7.7</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 09.01.2026</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Input-Offset: kanalgetrennte Einstellung (L/R).</li>
<li>LUFS: Lesbarkeit der Skala angepasst.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>1.7.5</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 31.12.2025</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Phase Wheel: Phasenrad gespiegelt (z.B. +90° liegt rechts).</li>
<li>PPM DIN: Ballistik im eigenen AudioWorklet; Anzeige/Ballistik nach IEC 60268-10 Type I (DIN) korrigiert.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>1.7.3</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 29.12.2025</p>
<p class="changelog-heading">Neuerungen:</p>
<ul class="changelog-list">
<li>LUFS: Skalen-Zahlen &amp; Skalen-Striche in eigener Farbe einstellbar.</li>
<li>Phase Wheel: Phasenanzeige (Box links oben) größer und weiter links; Zahl zusätzlich geglättet und Update-Rate begrenzt (max. 10×/s) für bessere Lesbarkeit.</li>
<li>PPM DIN: RTW-Loudness-Offset als Schieberegler (7 … +7 dB).</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>1.7 (Auslieferungsversion)</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 21.12.2025</p>
<p class="changelog-heading">Neuerungen:</p>
<ul class="changelog-list">
<li>Slots können auf „(leer)“ gesetzt werden: der Slot wird ausgeblendet und die verbleibenden Anzeigen rücken nach (z.B. nutzt der Real Time Analyzer dann die volle Breite).</li>
<li>Peak History und Classic Needles benötigen einen belegten Slot; dort ist „(leer)“ deaktiviert.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>1.6</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 19.12.2025</p>
<p class="changelog-heading">Neuerungen:</p>
<ul class="changelog-list">
<li>Neuer View: „Classic Needles“.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>1.5.5</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 08.12.2025</p>
<p class="changelog-heading">Neuerungen:</p>
<ul class="changelog-list">
<li>Silence-Gate für Goniometer &amp; Korrelation (RMS-basiert, Threshold einstellbar im XY-Menü).</li>
<li>Header-Werte pro Kanal: sauber zentriert über den Balken, Farbumschlag pro Kanal erst ab Rot-Schwelle.</li>
<li>Anzeige der vollen Pegel (auch unterhalb der Skala) mit sanfter Glättung der Zahlen.</li>
<li>RMS-Meter: hält jetzt den letzten gültigen Wert, kein kurzer Drop mehr auf den Floor bei sporadisch fehlenden RMS-Paketen.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version" open>
<summary>1.5</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 05.12.2025</p>
<p class="changelog-heading">Peak History Neu hinzugefügt:</p>
<ul class="changelog-list">
<li>Neuer „Peak History“-View: verlaufende Pegelanzeige mit Meter rechts daneben.</li>
<li>Konfigurierbare Scroll-Geschwindigkeit (½×, 1×, 2×, 4×, 6×) wie beim Spectrogram.</li>
<li>Farbgenaue Linie: Rot erst ab Warnschwelle (z.B. PPM_DIN_RED_START), Segment-Splitting genau auf der Schwelle.</li>
<li>Optionale Flächenfüllung unter/über der Linie in Linienfarbe; invertierbar.</li>
<li>Zeitskala passt sich der Scroll-Geschwindigkeit an (länger bei ½×, kürzer bei 2×/4×/6×).</li>
<li>Peak-History-Optionen im Menü: Scroll-Speed, Fläche füllen, Fläche invertieren.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version">
<summary>1.2</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 28.11.2025</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Studio Clock: neue Stile „Analog + PPM“ und „Digital + PPM“; optional LED-Band für PPM.</li>
<li>PPM in der Clock nutzt DIN-Skala, Offsets und Ballistik identisch zum PPM-DIN-Meter.</li>
<li>PPM-Skalenfarben vereinheitlicht (DIN-Orange), Warnfarbe nur oberhalb 0&nbsp;dB.</li>
<li>Neue Uhr-Funktion: Studio Clock mit Stilen „Analog“, „Digital“, „Analog + PPM“, „Digital + PPM“, optional LED-Band.</li>
<li>Neuer Bildschirmschoner: DVD/Starfield/Clock, Vorschau ignoriert Pegel (endet nur per Klick/Touch), Optionen gebündelt.</li>
<li>Clock- und Screensaver-Optionen sind unabhängig im Menü steuerbar.</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version">
<summary>1.1.4.1</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 26.11.2025</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Goniometer-Korrelationswürfel: Clamping angepasst (bleibt sauber innerhalb des Balkens)</li>
<li>PPM DIN: Skala renormiert (Bottom sitzt am Balkenfuß), %-Label korrigiert</li>
<li>PPM DIN: Loudness-Boxen verlängerte Skala (bis 70 dB), sichtbarer Teil nur oberhalb 50 dB</li>
<li>Input-Offset: Slider auf 0,5-dB-Schritte gestellt</li>
<li>Recorder: Einmaliger Hinweis/Bestätigung bei Erstaufruf (WAV-Limit, WebM/Opus-Hinweis, Beta)</li>
<li>LUFS: Farben pro I/M/S separat einstellbar</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version">
<summary>1.1.4</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 25.11.2025</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>XY-Optionen wiederhergestellt und zugeordnet (Punkte/Stil/Korrelation/Gain/Fade/Gap)</li>
<li>XY Default-Punkte auf 1024 gesetzt; Hinweise ergänzt</li>
<li>Spectrogram/Waveform/Phase Wheel: Beschreibungen ergänzt</li>
<li>Spectrogram: Worker stabilisiert (Ringpuffer, Draw-Loop-Fix)</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version">
<summary>1.1.3.2</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 25.11.2025</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Fix: Spectrogram-Worker stabilisiert (kein Stoppen nach wenigen Sekunden)</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version">
<summary>1.1.3.1</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 25.11.2025</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Fix: RTW-Loudness-Boxen im PPM DIN Meter (fehlendes Timestamp-Init behoben)</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version">
<summary>1.1.3</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 25.11.2025</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Optionen-Überschrift umbenannt &amp; unterstrichen</li>
<li>RMS: IEC-Zeitkonstanten (Impulse/Fast/Slow) auswählbar, EWMA entfernt</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version">
<summary>1.1.2</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 25.11.2025</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Einführung: Changelog im Optionen-Menü</li>
<li>Korrektur: PPM DIN &amp; PPM EBU ohne doppelte Ballistik (UI-Glättung entfernt)</li>
<li>Korrektur: RMS-Anzeige ohne zusätzliche Glättung</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version">
<summary>1.1</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Veröffentlichung: 25.11.2025</p>
<p class="changelog-heading">Änderungen:</p>
<ul class="changelog-list">
<li>Hinzugefügt: RTW-Style Loudnessanzeige auf PPM DIN Meter</li>
</ul>
</div>
</div>
</details>
<details class="changelog-version">
<summary>1.0</summary>
<div class="opt-group">
<div class="opt">
<p class="changelog-date">Erste Veröffentlichung: 21.11.2025</p>
</div>
</div>
</details>
</div>