Problem:
I have been using an older OBS (27.x) on Windows 7 (I know) without any problem for a very long time and I recorded both Default Desktop Audio and specific audio devices.
OBS has always recorded/captured the full volume: after Windows Volume Mixer adjusted specific applications' volumes but before the Windows Volume Mixer changed the output level. (I'm not familiar enough with the Windows audio pipeline to give a more detailed description). So I was able to record full volume (without getting hearing damage and blasting the audio at full volume), I was able to turn the volume down at night using the Windows Volume (either with volume media keys from keyboard or in the mixer directly).
But on my new notebook with Windows 11 (and OBS 32.1.0) I was very surprised that the output volume level affected the recorded audio... and have only found out after multiple sessions :(
I had made test recordings and verified that audio (and video) was working (both live and VOD tracks), and volume levels seemed fine (it was during the day), but I had no idea that output volume would change the recorded volume, and I never tested it because I had no reason to, because it was never the case in the past. I just took a glance at OBS's volume indicator and saw it was working, didn't pay attention that the levels were a few pixels shorter.
I have read that Windows 10 changed the audio pipeline, and made it possible to record each applications separately (which was not possible in Windows 7 without virtual audio devices/mixers - so I just used the built in Windows Volume Mixer to mix audio of apps), but I have not read anywhere that Windows or OBS changed how desktop audio is captured, that output volume level would change the captured audio.
A warning would have been nice.
I don't understand how this was not "fixed" in 3 years since the first post. Or was this "solved" in another thread? (This was the first result in Google for me)
Is it just not possible in Windows 11?
Is it a bug or desired behavior?
Out of curiosity, how does it work on Linux?
Solution(?):
For people who are still looking for a solution/workaround, in the Audio Mixer panel in OBS there's a settings: Advanced Audio Properties (2 cogwheels next to Options), you can uncheck the Active Sources only and see all your capture sources in every scene, and assign them to tracks. You can't edit them from there (maybe you should be able to), but you can change the Options in the Audio Mixer (right click on the empty space below volume meters, or use the Options drop-down-menu) and check Show inactive sources. Here on the source you want to capture you can edit it: (right click on it, or left click on the source name and select) Properties. Under the drop-down lists there's a "Capture Audio (BETA) (?)" checkbox, and you can capture the application audio directly, before the Windows volume mixer changes the output level.
You don't have to do all of this from the Audio Mixer, you can enable audio capture from the Sources list, and they should show up in the Audio Mixer without showing inactive sources (if the source is running/captured), but it will show orange "Unassigned" (which doesn't do anything when you left or right click on it, but if you click on the yellow speaker icon next to it twice [muting an unmuting it] then a warning modal dialog will pop up telling you that you need to assign tracks in "Advanced Audio Properties".
Notes/design advice:
Maybe clicking on the Unassigned button/label should open the Advanced Audio Properties... but I'm not a UX designer.
I also don't understand why is the Advanced Audio Properties not in the main Settings? ... at least I can't see it anywhere: not under Output, Audio, nor under Advanced...
Maybe it's an implementation issue, but under Audio in Settings there's a nice long list of "Hotkeys" (for push to talk) for each capture source... so it's clearly possible to dynamically generate settings for capture sources in Settings. Maybe move the "Hotkeys" out from Audio into a separate tab (there is already a Hotkeys tab, but that's where the actual hotkeys are assigned, the "Hotkeys" under Audio is mostly just push-to-X delay setting, there's also "Enable push-to-"X check-boxes, but I don't understand why, why there? Is there a difference compared to removing/not assigning a hotkey? I mean there is, between nothing/empty and something that is disabled, but I still don't know why is the checkbox not in the hotkeys tab, so you can disable any hotkey without removing it. And not just for audio/push to talk, but other things too like Start/Stop Streaming...) ... anyway, it doesn't even have to be moved, just put the Advanced Audio Properties between "Advanced" (that has the monitoring device) and "Hotkeys" in the Audio tab, so all the relevant settings are nicely visible in one place...
I would still like to be able to capture audio at full volume without needing to set up (BETA) audio capture for each source and without blasting audio at full volume on my headphones/speakers.
OBS is pretty cool otherwise, thanks for all the work people put in it. <3