Editor: pause the Device-audio heartbeat during a firmware push

Push advanced to ~150/506 chunks then stalled intermittently. With Device audio on, the
heartbeat (0xFE every 250ms + a clock SysEx every ~3s) shares the MIDI link with the
firmware chunks and intermittently costs a chunk its ACK. Pause the heartbeat for the
duration of _pushFirmware and resume after.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Me Here 2026-05-29 15:14:58 -05:00
parent 937e7c332d
commit 30f02305e5

View file

@ -1238,7 +1238,9 @@ async function updateFirmware() { // A/B firmware update over USB-MIDI: push t
return; return;
} }
console.log("[fw] pushing", b64.length, "base64 chars..."); console.log("[fw] pushing", b64.length, "base64 chars...");
clearInterval(_midiBeat); _midiBeat = 0; // pause the Device-audio heartbeat (its MIDI traffic stalls the push)
const err = await _pushFirmware(b64); const err = await _pushFirmware(b64);
if (_midiOn) _heartbeat(true); // resume it afterwards
console.log("[fw] push result:", err || "OK"); console.log("[fw] push result:", err || "OK");
if (err) return alert("Update didn't complete (" + err + ").\n\nThe device kept its working firmware — nothing was installed. " + if (err) return alert("Update didn't complete (" + err + ").\n\nThe device kept its working firmware — nothing was installed. " +
"Make sure it's plugged in and NOT in editor mode (don't hold A), then retry."); "Make sure it's plugged in and NOT in editor mode (don't hold A), then retry.");