Jump to content

Multichannel 24-bit LPCM audio over HDMI


Recommended Posts

Hi guys!
I understood yesterday that the Raspberry Pi 3 is limited to only 2-channel 16-bit PCM audio over HDMI by its ALSA driver.
Therefore I'm now looking for another board capable of at least outputting 6x 24-bit LPCM 48 kHz channels.



My goal is to build a software DSP, processing multi-channel audio recorded from an USB audio interface.

The idea is to capture a home-cinema receiver pre-outs, mix and apply biquads for crossover with the sub and speaker tuning, then handle the clock difference between input and output.



A couple threads mention difficulties with 24-bit audio, on legacy kernel and over I2S, where the user Christos observed issues.


Do you know if multichannel 24-bit audio over HDMI now works with Allwinner H3 boards? If so which one would you recommend to make this software DSP?

Or maybe another board supported by armbian has a working ALSA driver for multi-channel 24-bit audio over HDMI?

Thanks :) 

Link to comment
Share on other sites

Armbian Linux community supported weekly builds download

There is no Multichannel Output on H3 Boards via HDMI, i have checked this months ago. All Channels are downmixed to 2 Channels playback. 

I am using a Raspberry Pi 1 (singlecore) for the Thing you want to do. But even with a "tweaked Kernel" the Raspberry can only do 16 bit Output. I am using Brutefir for Crossover and Roomcorrection and build the Filters with rePhase. The Raspberry Pi (1) can do 2 Channels digital Input ( via Wolfson Audio Card) and 4 Channesl Output via HDMI...USB is not recommended cause USB and Network are using the same Chip.



Link to comment
Share on other sites

Thanks guys for your answers :)
Da Alchemist:

Okay too bad for the H3.
Do you think the downmixing to 2 channels is still happening with the current kernel and drivers today?
Yes I want to take a similar approach although for multi-channel. Yours sounds pretty cool!
On the Pi 3, 8 channels of full-duplex 96 kHz 24-bit PCM over USB2 is fine, but I target HDMI to improve SNR and distortion.
May I ask how you solved xruns due to lack of synchronization between the SPDIF in and HDMI out clocks BTW?

On the Pi 3 I tested OpenMAX output with the hello_audio example, which bypasses ALSA limitations.
OpenMax allows

  • 2-4 channels at 192 kHz 32-bit
  • 2-7 channels at 96 kHz 32-bit
  • 8 channels was not working at any sample rate. I didn't try 16-bit tho.

I'll verify soon if OpemMax provides 24-bit precision over HDMI as expected or gets truncated to 16.

Good to know about the A20. Is there a board you'd recommend for the use case described? If nobody tried I could do that myself then report.



Otherwise, do you know guys about the Amlogic S905 HDMI audio capabilities?

Link to comment
Share on other sites

Channel downmixing is still happening on current Kernel Versions on the H3.


On the RPi i use this Card, it is connected via I2S so there aren´t any timing Problems and xruns. I was surprised by myself when i first saw  this (btw when i bought this card about two years ago, this card was a mess and support on the R Pi community is it still..)


I have got an Odroid C2. On Armbian there is no 8 Channel support (compiled yesterday in the morning), speaker-test gives only distorted noise, in case you choose more than 2 channnels.

In the LibreElec Project on the Hardkernel Forum, they thought they had solved this Problems but they didn´t as you can see from my post.


I have got a Hummingboard, that has 8 Channel Out via HDMI.



Link to comment
Share on other sites

Yes the Wolfson Pi Audio Card on a Pi first gen, I used the same as pulseaudio headphone amp for a few years :)

Very low latency also compared to any USB solution.


Really cool discovery you made with the lack of xrun, since the input clock should be the external one from your SPDIF, in I really don't get it but.. awesome either way  :D 
Maybe the input is re-clocked according to the master clock which is the same as the used by the HDMI output and voila?


Thanks for sharing your recent test result with the ODROID C-2: AVR indicating the right channel count is not enough.
I was reading http://forum.kodi.tv/showthread.php?tid=258707 at the same time, but it's very long to get to the point.


Hummingboard: taking note. 24-bit works too?

Link to comment
Share on other sites

And I just tested the Pi 3 audio output, in 2 channels 48 kHz 24-bit with omxplayer. It indeed passes higher than 16-bit resolution audio.

However I didn't get measurement results as good as expected (more jitter, more THD, lower SNR) so I'll try again later.

Link to comment
Share on other sites

This topic is now closed to further replies.

  • Create New...