summaryrefslogtreecommitdiff
path: root/tools/mq_editor/index.html
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-18 11:57:57 +0100
committerskal <pascal.massimino@gmail.com>2026-02-18 11:57:57 +0100
commite438df22d88b42f98571a4a85d33ed2b705945b1 (patch)
tree6ebad386706dfdf8b751b0955c0f6e2443450d91 /tools/mq_editor/index.html
parent722b545e79178ae67b11af6a3567e68c69fd1983 (diff)
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 <noreply@anthropic.com>
Diffstat (limited to 'tools/mq_editor/index.html')
-rw-r--r--tools/mq_editor/index.html10
1 files changed, 6 insertions, 4 deletions
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 @@
<label><input type="checkbox" id="integratePhase" checked> Integrate phase</label>
<label><input type="checkbox" id="disableJitter"> Disable jitter</label>
<label><input type="checkbox" id="disableSpread"> Disable spread</label>
+ <label title="Test mode: force resonator synthesis for all partials (ignores per-partial mode setting)"><input type="checkbox" id="forceResonator"> Resonator (all)</label>
</div>
</div>
</div>
@@ -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)));