Fix: TRAX meter reflection — remove double attenuation from slider+loopback
This commit is contained in:
@@ -447,10 +447,11 @@ devices, no timers).
|
||||
(mp3/wav/m4a) → `VolumeWaveProvider16` at the hardcoded **0.20** bed (no slider) → `WaveOutEvent` on
|
||||
the default device, **looping on any clean natural end** (`PlaybackStopped` with `e.Exception == null`
|
||||
→ rewind + replay; the earlier `Position >= Length` check was unreliable for `MediaFoundationReader`
|
||||
and let tracks play once then stop). The desktop/game bar scales it locally via `LocalGain` (the VM's
|
||||
`UpdateTraxLocalGain` runs on every `GameAudioVolume`/`GameMuted` change and on TRAX load), so the
|
||||
creator **hears** the game volume slider and mute work on the music in the headphones — matching the
|
||||
stream, where it rides the loopback channel ducked with the game. No third mixer input. The footer
|
||||
and let tracks play once then stop). The desktop/game bar's mute toggles `LocalGain` (0 or 1;
|
||||
`UpdateTraxLocalGain` runs on every `GameMuted` change and on TRAX load), so muting kills TRAX
|
||||
in the headphones — matching the stream, where it rides the loopback channel. The volume slider
|
||||
drives system volume (`PushSystemVolume`), which scales the entire loopback signal including
|
||||
TRAX — one knob controls everything. No third mixer input. The footer
|
||||
**TRAX** button lives **inside the game audio bar** (in the preview overlay), **left of the
|
||||
"Desktop Audio" label** (the creator's pick — it rides the desktop channel, so the music control
|
||||
sits with the desktop audio controls): status dot (**red** no track / **yellow** loaded stopped /
|
||||
@@ -469,8 +470,9 @@ devices, no timers).
|
||||
silently falling back to the default endpoint.**
|
||||
- **Game audio bar** (desktop/game, **always visible** — TASK 4's `IGameAudioDetector` show/hide gating was **removed 2026-08-15**: the bar used to appear only while a full-screen game with sound was up, which kept hiding the creator's desktop meter; the detector stack is gone, desktop audio is just automatic WASAPI loopback): overlaid **at the bottom of the preview window** (bottom-center, dark translucent
|
||||
chip, a mirror of the mic bar: meter + mute + volume slider). It's monitoring UI **in the preview
|
||||
grid** — the meter is display-only, but its **volume slider + mute are stream-honest** (via
|
||||
`AudioGainProvider.LoopbackGain`) **and drive TRAX locally** (`MusicPlayer.LocalGain`). Relabelled
|
||||
grid** — the meter is display-only, but its **volume slider drives system volume** (`PushSystemVolume`
|
||||
scales the entire WASAPI endpoint, so both the live headphones and the loopback capture reflect the
|
||||
slider) **and mute kills TRAX** (`MusicPlayer.LocalGain` = 0). Relabelled
|
||||
**"Desktop Audio"** (TASK 8) since TRAX rides the same channel.
|
||||
- **`WaveToFloat`** (pure, shared): WASAPI mix formats → interleaved float — IEEE float 32-bit direct,
|
||||
PCM 16-bit normalized to -1..1, `WaveFormatExtensible` with the IEEE-float subformat GUID
|
||||
|
||||
Reference in New Issue
Block a user