From e438df22d88b42f98571a4a85d33ed2b705945b1 Mon Sep 17 00:00:00 2001 From: skal Date: Wed, 18 Feb 2026 11:57:57 +0100 Subject: feat(mq_editor): global resonator test-mode checkbox in Synthesis panel Adds "Resonator (all)" checkbox that forces resonator synthesis for all partials without modifying per-partial mode settings. Fixes null deref when partial.resonator is undefined in forceResonator mode. handoff(Gemini): resonator test-mode checkbox added; no per-partial data mutated Co-Authored-By: Claude Sonnet 4.6 --- tools/mq_editor/index.html | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'tools/mq_editor/index.html') diff --git a/tools/mq_editor/index.html b/tools/mq_editor/index.html index 81b5bef..61ff1ac 100644 --- a/tools/mq_editor/index.html +++ b/tools/mq_editor/index.html @@ -348,6 +348,7 @@ + @@ -627,11 +628,12 @@ const partialsToUse = extractedPartials.slice(0, keepCount).filter(p => !p.muted); setStatus(`Synthesizing ${partialsToUse.length}/${extractedPartials.length} partials (${keepPct.value}%)...`, 'info'); - const integratePhase = document.getElementById('integratePhase').checked; - const disableJitter = document.getElementById('disableJitter').checked; - const disableSpread = document.getElementById('disableSpread').checked; + const integratePhase = document.getElementById('integratePhase').checked; + const disableJitter = document.getElementById('disableJitter').checked; + const disableSpread = document.getElementById('disableSpread').checked; + const forceResonator = document.getElementById('forceResonator').checked; const pcm = synthesizeMQ(partialsToUse, audioBuffer.sampleRate, audioBuffer.duration, - integratePhase, {disableJitter, disableSpread}); + integratePhase, {disableJitter, disableSpread, forceResonator}); if (viewer) { viewer.setSynthStftCache(new STFTCache(pcm, audioBuffer.sampleRate, fftSize, parseInt(hopSize.value))); -- cgit v1.2.3