Distorted sound for the first few seconds: Best way to deal with pipewire audio problems?

I switched from pulseaudio to pipewire recently and noticed some problems when playling sound from chromium. Whenever I start a new audio it is highly distorted for about 5-10 seconds until it eventually starts sounding normal.

I already figured out, that I can solve this problem by starting chromium with --audio-buffer-size=2048 This could be the end of it, but I personally really don’t like that I’ve to start a program in a special “mode” to get audio working. I would much more like to solve such a problem systemwide and for all programs whether they support setting the audio-buffer-size or not.

So could you help me to better understand what exactly the problem is? And if there is a better way to solve this?

I know there must be, since everything worked fine with pulseaudio. Is there a way to set up pipewire in a similar fashion, so that everything works “out of the box”, regardless of which program I try to run?

inxi -A                                                                                                                                                                                        INT ✘ 
Audio:
  Device-1: Intel 100 Series/C230 Series Family HD Audio driver: snd_hda_intel
  Device-2: NVIDIA GP108 High Definition Audio driver: snd_hda_intel
  Device-3: C-Media CMI8788 [Oxygen HD Audio] driver: snd_oxygen
  Device-4: NVIDIA TU116 High Definition Audio driver: vfio-pci
  Device-5: Generalplus USB Audio Device
    driver: hid-generic,snd-usb-audio,usbhid type: USB
  Device-6: Microdia USB Live camera driver: snd-usb-audio,uvcvideo
    type: USB
  API: ALSA v: k6.18.12-1-MANJARO status: kernel-api
  Server-1: PipeWire v: 1.4.10 status: active

The problem occurs when using the dedicated soundcard (C-Media CMI8788 [Oxygen HD Audio]).

Please supply output from inxi -zv8 as this may also be helpful.

`inxi -zv8`
inxi -zv8                                                                                                                                                                                          ✔ 
System:
  Kernel: 6.18.12-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 15.2.1
    clocksource: tsc avail: hpet,acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.18-x86_64
    root=/dev/mapper/VolumeGroup-root rw systemd.show_status=1 apparmor=1
    security=apparmor udev.log_priority=5 intel_iommu=on
    vfio-pci.ids=10de:21c4,10de:1aeb,10de:1aec,10de:1aed kvm.ignore_msrs=1
  Desktop: KDE Plasma v: 6.5.5 tk: Qt v: N/A info: frameworks v: 6.23.0
    wm: kwin_x11 vt: 2 dm: SDDM Distro: Manjaro base: Arch Linux
Machine:
  Type: Desktop Mobo: ASUSTeK model: H170-PRO v: Rev X.0x
    serial: <superuser required> part-nu: SKU uuid: <superuser required>
    Firmware: UEFI vendor: American Megatrends v: 3805 date: 05/16/2018
Battery:
  Message: No system battery data found. Is one present?
Memory:
  System RAM: total: 64 GiB available: 62.72 GiB used: 9.82 GiB (15.7%)
  Message: For most reliable report, use superuser + dmidecode.
  Array-1: capacity: 64 GiB slots: 4 modules: 4 EC: None
    max-module-size: 16 GiB note: est.
  Device-1: DIMM_A1 type: DDR4 detail: synchronous size: 16 GiB
    speed: 2133 MT/s volts: curr: 1 width (bits): data: 64 total: 64
    manufacturer: Team Group Inc. part-no: TEAMGROUP-UD4-3000 serial: <filter>
  Device-2: DIMM_A2 type: DDR4 detail: synchronous size: 16 GiB
    speed: 2133 MT/s volts: curr: 1 width (bits): data: 64 total: 64
    manufacturer: Team Group Inc. part-no: TEAMGROUP-UD4-3000 serial: <filter>
  Device-3: DIMM_B1 type: DDR4 detail: synchronous size: 16 GiB
    speed: 2133 MT/s volts: curr: 1 width (bits): data: 64 total: 64
    manufacturer: Team Group Inc. part-no: TEAMGROUP-UD4-3000 serial: <filter>
  Device-4: DIMM_B2 type: DDR4 detail: synchronous size: 16 GiB
    speed: 2133 MT/s volts: curr: 1 width (bits): data: 64 total: 64
    manufacturer: Team Group Inc. part-no: TEAMGROUP-UD4-3000 serial: <filter>
PCI Slots:
  Permissions: Unable to run dmidecode. Root privileges required.
CPU:
  Info: model: Intel Core i7-6700 bits: 64 type: MT MCP arch: Skylake-S
    gen: core 6 level: v3 note: check built: 2015 process: Intel 14nm family: 6
    model-id: 0x5E (94) stepping: 3 microcode: 0xF0
  Topology: cpus: 1x dies: 1 clusters: 4 cores: 4 threads: 8 tpc: 2
    smt: enabled cache: L1: 256 KiB desc: d-4x32 KiB; i-4x32 KiB L2: 1024 KiB
    desc: 4x256 KiB L3: 8 MiB desc: 1x8 MiB
  Speed (MHz): avg: 3100 min/max: 800/4000 scaling: driver: intel_pstate
    governor: powersave cores: 1: 3100 2: 3100 3: 3100 4: 3100 5: 3100 6: 3100
    7: 3100 8: 3100 bogomips: 54398
  Flags: 3dnowprefetch abm acpi adx aes aperfmperf apic arat
    arch_capabilities arch_perfmon art avx avx2 bmi1 bmi2 bts clflush
    clflushopt cmov constant_tsc cpuid cpuid_fault cx16 cx8 de ds_cpl dtes64
    dtherm dts ept ept_ad erms est f16c flexpriority flush_l1d fma fpu
    fsgsbase fxsr ht hwp hwp_act_window hwp_epp hwp_notify ibpb ibrs ida
    intel_pt invpcid lahf_lm lm mca mce md_clear mmx monitor movbe mpx msr
    mtrr nonstop_tsc nopl nx pae pat pbe pcid pclmulqdq pdcm pdpe1gb pebs pge
    pln pni popcnt pse pse36 pti pts rdrand rdseed rdtscp rep_good sdbg sep
    smap smep smx ss ssbd sse sse2 sse4_1 sse4_2 ssse3 stibp syscall tm tm2
    tpr_shadow tsc tsc_adjust tsc_deadline_timer vme vmx vnmi vpid x2apic
    xgetbv1 xsave xsavec xsaveopt xsaves xtopology xtpr
  Vulnerabilities:
  Type: gather_data_sampling status: Vulnerable: No microcode
  Type: ghostwrite status: Not affected
  Type: indirect_target_selection status: Not affected
  Type: itlb_multihit status: KVM: Split huge pages
  Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT
    vulnerable
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data mitigation: Clear CPU buffers; SMT vulnerable
  Type: old_microcode status: Not affected
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed mitigation: IBRS
  Type: spec_rstack_overflow status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: IBRS; IBPB: conditional; STIBP: conditional;
    RSB filling; PBRSB-eIBRS: Not affected; BHI: Not affected
  Type: srbds mitigation: Microcode
  Type: tsa status: Not affected
  Type: tsx_async_abort mitigation: TSX disabled
  Type: vmscape mitigation: IBPB before exit to userspace
Graphics:
  Device-1: NVIDIA GP108 [GeForce GT 1030] vendor: Micro-Star MSI
    driver: nvidia v: 575.64.05 alternate: nouveau,nova_core,nvidia_drm
    non-free: 550-580.xx+ status: current (as of 2025-11; EOL~2026-12-xx)
    arch: Pascal code: GP10x process: TSMC 16nm built: 2016-2021 pcie: gen: 3
    speed: 8 GT/s lanes: 4 ports: active: none off: DP-1 empty: HDMI-A-1
    bus-ID: 01:00.0 chip-ID: 10de:1d01 class-ID: 0300
  Device-2: NVIDIA TU116 [GeForce GTX 1660 SUPER] vendor: Gigabyte
    driver: vfio-pci v: N/A alternate: nouveau,nova_core,nvidia_drm,nvidia
    non-free: 550-580.xx+ status: current (as of 2025-11; EOL~2026-12-xx)
    arch: Turing code: TUxxx process: TSMC 12nm FF built: 2018-2022 pcie:
    gen: 3 speed: 8 GT/s lanes: 4 link-max: lanes: 16 bus-ID: 08:00.0
    chip-ID: 10de:21c4 class-ID: 0300
  Device-3: Microdia USB Live camera driver: snd-usb-audio,uvcvideo
    type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-9.1.2:15
    chip-ID: 0c45:636b class-ID: 0102 serial: <filter>
  Display: x11 server: X.Org v: 21.1.21 with: Xwayland v: 24.1.9
    compositor: kwin_x11 driver: X: loaded: nvidia gpu: nvidia,nvidia-nvswitch
    display-ID: :0 screens: 1
  Screen-1: 0 s-res: 3840x2160 s-dpi: 139 s-size: 702x400mm (27.64x15.75")
    s-diag: 808mm (31.81")
  Monitor-1: DP-1 mapped: DP-0 note: disabled model: AOC AG326UD
    serial: <filter> built: 2025 res: mode: 3840x2160 hz: 60 scale: 100% (1)
    dpi: 140 gamma: 1.2 chroma: red: x: 0.671 y: 0.325 green: x: 0.294
    y: 0.620 blue: x: 0.141 y: 0.051 white: x: 0.314 y: 0.329
    size: 699x395mm (27.52x15.55") diag: 803mm (31.6") ratio: 16:9
    modes: 3840x2160, 2560x1440, 1920x1080, 1280x1024, 1280x720, 1024x768,
    800x600, 720x576, 720x480, 640x480
  EDID-Warnings: 1: parse_edid: unknown tag 112
  API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
    drv: swrast gbm: drv: nvidia surfaceless: drv: nvidia x11: drv: nvidia
    inactive: wayland,device-1
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 575.64.05
    glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce GT 1030/PCIe/SSE2
    memory: 1.95 GiB
  API: Vulkan v: 1.4.341 layers: 8 device: 0 type: discrete-gpu
    name: NVIDIA GeForce GT 1030 driver: nvidia v: 575.64.05
    device-ID: 10de:1d01 surfaces: N/A
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor gpu: nvidia-settings,nvidia-smi
    wl: wayland-info x11: xdpyinfo, xprop, xrandr
Audio:
  Device-1: Intel 100 Series/C230 Series Family HD Audio
    vendor: ASUSTeK H110I-PLUS driver: snd_hda_intel v: kernel
    alternate: snd_soc_avs bus-ID: 00:1f.3 chip-ID: 8086:a170 class-ID: 0403
  Device-2: NVIDIA GP108 High Definition Audio vendor: Micro-Star MSI
    driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 4
    bus-ID: 01:00.1 chip-ID: 10de:0fb8 class-ID: 0403
  Device-3: C-Media CMI8788 [Oxygen HD Audio] vendor: ASUSTeK CMI8786
    driver: snd_oxygen v: kernel bus-ID: 03:04.0 chip-ID: 13f6:8788
    class-ID: 0401
  Device-4: NVIDIA TU116 High Definition Audio vendor: Gigabyte
    driver: vfio-pci alternate: snd_hda_intel pcie: gen: 3 speed: 8 GT/s
    lanes: 4 link-max: lanes: 16 bus-ID: 08:00.1 chip-ID: 10de:1aeb
    class-ID: 0403
  Device-5: Generalplus USB Audio Device
    driver: hid-generic,snd-usb-audio,usbhid type: USB rev: 1.1 speed: 12 Mb/s
    lanes: 1 mode: 1.1 bus-ID: 1-9.1.1.1:16 chip-ID: 1b3f:2008 class-ID: 0300
  Device-6: Microdia USB Live camera driver: snd-usb-audio,uvcvideo
    type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-9.1.2:15
    chip-ID: 0c45:636b class-ID: 0102 serial: <filter>
  API: ALSA v: k6.18.12-1-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
  Server-2: JACK v: 1.9.22 status: off tools: N/A
  Server-3: PipeWire v: 1.4.10 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
    vendor: ASUSTeK RTL8111H driver: r8169 v: kernel pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 port: c000 bus-ID: 07:00.0 chip-ID: 10ec:8168
    class-ID: 0200
  IF: enp7s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v4: <filter> virtual: secondary scope: global
  IP v6: <filter> type: noprefixroute scope: link
  IF-ID-1: br0 state: down mac: <filter>
  IF-ID-2: virbr0 state: down mac: <filter>
  IP v4: <filter> scope: global broadcast: <filter>
  IF-ID-3: virbr1 state: up speed: 10000 Mbps duplex: unknown mac: <filter>
  IP v4: <filter> scope: global broadcast: <filter>
  IF-ID-4: virbr2 state: up speed: 10000 Mbps duplex: unknown mac: <filter>
  IF-ID-5: virbr3 state: down mac: <filter>
  IP v4: <filter> scope: global broadcast: <filter>
  IF-ID-6: vnet0 state: unknown speed: 10000 Mbps duplex: full mac: <filter>
  IP v6: <filter> virtual: proto kernel_ll scope: link
  IF-ID-7: vnet1 state: unknown speed: 10000 Mbps duplex: full mac: <filter>
  IP v6: <filter> virtual: proto kernel_ll scope: link
  IF-ID-8: vnet2 state: unknown speed: 10000 Mbps duplex: full mac: <filter>
  IP v6: <filter> virtual: proto kernel_ll scope: link
  Info: services: httpd, NetworkManager, systemd-timesyncd, wpa_supplicant
  WAN IP: <filter>
Bluetooth:
  Message: No bluetooth data found.
Logical:
  Message: Unable to run lvs. Root privileges required.
RAID:
  Message: No RAID data found.
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: yes
    compressor: zstd max-pool: 20%
  ID-1: swap-1 type: partition size: 24.22 GiB used: 8 MiB (0.0%)
    priority: -2 dev: /dev/sdb8 maj-min: 8:24 label: N/A
    uuid: 9486fb7e-a0c2-42ae-ba32-171a0c28c293
Unmounted:
  ID-1: /dev/sda1 maj-min: 8:1 size: 1.73 TiB fs: ntfs label: Win_Daten
    uuid: 5971FDA10442A372
  ID-2: /dev/sdb1 maj-min: 8:17 size: 350 MiB fs: ntfs label: Recovery
    uuid: C218DCFC18DCF101
  ID-3: /dev/sdb6 maj-min: 8:22 size: 348.08 GiB fs: ntfs
    label: Win_Programme uuid: 33B0857F0E3DF308
USB:
  Hub-1: 1-0:1 info: hi-speed hub with single TT ports: 16 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Hub-2: 1-9:2 info: Terminus Hub ports: 4 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 power: 100mA
    chip-ID: 1a40:0101 class-ID: 0900
  Hub-3: 1-9.1:13 info: Huasheng USB2.0 HUB ports: 4 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 power: 100mA
    chip-ID: 214b:7250 class-ID: 0900
  Hub-4: 1-9.1.1:14 info: Huasheng USB2.0 HUB ports: 4 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 power: 100mA
    chip-ID: 214b:7250 class-ID: 0900
  Device-1: 1-9.1.1.1:16 info: Generalplus USB Audio Device type: audio,HID
    driver: hid-generic,snd-usb-audio,usbhid interfaces: 4 rev: 1.1
    speed: 12 Mb/s (1.4 MiB/s) lanes: 1 mode: 1.1 power: 100mA
    chip-ID: 1b3f:2008 class-ID: 0300
  Device-2: 1-9.1.1.4:18 info: SiGma Micro Hama ECM-500 type: mouse,keyboard
    driver: hid-generic,usbhid interfaces: 2 rev: 1.1
    speed: 1.5 Mb/s (183 KiB/s) lanes: 1 mode: 1.0 power: 100mA
    chip-ID: 1c4f:00a2 class-ID: 0301
  Device-3: 1-9.1.2:15 info: Microdia USB Live camera type: video,audio
    driver: snd-usb-audio,uvcvideo interfaces: 4 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 power: 500mA
    chip-ID: 0c45:636b class-ID: 0102 serial: <filter>
  Device-4: 1-9.1.3:17 info: Microsoft Xbox Controller
    type: <vendor specific> driver: xpad interfaces: 3 rev: 2.0
    speed: 12 Mb/s (1.4 MiB/s) lanes: 1 mode: 1.1 power: 500mA
    chip-ID: 045e:0b12 class-ID: ff00 serial: <filter>
  Device-5: 1-9.2:4 info: Microdia Foot Switch type: keyboard,mouse
    driver: hid-generic,usbhid interfaces: 2 rev: 2.0
    speed: 1.5 Mb/s (183 KiB/s) lanes: 1 mode: 1.0 power: 100mA
    chip-ID: 0c45:7403 class-ID: 0301
  Device-6: 1-9.3:7 info: Microdia Foot Switch type: keyboard,mouse
    driver: hid-generic,usbhid interfaces: 2 rev: 2.0
    speed: 1.5 Mb/s (183 KiB/s) lanes: 1 mode: 1.0 power: 100mA
    chip-ID: 0c45:7403 class-ID: 0301
  Hub-5: 2-0:1 info: super-speed hub ports: 8 rev: 3.0
    speed: 5 Gb/s (596.0 MiB/s) lanes: 1 mode: 3.2 gen-1x1 chip-ID: 1d6b:0003
    class-ID: 0900
  Hub-6: 3-0:1 info: hi-speed hub with single TT ports: 2 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Hub-7: 3-2:2 info: Terminus Hub ports: 4 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 power: 100mA
    chip-ID: 1a40:0101 class-ID: 0900
  Device-1: 3-2.2:3 info: Microdia Foot Switch type: keyboard,mouse
    driver: hid-generic,usbhid interfaces: 2 rev: 2.0
    speed: 1.5 Mb/s (183 KiB/s) lanes: 1 mode: 1.0 power: 100mA
    chip-ID: 0c45:7403 class-ID: 0301
  Device-2: 3-2.3:4 info: Microdia Foot Switch type: keyboard,mouse
    driver: hid-generic,usbhid interfaces: 2 rev: 2.0
    speed: 1.5 Mb/s (183 KiB/s) lanes: 1 mode: 1.0 power: 100mA
    chip-ID: 0c45:7403 class-ID: 0301
  Hub-8: 4-0:1 info: super-speed hub ports: 2 rev: 3.0
    speed: 5 Gb/s (596.0 MiB/s) lanes: 1 mode: 3.2 gen-1x1 chip-ID: 1d6b:0003
    class-ID: 0900
  Hub-9: 5-0:1 info: hi-speed hub with single TT ports: 2 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Hub-10: 6-0:1 info: super-speed hub ports: 4 rev: 3.1
    speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
    class-ID: 0900
Sensors:
  System Temperatures: cpu: 37.0 C mobo: N/A gpu: nvidia temp: 46 C
  Fan Speeds (rpm): N/A gpu: nvidia fan: 35%
Repos:
  Packages: 2127 pm: pacman pkgs: 2121 libs: 429 tools: octopi,pamac,yay
    pm: flatpak pkgs: 6
  Active pacman repo servers in: /etc/pacman.d/mirrorlist
    1: https://mirrors.manjaro.org/repo/stable/$repo/$arch
    2: https://mirrors2.manjaro.org/stable/$repo/$arch
    3: https://mirror.easyname.at/manjaro/stable/$repo/$arch
    4: https://mirrors.eric.ovh/manjaro/stable/$repo/$arch
    5: https://manjaro.ynh.ovh/stable/$repo/$arch
    6: https://ftp.psnc.pl/linux/manjaro/stable/$repo/$arch
    7: https://ftp.tsukuba.wide.ad.jp/Linux/manjaro/stable/$repo/$arch
    8: https://ftp.yz.yamagata-u.ac.jp/pub/linux/manjaro/stable/$repo/$arch
Info:
  Processes: 365 Power: uptime: 3h 59m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 25.03 GiB services: org_kde_powerdevil,upowerd
    Init: systemd v: 259 default: graphical tool: systemctl
  Compilers: clang: 21.1.8 gcc: 15.2.1 Shell: Zsh v: 5.9 default: Bash
    v: 5.3.9 running-in: konsole inxi: 3.3.40

Mod edit - hidey tidy :wink:

We must assume that you possibly did this:

Review how to 'switch to pipewire'
sudo pacman -S manjaro-pipewire

But if you didn’t, that’s the way to do it…

You can just make sure pulseaudio is dealt with:

systemctl --user disable --now pulseaudio.service pulseaudio.socket
systemctl --user mask pulseaudio
systemctl --user enable --now pipewire pipewire-pulse wireplumber

and rebooting is the cleanest way to make sure it’s all fired up correctly, in the right order, with everything switched over.

systemctl --user status pipewire pipewire-pulse wireplumber

Checks out?
● pipewire.service - PipeWire Multimedia Service
     Loaded: loaded (/usr/lib/systemd/user/pipewire.service; enabled; preset: enabled)
     Active: active (running) since Mon 2026-03-02 14:11:32 +07; 5 days ago
 Invocation: 464d6e7e75a04466afe868f2c7b527dc
TriggeredBy: ● pipewire.socket
   Main PID: 2193 (pipewire)
      Tasks: 3 (limit: 18349)
     Memory: 4.8M (peak: 21.8M, swap: 8M, swap peak: 15M, zswap: 129.1K)
        CPU: 9min 13.649s
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
             └─2193 /usr/bin/pipewire

Notice: journal has been rotated since unit was started, output may be incomplete.

● pipewire-pulse.service - PipeWire PulseAudio
     Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; enabled; preset: enabled)
     Active: active (running) since Mon 2026-03-02 14:11:32 +07; 5 days ago
 Invocation: 46aa898c3ff5492ebeb84b8b6379095e
TriggeredBy: ● pipewire-pulse.socket
   Main PID: 2195 (pipewire-pulse)
      Tasks: 3 (limit: 18349)
     Memory: 26.3M (peak: 45.3M, swap: 16.5M, swap peak: 39.6M, zswap: 2.1M)
        CPU: 10min 47.344s
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire-pulse.service
             └─2195 /usr/bin/pipewire-pulse

Notice: journal has been rotated since unit was started, output may be incomplete.

● wireplumber.service - Multimedia Service Session Manager
     Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled)
     Active: active (running) since Mon 2026-03-02 14:11:32 +07; 5 days ago
 Invocation: 82150cc679184321b1921f31464e9ca3
   Main PID: 2194 (wireplumber)
      Tasks: 7 (limit: 18349)
     Memory: 8M (peak: 45M, swap: 13.7M, swap peak: 17.9M, zswap: 883.1K)
        CPU: 9min 11.377s
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/wireplumber.service
             └─2194 /usr/bin/wireplumber

So the issue is likely ‘buffer underruns’ because Chromium’s audio renderer starts with a small buffer (as you hinted already) so you could go with the buffer of 2048

Option 1: Systemwide fix.

mkdir -p ~/.config/pipewire/pipewire.conf.d
touch 99-quantum.conf

Contents:

context.properties = {
  default.clock.quantum      = 2048   # default buffer size in samples
  default.clock.min-quantum  = 1024   # minimum allowed (can go lower if needed)
  default.clock.max-quantum  = 4096   # maximum allowed
  default.clock.rate         = 48000  # force a consistent sample rate
}

Then restart pipewire (or reboot):

systemctl --user restart pipewire pipewire-pulse wireplumber

So have a go with that, but a 2048 buffer will introduce a small delay (about 42mS). If that’s an issue, you can delete the file.

Option 2. Surgical fix - apply the setting ONLY to Chromium:

systemctl --user restart pipewire pipewire-pulse wireplumber

Now the file:

99-chromium.conf
pulse.rules = [
    {
        matches = [
            { application.process.binary = "chrome" }
            { application.process.binary = "chromium" }
        ]
        actions = {
            update-props = {
                # Request a minimum required latency of 512 samples
                pulse.min.req        = "512/48000"
                # Default request size: 1024 samples
                pulse.default.req    = "1024/48000"
                # Minimum quantum (buffer) size: 1024 samples
                pulse.min.quantum    = "1024/48000"
                # Default quantum size: 2048 samples
                pulse.default.quantum = "2048/48000"
            }
        }
    }
]

Then the restart systemctl --user restart pipewire-pulse wireplumber.

Keep a record, I am not offering a Money Back Guarantee with my janky fix, hope it’s good :wink:

1 Like

Thank you for your detailed answer. Yes, I installed it via

sudo pacman -S manjaro-pipewire

and the

systemctl --user status pipewire pipewire-pulse wireplumber

looks good.

Unfortunately both fixes didn’t help. (I added an “context.properties = {” to the first fix, since the first line seems to be missing in your text). What is the best way to check whether pipewire has accepted the config-changes?

Sorry, there was a typo (corrected above):

```context.properties = {
  default.clock.quantum      = 2048   # default buffer size in samples
  default.clock.min-quantum  = 1024   # minimum allowed (can go lower if needed)
  default.clock.max-quantum  = 4096   # maximum allowed
  default.clock.rate         = 48000  # force a consistent sample rate
}
```

The first line is missing… so you should have seen (corrected now):rofl:

context.properties = {
  default.clock.quantum      = 2048   # default buffer size in samples
  default.clock.min-quantum  = 1024   # minimum allowed (can go lower if needed)
  default.clock.max-quantum  = 4096   # maximum allowed
  default.clock.rate         = 48000  # force a consistent sample rate
}

:confounded_face: So sorry!

1 Like

Yes, thank you - now it seems to work!

2 Likes

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.