this post was submitted on 23 Nov 2024
27 points (100.0% liked)

Linux

48372 readers
1506 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 1 points 3 days ago

Doesn't have the support for hardware gain limitation.

I am trying to prevent the system from being able to change the microphone gain at all, not apply an affect.