
Ubuntu Studio 26.04 LTS Pro Audio Setup: New Audio Configuration Tool, PipeWire Buffers, and Low Latency Boot Tweaks
Ubuntu Studio 26.04 LTS ships with a reworked audio configuration tool and PipeWire as the default. Here is how to set it up for serious low latency audio production from a fresh install.
Ubuntu Studio 26.04 LTS landed in April 2026 with a set of changes that make the post-install audio configuration process notably different from 24.04. The kernel ships with PREEMPT_DYNAMIC enabled by default, PipeWire 1.4.x is the sole audio server, and there is a redesigned audio configuration tool that replaces the older Ubuntu Studio Controls. If you are coming from 24.04 or from a different distribution, the setup workflow has changed enough to warrant a fresh walkthrough.
This is a practical guide from fresh install to first recording session. No hand-waving, no "it depends" - concrete steps with verification at each stage.
What changed in 26.04 LTS for audio
The headline changes relevant to audio production:
Linux kernel 6.14 with PREEMPT_DYNAMIC. The default Ubuntu Studio kernel supports dynamic preemption switching between none, voluntary, and full at boot time via kernel parameter. The default is full, which is suitable for most audio workloads without needing a separate PREEMPT_RT kernel.
PipeWire 1.4.x replaces everything. There is no PulseAudio server, no standalone JACK server. PipeWire handles ALSA, PulseAudio API compatibility, and JACK API compatibility. WirePlumber 0.5.x manages sessions.
Ubuntu Studio Audio Configuration tool (v3). The new tool replaces Ubuntu Studio Controls and Ubuntu Studio Installer. It provides a GUI for PipeWire buffer configuration, real-time privilege setup, CPU governor selection, and interface-specific profiles. Under the hood, it writes the same config files you would write manually.
Default rlimits for the studio user. The installer creates a studio group with pre-configured real-time rlimits. Your user is added to this group during installation if you selected the audio production profile.
Post-install: first things first
After a fresh install, verify the foundation before tweaking anything.
Verify kernel preemption
cat /sys/kernel/debug/sched/preempt
This should show full. If it shows voluntary or none, the boot parameter was overridden. Check and fix:
cat /proc/cmdline | grep preempt
If preempt= is not set or is set to something other than full:
sudo nano /etc/default/grub
Add or modify:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash preempt=full threadirqs"
The threadirqs parameter forces hardware interrupt handlers into kernel threads that can be prioritized by the scheduler. This is important for USB audio interfaces where interrupt handling latency directly affects audio stability.
sudo update-grub
sudo reboot
Verify PipeWire is running
systemctl --user status pipewire pipewire-pulse wireplumber
All three should be active. If any are failed, check the journal:
journalctl --user -u pipewire -b --no-pager | tail -30
Verify real-time privileges
ulimit -r
If you went through the Ubuntu Studio installer's audio profile, this should return 95. If it returns 0, your user is not in the studio group:
groups
If studio is missing:
sudo usermod -aG studio $USER
Log out and back in, then verify again.
Check that PipeWire is actually using real-time scheduling:
ps -eLo pid,tid,cls,rtprio,comm | grep pipewire
Look for FF in the CLS column and a number in the RTPRIO column (should be 88 by default). If you see TS (time-sharing) instead of FF, PipeWire failed to acquire real-time priority. See the real-time scheduling guide for detailed troubleshooting.
The new Ubuntu Studio Audio Configuration tool
The v3 tool (launched from the applications menu as "Audio Configuration" or from the terminal as ubuntustudio-audio-config) provides tabs for:
Buffer Settings. Sets PipeWire quantum and sample rate. This writes to ~/.config/pipewire/pipewire.conf.d/. The presets are:
| Preset | Quantum | Sample Rate | Use Case |
|---|---|---|---|
| Low Latency | 64 | 48000 | Live monitoring, simple chains |
| Balanced | 128 | 48000 | Production with plugins |
| Standard | 256 | 48000 | General audio work |
| Safe | 512 | 48000 | Heavy projects, complex routing |
| High Quality | 256 | 96000 | High sample rate production |
These presets are a starting point. For finding your actual lowest stable quantum, use the repeatable test method - the right number depends on your hardware.
Device Profiles. Per-interface WirePlumber configuration. Detects connected audio interfaces and offers to set them up with pro-audio profiles, including sample rate locking and full channel exposure. This is the GUI equivalent of the manual WirePlumber pro-audio profile configuration - it writes to ~/.config/wireplumber/wireplumber.conf.d/.
System Tuning. CPU governor, USB autosuspend, and kernel parameter recommendations. Applies system-level changes that require sudo.
Diagnostics. Runs basic checks and shows current PipeWire status, similar to a condensed version of what pw-top provides.
If you prefer to configure everything manually (and you should understand the manual process even if you use the GUI), the sections below cover each step.
PipeWire buffer tuning
Create a drop-in configuration:
# ~/.config/pipewire/pipewire.conf.d/audio-production.conf
context.properties = {
default.clock.rate = 48000
default.clock.allowed-rates = [ 44100 48000 96000 ]
default.clock.quantum = 256
default.clock.min-quantum = 64
default.clock.max-quantum = 1024
}
For a fixed quantum (no dynamic adjustment):
context.properties = {
default.clock.rate = 48000
default.clock.force-quantum = 256
}
Apply:
systemctl --user restart pipewire pipewire-pulse wireplumber
Verify:
pw-top
The QUANT column should show your configured value.
Kernel and boot parameter adjustments
Beyond preempt=full and threadirqs, there are a few boot parameters worth considering for audio work:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash preempt=full threadirqs mitigations=auto cpufreq.default_governor=performance"
mitigations=auto keeps CPU security mitigations enabled. Some guides recommend mitigations=off for latency. Unless you are on an air-gapped machine doing nothing but audio, do not disable security mitigations. The latency impact of mitigations on modern CPUs (post-2022) is minimal for audio workloads.
cpufreq.default_governor=performance sets the CPU frequency governor at boot. This prevents the latency spikes caused by frequency transitions. We will also set this at the userspace level as a belt-and-suspenders approach.
After editing GRUB:
sudo update-grub
sudo reboot
CPU governor setup
The CPU frequency governor determines how aggressively the processor scales frequency. For audio work, you want performance - the CPU runs at maximum frequency constantly. This eliminates latency spikes caused by frequency scaling transitions.
Check current governor:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Set to performance system-wide:
sudo cpupower frequency-set -g performance
To make it persistent, the Ubuntu Studio Audio Configuration tool handles this. Manually, create a systemd service:
# /etc/systemd/system/cpu-performance.service
[Unit]
Description=Set CPU governor to performance
[Service]
Type=oneshot
ExecStart=/usr/bin/cpupower frequency-set -g performance
[Install]
WantedBy=multi-user.target
sudo systemctl enable cpu-performance.service
On laptops, this reduces battery life significantly. If you are on battery, use schedutil instead (the default), which is frequency-scaling-aware and usually good enough for quantum 256.
USB audio interface configuration
Most USB audio interfaces work out of the box with PipeWire on 26.04. But there are optimizations worth applying.
Disable USB autosuspend for your interface
USB power management can put your interface to sleep between periods. At low quanta, the wakeup latency causes XRuns.
Find your interface:
lsusb
Note the vendor and product ID (e.g., 1235:8212 for a Focusrite device). Create a udev rule:
# /etc/udev/rules.d/90-audio-usb.rules
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1235", ATTR{idProduct}=="8212", ATTR{power/autosuspend}="-1"
Reload:
sudo udevadm control --reload-rules
sudo udevadm trigger
Set USB interrupt interval
For class-compliant USB 2.0 audio interfaces, check the polling interval:
cat /proc/asound/card1/stream0
Look for Momentary freq and the endpoint descriptor. If the interval is too high, it limits your minimum effective quantum.
WirePlumber device-specific configuration
For multi-channel interfaces, apply pro-audio settings per device:
-- ~/.config/wireplumber/wireplumber.conf.d/my-interface.conf
alsa_monitor.rules = {
{
matches = {
{
{ "device.name", "matches", "alsa_card.usb-*" },
},
},
apply_properties = {
["api.alsa.use-acp"] = false,
["device.profile"] = "pro-audio",
["api.alsa.period-size"] = 256,
["api.alsa.headroom"] = 0,
},
},
}
The api.alsa.period-size should match your PipeWire quantum. The api.alsa.headroom setting adds extra buffer safety margin - 0 is the lowest latency, increase to 1 or 2 periods if you get ALSA-level underruns that PipeWire itself is not causing.
Testing your setup
After all configuration, run through this verification sequence:
# 1. Check kernel preemption
cat /sys/kernel/debug/sched/preempt
# Expected: full
# 2. Check CPU governor
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# Expected: performance
# 3. Check real-time priority
ps -eLo cls,rtprio,comm | grep pipewire | head -5
# Expected: FF and priority 88
# 4. Check quantum
pw-metadata -n settings | grep quantum
# Expected: your configured value
# 5. Check for XRuns under load
pw-top
# Run your DAW, load a project, monitor ERR column for 10 minutes
If step 5 shows XRuns, work through the diagnosis:
- High B/Q: processing load too heavy, increase quantum
- High W/Q: scheduling issue, check real-time priority
- ERR on driver only with low B/Q and W/Q: hardware/USB issue
The pw-top walkthrough covers detailed diagnosis procedures.
Common issues and fixes
No sound after install. Check wpctl status. If your interface is not listed, WirePlumber may not have matched it. Check journalctl --user -u wireplumber -b for errors. Restarting WirePlumber (systemctl --user restart wireplumber) often resolves first-boot detection issues.
Sound works but latency is high. Default quantum is 1024 on some installs. Set it explicitly as described above. Also check that you do not have PipeWire running with a forced high quantum from a previous configuration.
XRuns only when Firefox or Chromium is open. Browsers run PulseAudio-compatible streams that add nodes to the graph. If the browser's audio resampler creates jitter, it can propagate. The fix is to set the browser's audio output to match PipeWire's sample rate (48000 Hz in most configurations) or to use the WirePlumber pro-audio profile to isolate your interface from desktop mixing.
MIDI devices not detected. PipeWire handles MIDI through ALSA sequencer by default. Check:
aconnect -l
pw-cli ls Node | grep -i midi
If MIDI devices appear in aconnect but not in PipeWire, restart WirePlumber. If they do not appear in aconnect either, it is a driver issue - check dmesg | grep -i midi.
Bluetooth headphones do not work. If you applied pro-audio settings globally, ACP is disabled and Bluetooth profiles will not work. Apply pro-audio only to your dedicated interface, not globally. See the WirePlumber profile guide for the targeted approach.
CPU frequency stuck at low speed despite performance governor. Some AMD systems with amd-pstate driver need additional configuration:
echo "active" | sudo tee /sys/devices/system/cpu/amd_pstate/status
Check your actual frequency:
watch -n 1 "cat /proc/cpuinfo | grep MHz | head -4"
FAQ
Should I install a PREEMPT_RT kernel on 26.04?
For most production audio work at quantum 128 or above, no. The default PREEMPT_DYNAMIC kernel with preempt=full is sufficient. PREEMPT_RT helps at quantum 64 and below by reducing worst-case kernel scheduling latency from ~100 us to ~20 us. If you need it:
sudo apt install linux-image-lowlatency
This pulls in Ubuntu's low-latency kernel variant. Reboot and select it from GRUB.
Can I run JACK alongside PipeWire?
You should not. PipeWire provides a JACK compatibility layer (pw-jack). Applications that use the JACK API work through this layer. Running a standalone JACK server alongside PipeWire creates device conflicts and routing confusion. If an application specifically needs JACK, use:
pw-jack <application>
Or set the PIPEWIRE_JACK environment variable.
Is Ubuntu Studio 26.04 better than a plain Ubuntu with audio packages added? For audio work, yes. Ubuntu Studio pre-configures: rlimits for real-time scheduling, PipeWire with audio-appropriate defaults, WirePlumber with per-device profile detection, kernel boot parameters, and the audio configuration GUI. You can replicate all of this on plain Ubuntu, but Ubuntu Studio saves you the initial setup time and is tested as a cohesive audio configuration.
How do I update PipeWire on 26.04 without breaking things? Stick with the distribution packages unless you have a specific reason to deviate. Ubuntu Studio tracks stable PipeWire releases through standard updates. If you need a newer version, the PipeWire PPA is available but may conflict with Ubuntu Studio's configuration packages.
Where do I find the configuration files the Audio Configuration tool creates? All in standard locations:
- PipeWire:
~/.config/pipewire/pipewire.conf.d/ - WirePlumber:
~/.config/wireplumber/wireplumber.conf.d/ - System:
/etc/security/limits.d/,/etc/default/grub
You can view and edit them manually after the GUI writes them. The tool does not use any proprietary format.
Conclusion
Ubuntu Studio 26.04 LTS is the most complete out-of-the-box Linux audio distribution available in 2026. The default configuration gets you to a working state. The steps above take you from "working" to "optimized for your specific hardware and workflow." Verify each step, test with pw-top, and tune the quantum to your measured threshold. Check the notes section for more detailed guides on individual topics as you refine your setup.
- Ubuntu Studio
- PipeWire
- Pro Audio
- Linux Audio Setup
- 2026