summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-17 20:54:27 +0100
committerskal <pascal.massimino@gmail.com>2026-02-17 20:54:27 +0100
commit65ed044d4785a3666deb711b9dd964abb28f810c (patch)
treebc82a4f7bdc34769d6c18bb08015dca540f2b060
parentcfcd238044c7ce06dfdf1f9e08c3842bfa07979b (diff)
docs: Archive MQ Editor Phase 2 completion
JS synthesizer with replica oscillator bank and STFT cache complete. Ready for Phase 3 (editing UI). Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
-rw-r--r--doc/COMPLETED.md16
1 files changed, 16 insertions, 0 deletions
diff --git a/doc/COMPLETED.md b/doc/COMPLETED.md
index 47e1f29..67724a1 100644
--- a/doc/COMPLETED.md
+++ b/doc/COMPLETED.md
@@ -31,6 +31,22 @@ Use `read @doc/archive/FILENAME.md` to access archived documents.
## Recently Completed (February 17, 2026)
+- [x] **MQ Spectral Editor Phase 2: JS Synthesizer**
+ - **Goal**: Preview synthesized audio from MQ partials in browser
+ - **Deliverables**:
+ - `mq_synth.js`: Replica oscillator bank with bezier evaluation
+ - Cubic bezier curve evaluation (De Casteljau algorithm)
+ - Replica synthesis: frequency spread (±2%), amplitude decay (exp), phase jitter (5%)
+ - PCM buffer generation from partials with normalization
+ - Web Audio API playback integration
+ - Keyboard shortcuts: '1' plays synthesized, '2' plays original
+ - Mini-spectrum viewer (bottom-right, 200×100, cyan-yellow gradient)
+ - STFT cache optimization (pre-compute all FFT frames, shared access)
+ - Dynamic cache updates when hop size changes
+ - **Performance**: Eliminated redundant FFT computations, instant spectrum lookups
+ - **Files**: `mq_synth.js` (new), `fft.js` (STFTCache), `index.html`, `viewer.js`
+ - **Next**: Phase 3 (editing UI - drag control points, adjust replicas)
+
- [x] **MQ Spectral Editor Phase 1: Extraction & Visualization**
- **Goal**: Web-based McAulay-Quatieri sinusoidal analysis for procedural audio compression
- **Deliverables**: