I have a "Dell Inc. Latitude 5290 2-in-1", and it comes with a stereo microphone array that, by default, has a gain that is way too extreme.
A value of 100% is screeching / over-blasted to any listener, while a value of 25% is most reasonable.
Thus, I wanted to limit the gain of the microphones through PipeWire.
I created the following WirePlumber configuration file.
# For "Dell Inc. Latitude 5290 2-in-1"
# The analog input array is way too loud
monitor.alsa.rules = [
{
matches = [
# This matches the value of the 'node.name' property of the node.
{
node.name = "alsa_input.pci-0000_00_1f.3.analog-stereo"
}
]
actions = {
update-props = {
node.description = "Dell Latitude 5290 2-in-1 Stereo Microphone"
channelmix.min-volume = 0.0
channelmix.max-volume = 0.25
channelmix.normalize = true
}
}
}
]
I know this is applying to the correct node, because executing wpctl status
shows that the node description has been properly changed.
The problem is that the "channelmix.max-volume" is not applied as I expect it to be. I expect it to make it so that 25% max volume is the new 100%, Instead it seems to do nothing.
What am I doing wrong, and how can I achieve what I want?
Edit 1: Channel Mix is working, but it seems the "Volume" as of wpctl get-volume
is referring to gain. Essentially Channel Mix is making it quieter, but the gain because of "Volume" is nonsensical.
Edit 2: RedHat developer says there isn't support for thatcurrently :(
https://fosstodon.org/@wtay/113532113977083665
Edit 3: EasyEffects is not the solution here, This is a lower level issue, not something done via an affect to the audio stream. EasyEffects cannot "undo" gain changes.
Day to day may be chaotic.
Long term effects are based on averages that paint a bigger picture.
Have you taken any data analysis classes in college, if not I suggest you find a local higher education facility and pay the required fee to expand your mental library.