CachyOS / CachyOS/CachyOS-Settings

Internal microphone saturates at 100% volume on ASUS TUF Gaming A15 (Realtek ALC256)

Open
#238 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
Shell
Stars
443
Forks
76
PR merge metrics
No merged PRs in 30d

Description

## Internal microphone saturates at 100% volume on ASUS TUF Gaming A15 (Realtek ALC256)

### 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.

This is a model-specific hardware profile issue. The default PipeWire/ACP profile exposes the full 0–63 step range to the UI volume slider, so 100% system volume maps to +30 dB physical gain and clips the built-in microphone capsule.

I solved it locally with a custom ALSA Card Profile and a WirePlumber rule. It would be great if CachyOS could ship a corrected profile for this laptop model.

### Environment

- **Hardware:** ASUS TUF Gaming A15 (FA506QM)
- **Audio codec:** Realtek ALC256 (`HDA:10ec0256,10431682,00100002`)
- **Distribution:** CachyOS
- **Kernel:** 7.0.11-1-cachyos
- **PipeWire:** 1.6.6
- **Session server:** PipeWire with PulseAudio compatibility
- **Desktop:** KDE Plasma 6, Wayland

### Steps to reproduce

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

### Expected behavior

At 100% system volume the microphone should be at a clean, non-saturating gain level suitable for the built-in mic capsule.

### Actual behavior

The audio is heavily distorted/clipped. 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)

### Workaround used

1. Created a 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. Created a 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 workaround:

| System volume | Physical hardware step | Physical gain |
|---------------|------------------------|---------------|
| 100% | 31 / 63 | ~49% |
| 75% | 23 / 63 | ~37% |
| 50% | 16 / 63 | ~25% |
| 25% | 8 / 63 | ~13% |

The microphone is now clean at 100% system volume and the whole volume slider remains usable. Applications still detect the microphone normally.

### Suggested fix

Ship a model-specific ALSA/ACP profile for the ASUS TUF Gaming A15 + Realtek ALC256 (`HDA:10ec0256,10431682,00100002`) that limits the `Capture` control maximum to step 31, or applies a `DecibelFix` so that 100% UI volume maps to the clean physical maximum.

### Additional information

I am willing to test any proposed fix. `alsa-info.sh` output can be provided if needed.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.