Skip to content

v0.84.14

Choose a tag to compare

@pepperonas pepperonas released this 14 Jun 02:19
· 62 commits to main since this release

Bundles the fixes since v0.84.10 — headlined by the real fix for screen-recording mic audio.

Screen recording — mic audio finally in sync (v0.84.14)

The recorded mic audio played ~1.15× too fast with a silent tail. Root cause, now definitively measured: avfoundation systematically under-delivers audio samples — a clip whose video spans N seconds holds only ~85–90 % of N × sample_rate samples (a real 9.27 s recording held just 8.14 s of actual audio). The samples are continuous (no gaps), so the audio is time-compressed.

The trap that defeated the two earlier attempts (0.84.12/0.84.13): the MP4 muxer writes stretched timestamps, so the audio stream's duration metadata reads ≈ the video length (a lie). Only the decoded sample count is ground truth.

The fix measures each finished recording (true audio samples vs. video duration) and, when they diverge by >2 %, re-syncs with a single pitch-preserving atempo stretch — video stream copied untouched, no inline resampler, so no stutter/crackle. Computed per recording (the shortfall varies); a no-op when already in sync, so it's safe on every platform.

System audio still requires routing the system output through a loopback device (macOS: BlackHole + a Multi-Output Device) — a macOS limitation, not a bug.

Also fixed since v0.84.10

  • Text expander Alt+1 (v0.84.11): the Option/Alt modifier no longer corrupts the tracked keystroke buffer, so the hotkey expands the snippet instead of just opening the app. The expander now fires only via Alt+1 (no accidental expand-on-type), and the abbreviation is no longer left prepended to the body.

Full detail in CHANGELOG.md.

macOS (Apple Silicon) build attached. Windows/Linux paths are implemented and compile-validated; some are runtime-unverified.