pulseaudio doesn't enforce sample rate set in daemon.conf

Bug #1880410 reported by Peter Fiser
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
PulseAudio
Fix Released
Unknown
pulseaudio (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

Before submitting this bugreport I've went through the daemon.conf man page and the pulseaudio documentation, but have not found a solution to my problem.
I've moved from Debian stable with
pulseaudio version 12.2-4+deb10u1 to Kubuntu 20.04 with
pulseaudio version 13.99.1-1ubuntu3.2.
I'm experiencing cracking issues on external USB audio device Xonar U3 while listening to certain audio sources (system sounds included). This issue doesn't happen when using my laptop's internal audio device.
Output of 'cat /proc/asound/card2/stream0' without audio stream running:
C-Media Electronics Inc. USB Advanced Audio Device at usb-0000:00:14.0-2, full : USB Audio

Playback:
  Status: Running
 Interface = 1
 Altset = 1
 Packet Size = 200
 Momentary freq = 44100 Hz (0x2c.199a)
  Interface 1
 Altset 1
 Format: S16_LE
 Channels: 2
 Endpoint: 1 OUT (ADAPTIVE)
 Rates: 8000, 16000, 44100, 48000
 Bits: 16

Capture:
  Status: Stop
  Interface 2
 Altset 1
 Format: S16_LE
 Channels: 2
 Endpoint: 2 IN (ASYNC)
 Rates: 8000, 16000, 44100, 48000
 Bits: 16
The following behaviour happens with default settings in /etc/pulse/daemon.conf:
Xonar U3 plugged in, firefox running:
 Momentary freq = 48000 Hz (0x30.0000)

Xonar U3 plugged in, Clementine/Strawberry audio player running:
 Momentary freq = 44100 Hz (0x2c.199a)

Xonar U3 plugged in with Deadbeef set to override sample rate to 48kHz:
 Momentary freq = 48000 Hz (0x30.0000)
I've modified the daemon.conf as follows:
; default-sample-format = s16le #no change on this line, this is corresponding with the format the usb audio device suggests to be using
; default-sample-rate = 48000
; alternate-sample-rate = 48000
However, when running video or audio sources with 44100Hz audio, applications do not respect the default-sample-rate and Momentary freq reports 44100Hz, while other sources either send 48kHz by default or have no problem respecting the setting (I've tried the game Into the Breach, VLC running 48kHz video and audio files).
Complete /etc/pulse/daemon.conf contents:
https://gist.github.com/zelmor/f224e6e4d300241e8431d3258e777e73
Checking syslog doesn't indicate any errors either, gist:
https://gist.github.com/zelmor/5e59094be4d90ffa9e0ff6275594e370
==Workarounds attempted==

Modifying /etc/pulse/default.pa to include:

load-module module-udev-detect tsched=0
Even after killing&restarting pulseaudio, this did not resolve anything. It also doesn't look like a good overall solution to the problem.

Modifying daemon.conf to:

; resample-method = src-sinc-best-quality
; avoid-resampling = true
Did not fix the issue.
It is not possible to roll back PA to a previous version in Kubuntu 20.04 without breaking dependencies of the Plasma desktop, so this was not attempted.

ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: pulseaudio 1:13.99.1-1ubuntu3.2
ProcVersionSignature: Ubuntu 5.4.0-31.35-generic 5.4.34
Uname: Linux 5.4.0-31-generic x86_64
ApportVersion: 2.20.11-0ubuntu27
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC3: zelmor 1994 F.... pulseaudio
 /dev/snd/controlC1: zelmor 1994 F.... pulseaudio
 /dev/snd/controlC0: zelmor 1994 F.... pulseaudio
CasperMD5CheckResult: skip
CurrentDesktop: KDE
Date: Sun May 24 16:30:11 2020
InstallationDate: Installed on 2020-04-28 (25 days ago)
InstallationMedia: Kubuntu 20.04 LTS "Focal Fossa" - Release amd64 (20200423)
SourcePackage: pulseaudio
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 03/02/2015
dmi.bios.vendor: LENOVO
dmi.bios.version: JBET46WW (1.11 )
dmi.board.asset.tag: Not Available
dmi.board.name: 20B7S11H00
dmi.board.vendor: LENOVO
dmi.board.version: SDK0E50510 WIN
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: None
dmi.modalias: dmi:bvnLENOVO:bvrJBET46WW(1.11):bd03/02/2015:svnLENOVO:pn20B7S11H00:pvrThinkPadT450:rvnLENOVO:rn20B7S11H00:rvrSDK0E50510WIN:cvnLENOVO:ct10:cvrNone:
dmi.product.family: ThinkPad T450
dmi.product.name: 20B7S11H00
dmi.product.sku: LENOVO_MT_20B7_BU_Think_FM_ThinkPad T450
dmi.product.version: ThinkPad T450
dmi.sys.vendor: LENOVO
modified.conffile..etc.pulse.daemon.conf: [modified]
mtime.conffile..etc.pulse.daemon.conf: 2020-05-22T14:02:09.141811

Revision history for this message
Peter Fiser (pfiser) wrote :
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Please report the bug upstream at:

  https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues

and then tell us the new bug ID.

Revision history for this message
Peter Fiser (pfiser) wrote :

Hi Daniel, I've already done this and forgot to link to it. Here you go:
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/897

Revision history for this message
Peter Fiser (pfiser) wrote :

I've missed a crucial point on the top of the daemon.conf file:

The configuration file is a simple collection of variable declarations. If the configuration
file parser encounters either ; or # it ignores the rest of the line until its end.

Please close this issue.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Oh yes. I thought you mentioned the semicolons as only artistic formatting.

Changed in pulseaudio (Ubuntu):
status: New → Invalid
Changed in pulseaudio:
status: Unknown → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.