Czy mogę zmiksować dźwięk stereo do mono?

40

Obok komputera mam jeden głośnik, którego używam głównie jako wzmacniacza słuchawkowego. Czasami muszę go używać jako głośnika. Czy można szybko zmienić wyjście audio ze stereo na mono, albo w całym systemie, albo jako wtyczka do odtwarzacza multimedialnego?


źródło
Na marginesie, mogę to zrobić na moim telefonie z Androidem za pomocą aplikacji Voodoo Control, która wymaga niestandardowego jądra, które poprawia wzmacniacz słuchawkowy znajdujący się w telefonach
Galaxy

Odpowiedzi:

58
  1. Znajdź nazwę swojego zlewu audio, uruchamiając

    pacmd list-sinks | grep name:
  2. Następnie uruchom to polecenie (uważając, aby usunąć nawiasy kątowe):

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

    lub dodaj argument pacmdaby /etc/pulse/default.pamieć go uruchomić przy starcie.

  3. Następnie w Preferencjach dźwięku wybierz „Mono” jako wyjście, ale pamiętaj, aby zmniejszyć głośność o połowę, ponieważ dwa kanały mieszają się w jeden, w przeciwnym razie wystąpią zniekształcenia. Aby przetestować, uruchom:

    speaker-test -c 2 -t sine

To samo w jednym poleceniu:

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. Aby usunąć kanał mono, po prostu użyj:

    pacmd unload-module module-remap-sink
daithib8
źródło
Działa jak urok! Dobry towar! Musiałem to zrobić, ponieważ mam tylko 1 głośnik (z 4 głośników, używając tylko przedniego złącza), a DVD z budki telefonicznej odtwarzało dźwięk w niewłaściwym kanale lub coś w tym stylu.
Bruce van der Kooij,
Czy jestem jedynym, który zniekształca dźwięk systemu nawet przy niskim poziomie głośności, gdy próbuję tego?
Severo Raz,
2
Pamiętaj, aby zmniejszyć głośność „Aplikacje” (także w Preferencjach dźwięku), a także głośność „Wyjście”. Jeśli odtwarzasz muzykę z terminala, możesz wyregulować głośność stamtąd.
daithib8
4
Tylko komentarz dla każdego, kto jest trochę zdezorientowany (tak jak ja): kiedy @ daithib8 pisze „lub dodaj argument do pacmd do /etc/pulse/default.pa”, oznacza to wykonanie sudo emacs /etc/pulse/default.pa( sudo nanolub dowolnego edytora, który wolisz), przewijanie w dół do końca, a następnie wklejanie wszystkiego od polecenia z wyjątkiem pacmd części do nowego wiersza na dole pliku. Następnie zapisz i uruchom ponownie :-)
machineghost
1
Ratujesz życie osobom z jednostronnym ubytkiem słuchu.
Omri Barel,
14

Wrzuciłem odpowiedź 1 do skryptu perl, więc nie muszę pamiętać tych 2 poleceń:

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

(Zanotowałbym tę odpowiedź, ale moja karma jest za niska ;-))

życie ciasta
źródło
Jak ukryć dane wyjściowe polecenia pacmd?
jarno
2
Och, możesz zamienić polecenie exec na exec "pacmd load-module module-remap-sink sink_name=hono master=$choice channels=1 channel_map=mono >/dev/null";(Ukrywa wyjście i używa nieco prostszego mapowania.)
jarno
3

Jeśli używasz wtyczki jack , możesz to zrobić za pomocą łatki (którą można zainstalować za pomocą apt-get install patchage). Ma bardzo intuicyjny interfejs.

manyids2
źródło
Co robisz po zainstalowaniu łatki? W menu „Pomoc” nie ma pomocy i nie mogę znaleźć instrukcji ani wstępu na stronie internetowej .
użytkownik800
@ user800: podłącz puls_sink lewy / prawy i jack sink lewy / prawy do odtwarzania
systemu_1
1

Wydaje się, że nie ma łatwego sposobu na zrobienie tego.

Możesz to jednak zrobić, przybliżając wszystkie wyjścia PulseAudio do zlewu Jack. Zbyt kłopotliwe, aby można było z niej swobodnie korzystać ...

Janus Troelsen
źródło
0

Możesz użyć menedżera ustawień dźwięku pulseaudio, aby zmienić stereo na mono. A może możesz po prostu przesuwać wszystko do lewego lub prawego głośnika.


źródło
Przesuwanie nie działa. Nie zmiksuje obu kanałów razem, wyciszy jeden z głośników i odbierze tylko sygnał wyjściowy z jednego z kanałów.
Rafał Cieślak
Panoramowanie jest tym, o co prosi David. Przesuwanie polega na zmiksowaniu dwóch kanałów, aby wyprowadzić je do jednego głośnika, zwykle w celu uzyskania wrażenia, że ​​dźwięk dochodzi z określonego kierunku. Stąd nazwa pan (orama) ing. Odmiana tego, zwana przesuwaniem w górę , miksuje kanały razem, ale przekazuje jednakową ilość wyników każdemu głośnikowi. Ponieważ używa tylko jednego głośnika, to też by na niego działało. Regulacja głośności Pulseaudio reguluje tylko balans, przy czym głośność każdego głośnika jest regulowana, ale nie następuje miksowanie.
daithib8
0

Jako dodatek, po utworzeniu zlewu mono z powyższymi odpowiedziami, możesz zmapować ten skrypt na skrót:

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

Spowoduje to przełączanie między zlewami i ponowne mapowanie bieżącego strumienia na nowy zlew (ma

Leonardo Arroyo
źródło