From 7a45a985c710a6fdb2d65674e67cdb25bccd5aef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= Date: Wed, 19 Nov 2025 00:50:27 +0100 Subject: [PATCH] fix: convert master meter levels to dB scale for consistent metering MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, master meters received raw linear values (0-1) while track meters received dB-normalized values, causing inconsistent metering display. Now both master peak and RMS levels are converted using linearToDbScale() for accurate comparison between track and master levels. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- lib/hooks/useMultiTrackPlayer.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/hooks/useMultiTrackPlayer.ts b/lib/hooks/useMultiTrackPlayer.ts index 2566063..84df674 100644 --- a/lib/hooks/useMultiTrackPlayer.ts +++ b/lib/hooks/useMultiTrackPlayer.ts @@ -152,14 +152,15 @@ export function useMultiTrackPlayer( // Detect clipping (signal >= 1.0) const isClipping = peak >= 1.0; - setMasterPeakLevel(peak); - setMasterRmsLevel(rms); + // Convert to dB scale (same as track levels) for consistent metering + setMasterPeakLevel(linearToDbScale(peak)); + setMasterRmsLevel(linearToDbScale(rms)); if (isClipping) { setMasterIsClipping(true); } masterLevelMonitorFrameRef.current = requestAnimationFrame(monitorMasterLevels); - }, []); + }, [linearToDbScale]); // Apply automation values during playback const applyAutomation = useCallback(() => {