USB DAC Problem

Hi everyone,

I just bught a new DAC (Atoll HD-120) as an upgrade from a Maverick Tubemagic D1 Plus. Everything was fine with my D1 plugged in my Vero 4k+ via USB. The Atoll DAC is recognised by the Vero 4K+ and it is listed as “Atoll USB Audio 2.0, Analog” and “Atoll USB Audio 2.0, S/PDIF” but i only get distorted music out of the dac no matter what i try as output config.

I don’t know if it can help but the D1+ uses a Tenor 7022L interface which does’t require any driver to work, not even on windows. The Atoll uses an XMOS interface which doen’t require a driver on MacOs or linux but requires a driver on windows. (The Atoll works fine on my windows laptop with the driver installed).

I found this on the XMOS website : https://www.xmos.ai/file/enable-usb-drivers-linux/
I don’t know if it can help as Atoll specifies that no driver is needed on linux. I din’t try it because i don’t want to break anything .

Here is my log file after a reboot just trying to play some music : http://paste.osmc.tv/guxitilako

Thanks a lot for your help!

This is puzzling. Your device seems to support USB Audio 2.0 which is a cross-platform standard so it’s not clear why a special driver is required for Windows. Usually, the Windows driver offers more than simple audio functionality (eg equaliser and other processing) but the device should work without those extras. Edit: I see the Windows driver is needed for asynchronous usage.

‘No driver needed for linux’ implies the interface is USB Audio 2.0 which we do support. When you say ‘distorted music’ what does it sound like? Can you also turn on debug logging and post logs again. Don’t turn on detailed logging for the audio component at this stage.

Something else to check is if you can play sounds without Kodi:

sudo apt-get update
sudo apt-get install alsa-utils
speaker-test -t wav -c2 -l2 -Dhw:CARD=A20

Hi,

thanks for your answer

When you say ‘distorted music’ what does it sound like?

When i play a song, there is not just noise, i can recognize the song but the sound is distorted, or kind of robotic.
I can record the output if needed.

speaker-test -t wav -c2 -l2 -Dhw:CARD=A20

returns :

osmc@osmc:~$ speaker-test -t wav -c2 -l2 -Dhw:CARD=A20

speaker-test 1.1.8

Playback device is hw:CARD=A20
Stream parameters are 48000Hz, S16_LE, 2 channels
WAV file(s)
Sample format not available for playback: Invalid argument
Setting of hwparams failed: Invalid argument

Here is the log with debug mode on : http://paste.osmc.tv/hurineliqa

Thanks again!

Try speaker-test -t wav -c2 -l2 -Dplughw:CARD=A20

> osmc@osmc:~$ speaker-test -t wav -c2 -l2 -Dplughw:CARD=A20
> 
> speaker-test 1.1.8
> 
> Playback device is plughw:CARD=A20
> Stream parameters are 48000Hz, S16_LE, 2 channels
> WAV file(s)
> Rate set to 48000Hz (requested 48000Hz)
> Buffer size range from 16 to 131072
> Period size range from 8 to 65536
> Using max buffer size 131072
> Periods = 4
> was set period_size = 32768
> was set buffer_size = 131072
>  0 - Front Left
>  1 - Front Right
> Time per period = 0.713719
>  0 - Front Left
>  1 - Front Right
> Time per period = 2.732666

Same “robotic” and distorted voice.
I made me notice that i inverted left and right cables by the way… thanks for this too!

Thanks. We need debug logging on when you start up Vero so please turn on debug then reboot with the DAC plugged in. Then play something.

Yes please. That might help.

I’m wondering if Vero is actually sending an S/PDIF signal, not PCM. Not sure if that would be recognisable as music, though.

I rebooted and just played a mp3 file called “stereo-test.mp3”, here is the new log file : http://paste.osmc.tv/odewelifaf

I recorded the output, you can download it here (on my personnal NAS, with the original file to compare)

Thanks again for your time

My guess is Vero is not supporting your DAC’s asynchronous mode properly. It looks like the D1 Plus does work in asynchronous mode (‘bit perfect USB??’) but it’s difficult to say from their website.

Have you asked Atoll whether they expect the HD-120 to work with arm-powered devices similar to Vero - Raspberry Pi etc running Debian derivatives?

The linux driver you linked is likely to be for x86 so I wouldn’t try that.

Thanks Grahamh for your help,

I will contact the manufacturer.
I also have an old Raspberry Pi 2 somewhere which i can use to test with a fresh osmc install, and maybe test with volumio too, but i won’t have enough time this week, maybe next week…

You were right about the windows driver, the DAC works fine without the driver, i think it just adds ASIO support.
From what i have read, the Tenor chip in the D1 plus isn’t asynchronious, it is “adaptative” (no idee what that meens…)

I’ll keep you in touch if i find anything relevant.

Thanks again!

I found this https://www.xmos.ai/download/Fundamentals-of-USB-Audio(1.0).pdf

I got it from a thread which also included this: Raspberry Pi USB - some theory? | Audio Science Review (ASR) Forum

Pretty sure my xmos async dac worked fine in the Vero 4k+.

How long ago? Would that have been on a previous OSMC release?

It was on 18.x. I’ll check again later today. I have a few async dacs, and few adaptive ones as well.

1 Like

Hi Soli2, thanks for your help!

A friend of mine came to drink a beer and luckily he had a DragonFly Cobalt with him, which is an async dac too. I could test with it and it works perfectly (log file here). So i think the problem is definitely related to the HD120.

The only weird thing i see in the HD120 log file is that it seems listed as 32 Bits capable :

2022-05-22 20:35:56.315 T:2698     INFO <general>:         m_deviceName      : @:CARD=A20,DEV=0
2022-05-22 20:35:56.315 T:2698     INFO <general>:         m_displayName     : ATOLL USB Audio 2.0
2022-05-22 20:35:56.315 T:2698     INFO <general>:         m_displayNameExtra: Analog
2022-05-22 20:35:56.315 T:2698     INFO <general>:         m_deviceType      : AE_DEVTYPE_PCM
2022-05-22 20:35:56.315 T:2698     INFO <general>:         m_channels        : FL, FR
2022-05-22 20:35:56.315 T:2698     INFO <general>:         m_sampleRates     : 48000
2022-05-22 20:35:56.315 T:2698     INFO <general>:         m_dataFormats     : AE_FMT_S32NE
2022-05-22 20:35:56.315 T:2698     INFO <general>:         m_streamTypes     : No passthrough capabilities

and if i understand correctly, alsa sends a 32 bits format :

2022-05-22 20:36:16.525 T:2699     INFO <general>: CAESinkALSA::InitializeHW - Your hardware does not support AE_FMT_FLOAT, trying other formats
2022-05-22 20:36:16.525 T:2699     INFO <general>: CAESinkALSA::InitializeHW - Using data format AE_FMT_S32NE

but the manual says it is only 16 and 24 bits capable. Could this be the issue?

My DAC offers 16 and 32-bit signed LE formats and plays fine in both.

Note that there’s something funny with Kodi’s reporting of audio caps. All USB devices are reported as 48ks/s only and not all formats are reported. I’ve been trying to find out why.

If you want to listen to music while you are waiting for a solution, you could try the TOSlink input to your DAC.

Just tried hooking up my Ayre QB-9 Dac, this one goes all the way up to 24/192 and is using an xmos chipset powered by usb (although the dac obviously from the size of it has it’s own psu for everything else)

Result: vero 4k+ running the latest update, Kodi 19.4. Usb dac works absolutely fine.

What else is connected to Vero 4k+: sd card, hdmi, usb remote receiver, stock psu.

It’s a long time since I dabbled into usb audio intricacies but I have a vague memory that xmos chipsets are using s32 format and that itself is no indication of anything particular.
Update:
osmc@osmc:~$ cat /proc/asound/card1/stream0
Ayre Acoustics Ayre USB Interface at usb-xhci-hcd.0.auto-1, high speed : USB Audio

Playback:
Status: Running
Interface = 1
Altset = 1
Packet Size = 64
Momentary freq = 48000 Hz (0x6.0000)
Feedback Format = 16.16
Interface 1
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 96000, 192000, 88200, 176400
Data packet interval: 125 us

1 Like

Hy everyone,

I found the solution to my problem :
I added an Usb Hub with powered with an extarnal power supply and now everything works fine.
It looks like the power delivered by vero to its Usb ports is not enough for my Dac.
I tried with a Raspberry Pi 2 (both with osmc and volumio) and same problem with same solution.

Thanks again for your time!

1 Like

Glad you fixed it. FWIW my CMedia-based USB DAC often trips out when connected to the front USB2 ports on my desktop PC so these things can be power-hungry.

I have found out why USB DACs often report only 48ks/s samplerate. It’s because the default device is a dmix which forces a 48ks/s rate. I’m working out the best way to fix that so that these DACs are switched to the source samplerate. I assume that’s what everyone would want. dmix has limited application in a mediacenter like OSMC. Multi-channel is unaffected. It’s only stereo that’s forced to 48k.

I think that’s the first thing audiophiles are looking for in the endless “bit perfect” quest.
So yes, i guess that would be a big step up for them!