XMOS I2S periodic audio pops in Windows / not in Linux

nebiki

Member
2013-10-03 2:30 pm
Hi,

I use a chinese XMOS I2S interface board (Crystal upgrade XMOS XU208 DAC + cpld card USB digital interface I2S DSD output for AK4497 ES9018 ES9028 ES9038 decoder E4 007-in Amplifier from Consumer Electronics on AliExpress) with a chinese ES9038 board (ES9038 Q2M DAC DSD Decoder Support IIS DSD 384KHz Coaxial Fiber DOP | eBay).

Several different drivers were tested, they all produce the same issue: I get periodic audio pops (buffer overflow/underrun? Recording+its spectrum in attachments) every few seconds. This does not happen when I feed S/PDIF directly from the PC to the DAC.

I've done a quick test playing back a 400Hz test signal via foobar (happens everywhere - videos, browser, games) and depending on the sample rate these pops appeared in different intervals:

44100 Hz: every 88s
48000 Hz: every 95s
88200 Hz: every 44s
96000 Hz: every 44s
176400 Hz: every 22s
192000 Hz: every 25s

I've tried the same USB interface / DAC combination on three different Windows-PCs (all Windows 10), they all show the same result. Then I tried installing a fresh version of Ubuntu, didn't change any driver related settings, and there are no pops at all with the standard alsa drivers on any sample rate. Since the DAC itself doesn't "see" the OS, I guess it's not a DAC issue.

Apparently this XMOS device doesn't work properly under Windows 10. Did anyone experience something similar with these devices? Could this be a firmware related issue which can be solved by flashing the firmware?

Are I2SoverUSB, diyinhk and WaveIO still recommended USB/I2S interfaces? In case I find no fix I'd buy a new interface and would much rather have existing customer support this time.
 

Attachments

  • pop.jpg
    pop.jpg
    199.6 KB · Views: 97
  • pop.zip
    63 KB · Views: 10
Last edited:
Looks like buffer empty problem, but it normally silence the output for 1/s sec.

Windows 10 Creators version should work in UAC2 mode using native drivers. Check after uninstalling XMOS drivers and re-plug device. With what version of drivers device came with? Can you use drivers downloaded from XMOS website? If not, it means Chineese hacked a driver, try demo version of drivers, it will at least work properly. With XMOS drivers installed you can also try ASIO output on Foobar. More reliable and it can play DSD files.

You didn't say whether Foobar works in Direct Sound mode or WASAPI mode. If you didn't install foobar's WASAPI plug-in, Foobar is using DS. Try WASAPI exclusive mode. It will block any Windows sounds and allow Foobar switching to the same sampling rate and bit depth as your source material. WASAPI exclusive mode needs to be enabled in Windows Sounds panel. Check the option "Give application exclusive access". In Foobar go to File->Preferences, chose Advanced. In Playback->WASAPI tick an option "High worker process priority". Try both 'push' and 'event' output WASAPI mode.
 

nebiki

Member
2013-10-03 2:30 pm
The device came with "XMOS-Stereo-USB-Audio-Class2-Driver-3033_v3.34.0". The above routine was done without this driver, but the native Windows 10 drivers in DS.

Tried WASAPI 'push' and 'event', both resulting in a pop every 88s (same as in 44.1 kHz DS - apparently "tone://400" is sampled in 44.1 kHz).

I then tried official Thesycon evaluation drivers (they work) in DS, ASIO, WASAPI (push/event) and they all have the same issue, pops every 88 seconds. Tried "Extra Safe" and max. ASIO buffer size in Thesycon driver, same result.

After this I uninstalled the Thesycon driver, rebooted, reinstalled the vendor supplied drivers and did the same test (DS, ASIO, WASAPI). Same result. eighty-eight seconds.

With this driver, I also tested 16- and 24-bit DS as well as 24-bit in foobar WASAPI/ASIO, same result.

I then uninstalled this driver, installed "XMOS-Stereo-USB-Audio-Class2-Driver-v4.13.0" (newest I could find) and redid the routine with the same result.