Solved Windows app(s) to fix issues with soundbars connected to PCs
I've made a couple of apps to solve my own problems and wanting to see if they're of use to others (yes, I wish to experiment on you and see if I've made something useful to the world).
In my specific case it was solving issues with a Panasonic SoundSlayer - a perfect piece of hardware to add Atmos to my desk setup - and riddled with annoying shortcomings, when connected to a PC (oddly its entire positioning). Should work with anything that supports CEC volume levels as 0-100.
The problem I've been solving:
1) If your monitor/TV doesn't support ARC, and you want to connect something capable of decoding Atmos or DTS to your PC, you need to connect your audio system to your PC with HDMI.
2) If your sound decoder is limited in resolution/bitrate (i.e. older HDMI standard), you can't plug your screen/monitor into it - so you end up with two connections to your GPU. One HDMI just for sound, and one HDMI/DP to connect the screen. This works - but..
3) The Sound decoder may appear as a phantom monitor - and windows will randomly move apps to it, where you can't see them.
4) Your PC has likely no CEC built in - so you're reliant on Windows controls for volume set to the audio output as a PCM stream (which is OK) - but moment you stream Atmos, windows just sends the audio stream directly to your sound system and things like volume control have to be operated directly on the audio device.
e.g. I'd switch to Netflix, Atmos would kick in, I'd be deafened by the volume and be scrabbling to find the volume buttons on the soundbar or its remote. Then when I stopped Netflix, I'd then have to put the volume back up on the soundbar.
Fuelled by annoyance and AI allowing me to code beyond my natural abilities - I've created a pair of apps to completely solve these problems. The latter of which give be the actual experience I'd wanted out of the box (if Panasonic, Microsoft & Nvidia had all got together than done things properly).
Your Options:
(both very similar lightweight c# tray apps)
https://github.com/goldcd/NOTM (Not on this Monitor)
- No hardware requirements
- Allows you to blacklist your sound device as a display. Anything that anything tries to put onto it in any way will be pushed back to your primary, real, display. No workarounds/hacks - just stops anything trying to use it as a monitor
Audio keep-alive. If your sound device 'sleeps' and takes a few seconds to startup/handshake on new audio playback, this stops it happening. Sound just 'always works'
All the features of NOTM (simplified a bit) - but with added CEC controls/integration
Needs Pulse-Eight CEC injector (here or here) and for you to install the USB driver
This lets your PC control the sound (as well as CEC allows)
Manual controls to turn sound system on/off and adjust volume
CEC doesn't support absolute volume adjustment, so app reads current volume from device and user requested volume, and sends vol up/down signals to align them in a little loop (I'm just mentioning this to explain why there's a small lag)
Automatic settings to turn sound on/off with PC waking, sleeping, starting, shutting down etc.
Atmos volume proxy. When app detects that an exclusive mode Atmos stream is playing, it hijacks the ineffective windows volume controls, and redirects them to control the sound device via CEC. Adjusts levels so hopefully you don't notice the switch. Then when the audio stream stops, restores back to how it was before.
Sorry for the spam - but for once, I think I've made something useful there were no good previous solutions for. I want to show off my babies to the world to be adored.
I think I've run out of features and bugs - but would be more than happy for any suggestions.
