I am using a USB DAC (HRT Music Streamer II) which operates in asynchronous mode. It works perfectly at sample rates up to 48 kHz. When I go to 88.2 or 96, it works perfectly sometimes. Most of the time I get ticks. When it starts playing without ticks, it will continue to play without ticks to the end of the track. A different USB DAC that operates in isochronous mode is able to play at the high sample rates without problem.
The designer of the HRT DAC (who provides excellent support, by the way) believes that the problem might be buffer underrun. Considering that the problem occurs only at high sample rates, I can see some logic in that theory. However, what I don't see is why playback works perfectly all the way to the end of a track whenever it starts perfectly. If the problem were an underrun, I would expect that at least occasionally the buffer would underrun after a perfect start and I would start hearing ticks midway through a track. Never happens. Moreover, I would not be surprised were the ticks to vanish sometimes after a faulty start when the computer finally catches up. Also never happens. Still, assuming that the problem has something to do with the speed of the platform, I tried exiting the desktop to reduce the load on the CPU (which, by the way, has two cores that operate at 3.1 GHz). No joy. I also found that the ticks occur just by synthesizing a sine wave using gst-launch:
gst-launch -v audiotestsrc volume=0.01 ! audio/x-raw-float, width=64, rate=96000, channels=2, endianness=1234 ! audioconvert ! alsasink
The player uses GStreamer too, so maybe the problem is with GStreamer, not alsa. So I tried a different player (sox). To play the track with sox, I converted it first to wav. I still get ticks. Any suggestions? Has anyone gotten any asynchronous USB DAC to work at sample rates of 88.2 or 96 kHz?
In case it matters, I am running Lubuntu 12.04.