39

Is there an easy way of forcing mono sound output - for one ear, one earphone, one speaker?

0

6 Answers 6

40

~VIA~ Translated from French (and considering the correction signaled at the end of the forum page)

You can use the module to remap pulseaudio:

In a terminal:

pacmd list-sinks | grep name:

It will send you the name of the stereo output used. Then you type (replacing with the name you have found):

pacmd load-module module-remap-sink sink_name=mono master=THE_NAME_FROM_THE_PREVIOUS_COMMAND channels=2 channel_map=mono,mono

(In my case that was:

pacmd load-module module-remap-sink sink_name=mono master=alsa_output.pci-0000_00_1e.2.analog-stereo channels=2 channel_map=mono,mono

)

If you open the Sound Preferences you should now have a mono output available. To have that permanently:

gksudo gedit /etc/pulse/default.pa

then you add in the file:

#Remapping output stereo to mono
load-module module-remap-sink sink_name=mono master=THE_NAME_FROM_THE_PREVIOUS_COMMAND channels=2 channel_map=mono,mono

enter image description here

(The image is from the sound settings of Elementary OS Luna).

8
  • Very Useful... ;-)
    – Wilf
    Jan 26, 2014 at 18:10
  • 2
    How do you change the name of the new sink, to change the default name 'Remapped Built-in Audio Analog Stereo' in the System Settings - Sound GUI?
    – jII
    Jun 27, 2015 at 20:47
  • Warning to people using PulseAudio Multiband Equalizer: this fix successfully put my sound output to mono but the equalizer stopped working.
    – Jam
    May 13, 2017 at 18:52
  • This was extremely helpful. I'd suggest getting rid of gksudo since it's been removed from Ubuntu though.
    – Deoxal
    Nov 29, 2020 at 8:12
  • @jII Use sink_properties="device.description='your preferred description'" in the command line.
    – jarno
    Nov 30, 2022 at 18:20
12

Yet another solution. I like command line solution and used it very long time.

But I found good application: PulseEffects and there is a way to make mono with good GUI app.

Installation:

flatpak install com.github.wwmm.pulseeffects
if u don't have flatpak yet (on ubuntu for example), you can install it

Configuration

  1. Stereo Tools
  2. Stereo Mix
  3. LR > L+R (Mono Sum L+R)

enter image description here

4
  • Worked like a charm. My sound card doesn't support mono despite dozens of variants of HD this and surround sound that... has no one else used broken headphones? The other features look great too.
    – John P
    Dec 9, 2021 at 8:24
  • It does support mono. Mono is just same signal on both channels. You can always make mono sound physically: just solder left and right channel (on Jack plug) together and you will get mono output.
    – RedEyed
    Dec 10, 2021 at 8:55
  • Thanks for the definition. After trying with Pulse Audio and Gnome Alsa Mixer and looking through all the output options, I never found any option to output mono audio. And no, physically tampering with the hardware does not mean you're producing a mono signal. (Nor is it "support" any more than replacing the hardware is.) Consider BT headphones, Chromecast/HDMI, remote streaming, etc. This came up recently where a (single) YT video was missing one channel (the capture messed up.) Software solutions always, always come before you mess with solder.
    – John P
    Dec 11, 2021 at 1:10
  • Agree. I mean, that mono si easy deal: just mathematically add 2 signals (left right) and you get mono
    – RedEyed
    Dec 12, 2021 at 6:18
6

This answer is a mix of the two answers, witch are not generic (channels names "left" and "right" are defined by the soundcard vendor and can vary).

The global idea is to use module-remap-sink as suggested by other answers. We will replace [skinID], [left_channel_name] and [right_channel_name] by values found later:

pacmd load-module module-remap-sink sink_name=combined-mono master=[skinID] channels=4 master_channel_map=[right_channel_name],[left_channel_name],[right_channel_name],[left_channel_name] channel_map=[left_channel_name],[left_channel_name],[right_channel_name],[right_channel_name]

This will create a double-mono sink output that we can set to be the default one (done below).

1 - find [skinID]

pacmd list-sinks

In my case, only one sink is present; corresponding to the only sound card available:

index: 0
    name: <alsa_output.pci-0000_00_1f.3.analog-stereo>

=> I can use either "0" or "alsa_output.pci-0000_00_1f.3.analog-stereo" for [skinID]

2 - find [left_channel_name] and [right_channel_name]

pacmd list-sinks | grep -m1 "channel map:"

In my case, it gives:

channel map: front-left,front-right

So, for me [left_channel_name] = "front-left" and [right_channel_name]="front-right"

3 - Apply changes

To make changes effective, I'll to run (in my case)

pactl load-module module-remap-sink sink_name=combined-mono master=0 channels=4 master_channel_map=front-right,front-left,front-right,front-left channel_map=front-left,front-left,front-right,front-right
pactl set-default-sink combined-mono

=> the first command's arguments are to adapt to each case ! Read the entiere post for details

To verify, you can play this video

4 (optional) - Make changes permanant

To keep this settings and have them applied each time the computer starts:

  • copy /etc/pulse/default.pa => ~/.pulse/default.pa (if not already done)
  • add the two commands to the end of file, without "pactl " at the beginning

    => in my case, this gives:

    load-module module-remap-sink sink_name=combined-mono master=0 channels=4 master_channel_map=front-right,front-left,front-right,front-left channel_map=front-left,front-left,front-right,front-right
    set-default-sink combined-mono
    
1
  • 1
    skinID => sinkID May 7, 2020 at 11:53
4

I had problems with both of these answers. When I tried the accepted answer, the only thing that would come out of the speaker was noise. After some searching, I found another solution that might work better for you:

pacmd load-module module-remap-sink sink_name=mono master=alsa_output.pci-0000_00_1b.0.analog-stereo channels=4 channel_map=left,right,left,right master_channel_map=left,left,right,right

Replace alsa_output.pci-0000_00_1b.0.analog-stereo with the sink name you get from

pacmd list-sinks | grep name:

Follow the steps in the accepted answer if you would like to make this solution permanent.

1
  • I get the same sink name as you, but when I run the command I get the output: >>> Module load failed. Using Ubuntu 14.04 Aug 31, 2014 at 15:40
4

Installing Gnome Alsa Mixer by executing

$sudo apt-get install gnome-alsamixer

there are some options:

"Mono Output Select" and "Mix Mono"

enter image description here

1
  • 4
    These options do not appear on every soundcard; when I installed it the only options there were "auto-mute", "IEC958" and "Loopback mixing", nothing to do with mono outputs.
    – Jez W
    Aug 2, 2017 at 8:52
0

The following sets mono audio to the left channel of sink 0 so it forces sound on one speaker only:

pacmd load-module module-remap-sink master=0 sink_name=mono-to-left sink_properties='device.description="mono to left of sink 0"' channels=1 channel_map=mono master_channel_map=left

If you want mono sound on all channels, apply the following:

pacmd load-module module-remap-sink master=0 sink_name=mono sink_properties='device.description="mono to sink 0"' channels=1 channel_map=mono

I have not tested that with output sinks that have more than two channels.

You must log in to answer this question.