I recently got a JDS Labs Element DAC + headphone amp. I drive it from my Ubuntu desktop using VLC as the audio player. It’s plug and play – no drivers needed. However, best results come after applying a few tips:
VLC Audio Device: The DAC has 17 output devices that appear in VLC. Which one to use? Use Pulse Audio if you want to hear a mix of all audio on the computer. Pulse Audio mixes all sources and resamples them if necessary to a common rate. Use JDS Labs Element DAC, USB audio direct hardware device without any conversions if you want to hear the audio track in its native sampling rate & bit depth, and nothing else. I prefer this for best sound quality.
VLC Output Module: use Pulseaudio audio output if you want to hear a mix of all audio on the computer. Use ALSA audio output if you want to bypass Pulseaudio to hear the audio track and nothing else.
VLC occasionally stopped playing and popped up an error saying “Device or resource busy”. If you’re using ALSA, only one app at a time can use the device. For example, if the browser tries to play a video it can steal the device from VLC. Also, VLC seems to have a bug in which it occasionally steals the device from itself when switching tracks. Adding a udev rule made this happen far less often. Add a file called 41-jdslabs-dac.rules to directory /etc/udev/rules.d. Make the contents like this:
# JDS Labs Element DAC SUBSYSTEM=="usb", ATTR{idVendor}=="262a", MODE="0666", GROUP="plugdev"
This makes the JDS Labs DAC accessible to any Linux user.
Audio Glitches: Occasionally, once every hour or so, the audio will stop for a moment, then resume. I believe this is because the JDS Element uses USB adaptive mode, not async. This makes it compatible with more computers. Some people claim that adaptive move has more jitter and lower sound quality, but measurements belie this claim.
More audio glitches: Occasionally I would hear tics in the music, as if the computer CPU were too busy to deliver audio. Re-nicing the VLC process to -15 fixes this.