Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
CapSel opened this issue Jan 1, 2025 · 2 comments

Comments

@CapSel
Copy link

CapSel commented Jan 1, 2025

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?

@perexg
Copy link
Member

perexg commented Jan 3, 2025

The default rates may not be used for `[Audio Output]' codec nodes. You should check codec DAC rates, too. See:

Codec: Realtek ALC287
...
Default PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
...
Node 0x02 [Audio Output] wcaps 0x41d: Stereo Amp-Out
  Control: name="Speaker Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0
  Amp-Out vals:  [0x38 0x38]
  Converter: stream=0, channel=0
  PCM:
    rates [0x40]: 48000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0

@CapSel
Copy link
Author

CapSel commented Jan 5, 2025

All [Audio Output] nodes have only 44100 and 48000 rates. That's disappointing. In turn all [Audio Input] nodes support up to 192000.
So the problem of not supporting 96000 on output is caused by audio card :(
Why would anyone need 192000 on input?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants