Files
rob thijssen 9b28150c86 Pin the built-in card to S16_LE for PipeWire
The ADSP front-end advertises S24_LE and then garbles it: playback runs
without an error, consumes data at rate, powers every DAPM widget, and
produces ~-48 dB of near-silence. PipeWire prefers the widest advertised
format, so every PipeWire client was inaudible while aplay and
speaker-test, which default to S16_LE, worked. One wireplumber rule pins
the format until the q6asm handling is fixed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011XgGF5wfxLDAybVnNz6eNQ
2026-07-28 12:02:19 +03:00

21 lines
698 B
Plaintext

# The sdm845 ADSP front-end advertises S24_LE (24-bit samples in 32-bit
# containers) and then garbles it — playback runs without a single error,
# consumes data at the right rate, powers every DAPM widget, and produces
# roughly -48 dB of near-silence. PipeWire prefers the widest format a device
# offers, so out of the box every PipeWire client is inaudible while
# aplay/speaker-test, which default to S16_LE, work fine.
#
# Pin the built-in card to S16_LE until the q6asm format handling is fixed.
monitor.alsa.rules = [
{
matches = [
{ node.name = "~alsa_output.platform-sound.*" }
]
actions = {
update-props = {
audio.format = "S16LE"
}
}
}
]