Skip to content

PipeASIO 1.0.0-rc1

Pre-release
Pre-release

Choose a tag to compare

@M0n7y5 M0n7y5 released this 08 Jun 22:10
· 11 commits to master since this 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_rate setting: 0 follows 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-settings on 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-top and pw-dump run 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