v0.6 — smooth VU metering decay, short/long-term LUFS display, deduplicate PFL blend and MIDI mic toggle logic

This commit is contained in:
2026-05-16 22:41:25 +10:00
parent 2b81a80a39
commit 90d5ac26ec
3 changed files with 82 additions and 80 deletions
+25 -12
View File
@@ -438,17 +438,29 @@ class LUFSExpandedSection(QFrame):
header.setStyleSheet("color: #556670; background: transparent; border: none;")
root.addWidget(header)
self.lufs_value = QLabel("-70.0")
self.lufs_value.setFont(QFont("Segoe UI", 32, QFont.Bold))
self.lufs_value.setAlignment(Qt.AlignCenter)
self.lufs_value.setStyleSheet("color: #00cc88; background: transparent; border: none;")
root.addWidget(self.lufs_value, stretch=1)
self.lufs_short = QLabel("-70.0")
self.lufs_short.setFont(QFont("Segoe UI", 28, QFont.Bold))
self.lufs_short.setAlignment(Qt.AlignCenter)
self.lufs_short.setStyleSheet("color: #00cc88; background: transparent; border: none;")
root.addWidget(self.lufs_short, stretch=1)
lufs_unit = QLabel("LUFS")
lufs_unit.setFont(QFont("Segoe UI", 9))
lufs_unit.setAlignment(Qt.AlignCenter)
lufs_unit.setStyleSheet("color: #556; background: transparent; border: none;")
root.addWidget(lufs_unit)
short_hint = QLabel("4 s")
short_hint.setFont(QFont("Segoe UI", 7))
short_hint.setAlignment(Qt.AlignCenter)
short_hint.setStyleSheet("color: #445; background: transparent; border: none;")
root.addWidget(short_hint)
self.lufs_long = QLabel("-70.0")
self.lufs_long.setFont(QFont("Segoe UI", 18, QFont.Bold))
self.lufs_long.setAlignment(Qt.AlignCenter)
self.lufs_long.setStyleSheet("color: #5588aa; background: transparent; border: none;")
root.addWidget(self.lufs_long)
long_hint = QLabel("10 min")
long_hint.setFont(QFont("Segoe UI", 7))
long_hint.setAlignment(Qt.AlignCenter)
long_hint.setStyleSheet("color: #445; background: transparent; border: none;")
root.addWidget(long_hint)
self.pfl_indicator = QLabel("PFL\n\u2014")
self.pfl_indicator.setFont(QFont("Segoe UI", 8))
@@ -457,7 +469,8 @@ class LUFSExpandedSection(QFrame):
root.addWidget(self.pfl_indicator)
def _refresh(self):
self.lufs_value.setText(f"{self._master.lufs_current:.1f}")
self.lufs_short.setText(f"{self._master.lufs_short:.1f}")
self.lufs_long.setText(f"{self._master.lufs_long:.1f}")
active_pfl = [ch for ch in self.engine.mixer['channels'] if ch.pfl]
if active_pfl:
names = ", ".join(ch.name[:3] for ch in active_pfl)
@@ -547,7 +560,7 @@ class MixerWidget(QFrame):
self.master_pre.apply_theme(theme)
self.lufs_section.apply_theme(theme)
def refresh_strips(self):
def refresh_strips(self):
for strip in self._strips:
ch = strip._channel
strip.name_btn.setText(ch.name)