diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-18 15:46:59 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-18 15:46:59 +0100 |
| commit | 7a054e8ee8566eea9d06ff1ff9c1ce48c39fe659 (patch) | |
| tree | 30ee1013f398cc565139d67c2613200dbbebca6f /tools/mq_editor/README.md | |
| parent | 02dd7799396ebe3b5c3764796cfa3cbc72b72110 (diff) | |
feat(mq_editor): expose tracking params in UI with grouped param panel
Reorganize extraction parameters into four labeled groups (STFT / Peak
Detection / Tracking / Filter). Expose Birth, Death, Phase Wt and Min
Len as live controls wired to runExtraction(). All labels carry tooltip
descriptions. mq_extract.js now reads these from params instead of
hardcoded constants (same defaults preserved).
handoff(Claude): tracking params exposed, panel grouped, README updated.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'tools/mq_editor/README.md')
| -rw-r--r-- | tools/mq_editor/README.md | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/tools/mq_editor/README.md b/tools/mq_editor/README.md index c1f2732..83cd28d 100644 --- a/tools/mq_editor/README.md +++ b/tools/mq_editor/README.md @@ -25,11 +25,32 @@ open tools/mq_editor/index.html ## Parameters -- **Hop Size:** 64–1024 samples (default 256) -- **Threshold:** dB floor for peak detection (default −60 dB) -- **Prominence:** Min dB height of a peak above its surrounding "valley floor" (default 1.0 dB). Filters out insignificant local maxima. -- **f·Power:** checkbox — weight spectrum by frequency (`f·FFT_Power(f)`) before peak detection, accentuating high-frequency peaks -- **Keep %:** slider to limit how many partials are shown/synthesized +Parameters are grouped into four sections in the toolbar. + +### STFT +| Param | Default | Description | +|-------|---------|-------------| +| **Hop** | 256 | STFT hop size in samples. Smaller = finer time resolution, more frames, slower. | + +### Peak Detection +| Param | Default | Description | +|-------|---------|-------------| +| **Threshold (dB)** | −20 | Minimum spectral peak amplitude. Peaks below this are ignored. | +| **Prominence (dB)** | 1.0 | How much a peak must rise above its surrounding valley. Suppresses weak shoulders. | +| **f·Power** | off | Weight spectrum by `f × Power(f)` before detection. Boosts high-frequency peaks relative to low-frequency ones. | + +### Tracking +| Param | Default | Description | +|-------|---------|-------------| +| **Birth** | 3 | Frames a candidate must persist before becoming a partial. Higher = fewer spurious bursts. | +| **Death** | 5 | Frames a partial can go unmatched before termination. Higher = bridges short gaps. | +| **Phase Wt** | 2.0 | Weight of phase prediction error in the peak-matching cost function. Higher = stricter phase coherence. | +| **Min Len** | 10 | Minimum frame count for a partial to survive after tracking. Discards very short partials. | + +### Filter +| Param | Default | Description | +|-------|---------|-------------| +| **Keep %** | 100% | Retain only the strongest N% of extracted partials by peak amplitude. | ## Keyboard Shortcuts @@ -123,7 +144,7 @@ For a partial at 440 Hz with `spread = 0.02`: `BW ≈ 8.8 Hz`, `r ≈ exp(−π 1. **STFT:** Overlapping Hann windows, radix-2 FFT 2. **Peak Detection:** Local maxima above threshold + parabolic interpolation. Includes **Prominence Filtering** (rejects peaks not significantly higher than surroundings). Optional `f·Power(f)` weighting. -3. **Forward Tracking:** Birth/death/continuation with frequency-dependent tolerance. Includes **Predictive Kinematic Tracking** (uses velocity to track rapidly moving partials). +3. **Forward Tracking:** Phase-coherent birth/death/continuation. Configurable `Birth`, `Death`, `Phase Wt`, and `Min Len`. Uses velocity prediction and phase advance to resolve ambiguous peak matches. 4. **Backward Expansion:** Second pass extends each partial leftward to recover onset frames 5. **Bezier Fitting:** Cubic curves optimized via **Least-Squares** (minimizes error across all points). |
