| Age | Commit message (Expand) | Author |
| 19 hours | fix(mq_editor): apply coupled anchor drag to freqCurve in viewer canvas | skal |
| 19 hours | feat(mq_editor): drag anchor points P0/P3 with their companion handles | skal |
| 19 hours | feat(mq_editor): add '3' key to solo selected partial + extract getSynthParams() | skal |
| 19 hours | refactor(mq_editor): consolidate duplicates, extract utils.js and app.js | skal |
| 20 hours | feat(mq_editor): expose tracking params in UI with grouped param panel | skal |
| 20 hours | fix(mq_editor): correct phaseInterp quadratic coefficient and stale phase pre... | skal |
| 21 hours | feat(mq_editor): Implement phase-coherent partial tracking | skal |
| 22 hours | feat(mq_editor): implement MQ extraction improvements | skal |
| 23 hours | feat(mq_editor): global r/gain overrides for Resonator (all) mode | skal |
| 23 hours | docs(mq_editor): document LP/HP post-synthesis filter sliders | skal |
| 23 hours | feat(mq_editor): LP/HP filter sliders with frequency display in Synthesis panel | skal |
| 23 hours | feat(mq_editor): global resonator test-mode checkbox in Synthesis panel | skal |
| 23 hours | feat(mq_editor): post-synthesis LP/HP filter pair in synthesizeMQ | skal |
| 24 hours | feat(mq_editor): per-partial two-pole resonator synthesis mode | skal |
| 24 hours | feat(mq_editor): f·Power checkbox, deselect on extract, panel refresh after ... | skal |
| 24 hours | feat(mq_editor): E key for extract, style cleanup, doc update | skal |
| 24 hours | feat(mq_editor): jog sliders for synth params, reset partials on WAV load, pa... | skal |
| 24 hours | feat(mq_editor): spread autodetection, 50% drop-off line, mini-spectrum peak fix | skal |
| 25 hours | feat(mq_editor): tabbed freq/amp/synth panel, spread band viz, UI polish | skal |
| 27 hours | feat(mq_editor): partial selection, amp bezier editor, and editor.js refactor | skal |
| 28 hours | docs(mq_editor): update README to reflect current state | skal |
| 28 hours | refactor(mq_editor): clean coordinate API and remove UI duplication | skal |
| 28 hours | feat(mq_editor): UI improvements and partial detection enhancements | skal |
| 29 hours | feat(mq_editor): validated dual-sine synthesis pipeline, clean code for real ... | skal |
| 29 hours | fix(mq_editor): mini-spectrum and spectrogram display improvements | skal |
| 30 hours | feat(mq_editor): add Test WAV button for in-browser UI testing | skal |
| 30 hours | test(mq_editor): add isolated FFT test page and sine generator | skal |
| 30 hours | feat(mq_editor): log-scale frequency axis with clean freqToY/canvasToFreq API | skal |
| 30 hours | refactor(mq_editor): store only squared amplitude after FFT, drop re/im | skal |
| 30 hours | fix(mq_editor): Catmull-Rom bezier fit, NaN guard, synth FFT toggle | skal |
| 37 hours | feat(mq_editor): sort partials by amplitude, keep% slider for reconstruction | skal |
| 38 hours | feat(mq_editor): peaks display, STFT cache refactor, threshold reactivity | skal |
| 38 hours | clean-up pass mq-partials | skal |
| 38 hours | docs: Archive MQ Editor Phase 2 completion | skal |
| 38 hours | feat(mq_editor): Complete Phase 2 - JS synthesizer with STFT cache | skal |
| 40 hours | docs: Archive MQ Editor Phase 1 completion | skal |
| 40 hours | docs(mq_editor): Update Phase 1 completion status | skal |
| 40 hours | feat(mq_editor): Improve partial tracking and add audio playback | skal |
| 40 hours | fix(mq_editor): Improve spectrogram visualization and navigation | skal |
| 43 hours | feat(mq_editor): Phase 1 - MQ extraction and visualization (SPECTRAL_BRUSH_2) | skal |
| 46 hours | feat(uniforms): Add noise field with per-frame random values | skal |
| 46 hours | refactor(effects): Streamline uniforms initialization | skal |
| 46 hours | feat(test): Add PeakMeter overlay to test_demo timeline | skal |
| 46 hours | refactor(gpu): Add RAII wrapper for WGPU resources to eliminate manual cleanup | skal |
| 47 hours | refactor(effects): Factor shared initialization into Effect base class | skal |
| 48 hours | fix(build): Resolve clean build failure from generated timeline header | skal |
| 2 days | docs(gpu): Purge comment bloat from GPU headers | skal |
| 2 days | refactor(gpu): Remove stale v2 references from demo_effects | skal |
| 2 days | docs(style): Add rule for WGPU object initialization | skal |
| 2 days | refactor(codegen): Use gpu_init helper in seq_compiler.py | skal |