Like the title says, I have a USB AudioEngine D3 DAC and headphone amplifier with software volume control. I can control the volume fine via alsamixer in a terminal, but that is rather inconvenient. I would like to use the volume control keys on my keyboard as they are meant to be used, but they only set the volume to 0% or 100%. When I press the volume up key once, the volume jumps to 100%, and when I press the volume down key, it jumps to 0%.

Adjusting volume level via the "Settings -> Sound" GUI means I have 0% volume until I drag the volume bar all the way to the right (100%), at which point I get 100% volume.

alsamixer shows the volume at 0% or 100% (as expected, I suppose) when I adjust my sound via sound settings or volume control keys. Setting the volume level to something reasonable via alsamixer results in the "Settings -> Sound" GUI showing 100% volume on its slider bar.

How can I get volume control keys working properly? I'm running Ubuntu 18.04 LTS.

  • HI - Could you please edit/paste the output of this pactl list short sinks - It could be that a 'not volume capable' stage of the device is set as default output
    – cmak.fr
    Feb 6, 2019 at 9:47

1 Answer 1


I just got the D3 today and had this exact same problem. Check out the top answer on this thread. For me, these instructions worked:

There are a few variables which control how PulseAudio controls the volume. You can either edit /etc/pulse/default.pa (you'll have to be root to do that) to change the behavior for all users, or copy that file to ~/.pulse/default.pa and then edit that file, to change behavior for the current user only.

Open the file mentioned above. Find the row saying load-module module-udev-detect and change it to:

load-module module-udev-detect ignore_dB=1

To try your changes, restart PulseAudio with the following command:

killall pulseaudio

PulseAudio will then autospawn (restart itself).

I had a block in the config file that looked like this:

### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect tsched=0
### Use the static hardware detection module (for systems that lack udev support)
load-module module-detect

Then I simply added ignore_dB=1 to the end of each load-module line, so that the two lines looked like

load-module module-udev-detect tsched=0 ignore_dB=1
load-module module-detect ignore_dB=1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.