diff --git a/src/lib/utils/sounds.ts b/src/lib/utils/sounds.ts index c08b8c3..0de8ef8 100644 --- a/src/lib/utils/sounds.ts +++ b/src/lib/utils/sounds.ts @@ -70,9 +70,11 @@ function playChord(frequencies: number[], volume: number, stagger = 0): void { function resolveVolume(userVolume: number | undefined, enabled: boolean): number { if (!enabled) return 0; const v = typeof userVolume === "number" ? userVolume : DEFAULT_VOLUME; - // Clamp: 0 → silent, 1 → loud. Protect against bad settings. - if (v <= 0) return 0; - if (v >= 1) return 1; + if (!Number.isFinite(v) || v <= 0) return 0; + // Any value >1 means a scale drift somewhere upstream (e.g. a 0–100 + // slider leaking through unscaled). Clamping to 1 would blast the + // user at full volume; fall back to DEFAULT_VOLUME instead. + if (v > 1) return DEFAULT_VOLUME; return v; }