| Age | Commit message (Collapse) | Author |
|
Hover to preview a tracked partial from mouse position (peak-snapped,
forward+backward MQ tracking). Click to commit. Toggle with ⊕ Explore
button or X key. Escape exits explore mode.
handoff(Gemini): explore mode added in mq_extract.trackFromSeed + viewer.js/app.js
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- '+ Partial' button (N key): insert 440Hz/max-amp partial at front
- Undo/Redo buttons (Ctrl+Z/Y): JSON snapshot stack, 50 levels
- Hooks in delete, mute, curve edits, amp drag, freq drag
handoff(Gemini): undo/redo + new-partial added to mq_editor
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Extract synth UI params into reusable getSynthParams(). Add Digit3 shortcut
to synthesize and play only the currently selected partial.
handoff(Claude): getSynthParams() now shared by playSynthesized() and Digit3 handler.
|
|
- utils.js (new): evalBezier (robust), getCanvasCoords, buildBandPoints
- app.js (new): extract ~450-line inline script from index.html
- editor.js: generalize _makeJogSlider(inp, options) with onUpdate cb,
eliminate 50-line inline resonator jog duplication, use getCanvasCoords
- mq_extract.js: extract findBestPeak(), replace two identical loop bodies
- viewer.js: remove duplicate evalBezier, use getCanvasCoords/buildBandPoints
- mq_synth.js: remove duplicate evalBezier
- index.html: inline script removed, load order: utils→fft→extract→synth→viewer→editor→app
handoff(Claude): mq_editor refactor complete — no logic changes, browser-ready.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|