Re: Fwd: Odd issue with ALSA connecting directly to HDMI audio output

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jul 18, 2023 at 02:12:31PM -0300, Geraldo Nascimento wrote:
> On Tue, Jul 18, 2023 at 12:22:35PM -0400, Ico Bukvic wrote:
> > Hi all,
> 
> Hi Ico and friends,
> 
> > 
> > I have a consumer-level setup audio question. My research project uses a
> > Raspberry Pi in conjunction with a small portable monitor that has built-in
> > loudspeakers that are to be used via HDMI connection. The goal here is
> > portability and minimal cost.
> > 
> > Curiously, when trying to connect to monitor's loudspeakers (via HDMI)
> > using ALSA, no matter what settings I pick, at worst I cannot get
> > audio out, and at best, get a buzzy sound whose waveform is in the attached
> > image. The sound is clearly periodic and impulse-like. It happens every 59
> > samples. Changing sample rate increases pitch, suggesting 59 samples remain
> > constant regardless of the sampling rate. When playing the actual audio,
> > you can hear it in the background, but this buzz is easily overpowering it.
> > 
> 
> Ico, just a wild guess but are you sure you are not capturing the raw SPDIF
> signal going through HDMI instead of Linear PCM audio signal?

Here's a comment from the VC4 HDMI driver:

 * HDMI audio is implemented entirely within the HDMI IP block.  A
 * register in the HDMI encoder takes SPDIF frames from the DMA engine
 * and transfers them over an internal MAI (multi-channel audio
 * interconnect) bus to the encoder side for insertion into the video
 * blank regions.

And there's this perhaps closely related old issue with the vendor
kernel and Android:
https://github.com/raspberrypi/linux/issues/4654

> 
> > Changing sample rate or bit depth, or buffering, makes no difference.
> > Selecting 8 channels for output (one of HDMI's standards, as far as I can
> > tell), sometimes manages to output a tiny chunk of a good audio sample, and
> > then goes silent.
> > 
> > Now, even more curiously, when using the portaudio backend and connecting
> > to the default pulseaudio sink, works just fine. What could be causing this
> > discrepancy?
> 
> Perhaps PortAudio is forcing the Linear PCM bits on the underlying ALSA
> backend somehow, see for example:
> https://fossies.org/linux/alsa-lib/src/conf/pcm/iec958.conf
> But this is just wild speculation, it may or may not be the case with
> your report. It's best if you ask Takashi Iwai and Jaroslav Kysela
> directly through the list with Cc: in case nobody else has any more
> ideas of what could be the root cause of your report.

You're probably sending PCM data to HDMI, which expects SPDIF frames
instead, and PortAudio + PulseAudio seems to be aware of this. That's my
theory at least. Setting the necessary bits and necessary IEC958 format
on your ALSA playback may resolve your issue.

> 
> Good luck,
> Geraldo Nascimento
> 
> > 
> > Best,
> > 
> > Ico
> > 
> > -- 
> > Ivica Ico Bukvic, D.M.A.
> > Director, Creativity + Innovation
> > Director, Human-Centered Design iPhD
> > Institute for Creativity, Arts, and Technology
> > 
> > Virginia Tech
> > Creative Technologies in Music
> > School of Performing Arts – 0141
> > Blacksburg, VA 24061
> > (540) 231-6139
> > ico@xxxxxx
> > 
> > ci.icat.vt.edu
> > l2ork.icat.vt.edu
> > ico.bukvic.net
> 
> 



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux