Force downmix to mono on Linux
I haven't done any extensive testing, but this ~/.asoundrc
file (or /etc/asound.conf
) should work for anything that uses ALSA. Assumes that you only want to deal with two in-channels (left and right), and that your soundcard is at hw:0
.
pcm.!default makemono
pcm.makemono {
type route
slave.pcm "hw:0"
ttable {
0.0 1 # in-channel 0, out-channel 0, 100% volume
1.0 1 # in-channel 1, out-channel 0, 100% volume
}
}
Check out the official documentation for details on how to fine-tune/complicate things further.
Related videos on Youtube
Neo
Updated on September 17, 2022Comments
-
Neo over 1 year
For personal reasons (I'm hearing impaired) I need my linux machine to produce mono downmixed sound. Downmixed, not just single channel.
Is there any possibility to force such behavior in ALSA / PulseAudio server? Hardware mixing (short-circuiting L and R channels with some resistors) is not possible at the moment. I'm looking for a software solution to mix two channels into one.
I know that some media players have this functionality, but I'd like the whole system (ie games, flash applications, etc) to produce downmixed audio.
-
We Are All Monica almost 5 yearsThis got me on the right track, thank you! Now that PulseAudio is a thing, I had to also copy
/etc/pulse/default.pa
to~/.config/pulse/default.pa
and uncomment the line that saysload-module module-alsa-sink
, then runpulseaudio -k
to pick up the changes. See also: superuser.com/a/1158248/9599