Open MINERODO10 opened 2 days ago
On my device it also changes the pcm but only on the lowest values, this happens with both speakers/headphones slider.
What happens if you play around by setting different values for the PCM?
Add the following and comment out the include of .common file at the end of the mixer path (/etc/alsa-card-profile/mixer/paths/analog-output-speaker-split.conf)
[Element PCM]
switch = mute
volume = zero
;.include analog-output.conf.common
On my device at least, the above makes the PCM stay at a fixed 100 (0.00 dB) if it works you may have to do the same with the mixer path for the headhones by copying the original to /etc too.
Please lower your volumes to zero and do small increments from there until you hear something, you don't want to accidentally play at the highest volume and risk damaging your ears/hardware
If that doesn't work, this looks like a good place to start investigating https://askubuntu.com/questions/15069/how-do-i-change-the-way-ubuntu-adjusts-my-volume-mixer-levels
Also, does changing the volume to the maximum ever changes the Line out volume or it never touches it?
In the linked askubuntu question they describe no volume change or jumps at some percentages.
Is yours always static?
In your screenshot, what does Line do?
This is the behavior of both outputs, sinks, ports, thingamajigs, or whatever you want to call it with a 1khz tone
The front panel headphone out works just fine appart from PCM going up and down in what might or might not some kind of pattern on each volume change
The rear line out however only modifies the PCM slider so i have to modify the correct Line Out slider miself
Behavior is the same whether both ports are connected or only one of them is
https://github.com/user-attachments/assets/940a5540-7323-4b6d-aa6f-aa6532c205af
(Audio was recorded externally on a Pentium 4 running Windows XP so sorry for the (not so) low quality audio though the strange delay at the end was (clearly) on my pc and NOT on the recording machine)
Now that i modify analog-output-speaker-split.conf with
[Element PCM]
switch = mute
volume = zero
;.include analog-output.conf.common
changing volume on pipewire on the Line Out sink does nothing both to Line Out or PCM in alsa and the Headphones sink (of course) keeps its "pattern" on PCM while changing volume
This is extremely similar to https://github.com/luisbocanegra/linux-guide-split-audio-ports/issues/19 maybe is the same problem under the hood.
I found this [Solved] PulseAudio does not use hardware volume control, it seems you need to tell to pipewire which control to use https://docs.pipewire.org/page_man_pipewire-pulse-modules_7.html please try that.
On my device it also changes the pcm but only on the lowest values, this happens with both speakers/headphones slider.
What happens if you play around by setting different values for the PCM?
Add the following and comment out the include of .common file at the end of the mixer path (/etc/alsa-card-profile/mixer/paths/analog-output-speaker-split.conf)
[Element PCM] switch = mute volume = zero ;.include analog-output.conf.common
On my device at least, the above makes the PCM stay at a fixed 100 (0.00 dB) if it works you may have to do the same with the mixer path for the headhones by copying the original to /etc too.
Please lower your volumes to zero and do small increments from there until you hear something, you don't want to accidentally play at the highest volume and risk damaging your ears/hardware
If that doesn't work, this looks like a good place to start investigating askubuntu.com/questions/15069/how-do-i-change-the-way-ubuntu-adjusts-my-volume-mixer-levels
Before doing that revert this
Sadly running pactl load-module module-alsa-sink
will crash (or cause a memory leak, not sure) in pipewire and on some occasions it crashed gnome(mutter?) too
Hmm, just tried changing the sink name and the same happened here. Restarting pipewire after that takes one and half minute.
It seems that the way to configure that now is through wireplumber https://pipewire.pages.freedesktop.org/wireplumber/daemon/configuration/alsa.html
https://pipewire.pages.freedesktop.org/wireplumber/daemon/configuration/alsa.html
Maybe
api.alsa.soft-mixer
Setting this option to true will disable the hardware mixer for volume control and mute. All volume handling will then use software volume and mute, leaving the hardware mixer untouched. The hardware mixer will still be used to mute unused audio paths in the device. Type: boolean
or
api.alsa.ignore-dB
Setting this option to true will ignore the decibel setting configured by the driver. Use this when the driver reports wrong settings. Type: boolean
eg:
# /home/$USER/.config/wireplumber/wireplumber.conf.d/test.conf
monitor.alsa.rules = [
{
matches = [
{
node.name = "~alsa_output.*stereo-lineout"
}
]
actions = {
update-props = {
api.alsa.soft-mixer = true
}
}
}
]
That doesn't change the behavior at all. I did confirm the file was being loaded and applied by setting node.nick = "Test"
and checking with the output of pw-cli ls
This problem might only be solved if alsa, pipewire, the kernel module(s), and whatever else is needed implement a non-hacky solution to multistreaming on Realtek audio cards, or at the bare minimum a way to map a pipewire sink volume slider to an alsa mixer slider.
A hacky solution might be to make a script to sync the value from PCM or the Sink itself to Line Out on alsa and make the Headphone sink ignore PCM completely (in the case of using it as the volume value source) in /etc/alsa-card-profile/mixer/paths/analog-output-headphone.conf
since it sets it to 0dB each volume change. Once I get around to making it I will add another comment with a link to the repo on this issue in case anyone else needs it in a similar case, feel free to add the link to the instructions.
This issue can be closed now. thanks for everything and sorry for my bad England :)
When i try to change the volume on the headphone out sink it works just fine but on the Line Out sink instead of using the correct "Line Out" volume slider thats on alsamixer it controls "PCM" Not sure why it does this and havent found anything on how to change it to control the right slider maybe set
override-map.1 = ...
oroverride-map.2 = ...
in a element in analog-output-speaker-split.conf but by its description in analog-output-conf.common it might not actually helpTo actually control volume on the line out i have to do it in alsamixer that way it just works fine
FastFetch output
My config files
/etc/alsa-card-profile/mixer/profile-sets/split-ports-profile.conf
/etc/alsa-card-profile/mixer/paths/analog-output-speaker-split.conf
And other info
Sinks before Changes
Sinks after changes