Skip to content

WavRead 1.4.11 — Large captures stay in one piece

Latest

Choose a tag to compare

@EZmannBuilds EZmannBuilds released this 16 Aug 20:43
· 1 commit to main since this release

A large capture could shatter into fragments. A 31-instance Logic take arrived as four separate analyses — 6 parts, 9 parts, 14 parts, and one lone track — instead of one song.

Every instance joins, polls and finishes on its own web-server thread, and each of those is a read-modify-write of the same session file. That produced two failures with one cause:

  • Lost updates. With no lock, two instances read the same session and each wrote its own version back; one vanished. Reproduced: of 31 instances joining at once, 7 survived.
  • A file that was not JSON. Every write went through the same temporary filename, so a short write could land inside a long one, leaving a valid session followed by the tail of a longer one. Unreadable — so the take looked absent and the next instance started a new one.

Writes now take a lock and each gets a private temporary file. Measured after the fix: 31 of 31 instances, valid file, nothing left behind.

The 1.4.10 heartbeat was making it worse. Added so a long recording would not look abandoned, it had every instance writing the session once a second — thirty writes a second to say nothing new. Throttled to one every three seconds.

Sessions damaged by the older version are recovered rather than discarded, so a capture recorded before this fix is not lost.

If you captured a large session on 1.4.9 or 1.4.10 and it came back split up, the audio is intact — every part is still on disk in WavRead's library.


WavRead-1.4.11.dmg — 237 MB
SHA-256: 9851e37904ebdb42e28021ed21cc40712db6ad10f2266c9294e4b2dc209a6d63

Unsigned: on first launch, right-click the app and choose Open. Requires Apple Silicon and macOS 14 or later.