Asynchronous DAC setup

I run my Raspberry Pi with an asynchronous USB DAC (HRT MusicStreamer Pro). This sort of DAC is finicky with dropouts and requires a fair amount of CPU headroom, Even on lower-end laptops it takes some careful configuration to get it to play smoothly.
I would like to go the i2s route eventually but it seems to be a bit of a minefield still in the way of clocking and such, and the MS Pro is a very good sounding DAC so for now I’m trying to make the best of it.
Initially I had some annoying clicking/mini dropouts, especially when playing high-res material. With some tweaking I managed to get it to where I don’t get any audible issues anymore, with any material upto 24/192 (which is downsampled to 88k in realtime since my DAC doesn’t go over 24/96) - quite a feat for such a tiny cheap device!

Here’s my settings:

  • Audio buffer in Volumio: 640kB - for async usb DACs the buffer should be as small as possible without getting dropouts. This seems contradictionary but it works. I may go slightly lower still but so far this works perfectly.
  • Kernel tweak setting: ACX - I am unsure if this is of influence but I had read someone claiming to have improved USB DAC performance with it and it at least doesn’t seem to hurt
  • Overclocking - Turbo setting (1Ghz, overvolt, ram overclock). This helped a lot, especially for HD material.
  • Source: FLACs (16 and 24 bit) from USB storage device
  • Power: currently my PonoPlayer wallwart :slight_smile: which is 5V/2.1A iirc and seems to run stable enough. Regulated PS in the planning.

Posting this to share my findings so that it may help someone else. This configuration gets me virtually (I still hesitate to say 100%) flawless playback of any resolution over my USB DAC. Any further tips for increased performance are ofcourse welcome.