pulseaudioのコンフィグに頼らずオーディオサンプリングレートを設定する方法(ubuntu 22.04)
ubuntu 22.04にて、pulseaudioのコンフィグに頼らずpipewireの設定を変更し、オーディオサンプリングレートを自由に設定する方法を記したいと思います。
ネットで調べた情報であったのが /etc/pulse/daemon.conf を設定する方法でしたが、これはubuntu 22.04ではあまり得策ではなさそうでした。(個人的な環境の問題?)
数秒で48kHzに戻ってしまい何も再生できなくなります。(DAC-1000の液晶表示で確認)
仮に再生できても、全てのプログラムが再生を止め音が止まる(pulseaudioを使用するプロセスがなくなる)と48kHzに戻り再生できなくなります。
OS再起動後にプロセスを見るとそもそもpulseaudioはプロセスになく再起動後に確認してみると、pipewire、pipewire-pulse の2つが再生を担っているようでした。
この状況で設定すべきなのは以下のファイルです。
/usr/share/pipewire/pipewire.conf
この中の項目を編集することでサンプリングレートの設定が維持されました。
具体的に変更するのは以下の3点です。(192kHz32bitへの変更後の値です。それぞれの環境に合わせ設定してください。)
default.clock.rate = 192000
default.clock.allowed-rates = [ 192000 ]
default.clock.min-quantum = 32
ここは特に必要ない操作かもしれませんが、念の為に不要なalsa-baseパッケージをアンインストールしておきました。(pulseaudioは残してます)
$ sudo apt-get remove --purge alsa-base
これで最後にOS再起動もしくは下記のコマンドでpipewireをrestartすれば、あとは設定されたサンプリングレートで再生されます。
$ systemctl --user restart pipewire
(メモ)
なぜ毎回pulseをrestartしなくてはいけないのかとなぜすぐ48kに戻るのか、そして戻った後は再生されないのかと疑問だった。しかもしばらくずっと安定していたように思ったから余計にだった。
よくよく考えると安定していたのは常になにか再生していたからか、再起動後にpulseを再起動しなかったために48kHzではあるが安定してpipewireで音声再生されていたということ。
全てが腑に落ち、firefoxで動画再生しようとしたら動画が固まって再生できないからのpulseのrestartという不要なプロセスもなくなった。色々触ってたら自分で解決できたからすごくスッキリ😊
DAC-1000というDACを使用していて、再起動(ログイン)後初めてなにか再生しようとすると一瞬ジッと小さめのノイズが鳴った後にDACの表示が192Kに切り替わります。おそらくDAC立ち上がりの音で2度目以降は再生開始時のノイズは鳴らない。
ちなみにこれが鳴るとオーディオが立ち上がったという感じがしてとても良いです💯
Discussion