From bc07ea00a9f2f418e6b460884c3925b72ff2a358 Mon Sep 17 00:00:00 2001 From: skal Date: Wed, 18 Feb 2026 16:22:54 +0100 Subject: refactor(mq_editor): unify freq+amp into single bezier curve freqCurve now carries a0-a3 (amplitude control values) alongside v0-v3 (frequency). Both components share the same t0-t3 time parameterization. evalBezierAmp() added to utils.js. ampCurve removed from partials and synth pipeline. Amp panel drag now changes only a_i; t is read-only (shared with freq). handoff(Claude): unified freq/amp bezier done --- tools/mq_editor/mq_extract.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'tools/mq_editor/mq_extract.js') diff --git a/tools/mq_editor/mq_extract.js b/tools/mq_editor/mq_extract.js index 107b2ac..97191e2 100644 --- a/tools/mq_editor/mq_extract.js +++ b/tools/mq_editor/mq_extract.js @@ -22,7 +22,9 @@ function extractPartials(params, stftCache) { for (const partial of partials) { partial.freqCurve = fitBezier(partial.times, partial.freqs); - partial.ampCurve = fitBezier(partial.times, partial.amps); + const ac = fitBezier(partial.times, partial.amps); + partial.freqCurve.a0 = ac.v0; partial.freqCurve.a1 = ac.v1; + partial.freqCurve.a2 = ac.v2; partial.freqCurve.a3 = ac.v3; } return {partials, frames}; -- cgit v1.2.3