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



コメント