Posso downmixare l'audio stereo in mono?


41

Ho un altoparlante vicino al mio computer che uso principalmente come amplificatore per cuffie. A volte ho bisogno di usarlo come altoparlante. È possibile cambiare rapidamente l'uscita audio da stereo a mono, a livello di sistema o come plug-in per un lettore multimediale?

sound 

Come nota a margine posso farlo sul mio telefono Android usando l'app Voodoo Control che richiede un kernel personalizzato che ottimizza l'amplificatore per cuffie trovato nei telefoni galassia
daithib8

Risposte:


59
  1. Trova il nome del tuo audio sink eseguendo

    pacmd list-sinks | grep name:
  2. Quindi eseguire questo comando (avendo cura di rimuovere le parentesi angolate):

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

    oppure aggiungi l'argomento a pacmdper /etc/pulse/default.pafarlo funzionare all'avvio.

  3. Quindi in Preferenze audio scegli "Mono" come uscita, ma ricorda di ridurre i volumi della metà, poiché due canali si stanno mescolando in uno, altrimenti avrai distorsione. Per testare, esegui:

    speaker-test -c 2 -t sine

Stessa cosa in un singolo 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. Per rimuovere il canale mono, basta usare:

    pacmd unload-module module-remap-sink

Ha funzionato come un fascino! Roba buona! Ho dovuto farlo perché mi rimaneva solo 1 altoparlante (di 4 altoparlanti, usando solo il connettore frontale) e il DVD Phone Booth stava riproducendo un suono nel canale sbagliato o qualcosa del genere.
Bruce van der Kooij,

Sono l'unico che ottiene distorsione del suono del sistema anche a bassi volumi quando provo questo?
Severo Raz,

2
Assicurati di ridurre il volume "Applicazioni" (disponibile anche nelle Preferenze audio) e il volume "Uscita". Se si riproduce musica dal terminale, è possibile regolare quel volume da lì.
daithib8

4
Solo un commento per chiunque si confonda un po '(come ho fatto io): quando @ daithib8 scrive "o aggiungi l'argomento a pacmd in /etc/pulse/default.pa", ciò significa fare sudo emacs /etc/pulse/default.pa( sudo nanoo qualunque editor tu preferisca), scorrendo verso il basso fino alla fine, quindi incollando tutto dal comando tranne la pacmd parte in una nuova riga nella parte inferiore del file. Quindi salva e riavvia :-)
machineghost

1
Sei un vero toccasana per le persone con perdita dell'udito unilaterale.
Omri Barel

14

Ho inserito la risposta 1 in uno script perl, quindi non ho bisogno di ricordare questi 2 comandi:

#!/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));

(Avrei annotato quella risposta, ma il mio karma è troppo basso ;-))


Come puoi nascondere l'output del comando pacmd?
jarno,

2
Oh, potresti sostituire il comando exec con exec "pacmd load-module module-remap-sink sink_name=hono master=$choice channels=1 channel_map=mono >/dev/null";(Questo nasconde l'output e utilizza una mappatura leggermente più semplice.)
jarno

3

Se stai usando jack , puoi farlo usando patchage (che può essere installato con apt-get install patchage). Ha un'interfaccia molto intuitiva.


Quindi cosa fai dopo aver installato patchage? Non c'è aiuto nel menu "Aiuto" e non riesco a trovare un manuale o un'introduzione sul sito web .
user800

@ user800: collega pulse_sink sinistra / destra e jack sink sinistra / destra alla riproduzione del
sistema_1

1

Sembra che non ci sia un modo semplice per farlo.

Puoi farlo però, eseguendo il proxy di tutte le uscite PulseAudio su un sink Jack. Troppo ingombrante per essere usato casualmente ...


0

Potresti essere in grado di utilizzare il gestore delle impostazioni audio pulseaudio per cambiare stereo in mono. O forse puoi provare semplicemente a spostare tutto sull'altoparlante sinistro o destro.


Il pan non funzionerà. Non mescolerà entrambi i canali insieme, silenzerà uno degli altoparlanti e prenderà solo l'uscita da uno dei canali.
Rafał Cieślak,

La panoramica è ciò che David chiede. La panoramica è l'atto di mescolare due canali insieme per trasmetterli a un solo altoparlante, di solito per dare l'impressione che il suono provenga da una direzione particolare. Da qui il nome pan (orama) ing. Una variante di questo, chiamata panning straight up , mescola i canali insieme ma trasmette una quantità uguale del risultato a ciascun diffusore. Dal momento che usa solo un oratore, questo funzionerebbe anche per lui. Il controllo del volume Pulseaudio regola solo il bilanciamento, in cui il volume di ciascun diffusore viene regolato anche se non avviene alcun missaggio.
daithib8,

0

Come addendum, dopo aver creato il sink mono con le risposte sopra, è possibile associare questo script a un tasto di scelta rapida:

 #!/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;

Questo commuta tra i lavelli e rimappa il flusso corrente sul nuovo lavandino (ma

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.