Skip to content

Fix: the Zoom MIDI link waits until a message's timestamp has passed - #1433

Merged
repeat98 merged 2 commits into
mainfrom
fix/zoom-midi-send-early
Nov 11, 2026
Merged

repeat98 merged 2 commits into
mainfrom
fix/zoom-midi-send-early

Conversation

@repeat98

Copy link
Copy Markdown
Owner
  • What was wrong or hard: the developer MCP's Zoom MIDI link (nodeMidiAccess in scripts/zoom-device.ts) waited for a timed message with one setTimeout(wait). Node truncates a fractional delay and can fire up to a millisecond early, so a message could leave a millisecond or two before its timestamp, which Web MIDI never does. Under CI load, scripts/zoom-device.test.mjs ("sends each message at its timestamp") failed twice in a row on Sidechain Compressor 0.2.2: ColdFire units join the DRAM runtime when the set has one (#1175) #1195 for this reason (0.5–0.7 ms early).
  • What this changes: send() keeps waiting until performance.now() has passed the timestamp, rounding each wait up. One line, plus a changelog entry. The test is unchanged.
  • How I checked it: the timestamp test passed five runs in a row locally, and npm run pr:ready says Ready.
  • What the guides lacked or got wrong, and where I fixed it: nothing.

🤖 Generated with Claude Code

repeat98 and others added 2 commits November 11, 2026 18:26
setTimeout truncates a fractional delay and can fire up to a millisecond
early, so a timed send could leave before its time (and the timestamp
test failed under CI load).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the bug Something isn't working label Nov 11, 2026
@repeat98
repeat98 merged commit 48874bc into main Nov 11, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant