See e.g. this article on opensource.com. TLDR:
sudo apt-get linux-lowlatency jackd2
high priority (realtime) for e.g. Reaper and Renoise.
sudo setcap 'cap_sys_nice=eip' /usr/local/bin/renoise-3.4.2
sudo setcap 'cap_sys_nice=eip' /opt/REAPER/reaper
and CPU governor to performance:
echo -n performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
See this FAQ on Pulseaudio and Jack ([[Pulseaudio]]
is the desktop Linux sound-server used by everything except low latency audio apps. We want
jackd to manage the audio hardware, and Pulseaudio to go the hardware via jackd.)
limits.conf
@audio - rtprio 90 # maximum realtime priority
@audio - memlock unlimited # maximum locked-in-memory address space (KB)
(source: linuxaudio.org)
Jack stuff
Use Cadence
Old
We want to route ALSA to Pulseaudio, and Pulseaudio to Jack.
sudo apt-get install pulseaudio-module-jack
then ~/.config/pulse/default.pa:
load-module module-native-protocol-unix
load-module module-jack-sink channels=2
load-module module-jack-source channels=2
load-module module-null-sink
load-module module-stream-restore
load-module module-rescue-streams
load-module module-always-sink
load-module module-suspend-on-idle
set-default-sink jack_out
set-default-source jack_in
and possibly in ~/.config/pulse/daemon.conf:
default-sample-format = float32le
default-sample-rate = 48000
realtime-scheduling = yes
exit-idle-time = -1
and if using qjackctl as the launcher, in settings, add the following post-startup script
pactl load-module module-jack-sink channels=2; pactl load-module module-jack-source channels=2; pacmd set-default-sink jack_out
