Repository navigation
WASAPI Driver for ASIO 0.9.14
Pre-release0.9.14 (changes from 0.9.13) - "Capture gate on the output clock"
Block AB on 0.9.13 (2026-10-25, same system: Steinberg UR22mkII, Yamaha
Steinberg USB Driver, Windows 11 x64, Cubase 15, 44.1 kHz): Exclusive 256
still dropped (384 drops) and the gate refused NOTHING (gated 0): pulls
6527 in about 38 s (172 per second, the output's rhythm), one 441-frame
packet at every drain. The IAudioClock of that driver's CAPTURE stream
advances at the same false rate as its packets (441 frames per 5.8 ms),
so a gate on that clock lets everything through. Shared 256: 0/0/0;
Shared 512: 6 underruns / 19 discontinuities with a maximum read gap of
11.5 ms (the audio thread read on time; the discontinuity flag is set by
Windows' own capture engine when IT lost data from the device driver;
intermittent: the 0.9.12 run gave 0/0/0). The output path is unchanged.
Summary of all changes:
- KI-13 (to be confirmed by block AB on real hardware): the capture gate's
reference is now the OUTPUT stream's IAudioClock when the Exclusive
input runs on the same device as an Exclusive output with a usable clock
(one device, one clock; the output plays with 0 glitches, so its
position is real time), converted to device frames like the output's
glitch detection, base taken right after Start. On another device, or
with a Shared output, or without a clock, the system timer (QPC credit,
as in 0.9.13). The capture stream's own clock is no longer used, and
the stall detector that depended on it is gone. The rest of the gate is
unchanged (7/8 period threshold, one packet per opening unless a real
backlog exists, 4-period bound, backwards-position resync, timer credit
bounded to [-2, +4] periods). - KI-11 note: with an interface that has its own driver, Shared mode at
512 can show discontinuities flagged by Windows' capture engine although
the driver reads on time (max read gap 11.5 ms at a 10 ms period); it is
intermittent and comes from the device side. Recording with such an
interface: use Exclusive mode (no Windows engine in the path). With the
Microsoft class driver at 512 the same test was 0/0/0. - Status: "gated N" unchanged; Stats trace event: CaptureGateRef (0 none,
1 output clock, 2 system timer) replaces CaptureClockFallback (27
fields). Log: "capture gate on the output stream's clock (same device)"
or "... on the system timer (...)" at open, "stop: input capture gate:
pulls=N gated=M clock=output|qpc|none" at stop. - Documents: KNOWN-ISSUES.txt KI-11 (note), KI-13 (0.9.13 results, 0.9.14
fix); ARCHITECTURE.txt section 65 (rewritten); CODE-REVIEW.txt
"0.9.14"; TEST-GUIDE.txt block AB (0.9.13 results, AB7 for 0.9.14);
ROADMAP.txt (0.9.15: plain FIFO re-centring, output glitches counted at
an engine restart, control panel z-order when the DAW is re-activated). - Version number: getDriverVersion() returns 9140.
Not changed: the output path, the Shared capture path, the converters,
the installer logic, the trace provider, the panel apart from the status
text.
This package contains WasapiDriverARM64X.dll (Setup and bin.zip): on Windows on Arm the Setup registers it once for native ARM64 and emulated x64 hosts. Not yet tested on real Windows on Arm hardware (KNOWN-ISSUES.txt KI-9).