# Linux ## Low Latency Kernel ```sh echo "@audio - rtprio 95" >> /etc/security/limits.conf echo "@audio - memlock unlimited" >> /etc/security/limits.conf sudo usermod -a -G audio ste ``` ```sh 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** ```sh 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 ```sh 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 ```sh 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 ```sh 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 ```sh 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/ https://pulse.audio/ https://pulsedownloader.com/ # 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 ## LSP (Linux Studio Plugins) https://lsp-plug.in