The audio port in one of my old motherboards starting putting out static in the right stereo channel. I decided to fix this by purchasing a cheap USB sound card and using it instead. The specific model that I purchased is by Sabrent and has a model number of AU-MMSA.
I plugged it into my system, opened Sound Settings, and chose “Audio Adapter Analog Stereo” from the device options. Sound then flooded my headphones with the volume being far too loud for comfortable listening. As I lowered the volume, the sound went from far too loud to completely silent when I moved from around 40% volume down to 35% volume. It was if somebody muted the volume.
After playing around with the settings for a while with no change in loudness or the sound cutting out at low volume, I dug in deeper. I found many different bug reports and suggested solutions to this issue, but only this one by user sen in the Arch Linux forums fixed both problems.
Unfortunately, the solution requires modifying a file as root, which can be a bit daunting, but I believe in you, so let’s modify that file.
First, open a terminal. This can be done by pulling up Ubuntu’s dash (clicking the Ubuntu icon at the top of the icon bar along the left of the screen), typing in “terminal” and clicking the enter key. Next, we need to edit the /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common
file as root. This can be done by typing the following in the terminal and pressing enter:
[chris@home ~]$ gksu gedit /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common
You will then be prompted for your user password. Type it in and press enter.
A file editor will open up with the file loaded. Search for the text “Element PCM”. You should see the following text:
[Element PCM] switch = mute volume = merge override-map.1 = all override-map.2 = all-left,all-right
Update this section of text to look like the following (changes are highlighted):
[Element PCM] switch = mute volume = ignore volume-limit = 0.01 override-map.1 = all override-map.2 = all-left,all-right
Note that the value 0.01
can be adjusted as needed to change how quiet and loud the volume is. Making the number smaller reduces the max volume while making the number larger increases the max volume. I tested out 0.05
and found that the max volume was much louder than I would ever use. I also decided that 0.01
was technically louder than I’d ever use. I ended up with a value of 0.0075
(0.005
was too quiet) which I felt gave a good maximum volume and resulted in better overall control over the volume range.
Once you have saved the changes to the file, a couple things still need to be done in order to have this change go into effect.
Inside your terminal window (it should be behind the text editor), run the following command:
[chris@home ~]$ pulseaudio -k
This will force the audio system in Ubuntu to reload. If you had any application that was playing audio, it will go silent at this point. Any application that is now silent will have to be closed and reopened.
You can now test out the change to see if you need to adjust the number down or up to make the volume to your liking. Remember to save the file and run pulseaudio -k
each time you change the number.
What Didn’t Work
I found a number of guides that recommended that the /etc/pulse/default.pa
file be modified and have the following lines added:
load-module module-alsa-sink control=PCM load-module module-udev-detect ignore_dB=1
Neither of these worked for me. The first config change had no effect. The second config change did fix the issue with the sound muting at low volumes, but the volume was still far too loud with just 1% volume being what I consider to be an 80-90% volume level.
Technical Details
For those that are interested in the technical details of this USB device, the following information is for you.
lsusb
Full verbose details (lsusb -vvvv
) can be found here. These are the basics:
Bus 005 Device 002: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter Device Descriptor: idVendor 0x0d8c C-Media Electronics, Inc. idProduct 0x000c Audio Adapter iProduct 1 C-Media USB Headphone Set
aplay -l
**** List of PLAYBACK Hardware Devices **** card 2: Set [C-Media USB Headphone Set], device 0: USB Audio [USB Audio] Subdevices: 0/1 Subdevice #0: subdevice #0
alsa-info.sh
Did I help you?
Thanks so much!! I’ve just bought an USB sound stick “Creative Sound Blaster Play!”. At the Raspberry Pi it works just fine, but on my laptop it was waaayyy too loud.
Your guide was very easy and helped me a lot. I use OpenSUSE and it worked there as well.
Glad that I could help. Thanks for the details about it working on OpenSUSE.
My device “ID 041e:30d3 Creative Technology, Ltd Sound Blaster Play!” suffered the same problem. I’ve been searching for the solution for almost 2 years. And now it’s completely solved, all thanks to you!
I was trying to get this setup on my laptop. It just wouldn’t work, even though the configuration files were almost identical to my perfectly functioning desktop.
Solution? Even if you include “volume = ignore”, you ABSOLUTELY MUST include “volume-limit = 1.0”.
Otherwise, PulseAudio will still merge the volume controls, even though you explicitly told it not to!
Putting volume-limit to 1.0 in conjunction with “volume = ignore” somehow made the slider function normally (the other values of volume-limit just made it not produce any sound at all and leaving it out was super loud). So thank you!
Thank you! This had been driving my crazy for months.
Dude, you just saved my ears…
Can’t count the time I spent trying to fix this, thank you really !
Thanks! Had the same issue with an E-MU Tracker Pre on Debian 8.
Thank you very very much for posting this. I can now sanely adjust my audio levels in my Debian Linux system with my USB sound card without fear of bursting my ear drums. You are a life saver.
Thank you so much. The suggestion worked like a charm! Save me a lot of time.
you made my day (or my sunday morning)!
i was trying to work on my thesis presentation while listening slipknot videos; but without waking up my wife. my new usb headset had this same problem and i have always had sensitive ears (can’t stand headphones with high volume).
now i can get the inspiration i needed to finish this f. presentation … humanity is in debt with you.
I’m glad that I could make the morning go better for both you and your wife. 🙂
Good luck with your presentation.
June 2020 and it’s still valid 🙂
Added the modification again after upgrading to Fedora 32.
Seems like only volume-limit is relevant for me, I reverted back to “volume = merge” and volume control is still fine.
Thanks a lot for posting this!
[…] Fix for USB Audio is Too Loud and Mutes at Low Volume in Ubuntu […]
Will have to test some more, but this finally works for me.
I’m using linux fulltime for over a decade now and I love it, but it’s rough edges like these that sucks hard about it, but cheers to the people like you posting guides online at least 🙂
You’re a genius mate!
Thanks! Fixed 8086:0808 Intel Corp. USB PnP Sound Device
Thank you so much. It works on Ubuntu 20.04 with Edifier usb speaker.
The steps are slightly different for Pipewire. How I did it with Pipewire here https://forum.manjaro.org/t/pipewire-configuration-to-lower-the-volume/59380/3