PipeASIO 1.0.0-rc1
Pre-release
Pre-release
First PipeASIO release candidate. Forked from WineASIO and reworked to talk to PipeWire directly through libpipewire-0.3, with no libjack.so.0 runtime dependency, so the driver loads inside the Steam Runtime container that Proton uses.
Verified with FL Studio under Proton-CachyOS. Other ASIO hosts (Reaper, Ableton Live) should work but are not yet confirmed.
Added
- Native C++/Qt6 settings panel (
pipeasio-settings) with a Settings tab and a live Monitor tab, replacing the old PyQt GUI. - Monitor tab showing live PipeWire quantum, sample rate, DSP load, xruns, and state, auto-discovering the driver's own PipeWire node.
- DSP load drawn as a rolling history graph instead of a single bar.
- "Follow device clock" option (
follow_device_clock) so output to a Bluetooth sink works, where the sink's clock cannot be slaved to the host. - PipeWire sink and source selection (
output_device/input_device), honored by autoconnect; an empty value follows the PipeWire default. sample_ratesetting:0follows the graph rate, a non-zero value pins it.- Tooltips on every Settings and Monitor field.
- Subnormal float flushing (FTZ/DAZ) on the audio thread to avoid rare CPU stalls and the dropouts they cause.
- ASIO host timestamp derived from the PipeWire graph clock rather than the system tick count.
Changed
- Configuration moved from the Windows registry to a flat INI at
$XDG_CONFIG_HOME/pipeasio/config.ini, re-read while running and written atomically, so saving in the panel applies within about a second with no host restart. - Default channel count is now 2 in / 2 out (was 16 / 16).
- "Follow default" connects to the actual PipeWire default sink and source, not the first device discovered.
- The panel's confirm button is now "Apply": it saves without closing.
- The panel keeps a saved device or sample rate that is currently unavailable, marked "(unavailable)", instead of resetting it on Apply.
- The in-app ASIO control-panel button points you to run
pipeasio-settingson the host. - Removed the obsolete "Autostart server" option.
Fixed
- Crash (use-after-free and heap corruption) when a PipeWire device connects or disconnects while the driver is starting or reconnecting.
- Garbled or out-of-bounds output when following a device clock or when PipeWire clamps the forced quantum.
- Slow or pitched-down playback at buffer sizes other than the backend default.
- Memory leak when the audio backend failed to start, and leaked discovered-port lists on init error paths.
- The settings panel no longer freezes on Monitor refresh;
pw-topandpw-dumprun asynchronously. - The Monitor tab now populates while audio plays.
- Hardened channel-count limits and tightened COM teardown and several error paths.
Full changelog: https://github.com/M0n7y5/pipeasio/blob/v1.0.0-rc1/CHANGELOG.md