diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-18 13:24:10 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-18 13:24:10 +0100 |
| commit | c3c1011cb6bf9bca28736b89049d76875a031ebe (patch) | |
| tree | 062ed40059840418c2c64bc6fc44ea8e5673467b /tools/mq_editor/index.html | |
| parent | 362f862da4fb5d9c666c8ca7b0dc329d4b8d1f7e (diff) | |
feat(mq_editor): implement MQ extraction improvements
- Implement Predictive Kinematic Tracking to improve partial tracking during fast glissandos and vibrato.
- Add Peak Prominence Pruning to filter out insignificant local maxima.
- Replace heuristic Bezier fitting with a Least-Squares solver for more accurate trajectories.
- Update UI to include a Prominence parameter input.
- Archive MQ_EXTRACTION_IMPROVEMENTS.md design document.
handoff(Gemini): implemented MQ extraction improvements (kinematic tracking, prominence pruning, least-squares bezier)
Diffstat (limited to 'tools/mq_editor/index.html')
| -rw-r--r-- | tools/mq_editor/index.html | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/mq_editor/index.html b/tools/mq_editor/index.html index c663c69..a2daff5 100644 --- a/tools/mq_editor/index.html +++ b/tools/mq_editor/index.html @@ -272,6 +272,9 @@ <label>Threshold (dB):</label> <input type="number" id="threshold" value="-20" step="any"> + <label>Prominence (dB):</label> + <input type="number" id="prominence" value="1.0" step="0.1" min="0"> + <label style="margin-left:16px;" title="Weight spectrum by frequency before peak detection (f * FFT_Power(f)), accentuates high-frequency peaks"> <input type="checkbox" id="freqWeight"> f·Power </label> @@ -446,6 +449,7 @@ const hopSize = document.getElementById('hopSize'); const threshold = document.getElementById('threshold'); + const prominence = document.getElementById('prominence'); const freqWeightCb = document.getElementById('freqWeight'); const keepPct = document.getElementById('keepPct'); const keepPctLabel = document.getElementById('keepPctLabel'); @@ -564,6 +568,7 @@ fftSize: fftSize, hopSize: parseInt(hopSize.value), threshold: parseFloat(threshold.value), + prominence: parseFloat(prominence.value), freqWeight: freqWeightCb.checked, sampleRate: audioBuffer.sampleRate }; |
