¿Puedo mezclar audio estéreo a mono?

41

Tengo un altavoz al lado de mi computadora que utilizo principalmente como amplificador de auriculares. En ocasiones necesito usarlo como un altavoz. ¿Es posible cambiar rápidamente la salida de audio de estéreo a mono, ya sea en todo el sistema o como complemento para un reproductor multimedia?


fuente
Como nota al margen, puedo hacer esto en mi teléfono Android usando la aplicación Voodoo Control que requiere un kernel personalizado que modifique el amplificador de auriculares que se encuentra en los teléfonos galaxy
daithib8

Respuestas:

59
  1. Encuentra el nombre de tu receptor de audio ejecutando

    pacmd list-sinks | grep name:
  2. Luego ejecute este comando (teniendo cuidado de eliminar los corchetes angulados):

    pacmd load-module module-remap-sink sink_name=mono master=<name_of_audio sink_given_by_previous_command> channels=2 channel_map=mono,mono

    o agregue el argumento a pacmdpara /etc/pulse/default.paque se ejecute al inicio.

  3. Luego, en Preferencias de sonido, elija "Mono" como salida, pero recuerde reducir los volúmenes a la mitad, ya que dos canales se mezclan en uno, o de lo contrario tendrá distorsión. Para probar, ejecute:

    speaker-test -c 2 -t sine

Lo mismo en un solo comando:

pacmd load-module module-remap-sink sink_name=mono master=$(pacmd list-sinks | grep -m 1 -oP 'name:\s<\K.*(?=>)') channels=2 channel_map=mono,mono
  1. Para eliminar el canal mono, solo use:

    pacmd unload-module module-remap-sink
daithib8
fuente
¡Trabajado como un encanto! ¡Buen material! Tuve que hacer esto porque solo me queda 1 altavoz (de 4 altavoces, usando solo el conector frontal) y el DVD de la cabina telefónica estaba reproduciendo algo de sonido en el canal incorrecto o algo así.
Bruce van der Kooij
¿Soy el único que obtiene distorsión del sonido del sistema incluso a bajos volúmenes cuando intento esto?
Severo Raz
2
Asegúrese de reducir el volumen de "Aplicaciones" (también se encuentra dentro de las Preferencias de sonido), así como el volumen de "Salida". Si reproduce música desde el terminal, puede ajustar ese volumen desde allí.
daithib8
44
Solo un comentario para cualquiera que se confunda un poco (como lo hice yo): cuando @ daithib8 escribe "o agrega el argumento a pacmd a /etc/pulse/default.pa", eso significa hacer sudo emacs /etc/pulse/default.pa(o el sudo nanoeditor que prefiera), desplazarse hacia abajo hasta el final y luego pegar todo, desde el comando, excepto la pacmd parte en una nueva línea en la parte inferior del archivo. Luego guarde y reinicie :-)
machineghost
1
Es un salvavidas para las personas con pérdida auditiva unilateral.
Omri Barel
14

Lancé la respuesta 1 en un script perl, por lo que no necesito recordar estos 2 comandos:

#!/usr/bin/perl
use strict;

my @choices = ();
my $i = 0;
for (`pacmd list-sinks`) {
    if( /name:.*<(.+)>/) {
        $choices[$i++] = $1;
        print "$i:\t$1\n";
    }
}
my $choice = $choices[<>-1] or die "invalid choice";
exec (qw(pacmd load-module module-remap-sink sink_name=mono),
    "master=$choice",
    qw(channels=2 channel_map=mono,mono));

(Hubiera anotado esa respuesta, pero mi karma es demasiado bajo ;-))

la vida del pie
fuente
¿Cómo se puede ocultar la salida del comando pacmd?
jarno
2
Oh, podría reemplazar el comando exec por exec "pacmd load-module module-remap-sink sink_name=hono master=$choice channels=1 channel_map=mono >/dev/null";(Esto oculta la salida y utiliza un mapeo un poco más simple.)
jarno
3

Si está utilizando un conector , puede hacerlo utilizando un parche (que se puede instalar con apt-get install patchage). Tiene una interfaz muy intuitiva.

manyids2
fuente
Entonces, ¿qué haces después de instalar el parche? No hay ayuda en el menú "Ayuda" y no puedo encontrar un manual o introducción en el sitio web .
usuario800
@ user800: conecte pulse_sink a la izquierda / derecha y el receptor de jack a la izquierda / derecha a la reproducción del
sistema_1
1

Parece que no hay una manera fácil de hacer esto.

Sin embargo, puede hacerlo mediante el proxy de toda la salida de PulseAudio a un receptor Jack. Demasiado engorroso para ser usado casualmente ...

Janus Troelsen
fuente
0

Es posible que pueda usar el administrador de configuración de sonido de pulseaudio para cambiar estéreo a mono. O tal vez puede intentar simplemente desplazar todo al altavoz izquierdo o derecho.


fuente
Paning no funcionará. No mezclará ambos canales, silenciará uno de los altavoces y tomará solo la salida de uno de los canales.
Rafał Cieślak
Paneo es lo que David está pidiendo. La panorámica es el acto de mezclar dos canales para emitirlos a un altavoz, generalmente para dar la impresión de que el sonido proviene de una dirección particular. De ahí el nombre pan (orama) ing. Una variante de esto, llamada panorámica directa , mezcla los canales pero genera una cantidad igual del resultado para cada altavoz. Como solo usa un altavoz, esto también funcionaría para él. El control de volumen de Pulseaudio solo ajusta el balance, donde se ajusta el volumen en cada altavoz aunque no se realiza la mezcla.
daithib8
0

Como anexo, después de haber creado su sumidero mono con las respuestas anteriores, puede asignar este script a una tecla de acceso rápido:

 #!/bin/bash

 if [ "* index: 0" == "$(pacmd list-sinks | grep "*" | sed 's/^ *//')" ];
    then pacmd set-default-sink 1 && notify-send "Mono";
    SINK=1;
 else
    pacmd set-default-sink 0 && notify-send "Stereo";
    SINK=0; 
 fi;
 pacmd list-sink-inputs | grep index | grep -o '[0-9]*' | while read -r line; 
    do pacmd move-sink-input $line $SINK;
 done;

Esto alternará entre sumideros y reasignará la transmisión actual al nuevo sumidero (ma

Leonardo Arroyo
fuente