Do soundcards in laptops/AIO PCs lie about supporting rates higher than 48KHz?
by slackmensch from LinuxQuestions.org on (#6JVCR)
I have Manjaro Linux installed on a 27" iMac and pipewire came preinstalled. In /proc/asound/card0/codec#0 it says pretty much all commonly used sampling rates and depths are supported:
Code:codec: Cirrus Logic CS4206
Address: 0
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x10134206
Subsystem Id: 0x106b2000
Revision Id: 0x100302
No Modem Function Group found
Default PCM:
rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
bits [0x1e]: 16 20 24 32
formats [0x3]: PCM FLOAT
.
.
.
However, when I play any "HD" audio files obtained from eclassical.com and nativedsd.com (96KHz/24bit, 192KHz/24bit) they're resampled to 48KHz. This is with nothing in ~/.config/pipewire/pipewire.conf.d and I checked that there was nothing in /etc/pipwire/pipewire.conf.d either.
I am determining the sampling rate during playback from looking at /proc/asound/card0/pcmp0/sub0/hw_params while sound is playing: it always says 48KHz.
If I make a file ~/.config/pipewire/pipewire.conf.d/10-rates.conf per the pipewire documentation:
Code:# Adds more common rates
context.properties = {
default.clock.allowed-rates = [ 44100 48000 88200 96000 192000 ]
}and restart the pipewire service, sound players seem to work without error but there is no sound at all for files 48KHz and above. CD rips (44100/16bit) play fine and are not resampled to 48KHz. /proc/asound/card0/pcmp0/sub0/hw_params says the correct rate for 96 and 192kHz files but there is no sound while the player thinks its playing. I tried VLC, mpv, and pw-play players and all behave the same way.
I have also examined the FLAC files using spek (it's in AUR, but really ought to be included in the distro) to make sure they are really 96KHz/24bit and 192KHz/24bit.
I'm beginning to suspect CS4206 does not really support rates higher than 48KHz, pipewire has a bug, or there is a problem with the kernel sound drivers. I mean, almost no one likes classical music or jazz--what is typically recorded at these higher rates--so maybe no one bothered to check whether these rates actually work?
Code:codec: Cirrus Logic CS4206
Address: 0
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x10134206
Subsystem Id: 0x106b2000
Revision Id: 0x100302
No Modem Function Group found
Default PCM:
rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
bits [0x1e]: 16 20 24 32
formats [0x3]: PCM FLOAT
.
.
.
However, when I play any "HD" audio files obtained from eclassical.com and nativedsd.com (96KHz/24bit, 192KHz/24bit) they're resampled to 48KHz. This is with nothing in ~/.config/pipewire/pipewire.conf.d and I checked that there was nothing in /etc/pipwire/pipewire.conf.d either.
I am determining the sampling rate during playback from looking at /proc/asound/card0/pcmp0/sub0/hw_params while sound is playing: it always says 48KHz.
If I make a file ~/.config/pipewire/pipewire.conf.d/10-rates.conf per the pipewire documentation:
Code:# Adds more common rates
context.properties = {
default.clock.allowed-rates = [ 44100 48000 88200 96000 192000 ]
}and restart the pipewire service, sound players seem to work without error but there is no sound at all for files 48KHz and above. CD rips (44100/16bit) play fine and are not resampled to 48KHz. /proc/asound/card0/pcmp0/sub0/hw_params says the correct rate for 96 and 192kHz files but there is no sound while the player thinks its playing. I tried VLC, mpv, and pw-play players and all behave the same way.
I have also examined the FLAC files using spek (it's in AUR, but really ought to be included in the distro) to make sure they are really 96KHz/24bit and 192KHz/24bit.
I'm beginning to suspect CS4206 does not really support rates higher than 48KHz, pipewire has a bug, or there is a problem with the kernel sound drivers. I mean, almost no one likes classical music or jazz--what is typically recorded at these higher rates--so maybe no one bothered to check whether these rates actually work?