7

I'm using a USB sound card via Pulseaudio to get audio out of my laptop and would like to add a filter of some kind to decrease the output volume level. Currently if I set the volume to anymore than 5 or 10% the actual audio output is deafening and I'd like to have more control over how loud it actually is via my keyboard. Currently I can basically have it at 0%, 5% or 10%.

I don't really know what terminology to Google for here, so even just a pointer in the right direction would be welcome.

2
  • 2
    You can see in pacmd list-sinks that there is a base volume attribute for each sink, which is presumably set as reported by ALSA. This value determines what Pulseaudio thinks of as "100%" (or 0 dB, in their phrasing). If you can lower it, that should do what you want, but I don't know how the "reported by ALSA" works, exactly. Commented Mar 6, 2017 at 16:30
  • @hugomg: You have probably a different USB card, and the OP likely won't answer, but another way to at least understand what is going on is to look at the ALSA mixer settings with amixer -c1 contents, where 1 is the number of your card, and see how Pulseaudio maps the hardware controls by changing Pulseaudio volume and watch the mixer values change, and vice versa change the hardware mixer settings and watch the volume change. If there's some hardware mixer value that Pulseaudio ignores, you have at least a workaround. Commented Apr 21, 2019 at 4:32

2 Answers 2

5

I had a similar issue where volumes around 30 % were already very loud, so I wanted a limit too. I found a similar question was asked over at askubuntu: https://askubuntu.com/questions/32383/adjust-pcm-volume

Essentially sound cards have many volume sliders in alsa, and pulseaudio usually only sets the Master, and then sets everything else to 100 %. However, you can manually go into alsamixer and set the PCM slider to 30 % (in my case) or 10 % (your mentioned 'max'). Then you need to edit /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common, and under [Element PCM] set volume = ignore (instead of merge). Now your Pulseaudio volume slider 0-100 % will only move the master volume, but audio is still attenuated according to the fixed PCM value that you have set in alsamixer.

So while it does not literally change the base volume of a device, the PCM slider in alsamixer now effectively acts as an alternative base, because it is ignored by pulseaudio.

4
+50

Reduce audio level in ALSA to allow bigger range of level control in Pulseaudio

check/adjust ALSA audio levels in alsamixer

(ignore first settings displayed for 'Default' they usually track Pulseaudio levels)

Press 'F6' key and select audio device from list

left/right arrow keys to locate level control for 'Speakers' or 'Headphones'
and up/down arrow keys to turn level down

when ALSA audio levels are set correctly save settings with:

sudo alsactl store 
2
  • Thanks! Those alsamixer settings are exactly the sort of thing I was looking for. Commented Apr 27, 2019 at 4:18
  • Unfortunately, ALSA doesn't always have a volume control for every device. For example, on my AMD HDA ATI HDMI sound card, the channels are listed by alsa as S/PDIF and you can mute or unmute the channels but no volume bar is present over the 00 boxes. Even if I press F5 to view all. Commented Mar 24 at 2:31

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.