Mono sound output in Ubuntu?

~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).


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
    

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.