pwasio is an ASIO driver for Wine with a PipeWire backend. ASIO is commonly used in Windows audio workstation programs. Requires at least PipeWire 1.6 for proper buffer negotiation.
Do the following to build for 64-bit Wine.
makeLogging is enabled in debug builds, using
DEBUG=true makeand are enabled through the wine debugging channel pwasio.
To install
cp lib/wine/x86_64-windows/pwasio.dll /path/to/winelibs/x86_64-windows/
cp lib/wine/x86_64-unix/pwasio.dll.so /path/to/winelibs/x86_64-unix/At the time of writing, the DLLs included in a new Proton prefix are fixed at build time, so if using Proton you must also copy the DLL to the default prefix
cp lib/wine/x86_64-windows/pwasio.dll /path/to/proton/files/share/default_pfx/drive_c/windows/system32After installation, if using an existing Wine prefix you'll also need to copy the dummy DLL to the prefix path
cp lib/wine/x86_64-windows/pwasio.dll /path/to/prefix/drive_c/windows/system32Finally, the driver needs to be registered so it's visible to ASIO enabled applications via
WINEPREFIX=/path/to/prefix regsvr32 pwasio.dllThis project comes solely out of frustration of being unable to run Ableton Live in my current PipeWire/Proton based Arch Linux setup. This project would not at all be possible without the skeleton laid out in the original WineASIO project. Despite being a complete refactor, I consider pwasio a derivative work of WineASIO and as such all original authors from that have been kept here.
In terms of features, stability and user-friendliness pwasio is merely a shadow of what WineASIO currently is. It works, but that's literally it. Care has also been taken so that this does not conflict with a WineASIO installation so that users may try out both and figure out what suits them better.
Configuration lives in the registry at HKEY_CURRENT_USER\Software\ASIO\pwasio.
Keys are:
buffer_sizeDWORD -- fixed buffer size for the ASIO driversample_rateDWORD -- fixed sample rate for the ASIO driverpriorityDWORD -- realtime priority for the ASIO driverhost_priorityDWORD -- realtime priority for the ASIO hostinputs,outputsMulti-String -- respective list of ports to be used by the driver in the format<node.name>:<port.name>as reported bypw-dump.
It can also be done through the ASIO control panel while the driver is loaded. Configuration is only saved by the driver if manually overriden in the panel. Node names shown here are aliases and are not suitable for manual registry edits.
Lists available source and sink nodes with available ports. Checkmarks add and remove ports, side buttons reorder and remove them. Defaults to PipeWire default source and sink whenever it can be parsed.
These options operate through the PipeWire PW_KEY_NODE_FORCE_QUANTUM and
PW_KEY_NODE_FORCE_RATE options, which force the PipeWire graph to run under
the specific configuration. Setting these to values not supported by your
hardware might incur overhead. Defaults to whatever it can parse from
PipeWire settings.
Defaults to whatever can be parsed from PipeWire's realtime module. Setting the
respective fields to > 0 will give the driver and host realtime scheduling,
which may be necessary to achieve lower latencies. The user must have realtime
privileges. We use SCHED_FIFO scheduling with the given priority. Host
priority defaults to half of driver priority.
- 18/04/2026: Add patchbay and automatic configuration (GG)
- 15/03/2026: Switch back to
pw_filter(GG)
- 24/12/2025: Separate driver and host realtime priorities (GG)
- 20/12/2025: Get timestamp in
input_process(GG) - 02/12/2025: Improved logging (GG)
- 26/10/2025: Driver can now run in realtime thread (GG)
- 11/10/2025: Add control panel and persistent configuration (GG)
- 10/10/2025: Use decoupled input and output streams (GG)
- 21/09/2025: PipeWire now directly uses the ASIO buffers (GG)
- 01/09/2025: Initial version (GG)
Copyright (C) 2006 Robert Reif
Portions copyright (C) 2007 Ralf Beck
Portions copyright (C) 2007 Johnny Petrantoni
Portions copyright (C) 2007 Stephane Letz
Portions copyright (C) 2008 William Steidtmann
Portions copyright (C) 2010 Peter L Jones
Portions copyright (C) 2010 Torben Hohn
Portions copyright (C) 2010 Nedko Arnaudov
Portions copyright (C) 2011 Christian Schoenebeck
Portions copyright (C) 2013 Joakim Hernberg
Portions copyright (C) 2020-2023 Filipe Coelho
Portions copyright (C) 2025-2026 Gabriel Golfetti
pwasio is licensed under GPL v3+, see LICENSE for more details.
