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.
These were the most useful pages in sorting this issue out: