| Age | Commit message (Expand) | Author |
| 17 hours | feat(mq_editor): validated dual-sine synthesis pipeline, clean code for real ... | skal |
| 18 hours | fix(mq_editor): mini-spectrum and spectrogram display improvements | skal |
| 18 hours | feat(mq_editor): add Test WAV button for in-browser UI testing | skal |
| 18 hours | test(mq_editor): add isolated FFT test page and sine generator | skal |
| 18 hours | feat(mq_editor): log-scale frequency axis with clean freqToY/canvasToFreq API | skal |
| 18 hours | refactor(mq_editor): store only squared amplitude after FFT, drop re/im | skal |
| 19 hours | fix(mq_editor): Catmull-Rom bezier fit, NaN guard, synth FFT toggle | skal |
| 25 hours | feat(mq_editor): sort partials by amplitude, keep% slider for reconstruction | skal |
| 26 hours | feat(mq_editor): peaks display, STFT cache refactor, threshold reactivity | skal |
| 27 hours | clean-up pass mq-partials | skal |
| 27 hours | docs: Archive MQ Editor Phase 2 completion | skal |
| 27 hours | feat(mq_editor): Complete Phase 2 - JS synthesizer with STFT cache | skal |
| 28 hours | docs: Archive MQ Editor Phase 1 completion | skal |
| 28 hours | docs(mq_editor): Update Phase 1 completion status | skal |
| 28 hours | feat(mq_editor): Improve partial tracking and add audio playback | skal |
| 28 hours | fix(mq_editor): Improve spectrogram visualization and navigation | skal |
| 32 hours | feat(mq_editor): Phase 1 - MQ extraction and visualization (SPECTRAL_BRUSH_2) | skal |
| 34 hours | feat(uniforms): Add noise field with per-frame random values | skal |
| 35 hours | refactor(effects): Streamline uniforms initialization | skal |
| 35 hours | feat(test): Add PeakMeter overlay to test_demo timeline | skal |
| 35 hours | refactor(gpu): Add RAII wrapper for WGPU resources to eliminate manual cleanup | skal |
| 35 hours | refactor(effects): Factor shared initialization into Effect base class | skal |
| 36 hours | fix(build): Resolve clean build failure from generated timeline header | skal |
| 36 hours | docs(gpu): Purge comment bloat from GPU headers | skal |
| 37 hours | refactor(gpu): Remove stale v2 references from demo_effects | skal |
| 37 hours | docs(style): Add rule for WGPU object initialization | skal |
| 37 hours | refactor(codegen): Use gpu_init helper in seq_compiler.py | skal |
| 37 hours | fix(build): Resolve Windows cross-compilation failures | skal |
| 38 hours | refactor(3d): SceneLoader to namespace | skal |
| 39 hours | feat: Rename GPU stub and headless files and update references | skal |
| 39 hours | style: replace C++ casts with C-style casts | skal |
| 39 hours | refactor: centralize platform-specific code in gpu.h | skal |
| 39 hours | feat: add time-based effect activation with auto-passthrough | skal |
| 39 hours | fix: seq_compiler includes effects/shaders.h | skal |
| 39 hours | style: Apply clang-format | skal |
| 40 hours | docs: document STRIP_GPU_COMPOSITE flag in BUILD.md | skal |
| 40 hours | refactor: move shaders.{h,cc} to src/effects and remove v2 suffix | skal |
| 40 hours | docs: streamline timeline editor documentation | skal |
| 40 hours | docs: update timeline editor documentation for v2 format | skal |
| 40 hours | feat: add Sequence V2 format support to timeline editor | skal |
| 40 hours | fix: use low-latency profile for regular Core Audio callbacks | skal |
| 48 hours | fix: correct Heptagon effect rendering and SDF implementation | skal |
| 2 days | fix: port Hybrid3D effect to sequence v2 architecture | skal |
| 2 days | test: enhance GaussianBlur parameters and test timeline | skal |
| 2 days | fix: make test_demo use workspace files, remove obsolete tools/test_demo.* | skal |
| 2 days | fix: add sequence index to generated class names | skal |
| 2 days | refactor: remove WIN32 platform checks from seq_compiler.py | skal |
| 2 days | refactor: remove C++ seq_compiler and Gantt chart references | skal |
| 2 days | refactor: remove END_DEMO directive, auto-calculate from sequences | skal |
| 2 days | refactor: complete removal of 'Effect' suffix from C++ class names | skal |