I'm encountering some strange behaviour with audio controls and volumes, nothing extreme serious, just moderate annoyance source, so I thought maybe you can help me sort this one out! Also I hope this is the right community for this...
(intro)
The thing is, I'm running Debian Bookworm, with Plasma and I have a rather strange audio setup. It has its legacy reasons, but I use a sound card (CMI8738/CMI8768, it has 5.1 output), and as for the speakers, I've got a pair of active 2.0 speakers and an active subwoofer (which was a part of a 2.1 system, but now I just use only the woofer). These are connected separately to the card; the stereo pair goes to the green output jack (front) and the subwoofer goes to another, which I think is the center+woofer output.
For some reason, the center and woofer was swapped on my card, or the subwoofer was hooked to the other channel, no idea, but I was managed to change them in pulsaudio's config /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf and modifying [Mapping analog-surround-*], changing the order of lfe and front-center in channel-map.
Then I noticed I can't really control the woofer, it worked, the setup was working, but not in the way I wanted to. The goal was to make the system actually control the outputs as intended and think about it as a 2.1. Amongst the profiles, there were no 2.1 option, only stereo, quadrophonic, 5.1 and 7.1.
By adding this line to ~/.config/pulse/default.pa...
...I was managed to create a virtual output that behaves actually like 2.1. I can control both left and right channels and also the woofer on its own. Neat!
(the problem)
Now I have two volume controls. One for the "real" output - the 5.1 profile and the virtual one, the 2.1.
In Plasma toolbar, changing the volume with the scroll wheel is unpredictable, or, at least, I haven't really figured out how it works at the moment; sometimes it controls the real output, sometimes the virtual. On my left screen, it usually controls the real, on the right, most of the times it controls the virtual. But it just changed at the moment as I tried out, typing this post. Now both of them controls the real one.
The goal would be to have the real output constantly on 100%, and every volume controlling action should be take place on the virtual output.
Also, another strange thing is that even tho it looks like everything is fine and dandy, the overall output is low. When this happens, usually on the real output the left, right and woofer channels themselves are changed to lower (probably a previous state of the virtual output) volumes.
This all seems pretty random and unpredictable. If it works, it's awesome, and problems doesn't occur for days, but sometimes they do, and I have no idea why.
Any ideas?
(tl;dr)
I'd like to know why my volume controls (scroll wheel, volume keys) have effect on seemingly random outputs, and why do the volume of each channel that is present in my virtual output get change ON the physical setup (so the left, right and subwoofer sliders in the 5.1 output) persistently.
Okay, so you have a few things going on here, but it's hard to get specific about what the actual issue here due to the number of variables. Here are some places to start looking:
alsamixer (cli) or pavucontrol (gui) will have a lot of easy to configure options for your audio setup. Have a run through those.
this sound card seems to have hardware audio controls that can be problematic while dual-booting Windows, so make sure you have fast boot disabled on Windows, and boot your Linux side twice in a row after turning it off to be sure the state of your devices is cleared
Your audio profile is only half of the equation due to the hardware controls on the card. The port modes need to be set ON the card, as well as power for channels (possible the card does this automagically)
Essentially, if you have a hardware controlled 5.1 cars, it's natural state is probably going to be...5.1. so your first job is telling the CARD what mode it should be in, which should be 2.1/3 in your case. What you've done so far is just set an audio output profile for the speakers, which isn't quite the same thing. Check alsamixer or pavucontrol to try and sort this out.
Next step if the above doesn't work: dig into getting mode and config info from the card itself. The amixer command will be helpful here. If this is the only audio card in the machine, try 'amixer --card=1' (it might be 0), and see what info it has.
Past that, you should be on a path to find a working config. If all else fails, I'm betting you can get a solid hardware controlled card online for dirt cheap, maybe with a chipset that has full or better Linux support.