PipeASIO
Low-latency ASIO audio for Windows DAWs on Linux. Runs under Wine and Proton, native to PipeWire.
New: PipeASIO is now packaged in the AUR. paru -S pipeasio installs the driver, the settings panel and its menu entry in one go. Other distros build from source.
Straight to PipeWire
PipeASIO is a native PipeWire client. Audio gets from your host to the graph in one hop, instead of detouring through Wine's audio layer or a JACK bridge that the Proton container does not even ship.
libpipewire-0.3 shared memory.
libjack.so.0, which is absent in the steamrt4 container, so it crashes on load.
How it compares
FL Studio's built-in ASIO does work under Wine, but it is just a stereo stream handed to Wine's audio layer. PipeASIO is a first-class node in the PipeWire graph.
| Capability | PipeASIO | FL Studio ASIO | WineASIO |
|---|---|---|---|
| Loads in Proton / steamrt4 | Yes | Yes | No, needs libjack |
| Path to PipeWire | Direct, native client | Through Wine audio | Through JACK |
| Routable per-channel node in the graph | Yes | No, one stream | Via JACK only |
| Graph clock locked to the host buffer | Yes | No | Partial |
| Live settings panel with a load monitor | Yes | No | No |
| Extra runtime dependency | None | Wine audio | libjack.so.0 |
What you get
A focused, modern bridge between ASIO hosts and PipeWire, with a native settings panel.
PipeWire native
Talks to libpipewire-0.3 directly through a pw_filter DSP node. No JACK, no libjack.so.0 at runtime.
Runs under Proton
Loads inside the Steam Runtime steamrt4 container that Proton uses, via a host-provided WINEDLLPATH.
Sample-accurate clock
Locks the PipeWire quantum to the host's negotiated buffer with PW_KEY_NODE_FORCE_QUANTUM for tight, glitch-free timing.
Qt6 settings panel
A native pipeasio-settings app: channels, buffer size, device routing, plus a live Monitor tab with quantum, rate, xruns, and a DSP-load graph.
Bluetooth friendly
A follow-device-clock mode lets the target device drive the cycle, which Bluetooth sinks require since their clock is the radio link.
Live config reload
The driver re-reads its INI while running, so saving in the panel applies within about a second. No reselecting the driver or restarting the host.
The settings panel
Configure channels and routing, then watch the graph live. Shown here running under FL Studio.


Quick start
x86_64 only. Building from source needs CMake 3.20+, the Wine SDK, pkg-config, libpipewire-0.3-dev, and (for the panel) qt6-base-dev.
# driver + settings panel, from the AUR paru -S pipeasio # or: yay -S pipeasio pipeasio-register
Plain Wine users are done. For Proton the system-wide install is invisible inside the container, so follow steps 1-2 (user-local) and step 4 instead. Everyone else, build from source:
# clone and build (Release)
git clone https://github.com/M0n7y5/pipeasio.git && cd pipeasio
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
# user-local, required for Proton / Faugus / Steam cmake --install build --prefix "$HOME/.local" # ...or system-wide for a normal Wine setup sudo cmake --install build --prefix /usr
env WINEPREFIX="$HOME/Faugus/<game>" pipeasio-register
Proton runs Wine in a container that cannot see /usr/lib/wine, so install under $HOME (above) and point Proton's Wine at the ELF half by setting this in your launcher's per-game environment:
WINEDLLPATH=/home/<you>/.local/lib/wine
Use the absolute path (Faugus does not expand ~). Then pick PipeASIO as the ASIO device inside your host. The full config reference and environment overrides live in the README.
The same install drops a native settings app, pipeasio-settings (built whenever qt6-base-dev is present). Launch it to set channels, buffer size and device routing, and to watch the live Monitor. Saves apply within about a second, with no host restart.
pipeasio-settings
Configuration
A flat INI at ~/.config/pipeasio/config.ini (written by the panel). Every key also has an environment-variable override, and the defaults work out of the box.
| Key | Default | What it does |
|---|---|---|
inputs / outputs | 2 / 2 | Number of PipeWire ports the driver opens. |
buffer_size | 1024 | Preferred ASIO buffer size (power of two, 16 to 8192). |
fixed_buffer_size | on | Lock the size, or let the host change PipeWire's quantum. |
sample_rate | follow | 0 follows the graph, a non-zero value pins the rate. |
auto_connect | on | Auto-wire channels to a hardware device on start. |
follow_device_clock | off | Let the target device drive the cycle (needed for Bluetooth). |
Questions and troubleshooting
PipeASIO is at 1.0.0, verified with FL Studio under Proton-CachyOS and with the VB-Audio ASIO Test utility (64-bit). Other ASIO hosts (Reaper, Ableton Live) should work but are not yet confirmed. Reports are very welcome.
No sound, or the driver does not load under Proton?
/usr/lib/wine. Install under $HOME, set WINEDLLPATH=$HOME/.local/lib/wine in your launcher's per-game environment, then register in that prefix.Registering fails with status c0000135?
pipeasio.dll symlinks next to pipeasio64.dll for Wine 10+, so re-run cmake --install to create them, then register again.Bluetooth headphones produce no sound?
PIPEASIO_FOLLOW_DEVICE_CLOCK=on). A Bluetooth sink's clock is the radio link and cannot be slaved to the host, so the driver follows it instead.