CPU app {stats.cpuProcess.toFixed(1)}% · sys {stats.cpuSystem.toFixed(1)}%
GPU {stats.gpuAppPercent != null ? `app ${stats.gpuAppPercent.toFixed(1)}%` : "app n/a"} · sys {stats.gpuPercent != null ? `${stats.gpuPercent.toFixed(1)}%` : "n/a"} (3D)
RAM ws {mb(stats.memWorkingSet)} MB · reserved {mb(stats.memPrivate)} MB
system {gb(stats.memSystemUsed)} / {gb(stats.memSystemTotal)} GB · {stats.processCount} procs
NET ↓ {rate(stats.netRxBps)} · ↑ {rate(stats.netTxBps)}
FPS {fps} · drops {drops}{#if worstGap > 0} · worst {worstGap}ms{/if}
PLAYER {player.status}{player.track ? ` · ${player.track.title}` : ""}
{#if stats.mainFadeGain != null && stats.mainFadeGain < 0.999}· fade {stats.mainFadeGain.toFixed(2)}{/if}
{#if dlTotal > 0}
DL
{mb(dlDone)} / {mb(dlTotal)} MB ({((dlDone / dlTotal) * 100).toFixed(0)}%)
{#if dlDone < dlTotal}· {rate(dlSpeed)}{:else}· done{/if}
{:else}
DL — no active stream
{/if}
NORM
{#if !stats.normalizationEnabled}off{:else if loud}
{loud.lufs != null ? `${loud.lufs.toFixed(1)} LUFS` : "measuring…"}
→ {loud.gainDb >= 0 ? "+" : ""}{loud.gainDb.toFixed(1)} dB
(target {stats.targetLufs})
{:else}on · idle{/if}
{#if stats.normalizationEnabled && loud}
peak {loud.peak.toFixed(2)} · {loud.source}
{/if}
{#if stats.normalizationEnabled && stats.normNowDb != null}
SLEW
{fmtDb(stats.normNowDb)}
{#if slewing}
→ {fmtDb(stats.normTargetDb)}
{fmtDb(stats.normTargetDb - stats.normNowDb)} to go ·
~{slewSecs.toFixed(0)}s
{:else}
settled
{/if}
{#if headStart}
head start −{headStart.db.toFixed(2)} dB
· prefix asked {fmtDb(headStart.from)} → started
{fmtDb(headStart.from - headStart.db)}
{/if}
{#if headStart}
{/if}
{#if loud?.analyzing}
analyzing — gain may still ratchet down
{/if}
{/if}
{#if previewUi.open}
PREVIEW
{previewUi.snapshot?.phase ?? "—"} · gen {previewUi.snapshot?.requestGeneration ?? "—"} ·
idx {previewUi.snapshot?.activeManifestIndex ?? "—"}
{#if stats.previewVolume != null}· vol {stats.previewVolume.toFixed(2)}{/if}
{#if stats.previewNormDb != null}· norm {stats.previewNormDb >= 0 ? "+" : ""}{stats.previewNormDb.toFixed(1)} dB{/if}
{/if}