summaryrefslogtreecommitdiff
path: root/doc/COMPLETED.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/COMPLETED.md')
-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**: