Multichannel USB DAC on Linux endpoint - "Transport: failed to initialize the audio device" error

I’m not able to have my multichannel DIYINHK USB DAC working on any Linux Roon endpoint I have tested. Stereo playback works but sending any multichannel signal (3 to 8 channels) leads to an error “Transport: Failed to initialize the audio device”

I get this on any Linux machine I’ve plugged the DAC into:

  • Raspberry Pi under DietPI/RoonBridge, Volumio/Roonbridge
  • Allo Sparky under Dietpi/RoonBridge
  • even my Roon Server, Intel NUC running Roon OS/Roon Server

My test files are 6 channel or 8 channel .WAV files. The same test files play perfectly using my MacBook Air as a Roon endpoint (DAC is UAC2 compliant and therefore driverless on Mac OS and Linux).
I am also able to play the multichannel test files in Linux directly which makes me think the issue might be with Roon Bridge on Linux wrongly handling multichannel over USB:

root@DietPi_Pi:/usr/share/alsa# aplay -Dsurround71:D20 /6c16.wav
Playing WAVE ‘/6c16.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Channels 6
… all 6 channels playing well!

NB in case it’s relevant: the DAC only accepts 16bit or 32bit format, no 24bit

Below are some configuration information, outcome of aplay -L as well as device configuration in Roon.

Thanks @support for your help, I really need to have multichannel RAAT streaming working on the Pi or Sparky to finish my DIY WIFI 8channel streamer and DAC.

> root@DietPi_Pi:/usr/share/alsa# aplay -L
> null
>     Discard all samples (playback) or generate zero samples (capture)
> sysdefault:CARD=ALSA
>     bcm2835 ALSA, bcm2835 ALSA
>     Default Audio Device
> dmix:CARD=ALSA,DEV=0
>     bcm2835 ALSA, bcm2835 ALSA
>     Direct sample mixing device
> dmix:CARD=ALSA,DEV=1
>     bcm2835 ALSA, bcm2835 IEC958/HDMI
>     Direct sample mixing device
> dsnoop:CARD=ALSA,DEV=0
>     bcm2835 ALSA, bcm2835 ALSA
>     Direct sample snooping device
> dsnoop:CARD=ALSA,DEV=1
>     bcm2835 ALSA, bcm2835 IEC958/HDMI
>     Direct sample snooping device
> hw:CARD=ALSA,DEV=0
>     bcm2835 ALSA, bcm2835 ALSA
>     Direct hardware device without any conversions
> hw:CARD=ALSA,DEV=1
>     bcm2835 ALSA, bcm2835 IEC958/HDMI
>     Direct hardware device without any conversions
> plughw:CARD=ALSA,DEV=0
>     bcm2835 ALSA, bcm2835 ALSA
>     Hardware device with all software conversions
> plughw:CARD=ALSA,DEV=1
>     bcm2835 ALSA, bcm2835 IEC958/HDMI
>     Hardware device with all software conversions
> sysdefault:CARD=D20
>     DIYINHK USB Audio 2.0, USB Audio
>     Default Audio Device
> front:CARD=D20,DEV=0
>     DIYINHK USB Audio 2.0, USB Audio
>     Front speakers
> surround21:CARD=D20,DEV=0
>     DIYINHK USB Audio 2.0, USB Audio
>     2.1 Surround output to Front and Subwoofer speakers
> surround40:CARD=D20,DEV=0
>     DIYINHK USB Audio 2.0, USB Audio
>     4.0 Surround output to Front and Rear speakers
> surround41:CARD=D20,DEV=0
>     DIYINHK USB Audio 2.0, USB Audio
>     4.1 Surround output to Front, Rear and Subwoofer speakers
> surround50:CARD=D20,DEV=0
>     DIYINHK USB Audio 2.0, USB Audio
>     5.0 Surround output to Front, Center and Rear speakers
> surround51:CARD=D20,DEV=0
>     DIYINHK USB Audio 2.0, USB Audio
>     5.1 Surround output to Front, Center, Rear and Subwoofer speakers
> surround71:CARD=D20,DEV=0
>     DIYINHK USB Audio 2.0, USB Audio
>     7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
> iec958:CARD=D20,DEV=0
>     DIYINHK USB Audio 2.0, USB Audio
>     IEC958 (S/PDIF) Digital Audio Output
> dmix:CARD=D20,DEV=0
>     DIYINHK USB Audio 2.0, USB Audio
>     Direct sample mixing device
> dsnoop:CARD=D20,DEV=0
>     DIYINHK USB Audio 2.0, USB Audio
>     Direct sample snooping device
> hw:CARD=D20,DEV=0
>     DIYINHK USB Audio 2.0, USB Audio
>     Direct hardware device without any conversions
> plughw:CARD=D20,DEV=0
>     DIYINHK USB Audio 2.0, USB Audio
>     Hardware device with all software conversions


Signal Path for the successful play using MacBook as endpoint:

Its the Linux kernel. It doesn’t support multichannel audio. Been through this with the creator of DietPi, trying to get RPi3 devices to do multichannel.

Only PC or Mac is going to get you multichannel, to my knowledge. JCR

Thanks for your answer. Still I am able to play multichannel files over USB directly from the command line, on DIetPi, on both PI3B and Sparky. I have read that there were issues for multichannel streaming over HDMI.
So my guess at the moment on my USB multichannel streaming problem under Linux, is that Roon Bridge and ALSA do not work well together.
Anymore hints?

Hello @alec_eiffel,

We are currently investigating a few reports of multi-channel USB DACs not working correctly when connected to computers running Linux. While I don’t have a timeline for when to expect a fix, this is on our radar and we hope to have some more news to share in the near future.

Regarding HDMI, as far as I’m aware HDMI multichannel support should be working correctly on Linux. Have you run into issues when using HDMI on Linux previously?

-John

1 Like

Thank you @john for working on and hopefully solving the issue. I have no way to test HDMI as my DAC is USB only.

This thread has a good discussion on HDMI multichannel. JCR

1 Like

HI @john, any progress on the matter? Very frustrating to be stuck on my 2x4 channel active speaker project…

@john, I tried to use my iOS device (iPad pro) as a Roon endpoint on my multichannel DAC. It didn’t work, is there a reason for that ? I can only get stereo, whereas on my MacBook Air I get all 8 channels. Is there a limitation in iOS that precents multichannel DACs to be used ?Thx

I could be wrong but, I thought that Apple only supported Dolby Digital (AC-3) and Dolby Digital Plus (E-AC-3) on iOS.

1 Like

I would like to add some scenario to see if it can help to sort things out a little bit more.

I have multichannel music files, ripped from DVD-Audio, and store in a QNAP NAS. I can play the multichannel music in QNAP’s own media player via a USB out to vintage Pioneer AX10ai AV-receiver. In Roon setting menu, AX10ai is detected and configured. Stereo can play to AX10ai in roon, but while mutlichannel music is played in roon, the error information, “Transport: failed to initialize the audio device”, shows.

However, if I use Windows or Mac os, Roon can play multichannel music to AX10ai via USB. So I think there might be some differences about how Roon play multichannel music among the three different versions.

1 Like

Yep, QNAP NAS is Linux based and should play multichannel files to an UAC2 compliant USB device, such as your Pioneer amp.
As stated before, it seems that the issue is with the Roon Bridge implementation on Linux. I can play multichannel files very well with the linux command “aplay” on my All USBRIdge (DietPI). With RoonBridge it doesn’t work at all “Transport: failed to initialize…”.

On Roon Bridge/Mac OS USB multichannel plays OK (had a couple of glitches when changing sample rates, but unsure that it comes from Roon).
Roon Bridge/WIndows is rock solid, all on the same DIYInHK multichannel DAC.

If adding a HDMI to Optical converter, would it be a good choice to play multichannel music to AV-Receiver which has no hdmi input?