fix(dock): meters beat on their own 20 Hz clock, and TRAX silence is diagnosed
Reported: TRAX plays audibly but no ladder registers anywhere. Two distinct faults, one of them mine: 1. The meter readouts were refreshed only from the MIC's level callback. With a silent or absent mic there is no tick, so a playing TRAX never updated its ladder — the level was measured, the UI simply never asked for it. Meters now have a 20 Hz DispatcherTimer of their own. 2. If the player's own meter still reads 0 while playing, the samples are not reaching the device (or metering is not attached). That now writes ONE line to startup.log after 2s — so the next report says which side is broken instead of another round of guessing. Note: TRAX rides the desktop loopback, so once the mix captures it the GAME ladder should move too; if it does not, the loopback endpoint and the music's output device differ.
This commit is contained in:
@@ -178,6 +178,13 @@ public partial class MainViewModel : ViewModelBase
|
||||
_gameVolumeFlashTimer.Tick += (_, _) => EndGameVolumeFlash();
|
||||
|
||||
_saveDebounce = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(1500) };
|
||||
|
||||
// Dock meters beat on their own 20 Hz clock instead of riding the mic's level callback.
|
||||
// Coupling them to capture was a bug: with a silent or absent mic the ladder never
|
||||
// refreshed, so a playing TRAX showed nothing (creator, 2026-10-30).
|
||||
_meterTimer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(50) };
|
||||
_meterTimer.Tick += (_, _) => TickMeters();
|
||||
_meterTimer.Start();
|
||||
_saveDebounce.Tick += (_, _) => SaveLayoutNow();
|
||||
|
||||
_brandFlash = new BrandFlashPresenter();
|
||||
|
||||
Reference in New Issue
Block a user