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
parent 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox