Filtering or EQing a single application's audio seperately and in real time using OBS

Competitive shooter games involve many continuous hours of listening to gunshots and exposions in headphones. High listening volumes are incentivised as being able to hear footsteps, defuses, reloads etc is important. I predict that Call of Duty players will be tinnitus patients by the tens of thousands before long. I already have some unrelated hearing damage, so I have devised this bodge for adding dynamic range compression/limiting to the game's audio without affecting Discord or whatever else is playing on the computer. With a bit of tuning it will leave the footsteps and stuff audible while taking the top off the grenades and bullet cracks/pings.

First, in the Windows sound mixer we send our game audio to a spare audio device that won't actually make any noise. I use my monitor's DisplayPort audio device (with no speakers/headphones attached).

App Audio Settings

Then in OBS, we want to grab the signal from that DisplayPort audio device, process it, and parrot it back to our primary desktop audio/headphones. In the OBS' audio mixer, it has a source for desktop audio by default, and by default that will be your primary audio device. In settings > audio, you can add a second desktop audio device (Desktop Audio 2), which we should set to our dummy one. For me that's "ASUS XG35V".

OBS Audio Settings

My 'Desktop Audio' is disabled - this isn't necessary, you can leave it however it is by default.

Then, we want OBS to play this dummy audio device's signal back to us on our main device. We do this in the advanced audio settings in the little cog menu by the audio devices in the mixer.

Advanced audio settings menu

Set all your other devices to 'Monitor Off', but the dummy/game audio one to either 'Monitor Only' or 'Monitor and Output'. Output on/off will dictate whether it's included in recordings or not, but if you're not recording anything with OBS it makes no difference. Now, as long as OBS is open and an application is outputting to our dummy device, OBS will parrot it to our primary device unchanged.

Monitor settings

** note! make sure mono is unchecked! when the primary audio device is a bluetooth headset device it might auto-check!

Then, in that same audio mixer > Desktop Audio 2 > wee cog menu, hit 'Filters'. There we can EQ, add VSTs, do whatever. I used some basic dynamic range compressor VST

Compressor settings

It might be possible to use a more sophisticated multiband compressor to actually grab specific sounds and pull them up in the mix, but I have not messed with that yet.