The Audioengine D3 is a great USB DAC. It features a nice build quality with a metal outer shell, and most importantly it sounds good. However, if you are using it on Linux you might run into some volume control issues. In my case there was a large jump in volume i.e. no sound until a certain threshold and than suddenly a very loud sound. These are the tweaks I used to get its volume control working nicely on (Ubuntu) Linux.

There are a large number of pages that suggest setting ignore_dB=1 in /etc/pulse/default.pa as a fix, i.e.:

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

That worked. However, that didn’t fix the whole problem for me. Now the threshold in the volume control was gone, but starting from 0 the volume rose very quickly (above 10% was way too loud). There was another hint I stumbled upon: changing the default PulseAudio profile. After changing it to iec958-stereo everything smoothed out and the DAC became usable and enjoyable.

The only thing to do is to make the change permanent by adding (in my case) the following to /etc/pulse/default.pa:

.ifexists alsa_card.usb-Audioengine_Audioengine_D3_Audioengine-00
pactl set-card-profile alsa_card.usb-Audioengine_Audioengine_D3_Audioengine-00 output:iec958-stereo
.endif

Hope this helps someone out.

More tk

Sources

These were the most useful pages in sorting this issue out:

https://askubuntu.com/questions/15069/how-do-i-change-the-way-ubuntu-adjusts-my-volume-mixer-levels?noredirect=1

https://unix.stackexchange.com/questions/462670/set-default-profile-for-pulseaudio