19 Jul
2023
19 Jul
'23
7:58 a.m.
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.
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@vt.edu
ci.icat.vt.edu
l2ork.icat.vt.edu
ico.bukvic.net
On Tue, Jul 18, 2023 at 11:51 PM Geraldo Nascimento <
geraldogabriel@gmail.com> 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@vt.edu
> > >
> > > ci.icat.vt.edu
> > > l2ork.icat.vt.edu
> > > ico.bukvic.net
> >
> >
>