Linux for Music Producers
Set up a Linux pro-audio DAW: real-time kernel, PipeWire JACK bridge, Ardour, Carla plugin host, and Windows VSTs via yabridge on Debian, Fedora, and Arch.
Before you start
- ▸A 64-bit x86 system with a supported audio interface (USB class-compliant recommended)
- ▸sudo/root access to install packages and modify system limits
- ▸Basic familiarity with the terminal and your distro's package manager
- ▸Windows VST installers already downloaded if you plan to use yabridge
Running a professional audio workstation on Linux is genuinely viable in 2024. PipeWire has replaced the fragmented JACK/PulseAudio split, low-latency kernels are a package install away, and yabridge lets you run your existing Windows VST library without dual-booting. This guide walks you through every layer: kernel tuning, PipeWire JACK compatibility, a full DAW setup with Ardour and Carla, and bridging Windows plugins via yabridge and Wine.
1. Install a Real-Time or Low-Latency Kernel
The stock kernel uses a 250 Hz tick rate tuned for throughput, not audio. A low-latency or fully-preemptible RT kernel dramatically reduces xruns (audio dropouts) at small buffer sizes.
Debian / Ubuntu
sudo apt install linux-lowlatency linux-lowlatency-hwe-24.04
# For full RT on Ubuntu Pro / Debian:
sudo apt install linux-realtime
Reboot and confirm with uname -r — you should see -lowlatency or -rt in the string.
Fedora / RHEL family
sudo dnf install kernel-rt kernel-rt-devel
sudo grubby --set-default /boot/vmlinuz-*rt*
The RT kernel is in the standard Fedora repos since F38. On Rocky/RHEL, enable the RT repo first: sudo dnf install centos-release-nfv-openvswitch or use the Real Time repo from your subscription manager.
Arch Linux
yay -S linux-rt linux-rt-headers
# Then regenerate the bootloader entry:
sudo grub-mkconfig -o /boot/grub/grub.cfg
2. Configure System Limits for Real-Time Audio
Audio applications need elevated scheduling priority and locked memory. The audio group limits in /etc/security/limits.d/ set this. Most distros ship rtkit and handle this automatically, but explicit limits are more reliable.
sudo tee /etc/security/limits.d/99-audio.conf <<'EOF'
@audio - rtprio 95
@audio - memlock unlimited
@audio - nice -19
EOF
# Add your user to the audio group
sudo usermod -aG audio $USER
Log out and back in (or reboot) before continuing. Verify with groups.
3. PipeWire as the JACK Backend
PipeWire ships a JACK compatibility layer. Any application that links against libjack — including Ardour, Carla, and most synthesizers — talks to PipeWire transparently. No separate JACK daemon is needed.
Install PipeWire and JACK bridge
# Debian / Ubuntu (24.04+)
sudo apt install pipewire pipewire-audio pipewire-jack wireplumber pipewire-alsa
# Fedora 39+
sudo dnf install pipewire pipewire-jack-audio-connection-kit wireplumber
# Arch
sudo pacman -S pipewire pipewire-jack wireplumber
Tune PipeWire for low latency
Create a drop-in configuration to set quantum (buffer size) and sample rate. A quantum of 64 at 48000 Hz gives roughly 1.3 ms latency — push lower only if your hardware supports it without xruns.
mkdir -p ~/.config/pipewire/pipewire.conf.d
tee ~/.config/pipewire/pipewire.conf.d/10-audio.conf <<'EOF'
context.properties = {
default.clock.rate = 48000
default.clock.quantum = 64
default.clock.min-quantum = 32
default.clock.max-quantum = 8192
}
EOF
systemctl --user restart pipewire wireplumber
Verify JACK compatibility
pw-jack jack_samplerate
# Should return 48000 (or your chosen rate)
pw-jack jack_delay -p 512
# Shows round-trip latency; output will vary by hardware
4. Install Ardour
Ardour is the flagship open-source DAW. Get it from ardour.org directly for the latest version with official support, or use your package manager for convenience.
# Debian / Ubuntu
sudo apt install ardour
# Fedora
sudo dnf install ardour6
# Arch
sudo pacman -S ardour
Launch Ardour and set the audio backend to JACK. Because PipeWire provides JACK emulation, Ardour will connect automatically. Set your session sample rate to match the PipeWire clock (48000 Hz above). In the Ardour Audio/MIDI Setup dialog, set the buffer size to match your quantum (64 or 128 samples).
5. Install Carla Plugin Host
Carla acts as a universal plugin rack inside or alongside Ardour. It supports LV2, VST2, VST3, CLAP, DSSI, and — critically — bridges yabridge Windows VSTs as a JACK client.
# Debian / Ubuntu
sudo apt install carla
# Fedora
sudo dnf install carla
# Arch
sudo pacman -S carla
Run carla, go to Engine settings, set the driver to JACK, and confirm it connects to PipeWire-JACK. Add native Linux LV2/VST3 plugins directly in Carla's plugin browser. For Windows VSTs, proceed to the next step.
6. Windows VSTs with yabridge
yabridge translates Windows VST2, VST3, and CLAP calls to Linux through Wine. It is not an emulation layer — each plugin runs in its own Wine process with proper IPC, so stability is surprisingly good.
Install Wine and dependencies
# Ubuntu — enable WineHQ repo for Wine Stable
sudo dpkg --add-architecture i386
wget -qO- https://dl.winehq.org/wine-builds/winehq.key | sudo tee /etc/apt/keyrings/winehq.asc
echo "deb [arch=amd64,i386 signed-by=/etc/apt/keyrings/winehq.asc] https://dl.winehq.org/wine-builds/ubuntu/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/winehq.list
sudo apt update && sudo apt install --install-recommends winehq-stable
# Fedora
sudo dnf install wine
# Arch
sudo pacman -S wine wine-mono
Install yabridge
Download the latest release tarball from github.com/robbert-vdh/yabridge. Arch users can use the AUR.
# Generic install (all distros)
tar -C ~/.local/share -xf yabridge-x86_64.tar.gz
# Add to PATH:
echo 'export PATH="$HOME/.local/share/yabridge:$PATH"' >> ~/.bashrc
source ~/.bashrc
# Arch AUR
yay -S yabridge yabridgectl
Configure and sync plugins
Install your Windows VSTs inside Wine (run the Windows installer with wine setup.exe), then register the VST directories with yabridgectl.
# Add common VST paths (adjust to where Wine installed them)
yabridgectl add "$HOME/.wine/drive_c/Program Files/Common Files/VST3"
yabridgectl add "$HOME/.wine/drive_c/Program Files/VSTPlugins"
# Create Linux-side bridge stubs
yabridgectl sync
# Verify everything is set up correctly
yabridgectl status
Point Carla or Ardour's plugin scanner at ~/.vst3 and ~/.vst (yabridge's default output directories). After scanning, your Windows VSTs appear alongside native Linux plugins.
Verification
A working pro-audio stack shows all of these:
uname -rincludes-rtor-lowlatencypw-jack jack_lsplists system capture and playback ports- Ardour connects to JACK backend without errors; xrun counter stays at 0 during playback
- A yabridge VST opens its GUI inside Carla
yabridgectl statusreports no missing files or version mismatches
Troubleshooting
Xruns and audio dropouts
Xruns usually mean the buffer is too small for your hardware. Double the quantum in the PipeWire config (64 → 128 → 256) and restart PipeWire. Also check that CPU frequency scaling is set to performance:
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Make this persistent with cpupower or a systemd service on boot.
yabridge plugin crashes or won't open
Run YABRIDGE_DEBUG_LEVEL=1 carla and check the terminal for Wine errors. Common causes: missing 32-bit Wine libraries, or the plugin needs a specific runtime (Visual C++, .NET). Install those runtimes inside your Wine prefix with winetricks:
winetricks vcrun2019 dotnet48
PipeWire JACK not found by Ardour
Ardour must be launched with the PipeWire JACK shim active. If installed system-wide via package manager this is automatic. If using the ardour.org binary, prepend pw-jack:
pw-jack ardour7Frequently asked questions
- Do I still need to run a separate JACK daemon with PipeWire?
- No. PipeWire includes a JACK compatibility library that intercepts libjack calls directly. Any JACK-aware app connects to PipeWire automatically; jackd is not needed and should not be running at the same time.
- Which is better for audio: linux-lowlatency or linux-rt?
- The full RT kernel (PREEMPT_RT) gives the lowest worst-case latency and is better for very small buffers (32-64 samples). The lowlatency kernel is easier to obtain, more stable for desktop use, and sufficient for buffers of 128 samples or larger.
- Can yabridge run VST3 plugins, not just VST2?
- Yes. yabridge supports VST2, VST3, and CLAP formats. Point yabridgectl at your Windows VST3 directory (usually inside Program Files/Common Files/VST3) and sync as normal.
- Will my audio interface work out of the box on Linux?
- USB class-compliant interfaces work without any drivers — plug them in and PipeWire detects them. Proprietary interfaces (some Focusrite, Universal Audio) may need specific ALSA firmware or have no Linux support at all; check the Linux Audio wiki for your exact model.
- Is it safe to run the RT kernel as a daily driver?
- Generally yes, but some hardware drivers (certain Nvidia proprietary modules, VirtualBox kernel modules) are not compatible with PREEMPT_RT. Keep your original kernel in the bootloader as a fallback.
Related guides
Linux Clipboards Explained (+ Clipboard Managers)
Learn the difference between Linux's PRIMARY and CLIPBOARD selections, use xclip, xsel, and wl-clipboard from the terminal, and manage history with GPaste or Klipper.
Configure LibreOffice for Daily Use
Configure LibreOffice for daily use: set default save formats for MS Office interop, tune autosave, install fonts, and add productivity extensions.
Configure the Touchpad and Multitouch Gestures
Configure Linux touchpad behavior and multitouch gestures using libinput, libinput-gestures, and native GNOME and KDE Plasma settings on both Wayland and X11.
Wayland vs X11: How to Choose and Configure Each
Know when to run Wayland or X11, how to check your current session, switch at login with GDM/SDDM/LightDM, and handle NVIDIA and XWayland edge cases.