You are not logged in.

#1 2021-01-31 11:16:36

biggerfisch
Member
Registered: 2021-01-31
Posts: 4

[SOLVED] Audio crackling from all browsers, for some uses/website only

I am having a strange audio issue - crackling under what seems to be certain codecs and application combos only.

This is on a laptop, a HP zBook 15 G6 with an i7-9580H. Using pulseaudio.

To be specific, I can watch videos with sound on many sites (in any browser, tried FF, chrome, chromium, Qt WebBrowser) with 0 issues. However, some sites create crackle noises nearly constantly in the output - on every browser. Moreover, the same site can trigger it for one use and not another - normal youtube videos sound fine, but live-streaming videos have the issue. Streamable, netflix, all produce the issue constantly in all cases.

I can even reproduce this with an local .mp4 file played in a browser but here's the kicker: playing the same file in VLC does NOT produce this issue.

I have run through every pulse audio troubleshooting note I can find:

- muting any playback devices (clearly not the issue since VLC doesn't reproduce) ((but tried anyways))
- tsched=0 (and back)
- Adjusting fragment sizes
- adding intel_iommu=igfx_off to kernel line
- vid=8086 pid=8ca0 snoop=0 in /etc/modprobe/sound.conf
- Adjusting sample rates

This issue is even independent of audio device as far as I can tell, I have tried
1. My analog output
2. A HDMI audio output
3. A USB audio device
4. A DisplayPort audio output

All 4 reproduce in the exact same way.

I even was able to record the crackling via setting Audacity to record my loopback (see spectrogram image). All of the spikes above ~12khz are excessive noise (including their "shoulder" pieces under 12 KHz, I am REALLY unsure why they have this shape)

This didn't use to happen, but I use these services so rarely on this machine that I'm really not sure what the trigger was. It may have been an update in the past ~5mo, or it could have been another change I made, I cannot tell.


To summarize:
1. Audio crackling in all browsers
2. But only for some sites/videos
3. A local video file shows the issue in browsers, but it plays 100% normal in VLC/Audacity
4. Many audio devices have same issue.
5. Nothing I tried from https://wiki.archlinux.org/index.php/Pu … leshooting worked


Any ideas are appreciated, thank you!

spectrogram: https://i.imgur.com/2ADKTxH.png

Last edited by biggerfisch (2021-02-28 14:51:27)

Offline

#2 2021-01-31 12:15:53

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,428

Re: [SOLVED] Audio crackling from all browsers, for some uses/website only

Output of

pacmd list-sinks
pacmd list-sink-inputs

during this? Browsers often request lower latency target than would be necessary for the media at hand which can lead to these behaviours. Off the top of my head try starting a browser with

PULSE_LATENCY_MSEC=30 $browser

or so.

Offline

#3 2021-01-31 20:21:10

biggerfisch
Member
Registered: 2021-01-31
Posts: 4

Re: [SOLVED] Audio crackling from all browsers, for some uses/website only

pacmd list-sinks

3 sink(s) available.
  * index: 1
	name: <alsa_output.usb-GeneralPlus_USB_Audio_Device-00.analog-stereo>
	driver: <module-alsa-card.c>
	flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
	state: RUNNING
	suspend cause: (none)
	priority: 9049
	volume: front-left: 19419 /  30% / -31.70 dB,   front-right: 19419 /  30% / -31.70 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 6.51 ms
	max request: 1 KiB
	max rewind: 1 KiB
	monitor source: 1
	sample spec: s16le 2ch 48000Hz
	channel map: front-left,front-right
	             Stereo
	used by: 1
	linked by: 1
	fixed latency: 6.00 ms
	card: 1 <alsa_card.usb-GeneralPlus_USB_Audio_Device-00>
	module: 7
	properties:
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "USB Audio"
		alsa.id = "USB Audio"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "0"
		alsa.card = "0"
		alsa.card_name = "USB Audio Device"
		alsa.long_card_name = "GeneralPlus USB Audio Device at usb-0000:00:14.0-1, full speed"
		alsa.driver_name = "snd_usb_audio"
		device.bus_path = "pci-0000:00:14.0-usb-0:1:1.0"
		sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/sound/card0"
		udev.id = "usb-GeneralPlus_USB_Audio_Device-00"
		device.bus = "usb"
		device.vendor.id = "1b3f"
		device.vendor.name = "Generalplus Technology Inc."
		device.product.id = "2008"
		device.product.name = "USB Audio Device"
		device.serial = "GeneralPlus_USB_Audio_Device"
		device.string = "front:0"
		device.buffering.buffer_size = "1152"
		device.buffering.fragment_size = "384"
		device.access_mode = "mmap"
		device.profile.name = "analog-stereo"
		device.profile.description = "Analog Stereo"
		device.description = "USB Audio Device Analog Stereo"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-usb"
	ports:
		analog-output-speaker: Speakers (priority 10000, latency offset 0 usec, available: unknown)
			properties:
				device.icon_name = "audio-speakers"
	active port: <analog-output-speaker>
    index: 2
	name: <alsa_output.pci-0000_00_1f.3.analog-stereo>
	driver: <module-alsa-card.c>
	flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
	state: SUSPENDED
	suspend cause: IDLE
	priority: 9039
	volume: front-left: 1496 /   2% / -98.49 dB,   front-right: 1496 /   2% / -98.49 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 0.00 ms
	max request: 0 KiB
	max rewind: 0 KiB
	monitor source: 4
	sample spec: s16le 2ch 48000Hz
	channel map: front-left,front-right
	             Stereo
	used by: 0
	linked by: 0
	fixed latency: 6.00 ms
	card: 3 <alsa_card.pci-0000_00_1f.3>
	module: 9
	properties:
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "ALC285 Analog"
		alsa.id = "ALC285 Analog"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "0"
		alsa.card = "2"
		alsa.card_name = "HDA Intel PCH"
		alsa.long_card_name = "HDA Intel PCH at 0x404a108000 irq 188"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:00:1f.3"
		sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card2"
		device.bus = "pci"
		device.vendor.id = "8086"
		device.vendor.name = "Intel Corporation"
		device.product.id = "a348"
		device.product.name = "Cannon Lake PCH cAVS"
		device.form_factor = "internal"
		device.string = "front:2"
		device.buffering.buffer_size = "1152"
		device.buffering.fragment_size = "384"
		device.access_mode = "mmap"
		device.profile.name = "analog-stereo"
		device.profile.description = "Analog Stereo"
		device.description = "Built-in Audio Analog Stereo"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	ports:
		analog-output-speaker: Speakers (priority 10000, latency offset 0 usec, available: unknown)
			properties:
				device.icon_name = "audio-speakers"
		analog-output-headphones: Headphones (priority 9900, latency offset 0 usec, available: no)
			properties:
				device.icon_name = "audio-headphones"
	active port: <analog-output-speaker>
    index: 9
	name: <alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1>
	driver: <module-alsa-card.c>
	flags: HARDWARE DECIBEL_VOLUME LATENCY 
	state: SUSPENDED
	suspend cause: IDLE
	priority: 9030
	volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 0.00 ms
	max request: 0 KiB
	max rewind: 0 KiB
	monitor source: 11
	sample spec: s16le 2ch 48000Hz
	channel map: front-left,front-right
	             Stereo
	used by: 0
	linked by: 0
	fixed latency: 6.00 ms
	card: 0 <alsa_card.pci-0000_01_00.1>
	module: 6
	properties:
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "HDMI 1"
		alsa.id = "HDMI 1"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "7"
		alsa.card = "3"
		alsa.card_name = "HDA NVidia"
		alsa.long_card_name = "HDA NVidia at 0xe6000000 irq 17"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:01:00.1"
		sysfs.path = "/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card3"
		device.bus = "pci"
		device.vendor.id = "10de"
		device.vendor.name = "NVIDIA Corporation"
		device.product.id = "10fa"
		device.string = "hdmi:3,1"
		device.buffering.buffer_size = "1152"
		device.buffering.fragment_size = "384"
		device.access_mode = "mmap"
		device.profile.name = "hdmi-stereo-extra1"
		device.profile.description = "Digital Stereo (HDMI 2)"
		device.description = "HDA NVidia Digital Stereo (HDMI 2)"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	ports:
		hdmi-output-1: HDMI / DisplayPort 2 (priority 5800, latency offset 0 usec, available: yes)
			properties:
				device.icon_name = "video-display"
				device.product.name = "2260WG5
     "
	active port: <hdmi-output-1>

pacmd list-sink-inputs

1 sink input(s) available.
    index: 77
	driver: <protocol-native.c>
	flags: START_CORKED 
	state: RUNNING
	sink: 1 <alsa_output.usb-GeneralPlus_USB_Audio_Device-00.analog-stereo>
	volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	muted: no
	current latency: 16.00 ms
	requested latency: 6.00 ms
	sample spec: float32le 2ch 48000Hz
	channel map: front-left,front-right
	             Stereo
	resample method: copy
	module: 14
	client: 110 <Firefox>
	properties:
		media.name = "AudioStream"
		application.name = "Firefox"
		native-protocol.peer = "UNIX socket client"
		native-protocol.version = "34"
		application.process.id = "749948"
		application.process.user = "<censored>"
		application.process.host = "<censored>"
		application.process.binary = "firefox"
		application.language = "en_US.UTF-8"
		window.x11.display = ":0"
		application.process.machine_id = "b7203441b95a4312bb9c2db53fc6b922"
		application.process.session_id = "1"
		application.icon_name = "firefox"
		module-stream-restore.id = "sink-input-by-application-name:Firefox"


Unfortunately, with firefox at least, the

PULSE_LATENCY_MSEC=30

trick didn't work hmm


EDIT:

pacmd list-sink-inputs

for a page that was NOT causing the issue

1 sink input(s) available.
    index: 85
        driver: <protocol-native.c>
        flags: START_CORKED
        state: RUNNING
        sink: 1 <alsa_output.usb-GeneralPlus_USB_Audio_Device-00.analog-stereo>
        volume: front-left: 39846 /  61% / -12.97 dB,   front-right: 39846 /  61% / -12.97 dB
                balance 0.00
        muted: no
        current latency: 20.00 ms
        requested latency: 6.00 ms
        sample spec: float32le 2ch 48000Hz
        channel map: front-left,front-right
                     Stereo
        resample method: copy
        module: 14
        client: 110 <Firefox>
        properties:
                media.name = "AudioStream"
                application.name = "Firefox"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "34"
                application.process.id = "749948"
                application.process.user = "<censored>"
                application.process.host = "<censored>"
                application.process.binary = "firefox"
                application.language = "en_US.UTF-8"
                window.x11.display = ":0"
                application.process.machine_id = "b7203441b95a4312bb9c2db53fc6b922"
                application.process.session_id = "1"
                application.icon_name = "firefox"
                module-stream-restore.id = "sink-input-by-application-name:Firefox"

Last edited by biggerfisch (2021-01-31 20:29:02)

Offline

#4 2021-02-17 23:02:25

biggerfisch
Member
Registered: 2021-01-31
Posts: 4

Re: [SOLVED] Audio crackling from all browsers, for some uses/website only

Since I'm not sure anyone will be able to solve this for me; I'll continue to (slowly) document my struggle here.

I've done some extra testing and have discovered an extra tidbit:  The issue very much seems to be codec related.

I have a .mp4 file that plays in chrome (wat.mp4 from https://www.destroyallsoftware.com/talks/wat). It, originally, shows this issue and crackles. However, if I replace the audio with mp3 of the same exact sound - the issue disappears in chrome. The source audio is AAC LC. All of the "good" audios I've used were not AAC, but instead MP3, Opus, etc.

This leads me to continue to think that there's something strange with how some software on my computer is asking for AAC decoding - I'd appreciate any tips for further debugging as well!

Offline

#5 2021-02-28 14:51:05

biggerfisch
Member
Registered: 2021-01-31
Posts: 4

Re: [SOLVED] Audio crackling from all browsers, for some uses/website only

Well, I still don't have a full spectrum fix, but I have a working work-around now.

I discovered that with

mpv

, the issue was reproducible if and only if I enabled hardware acceleration. While mpv used `NVDEC`, it seems that the browsers don't use it yet, according to https://wiki.archlinux.org/index.php/Ha … on_support . So that means its not specifically an NVDEC issue but something in the drivers for all decoding.

I then disabled Hardware Acceleration in Chrome, and tada!, the issue disappeared.

I will mark this as solved for now, since things "work" now, but I do expect there is an NVIDIA proprietary drivers bug here (the T2000 isn't exactly a popular GPU in machines running linux, so I am not surprised).

Offline

Board footer

Powered by FluxBB