
MIDI 2.0 on Linux 2026: PipeWire UMP, Kernel Support Reality, and Safe Fallbacks for Controllers and DAWs
MIDI 2.0 on Linux is partially here. PipeWire has UMP transport, the kernel has ALSA UMP, but DAW and controller support lags behind. Here is what works today and what fallbacks to keep in place.
MIDI 2.0 has been a specification since 2020 and a promise for longer than that. On Linux in 2026, the infrastructure is partially in place - the kernel has ALSA UMP support, PipeWire can transport UMP packets, and a handful of controllers actually speak the protocol. But the gap between infrastructure and usable workflow is still wide enough that you need a fallback plan. This guide covers what actually works, what does not, and how to set up your system so MIDI 2.0 devices function correctly without breaking your existing MIDI 1.0 gear.
What MIDI 2.0 actually changes
MIDI 2.0 is not a speed upgrade. The underlying transport can be USB, Bluetooth, or network - the same physical layers as before. What changes is the protocol layer: Universal MIDI Packet (UMP) replaces the legacy byte stream format, and a set of new capabilities ride on top of it.
The differences that matter for production work:
| Feature | MIDI 1.0 | MIDI 2.0 (UMP) |
|---|---|---|
| Velocity resolution | 7-bit (0-127) | 16-bit (0-65535) |
| Control Change resolution | 7-bit (0-127) | 32-bit |
| Pitch Bend resolution | 14-bit | 32-bit |
| Per-note controllers | No | Yes (per-note pitch, pressure, CC) |
| Property Exchange | No | Yes (bidirectional device configuration) |
| Profile Configuration | No | Yes (device capability negotiation) |
| Channels per group | 16 | 16 per group, 16 groups (256 total) |
| Backward compatibility | N/A | MIDI 1.0 messages encapsulated in UMP |
The per-note controller support is the most musically significant change. Instead of a single pitch bend affecting all notes on a channel, MIDI 2.0 can bend individual notes independently. This is what MPE tried to solve by allocating one channel per note - a hack that consumed channels and complicated routing. MIDI 2.0 does it natively.
Property Exchange lets a host query a device for its capabilities, download patch lists, and configure parameters without SysEx archaeology. Profile Configuration means a controller can announce "I am a drawbar organ controller" and a compatible host can map it automatically without manual mapping work.
Kernel ALSA UMP support in 6.12
Linux kernel 6.12 includes the ALSA UMP sequencer subsystem, initially merged in the 6.5 cycle and refined through 6.12. The implementation provides:
- UMP sequencer clients alongside legacy MIDI clients. Each UMP-capable device registers as a UMP client with the kernel sequencer.
- Legacy bridge mode. UMP clients automatically expose a legacy MIDI 1.0 view for applications that do not understand UMP. The kernel translates between formats transparently.
- rawmidi UMP devices. Devices appear under
/dev/snd/umpC*D*in addition to the traditional/dev/snd/midiC*D*nodes.
Check if your kernel has UMP support:
ls /dev/snd/ump* 2>/dev/null && echo "UMP devices present" || echo "No UMP devices found"
Check the ALSA sequencer for UMP clients:
aconnect -l | grep -i ump
Or query the full sequencer topology:
cat /proc/asound/seq/clients
Look for clients with type: UMP in the output. If you see only type: kernel or type: user, your connected devices are operating in legacy MIDI 1.0 mode.
The kernel support is solid for class-compliant USB MIDI 2.0 devices. The driver stack (snd-usb-audio) detects whether a USB MIDI device advertises MIDI 2.0 Group Terminal Blocks and switches to UMP mode automatically. If the device does not advertise MIDI 2.0 capability, it falls back to the legacy rawmidi interface without any user intervention.
PipeWire UMP transport
PipeWire 1.2+ includes UMP-aware MIDI handling in its SPA (Simple Plugin API) layer. The implementation:
- Reads UMP packets from ALSA UMP sequencer clients
- Transports UMP natively through the PipeWire graph
- Converts UMP to legacy MIDI 1.0 at node boundaries where the receiving client does not support UMP
- Exposes UMP ports through the JACK MIDI compatibility layer with automatic downconversion
Check if PipeWire sees UMP devices:
pw-dump | grep -A 5 '"midi.ump"'
Or list MIDI ports with their protocol version:
pw-cli ls Port | grep -B 2 -A 5 midi
The practical effect is that if you connect a MIDI 2.0 controller, PipeWire will carry the full-resolution UMP data between any two UMP-aware applications. If one end only speaks MIDI 1.0, PipeWire handles the conversion. You do not need to configure this - it is automatic.
The WirePlumber policy engine routes UMP ports the same way it routes legacy MIDI ports. If you have custom routing rules from the WirePlumber profile configuration, they apply to UMP ports as well.
Which controllers actually support MIDI 2.0
This is where reality gets thin. As of mid-2026, genuine MIDI 2.0 UMP over USB is supported by a small number of controllers:
- Roland A-88MK2 - firmware updated for MIDI 2.0 in 2024, supports UMP and Property Exchange
- CME WIDI series - Bluetooth MIDI 2.0, works through BlueZ on Linux with manual pairing
- Native Instruments Kontrol S-series MK3 - UMP over USB, per-note controllers functional
- Akai MPK series (2025+ models) - UMP advertised, Property Exchange partially functional
Most other controllers sold as "MIDI 2.0 ready" are shipping firmware that still speaks MIDI 1.0 over USB and promises a future update. Check the actual USB descriptors to verify:
# Find your MIDI device
lsusb | grep -i midi
# Check USB descriptors for MIDI 2.0 Group Terminal Blocks
# Replace the bus/device numbers
lsusb -v -s 001:003 2>/dev/null | grep -A 10 "MIDI 2.0"
If you do not see MIDI 2.0 Group Terminal Block descriptors, your device is operating in MIDI 1.0 mode regardless of its marketing materials.
DAW support status
| DAW | UMP input | UMP output | Per-note controllers | Property Exchange |
|---|---|---|---|---|
| Ardour 9.0 | Partial (via PipeWire conversion) | No | Through MPE emulation only | No |
| Bitwig Studio 6 | Yes (native UMP) | Yes | Yes | No |
| REAPER 7.x | Partial (JSFX sees 7-bit only) | No | Through MPE emulation | No |
| Mixxx 2.5 | No | No | N/A | N/A |
| Carla | Through PipeWire bridge | Through PipeWire bridge | No | No |
| Qtractor | No | No | No | No |
Bitwig Studio 6 is the only Linux DAW with meaningful native MIDI 2.0 support. It reads UMP directly from PipeWire, preserves 32-bit resolution in its internal processing, and can output UMP to devices that accept it. See the Bitwig 6 workflow guide for configuration details.
Ardour 9.0 receives MIDI 2.0 data through PipeWire's automatic conversion. Per-note controllers arrive as MPE data, which Ardour can handle in its MPE editing mode. The resolution advantage of 32-bit velocity is lost - Ardour's internal MIDI representation is still 7-bit velocity at the input stage. This is expected to change in a future release.
REAPER on PipeWire receives converted MIDI 1.0. JSFX and native REAPER plugins see 7-bit data only. The REAPER PipeWire setup covers the MIDI routing specifics.
Safe fallback configuration
Until the ecosystem catches up, the safe approach is: let the kernel and PipeWire handle MIDI 2.0 negotiation automatically, but do not depend on MIDI 2.0 features in your workflow.
Ensure legacy bridge mode is active
The kernel's legacy bridge should be enabled by default. Verify:
cat /proc/asound/card*/midi* 2>/dev/null
If your MIDI 2.0 device appears under both /dev/snd/umpC*D* and /dev/snd/midiC*D*, the legacy bridge is working. Applications that only understand MIDI 1.0 will use the legacy device node transparently.
Force MIDI 1.0 mode for problem devices
If a MIDI 2.0 device is misbehaving (stuck notes, missing CCs, garbled SysEx), force it to MIDI 1.0 mode by preventing UMP negotiation:
# /etc/modprobe.d/midi-fallback.conf
options snd-usb-audio midi2_enable=0
This disables MIDI 2.0 negotiation for all USB MIDI devices. To apply it to a specific device only, use a udev rule:
# /etc/udev/rules.d/99-midi-fallback.rules
ACTION=="add", SUBSYSTEM=="sound", ATTR{idVendor}=="1234", ATTR{idProduct}=="5678", \
RUN+="/bin/sh -c 'echo 0 > /sys/module/snd_usb_audio/parameters/midi2_enable'"
Replace the vendor and product IDs with your device's values from lsusb.
Controller mapping with fallback
If you are building controller mappings for Mixxx, use MIDI 1.0 message types in your XML descriptor. Mixxx does not process UMP natively, and PipeWire's automatic conversion means your controller will send standard Note On/Off and CC messages to Mixxx regardless of whether it is a MIDI 2.0 device. The mapping works the same either way.
For DAWs that do support UMP (Bitwig), you can take advantage of higher resolution. But always have the MIDI 1.0 mapping as a fallback in case PipeWire's UMP transport hiccups or you move to a different machine without UMP support.
Checking your system end-to-end
Run through this checklist to understand your current MIDI 2.0 status:
# 1. Kernel UMP support
modinfo snd-seq-ump 2>/dev/null && echo "UMP sequencer module available"
# 2. UMP device nodes
ls -la /dev/snd/ump* 2>/dev/null
# 3. PipeWire MIDI port protocol
pw-dump | python3 -c "
import json, sys
data = json.load(sys.stdin)
for obj in data:
props = obj.get('info', {}).get('props', {})
if 'port.name' in props and 'midi' in props.get('media.type', '').lower():
name = props.get('port.name', 'unknown')
ump = props.get('midi.ump', False)
print(f'{name}: UMP={ump}')
"
# 4. Connected MIDI devices and their protocol
aplaymidi -l
The migration path
There is no reason to migrate anything right now. The correct approach for 2026:
- Keep your existing MIDI 1.0 workflows exactly as they are. They will continue to work indefinitely. The kernel legacy bridge ensures backward compatibility.
- If you buy a MIDI 2.0 controller, connect it and let the kernel/PipeWire auto-detect. Check if UMP is active with the commands above.
- If you use Bitwig, enable UMP input in its MIDI settings and test per-note controllers. This is currently the only Linux DAW where the full resolution is useful.
- For everything else, rely on PipeWire's automatic downconversion. Your MIDI 2.0 hardware will work with MIDI 1.0 applications without any manual configuration.
- Watch the Ardour and REAPER changelogs. Native UMP support in these DAWs will be the tipping point for broader adoption on Linux.
The audio quality reference has more context on where resolution improvements (like 32-bit MIDI velocity) fit into the broader signal chain.
FAQ
Does MIDI 2.0 reduce MIDI latency? No. MIDI 2.0 does not specify a different transport speed. Over USB, the polling interval and packet timing are identical to MIDI 1.0. The improvement is in resolution, not timing.
Can I use MIDI 2.0 and MIDI 1.0 devices simultaneously? Yes. The kernel handles both protocols on the same system. PipeWire routes them through the same graph. UMP and legacy clients coexist without conflict.
Will my existing MIDI 1.0 controller stop working? No. MIDI 1.0 is not being deprecated. The kernel rawmidi interface and ALSA sequencer support legacy MIDI exactly as before. MIDI 2.0 adds a parallel path - it does not replace the existing one.
Is Bluetooth MIDI 2.0 usable on Linux? Barely. BlueZ can pair with Bluetooth MIDI 2.0 devices, but the latency is unpredictable (8-20 ms jitter on top of the base latency). For anything timing-critical, use USB.
Should I wait for MIDI 2.0 to buy a new controller? Buy based on what works today. If a controller sounds good and its MIDI 1.0 implementation is solid, get it. MIDI 2.0 support is a bonus, not a reason to delay a purchase. The resolution improvements are real but the software ecosystem is not ready to exploit them fully on Linux.
Conclusion
MIDI 2.0 on Linux is at the infrastructure stage. The kernel has it. PipeWire has it. One DAW uses it properly. A handful of controllers speak it. The rest of the ecosystem is still catching up, and that is fine. The backward compatibility design means you lose nothing by using MIDI 2.0 hardware today - it falls back gracefully. Keep your MIDI 1.0 workflows in place, test UMP when you can, and watch for DAW updates. The foundation is solid. The applications just need time.
- MIDI 2.0
- UMP
- PipeWire
- ALSA
- Linux Audio
- 2026