Archive Milestone 2 in docs

Move completed M2 (peaks module) from PLAN.md to COMPLETED.md; add peaks_tests
to the CLAUDE.md targets table and update the pure-core status to M0-M2 done.
This commit is contained in:
2026-07-22 10:00:32 -04:00
parent 995e790ac0
commit 93e2783098
3 changed files with 18 additions and 17 deletions
+14
View File
@@ -53,3 +53,17 @@ only** invariant enforced at the model boundary (no absolute path accepted/store
- [x] Tests: full-field round-trip lossless; dedup collapses equal-hash adds;
tier filter/move correct; relative-path invariant rejects absolute paths;
empty-index and malformed-JSON edge cases.
---
## Milestone 2 — peaks (pure)
**Goal:** Compute waveform min/max bins from raw PCM, dependency-free (not
REAPER's peak API). CONTEXT.md §Module architecture, §Non-goals.
**Verify:** CTest green. Fed a known signal (full-scale sine, ramp), asserted
min/max envelope per bin matches expected within tolerance; channel count
preserved; bin count honored for arbitrary sample lengths (incl. remainder bin).
- [x] Min/max bin computation from interleaved PCM given a target bin count.
- [x] Multi-channel handling (per-channel envelope; no silent fold).
- [x] Tests: sine envelope ≈ ±amplitude; ramp envelope monotonic; DC/silence →
zero envelope; short-buffer and non-divisible-length edge cases.