Linuxが音の趣味に向かない貧乏OSだなんて
誰が決めたんだい?
オープンソースだってやる気になれば、Dolbyクラスのハイレゾ高音質を発揮出来んだぜ!!
今回はPulseAudio/Pipewireドライバの底力をひねり出す方法だZE!!!!!
Pulseaudioをお使いの方はAを、Pipewireをお使いの方はBを読みながら設定を進めてNE!!
A.1.PulseAudioのローカルコンフィグを書き換える。
$ vim ~/.config/pulse/daemon.conf default-sample-format = float32le default-sample-rate = 192000 ;↑機器が192kHz対応していれば192000。最大対応ビットレートに合わせよう alternate-sample-rate = 44100 default-sample-channels = 2 default-channel-map = front-left,front-right default-fragments = 14 default-fragment-size-msec = 125 resample-method = soxr-vhq high-priority = yes nice-level = -11 realtime-scheduling = yes realtime-priority = 9 rlimit-rtprio = 9 daemonize = no
$ pulseaudio -k && pulseaudio --start
A.2.PulseEffectsをインストール からの再起動 →PulseEffectsを起動→すぐ閉じる (ローカルプロファイルだけ作成)
$ sudo apt update && sudo apt install pulseeffects pulseaudio --install-recommends
A.3.下記Gitを落としてきて、インストーラを起動。
ダイアログが開かれるので「1」を選択しておこう
A.4.PulseEffectsをもっかい起動
→”Loudness + Autogain” or “Bass Enhanced + Perfect EQ”を選択推奨
※"Ubuntu22.04"以上でインストーラを叩く際の注意: install.shの7〜15行目をコメントアウト。 直下がこうなるように追記すること。 でないとエラーでエフェクトファイルがインストール出来ません。 PRESETS_DIRECTORY="$HOME/.config/PulseEffents"
これがPipewire主体となった場合はメチャクチャラク。
B.1.Pipewire + Pipewire-pulseの場合の設定。
$ sudo cp -vRa /usr/share/pipewire/* /etc/pipewire/ $ sudo cp -vRa /usr/share/wireplumber/* /etc/wireplumber
$ sudo vim /etc/pipewire/pipewire.conf # 下記似たような箇所を差し替える context.properties = { ## Configure properties in the system. #library.name.system = support/libspa-support #context.data-loop.library.name.system = support/libspa-support #support.dbus = true #link.max-buffers = 64 link.max-buffers = 16 #mem.warn-mlock = false #mem.allow-mlock = true #mem.mlock-all = false clock.power-of-two-quantum = true #log.level = 2 cpu.zero.denormals = true core.daemon = true # listening for socket connections core.name = pipewire-0 # core name and socket name ## Properties for the DSP configuration. default.clock.rate = 192000 default.clock.allowed-rates = [ 192000, 96000, 48000 ] default.clock.quantum = 1024 default.clock.min-quantum = 32 default.clock.max-quantum = 8192 default.clock.quantum-limit = 8192 default.clock.quantum-floor = 32 #default.video.width = 640 #default.video.height = 480 #default.video.rate.num = 25 #default.video.rate.denom = 1 # settings.check-quantum = false settings.check-rate = false # # These overrides are only applied when running in a vm. vm.overrides = { default.clock.min-quantum = 1024 } # keys checked below to disable module loading module.x11.bell = true # enables autoloading of access module, when disabled an alternative # access module needs to be loaded. module.access = true # enables autoloading of module-jackdbus-detect module.jackdbus-detect = true } # 一番下のオプション配列に追加 context.exec = [ { path = "pactl" args = "load-module module-always-sink" } ]
$ sudo vim /etc/pipewire/pipewire-pulse.conf # 該当するコンフィグの値を差し替える #server.dbus-name = "org.pulseaudio.Server" #pulse.min.req = 128/48000 # 2.7ms #pulse.default.req = 960/48000 # 20 milliseconds #pulse.min.frag = 128/48000 # 2.7ms pulse.default.frag = 192000/48000 # 2 seconds pulse.default.tlength = 192000/48000 # 2 seconds #pulse.min.quantum = 128/48000 # 2.7ms #pulse.idle.timeout = 0 # don't pause after underruns pulse.default.format = F32LE pulse.default.position = [ FL FR ] # These overrides are only applied when running in a vm. vm.overrides = { pulse.min.quantum = 1024/48000 # 22ms }
$ sudo vim /etc/pipewire/client.conf.d/resample.conf stream.properties = { resample.quality = 14 }
$ sudo vim /etc/pipewire/pipewire.conf.d/20-virtual-pipe-source.conf context.modules = [ { name = libpipewire-module-pipe-tunnel args = { tunnel.mode = source pipe.filename = "/tmp/virtualdevice" audio.format = F32LE audio.rate = 192000 audio.channels = 2 audio.position = [ FL FR ] stream.props = { node.name = VirtualMic } } } ]
↓※注意:Wireplumberのバージョンの確認をされたし。構成によりコンフィグパスに変更あり。
$ sudo vim /etc/wireplumber/wireplumber.conf.d/alsa-vm.conf monitor.alsa.rules = [ # Generic PCI cards on any VM type { matches = [ { node.name = "~alsa_input.pci.*" cpu.vm.name = "~.*" } { node.name = "~alsa_output.pci.*" cpu.vm.name = "~.*" } ] actions = { update-props = { api.alsa.period-size = 1024 api.alsa.headroom = 8192 } } } ]
$ systemctl --user --now daemon-reload \ systemctl --user --now restart pipewire.service pipewire-plulse.socket wireplumber.service
B.2.PulseEffectsはいらんので、FlatpakをインストールしておいてNE(´^ω^`)
# ※Ubuntu 22.10以降:APTでインストール可 $ sudo apt install easyeffects # ※Ubuntu 22.04 LTS以下:Flatpakでのインストール推奨 $ sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo $ sudo flatpak install flathub com.github.wwmm.easyeffects $ flatpak run com.github.wwmm.easyeffects ※↑起動したら一旦閉じること $ bash -c "$(curl -fsSL https://raw.githubusercontent.com/JackHack96/PulseEffects-Presets/master/install.sh)" →1を押下してプリセットをすべてインストール 再度EasyEffectsを起動 →環境設定 →起動時サービス開始:ON + ウィンドウ閉じたらシャットダウン:OFF →プリセット自動読み込み →Pipewire→デバイス選択→"Loudness + Autogain" or "Bass Enhanced + Perfect EQ"を選択推奨
B.3.プリセットを覚醒させるには、下記のモジュールを各ディストリからインストールすること。
# ディストリやそのバージョンによっては、名前がかわっていたりライブラリだけあればいいことがあるので、 # 下記モジュール名に「****-dev(devel)」や「lib****-dev(devel)」で検索してみよう! # libsamplerate libsndfile libbs2b fftw speexdsp nlohmann json tbb # Ubuntu 22.04 LTS以上だと以下の通り $ sudo apt --install-recommends install json libsamplerate0-dev libsndfile1-dev libbs2b-dev fftw-dev libspeexdsp-dev nlohmann-json3-dev libtbb-dev
B.4.※ FlatpakでEasyEffectsをインストールした場合:常駐化するためのセッティング
$ vim ~/.var/app/com.github.wwmm.easyeffects/config/glib-2.0/settings/keyfile # ↓コンフィグを下記の通り変更 enable-autostart=true shutdown-on-window-close=false $ flatpak permission-reset com.github.wwmm.easyeffects →EastEffects起動 →環境設定 →起動時サービス開始:ON + ウィンドウ閉じたらシャットダウン:OFF
コメント