
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:
| Setting | Value |
|---|---|
| ALSA audio device | hw:0,0 (or your specific device) |
| Sample rate | 48000 |
| Block size | 64-256 (depends on hardware) |
| Number of periods | 2 |
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
| Phase | Quantum | Round-trip at 48 kHz | Why |
|---|---|---|---|
| Tracking (software monitoring) | 64-128 | 2.7-5.3 ms | Performer hears through DAW |
| Tracking (hardware monitoring) | 256 | 5.3 ms | Monitoring bypasses DAW |
| Overdubbing | 128-256 | 5.3-10.7 ms | Balance latency and stability |
| Editing | 512 | 10.7 ms | Stability, latency irrelevant |
| Mixing | 512-1024 | 10.7-21.3 ms | Plugin headroom |
| Mastering | 1024-2048 | 21.3-42.7 ms | Maximum 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:
- Create two tracks routed to the same bus.
- Put a latency-inducing plugin (linear-phase EQ, look-ahead compressor) on one track.
- Record the same audio to both tracks.
- 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
- Do not stop the recording. REAPER is still recording. The take may be salvageable.
- Note the time. Glance at REAPER's transport position when you hear the pop. You will need this for cleanup.
- 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:
- Locate the XRun. REAPER marks XRun positions in the performance log. Check View > Performance Meter. The time code tells you where to look.
- 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.
- 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)
- 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:
| Format | Support | Notes |
|---|---|---|
| VST3 | Full | Preferred for commercial plugins |
| VST2 | Full | Legacy, still widely used |
| CLAP | Full (REAPER 7+) | Modern format, growing fast |
| LV2 | Via REAPER extension | Not native, community bridge |
| JS (JSFX) | Full | REAPER'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:
| Factor | Impact |
|---|---|
| CPU overhead per plugin | 5-15% additional |
| Memory per bridged plugin | 50-200 MB (Wine process) |
| Latency | None measurable |
| GUI responsiveness | Slightly slower than native |
| Stability | Good 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
| Feature | REAPER 7.x | Ardour 9.0 | Bitwig 6 |
|---|---|---|---|
| License | $60/$225 | GPL (free) | $99/$399 |
| Audio backends | JACK, ALSA | JACK, ALSA, PipeWire | JACK, ALSA |
| Plugin formats | VST2/3, CLAP, JSFX | LV2, VST2/3, LADSPA | VST2/3, CLAP |
| MIDI editing | Excellent | Good (9.0 improved) | Very good |
| Recording/comping | Excellent | Good | Good |
| Modular synthesis | No (use plugins) | No | Yes (The Grid) |
| Scripting | ReaScript (EEL/Lua/Python) | Lua | JavaScript (limited) |
| Clip launcher | No | No | Yes |
| Latency compensation | Excellent | Excellent (9.0) | Good |
| Session size handling | Excellent | Good | Good |
| Customization | Extreme | Moderate | Moderate |
| CPU efficiency | Excellent | Good | Good |
| Update frequency | Very frequent | Moderate | Moderate |
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