$linuxjunkies
>

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.

AdvancedUbuntuDebianFedoraArch12 min readUpdated June 7, 2026

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 -r includes -rt or -lowlatency
  • pw-jack jack_lsp lists 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 status reports 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 ardour7
tested on:Ubuntu 24.04Fedora 40Arch rollingDebian 12

Frequently 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