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}
QUEUE
{#if player.queue.length}
{player.queueIndex + 1}/{player.queue.length}
· on-deck {deck?.indices?.length ?? 0}
{#if player.shuffle}· shuffle{/if}
{#if player.repeat && player.repeat !== "off"}· repeat {player.repeat}{/if}
{:else}
empty
{/if}
{#each queueRows as r}
{r.slot}
{r.name}
{r.status}
{#if r.pct != null}
{/if}
{/each}
{#each offWindow as p}
↳ {p.state}{p.state === "transferring" ? ` ${mb(p.received)}${p.total ? `/${mb(p.total)}` : ""} MB` : ""} · {base(p.path)}
{/each}
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}