summaryrefslogtreecommitdiff
path: root/tools/mq_editor/app.js
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-18 21:47:27 +0100
committerskal <pascal.massimino@gmail.com>2026-02-18 21:47:27 +0100
commit8f069fc08a123b1544c2a978586046e1ebb2173a (patch)
treed05b59ac439b3d93b3ed23df0110ddf29d39a4a7 /tools/mq_editor/app.js
parentf48397c58248ca338c258b1de762314926fe681f (diff)
fix(mq_editor): destroy old viewer listeners on WAV reload
Each loadAudioBuffer() was creating a new SpectrogramViewer without removing the previous one's canvas event listeners. Old viewers would fire on every mouse event, rendering stale spectrogram data and calling editor.onPartialSelect() with out-of-range indices (hiding the amp panel). Fix: store handlers as named instance properties, add destroy() to remove them, and call destroy() before creating a new viewer. handoff(Claude): bug fix only, no behaviour change Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'tools/mq_editor/app.js')
-rw-r--r--tools/mq_editor/app.js1
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/mq_editor/app.js b/tools/mq_editor/app.js
index dd0a24f..d53af37 100644
--- a/tools/mq_editor/app.js
+++ b/tools/mq_editor/app.js
@@ -189,6 +189,7 @@ function loadAudioBuffer(buffer, label) {
});
}
+ if (viewer) viewer.destroy();
viewer = new SpectrogramViewer(canvas, audioBuffer, stftCache);
viewer.setFrames(peakFrames);
document.getElementById('exploreBtn').disabled = false;