Skip to content

v1.6.4-beta.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Jul 20:22
· 2553 commits to main since this release
8f70bfa

WaveFlow 1.6.4-beta.1

Pre-release on the beta channel. Opt in from Settings β†’ Diagnostics β†’ Update channel β†’ Beta. Stable users are unaffected.

This build is mostly about a bug that has resisted two previous attempts, plus a batch of fixes from tester reports. If you only test one thing, please test WASAPI Exclusive β€” details below.

🎧 The big one: WASAPI Exclusive re-init

If your DAC resets its session mid-playback, WASAPI Exclusive could leave the engine in a broken state β€” playback disrupted, the Settings toggle stuck on, and only a full restart of WaveFlow to get out of it. (#355 / #365)

The cause turned out to be a self-sustaining loop. On a device that resets every time a client grabs it exclusively, our own re-open triggered the next device error, which scheduled another rebuild, which re-opened exclusive again… Each pass ran 300 ms after the previous one finished, so the existing debounce never saw them overlap and let every single one through. Eventually one rebuild opened the device while the previous stream was still settling and collided with AUDCLNT_E_DEVICE_IN_USE, and even the shared-mode fallback then failed.

Recovery is now single-owner: one burst of device errors produces exactly one rebuild, followed by a short settle window so our own re-open can't re-arm the loop. A genuine later failure (a real unplug) still recovers as before.

This is hardware-specific and I could not reproduce it locally β€” it needs a device that behaves this way. If you hit the bug before, please try this build and check Settings β†’ Diagnostics β†’ Open log folder for:

  • a single rebuilding cpal output after DeviceNotAvailable per event (not two or more)
  • no 0x8889000A / AUDCLNT_E_DEVICE_IN_USE
  • the negotiation staying on your device's real format (e.g. S24_4LE) instead of dropping to S16_LE

✨ New

Prefer LRCLIB over embedded lyrics

A new toggle under Settings β†’ Playback flips the lyrics lookup order: online providers (LRCLIB / Musixmatch) are tried before the lyrics embedded in your files. Off by default, so nothing changes unless you want it. (#378)

It never loses lyrics: if the online providers have nothing for a track, your file's own embedded or sidecar lyrics are still used. Handy if your rips carry poor-quality or unsynced lyrics you'd rather replace.

πŸ”§ Fixes

  • Menus were hidden behind other UI in some themes. In Pulse and Liquid, the playback bar covered the bottom of a track's right-click menu, making entries like "Properties" unreachable; in Studio, the date header in Recently Played painted over the profile menu. Both had the same root cause β€” the glassy backdrop-filter chrome was trapping the menus underneath it. (#390, thanks @ukine888)
  • The window no longer reopens "maximized but not maximized". Closing while maximized used to save the full-screen geometry, so the next launch opened a window at that size without actually being maximized β€” and it couldn't be restored to its previous size. Only a normally-sized window is remembered now.
  • A network blip no longer marks a track as permanently lyric-less. If a lyrics provider was unreachable, the failure was cached as "no lyrics exist" and never retried. A provider outage is now told apart from a genuine "nobody has this song", and only the latter is remembered. (#391)
  • Animated album covers are fetched once per album instead of three or four times, since several views were each requesting them independently.

🎨 Also worth updating: Apple Motion Artwork plugin v0.3.0

The plugin updates separately from the app β€” grab it from Settings β†’ Plugins. It now finds noticeably more animated covers.

It used to accept the first search result blindly, which was often the same-named single rather than the album (singles rarely have animated artwork), and it gave up if that one candidate came back empty. It now checks several candidates, ranks them so the actual album wins over a same-named single, and asks Apple for the explicit edition β€” which frequently has artwork the clean edition lacks.

If animated covers never worked for you, this is the update to try.

πŸ“ Notes for testers

  • Found a rough edge? Please include your OS, the exact steps, and the relevant lines from Settings β†’ Diagnostics β†’ Open log folder.
  • Betas on this channel are patch-level builds. The next stable release will be 1.7.0, once WASAPI is confirmed fixed.

Full changelog: v1.6.3-beta.2...v1.6.4-beta.1