Skip to content

Missunderstanding or a BUG in reported frequencies for audio cards present in system. #432

@CapSel

Description

@CapSel

I use ArchLinux with kernel 6.12.7 with "Zen" patches. HW is ASUS Vivobook 14X pro.

So the problem I'm having is that I can't set pipewire to 96000 sampling rate. I tried all options in pipewire. Nothing helped. But a long time ago it worked fine - I can't remember when (at most week after Baldur's Gate 3 release ;).

What I see in system:
when I do cat /proc/asound/card0/pcm3p/info (no other pcm* files) I can see name: HDMI 0 - it's important.
with cat /proc/asound/card0/codec#0 on top there is:

Codec: ATI R6xx HDMI
Address: 0
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x1002aa01
Subsystem Id: 0x00aa0100
Revision Id: 0x100700
No Modem Function Group found
Default PCM:
    rates [0x70]: 32000 44100 48000
    bits [0x2]: 16
    formats [0x1]: PCM

for the other (default) audio card:
cat /proc/asound/card1/pcm0p/info (there is pcm0c file too but I did not check it) gives: name: ALC294 Analog
cat /proc/asound/card1/codec#0 on top:

Codec: Realtek ALC294
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec0294
Subsystem Id: 0x10431ab2
Revision Id: 0x100004
No Modem Function Group found
Default PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM

so as you can see:

  • hdmi supports up to 48000
  • analog supports up to 192000

I first noticed there is something wrong with alsacap program that reports:

*** Scanning for playback devices ***
Card 0, ID `Generic', name `HD-Audio Generic'
  Device 3, ID `HDMI 0', name `HDMI 0', 1 subdevices (1 available)
    2..8 channels, sampling rate 32000..192000 Hz
    Sample formats: S16_LE, S32_LE
      Subdevice 0, name `subdevice #0'
Card 1, ID `Generic_1', name `HD-Audio Generic'
  Device 0, ID `ALC294 Analog', name `ALC294 Analog', 1 subdevices (1 available)
    2 channels, sampling rate 44100..48000 Hz
    Sample formats: S16_LE, S32_LE
      Subdevice 0, name `subdevice #0'

As you can see:

  • hdmi supports up to 192000
  • analog supports up to 48000

so it's... flipped?

here is a output from cat /proc/asound/pcm:

00-03: HDMI 0 : HDMI 0 : playback 1
01-00: ALC294 Analog : ALC294 Analog : playback 1 : capture 1

To confirm this I downloaded flac file with 96000 sample rate and tried to play it with ffmpeg after pipewire,pipewire-pulse,wireplumber services are stopped. I confirmed that these programs are disabled by checking if ps ax | grep wire before and after, also I monitored logs from these services. It reported error for device "hw:1,0" because it could not set sampling rate to 96000. It did not fail on "hw:0,3" but of course I did not hear anything since external monitor is disconnected.

Replay command: ffmpeg -i yuri_korzunov-through-moon_ring-96kHz-24bit.flac -f alsa hw:1,0
the file is some random file found in internet that tested with ffprobe shows that it has sample rate of 96000.
I don't want to attach it since I forgot where I found it ;)

I don't have asound.conf files in /etc/ or ~/.config.

After connecting external monitor alsacap reports max 48000 for both cards. FFmpeg reports sampling rate problem with both audio cards:

[alsa @ 0x586316542b00] sample rate 96000 not available, nearest is 48000

I had this monitor connected before and alsacap reported "flipped" results - not like now that both cards are limited to 48000.

What else can I do to discover the problem?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions