Ubuntuでライン入力の音声をそのまま再生する

PCのライン入力端子やマイク入力端子からの音声をそのまま再生する方法です。
Ubuntu 16.04で確認しましたが、PulseAudioを採用したディストリビューションなら同じ方法でできるはずです。

簡単な方法

$ pactl load-module module-loopback

これだけでライン入力の音声がそのまま再生されるはずです。
上記コマンドのload-moduleunload-moduleに置き換えると再生は止まります。

遅延が少ない方法

上記の方法では数百ミリ秒ほど遅延が発生します。
pacatという入出力の音声データを生で扱えるコマンドをパイプでつなぐことで遅延を少なくすることができます。
まずは以下のコマンドを実行します。

$ pactl info

以下のコマンドの<入力デバイス名>と<再生デバイス名>を、上記のコマンドの実行結果のDefault Sink(再生デバイス名)とDefault Source(入力デバイス名)で置き換えて実行します。

$ pacat -r --latency-msec=1 -d <入力デバイス名> | pacat -p --latency-msec=1 -d <再生デバイス名>

参考

Fix PulseAudio loopback delay – The Linux Experiment

Ubuntu 16.04でサウンド出力をモノラルにする

PulseAudioの仮想シンクを作成してモノラル出力する方法です。

環境

  • OS : Ubuntu 16.04

前準備

普通に音楽などを再生してシステムの音量(プレーヤーの音量ではない)を聞くことのできる限界まで上げてください。

PulseAudioの設定

    以下のコマンドを実行して、デフォルトシンク名(出力先)をコピーしておきます。

    $ pacmd stat | grep "Default sink name:"
    Default sink name: alsa_output.pci-0000_00_1f.3.analog-stereo
    


    以下のコマンドで仮想シンクを作成します。<デフォルトシンク名>を前のコマンドで取得したもので置き換えてください。

    $ pacmd load-module module-remap-sink master=<デフォルトシンク名> sink_name=mono channels=2 channel_map=mono,mono

    確認

    • [システム設定]→[サウンド]でサウンドの出力先を仮想シンク(多分、「Remapped 内部オーディオ アナログステレオ」)に設定します。
    • こういう動画とかを再生して、モノラルになっているか確認します。

    設定の永続化

    作成した仮想シンクは再起動すると消えてしまうので、設定ファイルに書き込みます。
    /etc/pulse/default.paに以下の設定を書き込みます。

    load-module module-remap-sink master=<デフォルトシンク名> sink_name=mono channels=2 channel_map=mono,mono
    set-default-sink mono

    参考