This commit is contained in:
@@ -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.
|
||||
@@ -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 | 1–2x |
|
||||
| Memory | ~110 MB | ~110 MB |
|
||||
| CPU | 0.3% | ~25–35% |
|
||||
| XRUN risk | N/A (no JACK) | Low (confirmed by NAM timing tests) |
|
||||
|
||||
## Reporting Issues
|
||||
|
||||
If an effect doesn't sound right or causes xruns:
|
||||
|
||||
Reference in New Issue
Block a user