Linux
Low Latency Kernel
echo "@audio - rtprio 95" >> /etc/security/limits.conf
echo "@audio - memlock unlimited" >> /etc/security/limits.conf
sudo usermod -a -G audio ste
sudo apt install linux-lowlatency
restart
uname -a
Pipewire
Install
sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream
sudo apt update
sudo apt install \
pipewire \
gstreamer1.0-pipewire \
libpipewire-0.3-{0,dev,modules} \
libspa-0.2-{bluetooth,dev,jack,modules} \
pipewire{,-{audio-client-libraries,bin,media-session,pulse,tests}}
QT Interface
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.rncbc.qpwgraph
GTK Interface
https://gitlab.freedesktop.org/pipewire/helvum
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install org.gnome.{Platform,Sdk}//45 org.freedesktop.Sdk.Extension.rust-stable//23.08 org.freedesktop.Sdk.Extension.llvm16//23.08
flatpak-builder --install flatpak-build/ build-aux/org.pipewire.Helvum.json
flatpak run org.pipewire.Helvum
Setup
systemctl --user daemon-reload
systemctl --user --now disable pulseaudio.service pulseaudio.socket
systemctl --user mask pulseaudio
systemctl --user --now enable pipewire pipewire-pulse
pactl info
WirePlumber
sudo apt install wireplumber pipewire-media-session-
# For ALSA clients to be configured to output via PipeWire,
sudo cp /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/
# For JACK clien
sudo cp /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-*.conf /etc/ld.so.conf.d/
# For Bluetooth, just remove the pulseaudio-module-bluetooth
sudo apt remove pulseaudio-module-bluetooth
# ?
sudo ldconfig
# enable the new media session
systemctl --user --now enable wireplumber.service
# Verify
pactl info
# Status
wpctl status
wpctl inspect 48
Configure
/etc/pipewire/pipewire.conf
default.clock.min-quantum = 8
default.clock.max-quantum = 8
default.clock.quantum-limit = 8
systemctl --user restart pipewire.service
https://github.com/robbert-vdh/dotfiles#pipewire
1. ALSA period size and the number of periods.
Default: 64 frames/period
~/.config/wireplumber/main.lua.d/90-alsa-config.lua
systemctl --user restart wireplumber
2. Sample rate 48000
Default: 44100
~/.config/pipewire/pipewire.conf
3. The quantum size
Default: 512 samples
pw-metadata -n settings 0 clock.force-quantum N
4. PipeWire always replace JACK.
systemctl --user start pipewire-pulse.service pipewire-pulse.socket
restart
systemctl --user restart pipewire pipewire-pulse wireplumber
https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-PipeWire#runtime-settings
pw-metadata -n settings
pw-metadata -n settings 0 clock.force-rate 48000
pw-metadata -n settings 0 clock.force-quantum 64
DAW
Reaper
https://www.reaper.fm/download.php
Reaper Themes
https://stash.reaper.fm/tag/Themes
Sampler
Decent Sampler
https://www.decentsamples.com/product/decent-sampler-plugin/
Presets
https://www.pianobook.co.uk/sampler/decent-sampler/
Instrument
Vital
Presets
Surge XT
https://surge-synthesizer.github.io/
Presets
https://www.kvraudio.com/product/surge-xt-by-surge-synth-team/downloads
https://presetshare.com/presets?instrument=7&page=5
Cardinal
https://github.com/DISTRHO/Cardinal
Plugins
https://www.audiopluginsforfree.com/
Fire
https://github.com/jerryuhoo/Fire
Autotune
https://x42-plugins.com/x42/x42-autotune