You are not logged in.
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
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.
Online
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
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
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
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