主にヘッドフォンアンプとして使用するスピーカーがコンピューターの横に1つあります。ときどき、スピーカーとして使用する必要があります。システム全体またはメディアプレーヤーのプラグインとして、オーディオ出力をステレオからモノラルにすばやく変更できますか?
主にヘッドフォンアンプとして使用するスピーカーがコンピューターの横に1つあります。ときどき、スピーカーとして使用する必要があります。システム全体またはメディアプレーヤーのプラグインとして、オーディオ出力をステレオからモノラルにすばやく変更できますか?
回答:
実行して、オーディオシンクの名前を見つけます
pacmd list-sinks | grep name:
次に、次のコマンドを実行します(山括弧を削除するよう注意してください):
pacmd load-module module-remap-sink sink_name=mono master=<name_of_audio sink_given_by_previous_command> channels=2 channel_map=mono,mono
または、引数をpacmd
to /etc/pulse/default.pa
に追加して、起動時に実行します。
次に、[ サウンド設定]で出力として[モノ]を選択しますが、2つのチャンネルが1つにミックスされるか、歪みが生じるため、音量を半分に減らすことを忘れないでください。テストするには、次を実行します。
speaker-test -c 2 -t sine
単一のコマンドで同じこと:
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
モノラルチャンネルを削除するには、次を使用します。
pacmd unload-module module-remap-sink
sudo emacs /etc/pulse/default.pa
(またはsudo nano
、またはあなたが好むものは何でも編集者)最後までスクロールし、コマンドのpacmd
一部を除くすべてをファイルの下部の新しい行に貼り付けます。次に、保存して再起動します:-)
答え1をperlスクリプトにキャストしたので、次の2つのコマンドを覚えておく必要はありません。
#!/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));
(私はその答えに注釈を付けたでしょうが、私のカルマは低いです;-))
exec "pacmd load-module module-remap-sink sink_name=hono master=$choice channels=1 channel_map=mono >/dev/null";
(これにより、出力が非表示になり、マッピングが少し単純になります。)
これを行う簡単な方法はないようです。
ただし、PulseAudioのすべての出力をジャックシンクにプロキシすることで、それを行うことができます。気軽に使用するには面倒です...
pulseaudioサウンド設定マネージャーを使用して、ステレオをモノラルに変更できる場合があります。または、左または右のスピーカーにすべてをパンしてみてください。
補遺として、上記の回答を使用してモノシンクを作成した後、このスクリプトをホットキーにマッピングできます。
#!/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;
これにより、シンクが切り替わり、現在のストリームが新しいシンクに再マップされます(ma