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 Wed, 19 Jul 2023 14:27:21 +0200,
Ico Bukvic wrote:
> 
> 
> Thank you, Takashi.
> 
> On Raspberry Pi 400 (one with built-in keyboard, although any RPi or Linux
> computer with HDMI monitor with loudspeakers will do), open pd-l2ork (a
> variant of pure-data available at http://bit.ly/pd-l2ork; pure-data also has
> this same problem) and enable DSP. Do the same after changing audio settings
> via the Preferences window (Edit->Preferences), where you can switch among
> backends (ALSA vs Portaudio, vs JACK; JACK does not work with any setting). If
> you have proper audio settings (0 in, 2 out, and a supported SR, r.g.
> 44,1kHz), you will hear the buzz, and will also hear the desired audio
> produced (e.g. by running Media->Audio Tester) faintly, with buzz bring at the
> forefront. Or, you will hear everything OK (default Pulse settings), or
> nothing. ALSA and PortAudio settings are default Raspbian(RPi)/Ubuntu
> (desktop). Thank you.

Well, the question is how the ALSA PCM device is opened, how
configured and how played.  As Geraldo already suggested, VC4 HDMI on
RPi has a special format with IEC958 encoding.  Also it has IEC958
status bit setups.  So, for example, if you'd need to play a normal
PCM stream with aplay, you'd need to open the device with "hdmi:$CARD"
device -- then the rest is done in alsa-lib's plugin, and that's
almost equivalent with what PA does.


Takashi

> 
> Best,
> 
> Ico
> 
> -- 
> Ivica Ico Bukvic, D.M.A.
> Director, Creativity + Innovation
> 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
> 
> On Wed, Jul 19, 2023, 04:08 Takashi Iwai <tiwai@xxxxxxx> wrote:
> 
>     On Wed, 19 Jul 2023 07:58:17 +0200,
>     Ico Bukvic wrote:
>     >
>     > Thank you for a follow-up. How would one set such a flag in alsa? Using
>     > alsactl or by editing a config file? The app in question seeks to open
>     the
>     > audio hardware directly to minimize latency. Any examples are
>     appreciated.
>    
>     Could you show how exactly you did test?
>    
>     The fact that PA works implies that the device is basically working
>     when running with a proper setup (e.g. with hdmi:* PCM, etc.)
> 
>     Takashi
>    
>     >
>     > 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
>     >
>     >
>     >
>     > On Tue, Jul 18, 2023 at 11:51 PM Geraldo Nascimento <
>     > geraldogabriel@xxxxxxxxx> wrote:
>     >
>     > > 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