Using HDMI output of a Raspberry Pi (5) connected to non Roon Ready AVR for Multichannel audio

Hi there,
I have spent quite a bit of time trying to figure out how to get Multichannel audio (not talking about movies with Dolby Atmos etc) via the following setup:

ROCK based Roon server
Raspberry Pi 5 (Rasbian OS + Roonbridge) with HDMI output => Anthem AVR (not yet Roon Ready) via HDMI input

I’m not a Linux expert but everything seems to be setup correctly - no error or warnings during install
But I get no sound + errror in the IOS Roon App when trying to play any music “Too many failure. Stopping playback”

  • In my IOS App under settings=>Audio=>RaspberryPi I can see it’s using ALSA as transport. If I push “settings=>device setup” I get “Unidentified device”. And it does not help pushing “identify device” as my AVR is not Roon Ready / can’t be selected from the list.
    My “device” is listed as “vc4-hdmi-0” which is the HDMI 0 on the Pi5 (it has 2 HDMI outputs)

I thought it would be possible to pass on 8 x PCM streams via HDMI from Pi 5 to any AVR. Or I must be doing something wrong

Just for the record: It’s a AVM70-8k configured for full 11.1 channels setup for homecinema (working great) - but unfortunately Anthem hos promised “Roon ready” for almost 2 years now with zero outcome… And I use this setup for high end audio as well and would just love to also have high end multichannel audio-only setup as well

Any help would be truly appreciated.
Jesper

PS: I just saw that Roon suggest Ubuntu for best RoonBridge performance. If you think that that’s the issue I will certainly try to start all over.


What is the benefit of the PI in the chain between NUC and AVR? I run hdmi from NUC to Denon AVR and it plays MC PCM.

I’m doing something similar but with Ubuntu server on a MeLE mini PC connected via HDMI to my Marantz AVR for MCH and don’t have any issues. My guess is your issue is the RPi or its stock OS.

Fan noise for one (not everyone wants to migrate their NUC to a fanless case).

I believe the HDMI ports on a Raspberry Pi only supports 2 channels of audio (depending on the Raspberry Pi version). I assume the Raspberry Pi needs lot’s of tinkering if you want it to output 6 channels (5.1), if it’s doable at all.
That’s the reason I opted for a mini-pc with ubuntu + Roon bridge.

No, it’s possible to use eight channels until 24/192 with a RPi.
Done it with an older version of PicorePlayer on which I’ve installed a forked the Roon bridge.

But: This is not a solution for newbies!

Also due to the following bummer: I did my NUC based on the latest i7 version and due to changes to how HDMI is handled by this version Roon does not (yet) support HDMI… Since my NUC is in a small serverroom 3 meters from my HiFi rack I could easily have connected AVC with NUC via HDMI…

So:
NUC is not an option (no timeline from Roon)
RP5 seems also “almost impossible”
Roon Ready for Anthem AVM has been “in the backlog” for 2+ years. Likely not going to happen…

So I guess it’s not going to be easy for me to add HiFi multichannel to my setup. Sigh…

Thanks Burkhardt.
I have done quite a bit of Rasbian/Debian/DietPi installation including compilations and a few config file editing, but it sounds like it will be quite a more difficult project to get this going. Do you know if it’s much simpler on a x86 (NUC)? If so is Ubuntu the OS to use or (I hate giving up :slight_smile: )
Appreciate you honest feedback on “Newbee” (honestly)

No guarantee it would be multichannel either if y ever gets certified , no other AVRs seem to be. Many streaming boards on AVRs are limited to 2 channel.

Multi-channel was a must have for me and it worked with HDMI from NUC to Denon AVR. I do recall some posts on issues with HDMI on the newer NUC models. Sorry to hear if you’re caught up in that.

My only frustration with the working setup was that DSD didn’t play over HDMI. FYI if your into that. Roon converts the MC DSD files to PCM for HDMI and that drags the i7 processor down and skipping occurs.

Ended up getting a Roon Ready 8 channel DAC that works nicely with Multi-Channel DSD/PCM vie Ethernet. Fairly expensive but satisfying. I use both HDMI (MC PCM) and Ethernet (MC DSD) connections for playback regularly.

Hoping you get yours working to your satisfaction.

Wow - you may have a point. I’m getting depressed… (yet I will try today to do an install with DietPi as well as a latest and greatest Ubuntu. “You gotta keep trying” :slight_smile: )

So I guess HDMI IS likely my only solution. As my AVR does support HDMI 2.1 supporting 48gbit/s and 8k @ 60Hz / 4k @ 120Hz it should be capable of this via HDMI but this does not 100% guarantee that Anthem support 8 x 24bit/192KHz although they should as a highend AVR (paid almost 6000$ for this piece of …)
Fingers crossed. If I ever find a reasonable easy solution I’ll let the forum know

The easiest solution is to use a mini pc with Rock and HDMI on it and use them only as Roon endpoint.
This works out of the box and is really stable.

On Picoreplayer you’ve to do a bit more than changing the config, but fix the kernel settings and get the Roon bridge installed (for some older versions there was a repository, but this is now obsolete)

Another option is to buy the eversolo DMP-A6, which is the only Roon endpoint, which supports through HDMI PCM and DSD until 5.1

1 Like

Will a Raspberry Pi 4 function as a multichannel endpoint via HDMI to an AVR?
Yes, absolutely it will.

Raspberry Pi running almost any Linux based OS will use ALSA and ALSA supports multichannel via HDMI. Roon will see this and register the correct number of channels. The chain, very simply, is plug HDMI into AVR, ALSA will see this has a hardware device, negotiation of number of channels and capabilities will exchange, and you can see those channels using the standard ALSA CLI commands. As long as ALSA sees the correct channel count so will Roon Bridge and therefore Roon.

HDMI will also negotiate additional audio paths and these will all show-up as additional ALSA endpoints on the Pi. There may be some trial / error to match what is in Roon and which device you need to enable. Just enable 1 at a time, play something, identify if you hear anything.

Now, you might need to do some channel mapping as well. ALSA will just see multiple channels. Roon will send audio to these channels. What Roon thinks is left front, for example, may not be left front across the HDMI. This can be down in Roon with Muse / DSP.

But, don’t waste your time. Unless something has changed in the last 6 months the ALSA audio stack on a Pi only supports 16 bit depth (last time I looked into this). So, everything is converted to 16-bits. Play a 24/192 track and it gets to the Pi as 16/192. This is a Pi limitation something about an inability to keep some clock stable for higher bit-depths. Apparently Plex figured it out but that change to their audio stack can’t be mapped directly into the ALSA stack. In the end, I used a mini PC, as others stated, running Linux with a RT kernel and all is well (well, mostly, the thing died recently).

So, will it work? Yes, absolutely but you’ll want to learn how to troubleshoot ALSA and make sure you can see the audio devices. Here’s an example of a 2 channel device… I’d show you my multichannel but as stated earlier it gone and died on me…

$ sudo aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_dacplus], device 0: HiFiBerry DAC+ Pro HiFi pcm512x-hifi-0 [HiFiBerry DAC+ Pro HiFi pcm512x-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

$ sudo cat /proc/asound/card0/pcm0p/sub0/hw_params 
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 44100 (352800/8)
period_size: 882
buffer_size: 1764

That number of channels, for a surround setup, should be minimum of 6 but could include every channel you have configured for ATMOS. Within Roon you can map any audio channel to any hardware channel and even combine them (for example if you don’t have a center channel tell Roon to split it in mono to channel 1 and 2 if those are your front left and front right). You’ll want to find a test track that loops through all channels individually to get this right.

EDIT: One other note… The audio clocks in HDMI follow the video clocks. Some AVRs, for this reason, require you have a video output before they will present anything at the source. To make sure this isn’t an issue…

Make sure your TV is on and the Raspberry Pi is outputting a proper video signal on that TV. Once you get things working you can turn off the TV and then hope it keeps working.

1 Like

Thanks everyone. Tried a few more days and got some of the way but it’s just not easy to get going. So will look for another option than RPi :slight_smile: