docs: update test plan with Phase 2/7 results, README test count -> 574, close Gitea issues #1 #2

This commit is contained in:
2026-06-12 13:36:39 -04:00
parent 8e84b0217d
commit 1301a8a128
2 changed files with 61 additions and 1 deletions
+1 -1
View File
@@ -194,7 +194,7 @@ Toggle 4CM on/off from the Settings page in the web UI.
source .venv/bin/activate
python -m pytest tests/ -v
# All 306+ tests should pass
# All 574 tests should pass
```
Early development — initial scaffold.
+60
View File
@@ -180,6 +180,66 @@ These effects were tagged as CPU-heavy — test on your rig and report xruns:
| **Pitch Shifter** | Medium — overlap-add granular | Keep shift < 3 semitones |
| **Looper** | Medium — large buffer (~6MB) | Not yet implemented — stub only |
## Test Results (Automated)
The following results come from automated test runs performed on x86_64 dev machine (not RPi 4B target). See the linked wiki docs for full methodology and raw data.
### Phase 2 — Full FX Palette
| Metric | Value |
|--------|-------|
| **DSP blocks tested** | 49/49 pass |
| **FX types in enum** | 50 (49 DSP + TUNER UI-only) |
| **Sanity checks** | All produce finite output in [-1, 1] range with silence and sine-tone inputs |
| **Schema mismatches found & fixed** | 8 |
| **Tests passing** | 227 |
| **Commit** | `9a8d42e` |
| **Key fix** | EQ params renamed `low_gain/mid_gain/high_gain``bass/mid/treble` with added freq/Q; added missing schemas for `delay`, `tap_tempo`, `predelay`, `shape`, `stages`, `nam_amp`, `ir_cab` |
| **Doc** | [[obsidian/wiki/pi-multifx-pedal/phase2-full-fx-palette.md]] |
### Phase 7 — Stability Test (1-Hour)
| Metric | Value |
|--------|-------|
| **Duration** | 1 hour simulated (675,000 blocks at 48 kHz / 256 samples) |
| **Wall clock** | 1 min 47 s on x86_64 |
| **Real-time factor** | 33.6x |
| **FX types tested** | 46 (non-hardware-dependent) |
| **Memory start** | 108.7 MB |
| **Memory peak** | 110.1 MB (+1.4 MB, no leak) |
| **CPU avg** | 0.3% (x86_64) |
| **NaN / INF outputs** | 0 |
| **Clipped outputs** | 8,804 (1.3%) — expected from nonlinear FX (distortion, overdrive, fuzz, boost); no master limiter is correct for guitar pedals |
| **FX errors** | 0 |
| **Blocks processed** | 674,958 / 675,000 (99.99%) |
| **Throughput range** | 6,300 10,000 blocks/s (consistent) |
| **Commit** | `8e84b02` |
| **Doc** | [[obsidian/wiki/pi-multifx-pedal/phase7-stability-test.md]] |
### Phase 4 — 4CM Wiring
| Metric | Value |
|--------|-------|
| **Configs deployed** | `config-mono.yaml`, `config-4cm.yaml` to `~/.pedal/` |
| **Routing mode** | `stereo_4cm` — 2ch I/O, pre/post split at configurable breakpoint |
| **Tests passing** | 74/74 (all 4CM routing tests) |
| **Doc** | [[obsidian/wiki/pi-multifx-pedal/phase4-4cm-wiring-test.md]] |
### Phase 6 — MIDI Controller
| Metric | Value |
|--------|-------|
| **Program Change** | PC 0-3 switches presets — verified |
| **Expression pedal** | CC#11 → volume — verified |
| **MIDI Learn** | CC → parameter mapping — verified |
| **Bug fixed** | CC callback was passing MIDI channel instead of CC number — fixed in `f8d7db7` |
| **Tests passing** | All MIDI tests pass |
| **Doc** | [[obsidian/wiki/pi-multifx-pedal/phase6-midi-controller.md]] |
### RPi 4B Projections (Phase 7 data scaled)
| Metric | x86_64 Dev | RPi 4B (est.) |
|--------|-----------|---------------|
| Real-time factor | 33.6x | 12x |
| Memory | ~110 MB | ~110 MB |
| CPU | 0.3% | ~2535% |
| XRUN risk | N/A (no JACK) | Low (confirmed by NAM timing tests) |
## Reporting Issues
If an effect doesn't sound right or causes xruns: