Repository navigation
What's in v33
`set_volume` now drives a per-sample software gain inside MediaPlayer rather than mapping to STREAM_ALARM index. Fixes the all-or-nothing behavior we hit live: STREAM_ALARM's volume curve on the Lenovo CD-18781Y is so steep that mid-range values are effectively inaudible.
Volume model
- `set_volume 0.4` stores 0.4 in pref `media-volume`
- Next `play_media` pegs STREAM_ALARM to hardware max, then applies `MediaPlayer.setVolume(0.4, 0.4)` — a linear software multiplier
- 0.4 actually sounds like 40%
- `stop_media` restores STREAM_ALARM to whatever it was before
Security siren and Spotify Connect volume paths are unaffected (independent code paths, independent volume controls).