Skip to content

DirectAudio v1.3.2 — Microphone capture (opt-in)

Latest

Choose a tag to compare

@github-actions github-actions released this 31 Aug 20:03
· 1 commit to main since this release

DirectAudio v1.3.2 — Microphone capture (opt-in)

Enable per-container with BANNER_AUDIO_DIRECT_MIC=1; the driver exposes a WASAPI capture endpoint backed by an AAudio INPUT stream (VOICE_COMMUNICATION preset → platform AEC / NS / AGC), opened lazily on first capture so non-mic titles are unaffected. Default off = identical to v1.3.1.

Device-proven on AYANEO Pocket FIT / Adreno 750: a real mic recording + TF2's in-game mic-test. NOT yet validated: a real 2-player online voice round-trip, and the input stream's impact on the output latency floor (monitor).

The capture path is the mirror of the render mixer, inverted: one shared AAudio input stream, opened lazily on the first capture stream and started only on the first Start, distributing captured PCM to each capture voice. With the mic off, get_endpoint_ids exposes zero capture endpoints and every capture op returns AUDCLNT_E_DEVICE_INVALIDATED — the safety mechanism against titles that probe the mic at startup and black-screen on an enumerable-but-unopenable endpoint (God of War, DiRT 3). Turn it on only for a title that wants the mic. Everything from v1.3.1 (live in-game config mailbox, soft-knee limiter, honest exclusive-mode reporting, daprobe, adaptive decay) carries forward unchanged.


Driver packages — complete, both Wine ABIs

Each zip is the complete 3-file driver set, laid out to drop straight onto the device Proton layer's lib/wine/:

  • aarch64-windows/winedirectaudio.drv — arm64ec PE, loaded for 64-bit guest games
  • i386-windows/winedirectaudio.drv — 32-bit PE, loaded for 32-bit (wow64) guest games
  • aarch64-unix/winedirectaudio.so — bionic unixlib (the AAudio backend, shared by both)

Which PE loads is decided by the guest game's bitness, not the device — a complete set carries both. Match the ABI to your layer's Wine version and the page size (sdk28 = 4 KB, sdk35 = 16 KB) to your device.

download Wine for these Proton layers
directaudio-wine11-arm64ec-sdk28.zip / -sdk35.zip 11 Proton 11.0-1 / 11.0-3 / 11.0-5 (ABI-interchangeable)
directaudio-wine10-arm64ec-sdk28.zip / -sdk35.zip 10 Proton 10.0-4

One Wine-11 build serves all three 11.0-x point releases (they're ABI-compatible); Wine 10 needs the separate wine10 build.

Diagnostics builds

The same driver with the full DA_LOG instrumentation (per-callback logcat probes), for field debugging — now built for both Wine ABIs and shipped as complete 3-file sets (prior releases carried a Wine-11-only pair):

  • directaudio-v1.3.2-diagnostics-wine11-arm64ec-sdk28.zip / -sdk35.zip
  • directaudio-v1.3.2-diagnostics-wine10-arm64ec-sdk28.zip / -sdk35.zip

Run a mic title with BANNER_AUDIO_DIRECT_MIC=1 + BANNER_AUDIO_DIRECT_LOG=1 and watch logcat for the DirectAudio tag (open / capture open/start) to confirm the endpoint went hot.