Microphone audio input jumps up and down

So i switched to Garuda dragonized because it looks awesome, and i actually got really good gaming performance, but there is still one thing thats bugging me and that is that my external mic, gets really boosted and staticky, then jumps up and down as if something with the noise cancellation was broken, i was unable to find a solution to this. I am using default pipewire-pulse audio drivers, and since im a newbie to Arch (used debian) im not familiar with pipewire or other arch software. Please help me with this, im all out of ideas. Thanks!

System:    Kernel: 5.15.5-zen1-1-zen x86_64 bits: 64 compiler: gcc v: 11.1.0
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen root=UUID=3bf66fc0-89ba-4f98-b6f6-81b2ff1ff168
rw [email protected] quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
systemd.unified_cgroup_hierarchy=1 resume=UUID=fd7e8027-710d-411d-82b6-505a4c2b5304 loglevel=3
Desktop: KDE Plasma 5.23.3 tk: Qt 5.15.2 info: latte-dock wm: kwin_x11 vt: 1 dm: SDDM
Distro: Garuda Linux base: Arch Linux
Machine:   Type: Laptop System: Micro-Star product: GL62M 7REX v: REV:1.0 serial: <superuser required>
Chassis: type: 10 serial: <superuser required>
Mobo: Micro-Star model: MS-16J9 v: REV:1.0 serial: <superuser required>
UEFI: American Megatrends v: E16J9IMS.31A date: 07/11/2017
Battery:   ID-1: BAT1 charge: 36.2 Wh (95.3%) condition: 38.0/42.4 Wh (89.6%) volts: 12.1 min: 10.8
model: MSI BIF0_9 type: Li-ion serial: N/A status: Unknown
CPU:       Info: Quad Core model: Intel Core i5-7300HQ bits: 64 type: MCP arch: Kaby Lake family: 6
model-id: 9E (158) stepping: 9 microcode: EA cache: L1: 256 KiB L2: 1024 KiB L3: 6 MiB
flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 19999
Speed: 3269 MHz min/max: 800/3500 MHz Core speeds (MHz): 1: 3241 2: 3247 3: 3080 4: 3068
Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled
Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT disabled
Type: mds mitigation: Clear CPU buffers; SMT disabled
Type: meltdown mitigation: PTI
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: Full generic retpoline, IBPB: conditional, IBRS_FW, STIBP: disabled, RSB filling
Type: srbds mitigation: Microcode
Type: tsx_async_abort status: Not affected
Graphics:  Device-1: Intel HD Graphics 630 vendor: Micro-Star MSI driver: i915 v: kernel bus-ID: 00:02.0
chip-ID: 8086:591b class-ID: 0300
Device-2: NVIDIA GP107M [GeForce GTX 1050 Ti Mobile] vendor: Micro-Star MSI driver: nvidia
v: 495.44 alternate: nouveau,nvidia_drm bus-ID: 01:00.0 chip-ID: 10de:1c8c class-ID: 0302
Device-3: Chicony USB 2.0 Webcam Device type: USB driver: uvcvideo bus-ID: 1-11:6
chip-ID: 04f2:b521 class-ID: 0e02 serial: <filter>
Display: x11 server: X.Org 1.21.1.1 compositor: kwin_x11 driver: loaded: modesetting,nvidia
display-ID: :0 screens: 1
Screen-1: 0 s-res: 3839x1080 s-dpi: 96 s-size: 1013x285mm (39.9x11.2") s-diag: 1052mm (41.4")
Monitor-1: eDP-1-1 res: 1920x1080 dpi: 142 size: 344x194mm (13.5x7.6") diag: 395mm (15.5")
Monitor-2: HDMI-1-2 res: 1920x1080 hz: 60 dpi: 92 size: 528x297mm (20.8x11.7")
diag: 606mm (23.9")
OpenGL: renderer: NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2 v: 4.6.0 NVIDIA 495.44
direct render: Yes
Audio:     Device-1: Intel CM238 HD Audio vendor: Micro-Star MSI driver: snd_hda_intel v: kernel
bus-ID: 00:1f.3 chip-ID: 8086:a171 class-ID: 0403
Sound Server-1: ALSA v: k5.15.5-zen1-1-zen running: yes
Sound Server-2: JACK v: 1.9.19 running: no
Sound Server-3: PulseAudio v: 15.0 running: no
Sound Server-4: PipeWire v: 0.3.40 running: yes
Network:   Device-1: Intel Dual Band Wireless-AC 3168NGW [Stone Peak] driver: iwlwifi v: kernel
bus-ID: 02:00.0 chip-ID: 8086:24fb class-ID: 0280
IF: wlp2s0 state: down mac: <filter>
Device-2: Qualcomm Atheros QCA8171 Gigabit Ethernet vendor: Micro-Star MSI driver: alx
v: kernel port: d000 bus-ID: 03:00.0 chip-ID: 1969:10a1 class-ID: 0200
IF: enp3s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Bluetooth: Device-1: Intel Wireless-AC 3168 Bluetooth type: USB driver: btusb v: 0.8 bus-ID: 1-10:5
chip-ID: 8087:0aa7 class-ID: e001
Report: bt-adapter ID: hci0 rfk-id: 0 state: up address: <filter>
Drives:    Local Storage: total: 238.47 GiB used: 37.51 GiB (15.7%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/sda maj-min: 8:0 vendor: Kingston model: RBU-SNS8152S3256GG5 size: 238.47 GiB
block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s type: SSD serial: <filter> rev: 01.R
scheme: GPT
Partition: ID-1: / raw-size: 229.37 GiB size: 229.37 GiB (100.00%) used: 37.5 GiB (16.4%) fs: btrfs
dev: /dev/sda2 maj-min: 8:2
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%) used: 576 KiB (0.2%) fs: vfat
dev: /dev/sda1 maj-min: 8:1
ID-3: /home raw-size: 229.37 GiB size: 229.37 GiB (100.00%) used: 37.5 GiB (16.4%) fs: btrfs
dev: /dev/sda2 maj-min: 8:2
ID-4: /var/log raw-size: 229.37 GiB size: 229.37 GiB (100.00%) used: 37.5 GiB (16.4%) fs: btrfs
dev: /dev/sda2 maj-min: 8:2
ID-5: /var/tmp raw-size: 229.37 GiB size: 229.37 GiB (100.00%) used: 37.5 GiB (16.4%) fs: btrfs
dev: /dev/sda2 maj-min: 8:2
Swap:      Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: partition size: 8.8 GiB used: 0 KiB (0.0%) priority: -2 dev: /dev/sda3
maj-min: 8:3
ID-2: swap-2 type: zram size: 7.68 GiB used: 48 MiB (0.6%) priority: 100 dev: /dev/zram0
Sensors:   System Temperatures: cpu: 62.0 C pch: 57.5 C mobo: 27.8 C gpu: nvidia temp: 55 C
Fan Speeds (RPM): N/A
Info:      Processes: 243 Uptime: 28m wakeups: 1 Memory: 7.68 GiB used: 3.96 GiB (51.6%) Init: systemd
v: 249 tool: systemctl Compilers: gcc: 11.1.0 clang: 13.0.0 Packages: pacman: 1567 lib: 456
Shell: fish v: 3.3.1 default: Bash v: 5.1.8 running-in: konsole inxi: 3.3.09

PIpewire is now part of most debian distros too, it's certainly not "arch" software. Which also stands to say everything is the same across all distros, it's just how it's built, configured and the philosophies behind how things are done that differ.

Perhaps if you said what applications you were using when you had this happen? Sounds like some auto adjust feature like Skype used to have and it's trying to find the base gain setting.

1 Like

Yeah i was using discord, but had all options that could be doing that disabled.

i still have this issue but i managed to reduce it exponentially by enabling noise cancellation module in pluse.
i did this by following this article.
https://wiki.archlinux.org/title/PulseAudio#Microphone_echo/noise_cancellation

in addition to this, i changed this line

load-module module-echo-cancel use_master_format=1 aec_method=webrtc aec_args="analog_gain_control=0\ digital_gain_control=1" source_name=echoCancel_source sink_name=echoCancel_sink

to

load-module module-echo-cancel use_master_format=1 aec_method=webrtc aec_args="analog_gain_control=0\ voice_detection=1\ noise_suppression=1 \digital_gain_control=1" source_name=echoCancel_source sink_name=echoCancel_sink

i added voice detection and noise suppression, now my audio input has 2 more devices and one of them flickers the least, and i use it at 50- 40 percent volume, it gives me the most stable experience.

hope it helps

My question would be how did those modules get enabled (shouldn't by default).

Discord iirc has auto gain adjust so there is the culprate(ish). From there i have 5 things. Were you using the #1 website or application #1.2 (delete all web cache and retry if website #1.3 delete config try again. #2 are those features marked as off but broken/still enabled? #3 are you 100% positive all features that adjust gain are off? #4 discord is seriously ferked in various misleading ways so even if you're sure all the gain options are off, toggle them again. #5 if this only happens on discord...it's discord.

I recently had a run in with discord and rediscovered how backwards, broken and incoherent that service is.

Also what i have noticed is it seems to not jump up and down when im not listening to a playback of my voice? for some reason? but as soon as a join a call the jumping up and down continues? also i cannot record desktop audio in obs, theres only one input and that is Built-in-analog-stereo, for mic and desktop, and both capture mic, ive seen this problem on another forum, and they say it was resolved in pipewire 0.3.30-1, but im on 0.3.40 and the problem is there, so i tired to downgrade but i cant since

warning: cannot resolve "libopenaptx.so=0-64", a dependency of "pipewire"

the audio recording issue bugs me the most, since i cannot record. The volume of my mic only jumps up and down when i speak too loudly, some sort of auto adjustment, but since it only happens then, im okay with it

Thank you for this, i will try it later, but it doesn't seem to be much of a problem since my friends say that my mic sounds okay, when it will start freaking out again, i will do this. Thank you!

1 Like

I could be the unpopular kid here but my #1 is remove pipewire. This won't work for you period as the OBS build requires it but it's not feature complete for my needs and causes a lot of issues at the present time. Sounds like aside from really getting your hands dirty you will just have to ride things out.

So, replace pipewire with pulseaudio? if yes then how can i "replace" the package, because if i try to remove pipewire, it breaks a milion of dependencies.

Thank you very much, i will try that ASAP

Like I said removing pipewire won't work for you because OBS is built with it now. Just normally I'd say nuke it because it's not feature complete and causes a lot of problems still (this is a good example heh). You'll need to dig into the git builds @anon26187667 mentions and get your hands dirty.

Damn, that sucks, also @anon26187667 i tried your fix, unfortunately it didnt work, im going to try to apply the fix manualy. But if that doesnt work then im lost

Not lost just stalled :wink:

I know it's not sexy but smashing your head against this stuff is often super valuable once the dust settles. Lord know my learning curve moving from Debian is ongoing as well but it's been worth it.

I've spent way too much time at war with audio issues myself. It's frustrating when software bakes things in and takes away user choice but I know some times this is needed for functionality and keeping the code base maintainable. Just keep poking it with a stick.

Yeah i understand that, often "after the dust settles" the reward is incredibly valuable. I mean i love Linux, I've actually switched from windows now that proton is better and wanted to do it a long time ago, like "Linux 4 life" even tho i hate having to repair shit a Milion times, i also somehow love it? Linux is weird...

1 Like

Temporary solution to the OBS issue would be Helvum (Tom Wagner / Helvum ยท GitLab), its a program inspired from JACK, where you can manually route audio from program outputs into, for example, OBS Desktop INPUT, so the routed audio would actually be desktop audio! Install with pacman -S helvum

see OBS Doesn't record desktop sound - #16 by jurosic_park

Kinda strange. I mean you can do that without Helvum. Unless it's meant to be like jacks routing without all the rest of it?

I hear you about the fixing stuff. Normally I like the creative aspects to whipping up my own solutions and such. Lately though the things breaking due to wayland and pipewire have gotten a tad extreme though.

I kind of figured that you can do it without helvum, but i think it's much easier to do it with it.

And yeah, I've honestly never heard about pipewire until i switched to Garuda. But everything is kind of okay now.

Pipewire has descended upon Linux like a pox! heh I was kinda excited for it (still am...kinda) but there is a snake oil vibe about it. Every audio system has promised to be the final solution and they all fell terribly short. Now it's just a growing mess of daisy chained horse crap. If applications are built without the legacy requirements and Pipewire finally has networking it might actually / finally become a solution where you JUST need it. However right now I find it just breaks things so I get rid of it and go back to the trusted mess of Alsa => Pulse = > Jack.

Comically I suppose Linux audio is very "real world" in a bad way. You've got so much outboard gear daisy chained together and cables running all over to a million patch bays when you start getting hum, noise and signal degradation it becomes some Sherlock Holmes on acid event to figure out what is the issue.

In a larger scope the next few years are going to be some "Windows ME/Vista" level chit with Wayland and Pipewire slowly being shoehorned into every distro. Even if you build LFS you probably won't get away from it because of applications like OBS, Firefox etc. Sure you can alter their source to nuke the requirements but that is a massive task you will have to redo every update. Everything comes down to things are too big despite being open to swim upstream against. We're all caught in the flow and when we smash against a rock or two there's not a damn thing we can do about it but swear.

1 Like

Woah, deep, got nothing else to say.. Should i close the thread?