Microphone recording level too low on Fedora 44

Hi all. First here are all my system specs created with inxi: UNTITLED - Pastebin Service

So the problem. I have a HyperX Cloud III wired gaming headset which worked perfectly fine on my previous linux laptop (using kubuntu). However I’m trying to get it working on this computer. Sound output is perfect but recording level is WAAY too low. I could use pavucontrol to set the volume to 153% (which appears to be the max). At that level the volume is audible (but not very loud) but quality is very bad. There is a lot of static.

It doesn’t matter if I connect the headset through the front connector (single 3.5mm 4-pole connector) or at the back (using a splitter). The recording level is exactly the same.

The weird thing is that actually in OBS the level indicator for the microphone looks fine. It is as if it is receiving a lot of sound. But it doesn’t actually record that. And the problem is not with OBS as arecord has the same issue and so does the ‘Test’ button that is present in the audio settings.

Any ideas? Let me know if you need more information. Thanks

Here is the output of inxi inline so you don’t have to visit the link:

System:
  Host: 2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be
    Kernel: 7.0.12-201.fc44.x86_64 arch: x86_64 bits: 64
  Desktop: KDE Plasma v: 6.7.0 Distro: Fedora Linux 44 (KDE Plasma Mobile)
Machine:
  Type: Desktop Mobo: Micro-Star model: MAG B650 TOMAHAWK WIFI (MS-7D75)
    v: 1.0 serial: <superuser required> Firmware: UEFI vendor: American
    Megatrends LLC. v: 1.R1 date: 06/08/2026
CPU:
  Info: 8-core AMD Ryzen 7 9800X3D [MT MCP] speed (MHz): avg: 603
    min/max: 603/5272
Graphics:
  Device-1: Advanced Micro Devices [AMD/ATI] Navi 48 [Radeon RX 9070/9070
    XT/9070 GRE] driver: amdgpu v: kernel
  Device-2: Advanced Micro Devices [AMD/ATI] Granite Ridge [Radeon Graphics]
    driver: amdgpu v: kernel
  Display: wayland server: X.Org v: 24.1.12 with: Xwayland v: 24.1.12
    compositor: kwin_wayland driver: dri: radeonsi gpu: amdgpu resolution:
    1: 2560x1440~240Hz 2: 3440x1440~100Hz
  API: OpenGL v: 4.6 vendor: amd mesa v: 26.1.3 renderer: AMD Radeon RX
    9070 XT (radeonsi gfx1201 ACO DRM 3.64 7.0.12-201.fc44.x86_64)
  Info: Tools: api: glxinfo,vulkaninfo de: kscreen-console,kscreen-doctor
    gpu: radeontop x11: xdriinfo, xdpyinfo, xprop, xrandr
Audio:
  Device-1: Advanced Micro Devices [AMD/ATI] Navi 48 HDMI/DP Audio
    driver: snd_hda_intel
  Device-2: Advanced Micro Devices [AMD/ATI] Radeon High Definition Audio
    driver: snd_hda_intel
  Device-3: Micro Star USB Audio driver: hid-generic,snd-usb-audio,usbhid
    type: USB
  API: ALSA v: k7.0.12-201.fc44.x86_64 status: kernel-api
  Server-1: PipeWire v: 1.6.7 status: active
Network:
  Device-1: Realtek RTL8125 2.5GbE driver: r8169
  Device-2: MEDIATEK MT7922 802.11ax PCI Express Wireless Network Adapter
    driver: mt7921e
Drives:
  Local Storage: total: 2.79 TiB used: 326.5 GiB (11.4%)
Info:
  Memory: total: 32 GiB note: est. available: 30.25 GiB used: 8.38 GiB (27.7%)
  Processes: 447 Uptime: 2h 3m Shell: Bash inxi: 3.3.40

From my personal experience the static is caused from setting the DBs (volume) to high in pavucontrol

After setting the volume back to the default 100 to avoid static provide the output of wpctl --status

PipeWire 'pipewire-0' [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, cookie:274969898]
 └─ Clients:
        33. uresourced                          [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2111]
        34. WirePlumber                         [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2115]
        35. pipewire                            [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2116]
        48. WirePlumber                         [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2115]
        50. WirePlumber [export]                [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2115]
        51. kwin_wayland                        [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2123]
        52. libcanberra                         [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2277]
        53. plasmashell                         [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2332]
        64. WirePlumber                         [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2115]
        65. WirePlumber                         [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2115]
        68. WirePlumber                         [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2115]
        69. WirePlumber                         [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2115]
        72. WirePlumber                         [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2115]
       148.                                     [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2277]
       153. xdg-desktop-portal                  [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2615]
       162. libcanberra                         [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2332]
       163. ckb-next Mute Indicator             [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2588]
       166.                                     [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:2332]
       169. Firefox                             [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:3024]
       170. speech-dispatcher-dummy             [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:4306]
       210. easyeffects                         [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:5036]
       231. wpctl                               [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:13988]
       247. Firefox                             [1.6.7, jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8.ip6.access.telenet.be, pid:3024]

Audio
 ├─ Devices:
 │      54. Navi 48 HDMI/DP Audio Controller    [alsa]
 │      55. USB Audio                           [alsa]
 │      56. HyperX Cloud III                    [alsa]
 │      57. Radeon High Definition Audio Controller [alsa]
 │  
 ├─ Sinks:
 │      79. Navi 48 HDMI/DP Audio Controller Digital Stereo (HDMI 3) [vol: 0.45]
 │      80. USB Audio S/PDIF Output             [vol: 0.80]
 │  *   81. USB Audio Speakers                  [vol: 0.44]
 │      82. USB Audio Front Headphones          [vol: 1.00]
 │      85. HyperX Cloud III Analog Stereo      [vol: 0.45]
 │     187. Easy Effects Sink                   [vol: 1.00]
 │  
 ├─ Sources:
 │      83. USB Audio Line Input                [vol: 1.00]
 │  *   84. USB Audio Microphone                [vol: 1.00]
 │      86. HyperX Cloud III Mono               [vol: 1.00]
 │     188. Easy Effects Source                 [vol: 1.00]
 │  
 ├─ Filters:
 │    - loopback-2115-19                                            
 │      37. output.loopback.sink.role.notification                       [Stream/Output/Audio]
 │      49. input.loopback.sink.role.notification                        [Audio/Sink]
 │    - loopback-2115-20                                            
 │      46. input.loopback.sink.role.phone                               [Audio/Sink]
 │      47. output.loopback.sink.role.phone                              [Stream/Output/Audio]
 │    - loopback-2115-18                                            
 │      66. output.loopback.sink.role.multimedia                         [Stream/Output/Audio]
 │      67. input.loopback.sink.role.multimedia                          [Audio/Sink]
 │    - loopback-2115-21                                            
 │      70. output.loopback.sink.role.alarm                              [Stream/Output/Audio]
 │      71. input.loopback.sink.role.alarm                               [Audio/Sink]
 │    - loopback-2115-22                                            
 │      73. output.loopback.sink.role.ringtone                           [Stream/Output/Audio]
 │      74. input.loopback.sink.role.ringtone                            [Audio/Sink]
 │    - loopback-2115-23                                            
 │      77. output.loopback.sink.role.alert                              [Stream/Output/Audio]
 │      78. input.loopback.sink.role.alert                               [Audio/Sink]
 │  
 └─ Streams:
       167. speech-dispatcher-dummy                                     
            168. output_FL       > PHL 346E2C:playback_FL       [init]
            171. output_FR       > PHL 346E2C:playback_FR       [init]

Video
 ├─ Devices:
 │  
 ├─ Sinks:
 │  
 ├─ Sources:
 │  
 ├─ Filters:
 │  
 └─ Streams:

Settings
 └─ Default Configured Devices:
         0. Audio/Sink    alsa_output.usb-Generic_USB_Audio-00.HiFi__Speaker__sink
         1. Audio/Source  alsa_input.usb-Generic_USB_Audio-00.HiFi__Mic__source

BTW, I managed to ‘fix’ it to some extend by using easyeffects. Not perfect though

Your gaming headset volume is at 0.45, set it to 100 by doing this:

wpctl set-volume 85 1.00

Let me know if this helps!

That’s output level. There is no problem with output level. It’s microphone level that’s the problem and that’s at 1.00

Open your terminal and run: alsamixer
then press FN + F6 and then screenshot.

now provide the output of:

arecord -l

and

arecord -L
jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8:~/Downloads$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 2: Audio [USB Audio], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Audio [USB Audio], device 1: USB Audio [USB Audio #1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Audio [USB Audio], device 2: USB Audio [USB Audio #2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: III [HyperX Cloud III], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8:~/Downloads$ arecord -L
null
    Discard all samples (playback) or generate zero samples (capture)
pipewire
    PipeWire Sound Server
default
    Default ALSA Output (currently PipeWire Media Server)
sysdefault:CARD=Audio
    USB Audio, USB Audio
    Default Audio Device
front:CARD=Audio,DEV=0
    USB Audio, USB Audio
    Front output / input
sysdefault:CARD=III
    HyperX Cloud III, USB Audio
    Default Audio Device
front:CARD=III,DEV=0
    HyperX Cloud III, USB Audio
    Front output / input

Send the output of commands:

wpctl inspect 85
wpctl inspect 84

and finally:

wpctl inspect 86

Thanks for helping btw!

jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8:~/Downloads$ wpctl inspect 85
id 85, type PipeWire:Interface:Node
    alsa.card = "3"
    alsa.card_name = "HyperX Cloud III"
    alsa.class = "generic"
    alsa.components = "USB03f0:089d"
    alsa.device = "0"
    alsa.driver_name = "snd_usb_audio"
    alsa.id = "III"
    alsa.long_card_name = "HP, Inc HyperX Cloud III at usb-0000:10:00.0-8, full speed"
    alsa.mixer_name = "USB Mixer"
    alsa.name = "USB Audio"
    alsa.resolution_bits = "16"
    alsa.subclass = "generic-mix"
    alsa.subdevice = "0"
    alsa.subdevice_name = "subdevice #0"
    alsa.sync.id = "00000000:00000000:00000000:00000000"
    api.alsa.card.longname = "HP, Inc HyperX Cloud III at usb-0000:10:00.0-8, full speed"
    api.alsa.card.name = "HyperX Cloud III"
    api.alsa.path = "front:3"
    api.alsa.pcm.card = "3"
    api.alsa.pcm.stream = "playback"
    audio.channels = "2"
    audio.position = "[ FL, FR ]"
    card.profile.device = "3"
  * client.id = "50"
    clock.quantum-limit = "8192"
    device.api = "alsa"
    device.bus = "usb"
    device.class = "sound"
    device.icon-name = "audio-card-analog"
  * device.id = "56"
    device.profile.description = "Analog Stereo"
    device.profile.name = "analog-stereo"
    device.routes = "1"
  * factory.id = "19"
    factory.name = "api.alsa.pcm.sink"
    library.name = "audioconvert/libspa-audioconvert"
  * media.class = "Audio/Sink"
  * node.description = "HyperX Cloud III Analog Stereo"
    node.driver = "true"
    node.loop.name = "data-loop.0"
  * node.name = "alsa_output.usb-HP__Inc_HyperX_Cloud_III_000000000000-00.analog-stereo"
  * node.nick = "HyperX Cloud III"
    node.pause-on-idle = "false"
  * object.path = "alsa:acp:III:3:playback"
  * object.serial = "90"
    port.group = "playback"
  * priority.driver = "1109"
  * priority.session = "1109"
jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8:~/Downloads$ wpctl inspect 84
id 84, type PipeWire:Interface:Node
    alsa.card = "2"
    alsa.card_name = "USB Audio"
    alsa.class = "generic"
    alsa.components = "USB0db0:422d"
    alsa.device = "2"
    alsa.driver_name = "snd_usb_audio"
    alsa.id = "Audio"
    alsa.long_card_name = "Generic USB Audio at usb-0000:10:00.0-6, high speed"
    alsa.mixer_device = "_ucm0003.hw:Audio"
    alsa.mixer_name = "USB Mixer"
    alsa.name = "USB Audio #2"
    alsa.resolution_bits = "16"
    alsa.subclass = "generic-mix"
    alsa.subdevice = "0"
    alsa.subdevice_name = "subdevice #0"
    alsa.sync.id = "00000000:00000000:00000000:00000000"
    api.alsa.card.longname = "Generic USB Audio at usb-0000:10:00.0-6, high speed"
    api.alsa.card.name = "USB Audio"
    api.alsa.open.ucm = "true"
    api.alsa.path = "hw:Audio,2"
    api.alsa.pcm.card = "2"
    api.alsa.pcm.stream = "capture"
    audio.channels = "2"
    audio.position = "[ FL, FR ]"
    card.profile.device = "14"
  * client.id = "50"
    clock.quantum-limit = "8192"
    device.api = "alsa"
    device.bus = "usb"
    device.class = "sound"
    device.icon-name = "audio-card-analog"
    device.icon_name = "audio-input-microphone"
  * device.id = "55"
    device.profile.description = "Microphone"
    device.profile.name = "HiFi: Mic: source"
    device.routes = "1"
  * factory.id = "19"
    factory.name = "api.alsa.pcm.source"
    library.name = "audioconvert/libspa-audioconvert"
  * media.class = "Audio/Source"
  * node.description = "USB Audio Microphone"
    node.driver = "true"
    node.loop.name = "data-loop.0"
  * node.name = "alsa_input.usb-Generic_USB_Audio-00.HiFi__Mic__source"
  * node.nick = "USB Audio #2"
    node.pause-on-idle = "false"
  * object.path = "alsa:acp:Audio:14:capture"
  * object.serial = "89"
    port.group = "capture"
  * priority.driver = "1812"
  * priority.session = "1812"
jorrit@2a02-1811-2d80-6c00-6a35-a685-f055-19b8:~/Downloads$ wpctl inspect 86
id 86, type PipeWire:Interface:Node
    alsa.card = "3"
    alsa.card_name = "HyperX Cloud III"
    alsa.class = "generic"
    alsa.components = "USB03f0:089d"
    alsa.device = "0"
    alsa.driver_name = "snd_usb_audio"
    alsa.id = "III"
    alsa.long_card_name = "HP, Inc HyperX Cloud III at usb-0000:10:00.0-8, full speed"
    alsa.mixer_name = "USB Mixer"
    alsa.name = "USB Audio"
    alsa.resolution_bits = "16"
    alsa.subclass = "generic-mix"
    alsa.subdevice = "0"
    alsa.subdevice_name = "subdevice #0"
    alsa.sync.id = "00000000:00000000:00000000:00000000"
    api.alsa.card.longname = "HP, Inc HyperX Cloud III at usb-0000:10:00.0-8, full speed"
    api.alsa.card.name = "HyperX Cloud III"
    api.alsa.path = "hw:3"
    api.alsa.pcm.card = "3"
    api.alsa.pcm.stream = "capture"
    audio.channels = "1"
    audio.position = "[ MONO ]"
    card.profile.device = "2"
  * client.id = "50"
    clock.quantum-limit = "8192"
    device.api = "alsa"
    device.bus = "usb"
    device.class = "sound"
    device.icon-name = "audio-card-analog"
  * device.id = "56"
    device.profile.description = "Mono"
    device.profile.name = "mono-fallback"
    device.routes = "1"
  * factory.id = "19"
    factory.name = "api.alsa.pcm.source"
    library.name = "audioconvert/libspa-audioconvert"
  * media.class = "Audio/Source"
  * node.description = "HyperX Cloud III Mono"
    node.driver = "true"
    node.loop.name = "data-loop.0"
  * node.name = "alsa_input.usb-HP__Inc_HyperX_Cloud_III_000000000000-00.mono-fallback"
  * node.nick = "HyperX Cloud III"
    node.pause-on-idle = "false"
  * object.path = "alsa:acp:III:2:capture"
  * object.serial = "91"
    port.group = "capture"
  * priority.driver = "2100"
  * priority.session = "2100"

I have been reading a lot on this subject and seems that it could be a linux kernel bug with the ALC4080 where it fails to boost the recording volume of the HyperX CloudIII. On Windows the HyperX NGENUITY software does this but they don’t have support for linux

I actually solved the problem but I don’t really understand why. I basically just had to press the ‘set as default’ button next to my audio recording device in pavucontrol. That’s it. Recording volume levels are now VERY good and I actually have to tone things down.

So yes, consider this mysterious but solved :slight_smile:

You can set your own message as “solved” by clicking the box

Yes I was looking for that but I can’t see that button? Where would it be located?

It should say “Solution” with a “box check-marked” icon

Ah found it. Thanks!