Linux DJ
REAPER DAW interface on a Linux desktop with audio meters active
DAW Workflow·/notes/

REAPER on PipeWire in 2026: Low Latency Setup and What To Do When XRuns Hit Mid Session

REAPER on Linux runs well when configured properly. Here is how to set it up on PipeWire for low latency recording, and what to do when XRuns appear mid session without losing takes.

REAPER has had an official Linux build since version 5.97 in 2019. In 2026, it is arguably the most capable commercial DAW on the platform - not because it has the best Linux-specific features, but because Cockos builds it to work the same everywhere. The Linux version gets the same features, the same update cadence, and the same scripting engine as Windows and macOS. The challenge is not REAPER itself. It is configuring the audio infrastructure underneath it - PipeWire, real-time scheduling, plugin hosting - so that REAPER can do what it does without fighting the system.

REAPER's Linux support in 2026

REAPER 7.x is the current major version. The Linux build is a native x86-64 binary distributed as a tarball. Installation is manual but simple:

tar xzf reaper7xx_linux_x86_64.tar.xz
cd reaper_linux_x86_64
./install-reaper.sh

The installer asks whether to install to /opt/REAPER/ (system-wide) or ~/opt/REAPER/ (user-local). Either works. The installer creates a desktop entry and shell script.

REAPER runs on any distribution with glibc 2.28+ and X11 or Wayland (through XWayland). Native Wayland rendering is partially supported in 7.x but X11 is still more stable for plugin GUIs.

The license is $60 for a personal/small business license or $225 for a commercial license. There is a fully functional trial with no time limit (it shows a nag screen on launch).

JACK vs ALSA backend choice

REAPER on Linux supports two audio backends: JACK and ALSA. There is no native PipeWire backend, but PipeWire's JACK compatibility layer is transparent.

JACK (through PipeWire) - recommended

This is the default for most users. REAPER connects to PipeWire's JACK server as a JACK client. You get:

  • Desktop audio coexistence (browser, system sounds work simultaneously)
  • Routing between REAPER and other JACK applications (Ardour, Bitwig, Carla)
  • Buffer size controlled by PipeWire's quantum
  • Automatic device management

In REAPER: Options > Preferences > Audio > Device > Audio System > JACK.

REAPER's "Request block size" setting sends a buffer size hint to JACK, but PipeWire's quantum overrides it. Control the actual buffer size through PipeWire:

pw-metadata -n settings 0 clock.force-quantum 128

Or use a permanent configuration:

# ~/.config/pipewire/pipewire.conf.d/reaper.conf
context.properties = {
    default.clock.quantum = 128
    default.clock.min-quantum = 64
    default.clock.max-quantum = 512
}

ALSA - direct hardware access

The ALSA backend bypasses PipeWire entirely. REAPER talks to your audio interface driver directly. This gives the lowest possible latency and exclusive device access.

In REAPER: Options > Preferences > Audio > Device > Audio System > ALSA.

Configure the device:

SettingValue
ALSA audio devicehw:0,0 (or your specific device)
Sample rate48000
Block size64-256 (depends on hardware)
Number of periods2

Use aplay -l to find your device identifier. The hw:X,Y format bypasses ALSA's software mixing (dmix), giving you direct hardware access.

When to use ALSA:

  • Dedicated recording machine with no desktop audio needs
  • Need quantum 32-64 and PipeWire's scheduling overhead is measurable
  • Working with a specific interface that has driver quirks through PipeWire

For the detailed backend comparison, see the PipeWire vs native JACK analysis.

PipeWire JACK configuration for REAPER

The optimal PipeWire configuration for REAPER recording sessions:

# ~/.config/pipewire/pipewire.conf.d/recording-session.conf
context.properties = {
    default.clock.rate = 48000
    default.clock.allowed-rates = [ 48000 ]
    default.clock.quantum = 128
    default.clock.min-quantum = 64
    default.clock.max-quantum = 512
}

Lock the sample rate to prevent PipeWire from switching rates when other applications make requests. Set the quantum to your tested stable value.

Real-time scheduling must be working. Verify while REAPER is running:

ps -eo pid,cls,rtprio,ni,comm | grep reaper

You should see FF (SCHED_FIFO) with priority 50+ for the audio threads. If not, see the real-time scheduling guide.

REAPER also has its own real-time thread priority setting: Options > Preferences > Audio > Device > Thread priority. Set this to "Time critical" or a specific RT priority that matches your system's configuration. On PipeWire, this setting tells REAPER what to request from the scheduler. Whether it gets it depends on your rlimits and rtkit configuration.

Buffer settings for tracking vs mixing

PhaseQuantumRound-trip at 48 kHzWhy
Tracking (software monitoring)64-1282.7-5.3 msPerformer hears through DAW
Tracking (hardware monitoring)2565.3 msMonitoring bypasses DAW
Overdubbing128-2565.3-10.7 msBalance latency and stability
Editing51210.7 msStability, latency irrelevant
Mixing512-102410.7-21.3 msPlugin headroom
Mastering1024-204821.3-42.7 msMaximum stability

You can change the quantum mid-session without stopping REAPER:

pw-metadata -n settings 0 clock.force-quantum 512

REAPER handles the quantum change gracefully - a brief audio glitch as the buffer resizes, then it continues. This lets you track at 128, then switch to 512 for mixing without restarting anything.

Latency compensation verification

REAPER's latency compensation is one of its strongest features. It automatically measures and compensates for plugin latency, including through complex routing paths with parallel processing and sidechains.

Verify compensation is working:

  1. Create two tracks routed to the same bus.
  2. Put a latency-inducing plugin (linear-phase EQ, look-ahead compressor) on one track.
  3. Record the same audio to both tracks.
  4. Zoom in and check alignment. They should be sample-aligned.

If they are not aligned, check:

Options > Preferences > Audio > Buffering > "Use audio driver reported latency"

This should be enabled. REAPER uses the JACK-reported latency (from PipeWire) for its compensation calculations.

Also check the PDC (Plugin Delay Compensation) display:

View > Performance Meter

This shows per-track PDC values. If a track shows an unusually high PDC, identify which plugin is causing it and decide if you need it in the monitoring path.

REAPER has a unique advantage here: you can enable/disable PDC per track. If you have a heavy-latency plugin on a bus but do not need sample-accurate alignment for that bus during tracking, disable PDC on it to reduce the monitoring chain latency.

Handling XRuns mid-session

XRuns during recording are the nightmare scenario. A click or dropout in a great take. Here is how to handle them without losing work.

What happens when an XRun hits

PipeWire reports the XRun to the JACK server. REAPER logs it in the performance meter. The recording continues - REAPER does not stop on an XRun by default. The recorded audio will have a brief artifact (click, silence, or repeated buffer) at the XRun point.

Immediate response

  1. Do not stop the recording. REAPER is still recording. The take may be salvageable.
  2. Note the time. Glance at REAPER's transport position when you hear the pop. You will need this for cleanup.
  3. Check if it is a one-off or ongoing. If XRuns continue, the system is overloaded and the session needs adjustment.

Post-XRun cleanup

After the take:

  1. Locate the XRun. REAPER marks XRun positions in the performance log. Check View > Performance Meter. The time code tells you where to look.
  2. Zoom in on the artifact. An XRun typically shows as a discontinuity in the waveform - a sharp jump or a flat section of repeated samples.
  3. Repair small artifacts. For a single-sample or few-sample glitch:
    • Select a small region around the artifact
    • Use REAPER's "Heal split" or crossfade-based editing to smooth the discontinuity
    • Or manually draw the waveform correction in the sample editor (Item > Item Properties > Audio > Open in built-in editor)
  4. Punch in for larger artifacts. If the XRun caused a noticeable dropout, punch in over that section. REAPER's take comping makes this straightforward - record a new take over the damaged section and comp the clean portions together.

Preventing future XRuns in the same session

If an XRun hit, something exceeded the deadline. Common causes and immediate fixes:

# Check what caused it
pw-top

Look at the W/Q column (wait/quantum ratio). A node near 1.0 is the bottleneck.

CPU spike from a plugin: Identify the heavy plugin in REAPER's performance meter. Bypass it or freeze the track.

USB interrupt collision: Check if a non-audio USB device is sharing an interrupt with your interface:

cat /proc/interrupts | grep -i usb

Move non-audio USB devices to a different controller (different physical USB port group).

Background process: A cron job, package update, or browser tab consumed CPU at the wrong moment:

# Check what was running
journalctl --user --since "5 minutes ago" | grep -i "slice\|scope"

For the full diagnostic methodology, see the pw-top walkthrough.

Increase quantum as a last resort: If XRuns persist and you cannot identify the cause, raise the quantum:

pw-metadata -n settings 0 clock.force-quantum 256

Finish the session with a stable buffer, diagnose the root cause later.

Plugin hosting

Native Linux plugins

REAPER supports these plugin formats on Linux:

FormatSupportNotes
VST3FullPreferred for commercial plugins
VST2FullLegacy, still widely used
CLAPFull (REAPER 7+)Modern format, growing fast
LV2Via REAPER extensionNot native, community bridge
JS (JSFX)FullREAPER's built-in scripting format

REAPER's built-in JSFX plugins are one of its underappreciated strengths. They are cross-platform, lightweight, editable in a text editor, and cover basic EQ, compression, delay, and utility functions. Using JSFX instead of third-party plugins for simple tasks reduces CPU usage and eliminates compatibility concerns.

Plugin scan paths on Linux:

~/.vst/
~/.vst3/
/usr/lib/vst/
/usr/lib/vst3/
/usr/local/lib/vst/
/usr/local/lib/vst3/

Configure in Options > Preferences > Plug-ins > VST.

Windows VST plugins via yabridge

Many producers need Windows-only plugins. yabridge bridges them through Wine:

# Install (Arch example)
yay -S yabridge yabridgectl

# Add your Wine VST directory
yabridgectl add "$HOME/.wine/drive_c/Program Files/Common Files/VST3"
yabridgectl sync

# Rescan in REAPER
Options > Preferences > Plug-ins > VST > Re-scan

yabridge performance considerations:

FactorImpact
CPU overhead per plugin5-15% additional
Memory per bridged plugin50-200 MB (Wine process)
LatencyNone measurable
GUI responsivenessSlightly slower than native
StabilityGood for most plugins

Problematic plugin categories on yabridge:

  • iLok-protected plugins (requires running iLok License Manager under Wine)
  • Plugins with custom copy protection (some Waves, Arturia products)
  • Plugins requiring .NET runtime (rare, but some utility plugins)

Test each bridged plugin under load before relying on it in a session. A plugin that works in isolation may cause XRuns when competing for resources with native plugins and the bridge overhead.

REAPER-specific performance tweaks

Anticipative processing (FX processing)

Options > Preferences > Audio > Buffering > "Anticipative FX processing." This lets REAPER pre-process effects ahead of real time when possible. On multicore systems, this significantly reduces the risk of XRuns from heavy plugin chains. Enable it unless you experience specific issues.

Media buffer size

Options > Preferences > Audio > Buffering > "Media buffer size." This controls how far ahead REAPER reads audio from disk. Default is usually fine for SSDs. For HDD-based projects or network storage, increase to 2000-4000 ms.

Thread count

Options > Preferences > Audio > Buffering > "Audio processing threads." Set to your core count minus 2. Leaving headroom for the GUI thread and system overhead prevents competition between REAPER's audio threads and other processes.

Project-specific settings

Each REAPER project can override global audio settings. For critical recording sessions, create a project template with conservative settings:

  • Higher media buffer
  • Anticipative processing enabled
  • Auto-save interval set to 60 seconds
  • Recording format: WAV 24-bit (avoid 32-bit float for recording - it wastes disk space and provides no benefit for tracking raw audio from a 24-bit interface)

Comparison: REAPER vs Ardour vs Bitwig on Linux

FeatureREAPER 7.xArdour 9.0Bitwig 6
License$60/$225GPL (free)$99/$399
Audio backendsJACK, ALSAJACK, ALSA, PipeWireJACK, ALSA
Plugin formatsVST2/3, CLAP, JSFXLV2, VST2/3, LADSPAVST2/3, CLAP
MIDI editingExcellentGood (9.0 improved)Very good
Recording/compingExcellentGoodGood
Modular synthesisNo (use plugins)NoYes (The Grid)
ScriptingReaScript (EEL/Lua/Python)LuaJavaScript (limited)
Clip launcherNoNoYes
Latency compensationExcellentExcellent (9.0)Good
Session size handlingExcellentGoodGood
CustomizationExtremeModerateModerate
CPU efficiencyExcellentGoodGood
Update frequencyVery frequentModerateModerate

REAPER wins on recording workflow, customization depth, and CPU efficiency. Ardour wins on open-source licensing and LV2 ecosystem. Bitwig wins on electronic music production and modular synthesis. Choose based on your primary workflow.

For the Ardour-specific setup, see the Ardour 9.0 configuration guide.

FAQ

Does REAPER work on Wayland? REAPER runs under XWayland on Wayland compositors. Native Wayland support is partially implemented in 7.x. Plugin GUIs (especially bridged Windows plugins through yabridge) require X11. For production work, XWayland is the safe choice.

Can I run REAPER and Ardour in the same session? Yes, through PipeWire's JACK server. Both connect as JACK clients. Route audio between them with pw-link. Useful for using Ardour as a multitrack recorder while using REAPER for processing.

Is the REAPER Linux build 32-bit or 64-bit? 64-bit only since REAPER 6.x. There is no 32-bit Linux build.

My plugin GUIs look tiny on HiDPI. How do I fix this? REAPER respects the system DPI settings. For yabridge plugins, you may need to set DPI in Wine:

WINEPREFIX=~/.wine winecfg

Under the Graphics tab, set the DPI to match your display.

REAPER says "Audio device not available" when I select JACK. PipeWire's JACK server may not be running. Check:

pw-jack jack_lsp

If this fails, ensure pipewire-jack is installed and the JACK socket is active:

systemctl --user status pipewire-jack.socket

Can I use REAPER's built-in video editing on Linux? Yes, with limitations. REAPER's video playback depends on system codecs. Install ffmpeg and relevant codec packages. Performance is adequate for rough editing and syncing audio to video, but it is not a replacement for a dedicated video editor.

Conclusion

REAPER on PipeWire in 2026 is a straightforward setup once the infrastructure is right. Use the JACK backend through PipeWire for routing flexibility, set your quantum to match your workflow phase, verify real-time priority, and keep yabridge plugins to a minimum where native alternatives exist. When XRuns hit mid-session, do not panic - keep recording, note the time, and repair or punch in after the take. The low latency checklist covers the system-level preparation, and the latency data shows measured performance for specific hardware and buffer combinations. For more DAW options on Linux, see the Ardour 9.0 guide and the notes archive for the full series.

  • REAPER
  • DAW
  • PipeWire
  • Low Latency
  • Linux Audio
  • 2026

Related Notes

← All notes