All of lore.kernel.org
 help / color / mirror / Atom feed
From: GitHub issues - opened <github@alsa-project.org>
To: alsa-devel@alsa-project.org
Subject: Internal microphone saturates at 100% volume on ASUS TUF Gaming A15 (Realtek ALC256)
Date: Sun, 14 Jun 2026 16:28:16 +0200 (CEST)	[thread overview]
Message-ID: <18b8f8e013cfda00-webhooks-bot@alsa-project.org> (raw)
In-Reply-To: <18b8f8e013c3d000-webhooks-bot@alsa-project.org>

alsa-project/alsa-ucm-conf issue #790 was opened from Giossue:

### Summary

The internal microphone of the ASUS TUF Gaming A15 (FA506QM) saturates/distorts when the system capture volume is set above ~50%. The ALSA hardware volume range is 0–63 steps, where step 63 corresponds to approximately +30 dB. At step 31 (~0 dB / ~49% physical gain) the microphone sounds clean.

Currently, the default profile exposes the full 0–63 step range to the UI volume slider, so 100% system volume maps to +30 dB physical gain, clipping the built-in microphone capsule.

I am opening this issue to request an upstream fix (such as a UCM profile or hardware quirk) for this laptop model, so the limitation is applied correctly at the ALSA level for all Linux distributions.

### Environment

- **Hardware:** ASUS TUF Gaming A15 (FA506QM)
- **Audio codec:** Realtek ALC256 (`HDA:10ec0256,10431682,00100002`)
- **Distribution:** CachyOS / Arch Linux base
- **Kernel:** 6.11-cachyos (or specify exact version)
- **PipeWire:** 1.0.0 (or specify exact version)
- **Desktop:** KDE Plasma 6, Wayland

### Steps to reproduce

1. Boot the laptop on a fresh Linux session.
2. Open any application that uses the internal microphone (Discord, WebRTC, Audacity, etc.).
3. Set the microphone volume to 100% in the system mixer.
4. Record or monitor the microphone.

### Expected behavior

At 100% UI system volume, the microphone should reach a clean, non-saturating gain level suitable for the built-in mic capsule (hardware step 31 / 0 dB).

### Actual behavior

The audio is heavily distorted/clipped due to excessive hardware gain. Lowering the system volume to around 50% makes it sound clean.

### ALSA hardware details

```bash
$ amixer -c 2 sget Capture
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 63
  Front Left: Capture 63 [100%] [30.00dB] [on]
  Front Right: Capture 63 [100%] [30.00dB] [on]
```

- Step 0 ≈ -96 dB (effectively muted)
- Step 31 ≈ 0 dB / ~49% physical gain (clean level)
- Step 63 ≈ +30 dB / 100% physical gain (saturates)

### User-space Workaround used

I managed to solve this locally using PipeWire/PulseAudio ALSA Card Profiles, but I understand this should ideally be handled by ALSA UCM or kernel quirks:

1. Custom ALSA Card Profile in `/etc/alsa-card-profile/mixer/profile-sets/default.conf`:
```ini
[DecibelFix Capture]
db-values = 0:-96.00  31:0.00
```

2. WirePlumber rule in `~/.config/wireplumber/wireplumber.conf.d/mic-ignore-db.conf`:
```lua
monitor.alsa.rules = [
  {
    matches = [
      {
        device.name = "alsa_card.pci-0000_06_00.6"
      }
    ]
    actions = {
      update-props = {
        api.alsa.ignore-dB = true
      }
    }
  }
]
```

Result after this workaround:
100% UI volume maps to step 31/63 (~49% physical hardware gain). The microphone is completely clean and the whole UI slider remains usable.

### Suggested fix

Implement a UCM2 profile or hardware database quirk for the ASUS TUF Gaming A15 (`HDA:10ec0256,10431682,00100002`) that correctly limits the `Capture` maximum to 0 dB, so upper layers (WirePlumber/PulseAudio) map 100% volume safely.

### Additional information

I am willing to test any UCM configurations or fixes. My `alsa-info.sh` output is: https://alsa-project.org/db/?f=dc8efae429325ead7103381ee34884c5f9d735e5

Issue URL     : https://github.com/alsa-project/alsa-ucm-conf/issues/790
Repository URL: https://github.com/alsa-project/alsa-ucm-conf

           reply	other threads:[~2026-06-14 14:28 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <18b8f8e013c3d000-webhooks-bot@alsa-project.org>]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=18b8f8e013cfda00-webhooks-bot@alsa-project.org \
    --to=github@alsa-project.org \
    --cc=alsa-devel@alsa-project.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.