Fixes chords being flattened during playback.
The problem
When two keys overlapped in a recording, the release of the first key was injected in the same system
call as the press of the second. Windows delivers such a call atomically, so the moment where both keys
were held together disappeared entirely: the target application saw two unrelated keystrokes instead of the
combination, and typically acted only on the second one.
Raising the playback speed made it worse. A chord recorded 44 ms apart and replayed at 3x had its overlap
divided as well, shrinking it below anything an application samples.
The symptom, from a real macro that pressed left arrow together with escape and T together with I: only
escape and I reached the game. The other two keys were injected, but never at a moment the game could
observe them.
The fix
- Presses now only ever travel in the same system call as other presses, and releases only with releases.
- A release is held back until the most recently pressed key has been down alongside it for at least the
minimum hold time, so speeding a macro up can no longer shrink an overlap to nothing.
Macros made of separate keystrokes are unaffected. If your macros hold keys together — game combinations,
modifier combinations, movement plus action — this release is worth installing.
Install
Download macroStudio-1.0.1.nvda-addon below and open it. Requires NVDA 2023.1 or later.
Verifying the download
SHA-256 d9c21cec89127ba91e02a8096b1abab858956f2b3927efed4414b53e427f9fa2 macroStudio-1.0.1.nvda-addon