From d152ecd1fc075921b616195d5b78dcca41054584 Mon Sep 17 00:00:00 2001 From: Shawn Date: Thu, 18 Jun 2026 18:59:22 -0400 Subject: [PATCH] docs: expand test plan with channel cycling, upload, tuner tests, system info, ethernet details --- TEST_PLAN.md | 132 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 100 insertions(+), 32 deletions(-) diff --git a/TEST_PLAN.md b/TEST_PLAN.md index b1fb9ad..5d56ed3 100644 --- a/TEST_PLAN.md +++ b/TEST_PLAN.md @@ -22,7 +22,24 @@ --- -## 2. Home Screen — NAM Hero +## 2. Channel Cycling (Status Bar) + +| # | Test | Expected Result | Pass/Fail | +|---|------|-----------------|-----------| +| 2.1 | Status bar shows current channel name | e.g. `GUITAR` in amber badge | +| 2.2 | Tap channel name badge | Cycles to next instrument (Bass) | +| 2.3 | Status bar updates | Shows `BASS` | +| 2.4 | Tap 🎛 button next to status bar | Also cycles instrument | +| 2.5 | Tap again — cycles through: Guitar → Bass → Keys → Vocals → Backing Tracks | Each tap advances | +| 2.6 | **AUDIO:** Cycling channels doesn't drop audio | No pop/glitch | +| 2.7 | Cycle back to Guitar | Returns to Guitar | +| 2.8 | Open Settings → Audio Interface → Instrument section | Shows current instrument | +| 2.9 | Tap "Cycle" button in Settings | Also cycles instrument | +| 2.10 | Verify instrument dropdown matches status bar | Both show same instrument | + +--- + +## 3. Home Screen — NAM Hero | # | Test | Expected Result | Pass/Fail | |---|------|-----------------|-----------| @@ -228,7 +245,10 @@ | 14.7 | **AUDIO:** Change CH 1 Output | Output routing changes | | 14.8 | CH 2 Output dropdown | playback_1 / playback_2 / both | | 14.9 | **AUDIO:** Change CH 2 Output | Output routing changes | -| 14.10 | Backing Track Source dropdown | None / Bluetooth Audio / other JACK ports | +|| 14.10 | Backing Track Source dropdown | Shows "None", "Bluetooth Audio" or other sources | +| 14.11 | **AUDIO:** Select a backing track source | Source connects, audio routes through FX chain | +| 14.12 | **AUDIO:** Toggle back to None | Returns to normal input | +| 14.13 | **AUDIO:** No dropout changing backing source | NAM CPU > 0% | --- @@ -267,12 +287,19 @@ | 17.3 | Change hostname + save | Updates, may need reboot | | 17.4 | Network mode shows DHCP or Static | Current mode | | 17.5 | Tap to toggle DHCP/Static | Switches mode | -| 17.6 | IP, Gateway, DNS shown (if static) | Fields visible | -| 17.7 | Wi-Fi status shows connected or hotspot | Current state | -| 17.8 | Tap Wi-Fi scan | Lists available networks | -| 17.9 | Tap a network | Connects | -| 17.10 | **AUDIO:** Wi-Fi connect doesn't drop audio | NAM continues | -| 17.11 | Hotspot toggle | Enables/disables hotspot | +|| 17.6 | Ethernet IP address displayed | Shows the pedal's LAN IP | +| 17.7 | Ethernet MAC address displayed | Shows the pedal's MAC | +| 17.8 | Gateway address displayed (if static) | Shows gateway IP | +| 17.9 | DNS server displayed (if static) | Shows DNS IP | +| 17.10 | Network mode shows DHCP or Static | Current mode | +| 17.11 | Tap to toggle DHCP/Static | Switches mode | +| 17.12 | IP, Gateway, DNS become editable (if static) | Fields visible | +| 17.13 | Wi-Fi status shows connected or hotspot | Current state | +| 17.14 | Tap Wi-Fi scan | Lists available networks | +| 17.15 | Tap a network | Connects | +| 17.16 | **AUDIO:** Wi-Fi connect doesn't drop audio | NAM continues | +| 17.17 | Hotspot toggle | Enables/disables hotspot | +| 17.18 | **AUDIO:** Hotspot toggle doesn't drop audio | NAM continues | --- @@ -292,14 +319,22 @@ | # | Test | Expected Result | Pass/Fail | |---|------|-----------------|-----------| -| 19.1 | NAM Engine field shows "C++" or "PyTorch" | Current engine mode | -| 19.2 | Tap to switch engine | Reloads model in new engine | -| 19.3 | **AUDIO:** NAM survives engine switch | CPU > 0% | -| 19.4 | CPU readout shows NAM + system | e.g. `42%` with `sys 30%` dimmed | -| 19.5 | Tap "Restart Service" | Pedal restarts, comes back up | -| 19.6 | **AUDIO:** After restart, NAM returns | CPU > 0%, model loaded | -| 19.7 | Tap "Reset Defaults" | Resets config | -| 19.8 | Tap "Reboot" | System reboots | +| 19.1 | System section shows **CPU** readout | e.g. `42%` with `sys 30%` dimmed beside it | +| 19.2 | **Temperature** displayed | e.g. `53°C` (should be < 80°C) | +| 19.3 | **Uptime** displayed | Shows how long since last boot | +| 19.4 | **Disk usage** displayed | Shows percentage + free space, e.g. `12% (6.2G free)` | +| 19.5 | **RAM usage** displayed | Shows percentage + used/total, e.g. `16% (1284/7869MB)` | +| 19.6 | NAM Engine field shows "C++" or "PyTorch" | Current engine mode | +| 19.7 | Tap "Switch" to change engine | Reloads model in new engine | +| 19.8 | **AUDIO:** NAM survives engine switch | CPU > 0% after change | +| 19.9 | Tap "Switch" back to previous engine | Restores | +| 19.10 | Tap "Reset to Defaults" — confirm dialog | Resets config.yaml to defaults | +| 19.11 | **AUDIO:** After reset, NAM still works | May need to reload model | +| 19.12 | Tap "Restart Service" | Toast appears, pedal restarts | +| 19.13 | **AUDIO:** After restart, wait 18s | NAM loads back, CPU > 0% | +| 19.14 | Verify model reloaded after restart | Same model as before restart | +| 19.15 | Tap "Reboot" — confirm dialog | System reboots | +| 19.16 | **AUDIO:** After reboot, wait 30s | Pedal comes back, NAM CPU > 0% | --- @@ -317,43 +352,76 @@ --- -## 21. Tuner +## 21. Model / IR Upload | # | Test | Expected Result | Pass/Fail | |---|------|-----------------|-----------| -| 21.1 | Open Tuner (tap tuner icon if available) | Tuner screen opens | -| 21.2 | Play open string | Note name + cents displayed | -| 21.3 | Tune to reference | Visual indicator moves to center | -| 21.4 | Close tuner | Returns to home screen | -| 21.5 | **AUDIO:** Muted when tuner active | No output (mute for tuning) | +| 21.1 | Open Downloads → Local tab | Lists installed `.nam` files | +| 21.2 | Check for upload button or file picker | May need to use a file input in the UI | +| 21.3 | Upload a `.nam` file | File uploads to pedal | +| 21.4 | Uploaded model appears in Local tab list | Shows in model list | +| 21.5 | Tap uploaded model to load it | Loads, green border appears | +| 21.6 | **AUDIO:** Uploaded model processes audio | NAM CPU > 0%, different tone | +| 21.7 | Upload a `.wav` IR file | IR uploads | +| 21.8 | Load the uploaded IR | IR loaded indicator | +| 21.9 | **AUDIO:** IR affects tone | EQ/space changes | --- -## 22. Stress Tests +## 22. Tuner (Full-Screen View) | # | Test | Expected Result | Pass/Fail | |---|------|-----------------|-----------| -| 22.1 | Rapidly tap footswitch 10x | Toggles each time, no crash | -| 22.2 | Rapidly change buffer size 5x | Each change works, NAM survives | -| 22.3 | Load 3 different NAM models in succession | Each loads cleanly | -| 22.4 | Change routing mode 5x in a row | No crash, CPU stable | -| 22.5 | Open/close all 5 overlays rapidly | No UI freezes | -| 22.6 | Leave pedal running 30 min with audio | No audio dropouts or xruns | -| 22.7 | Hard-refresh browser (Ctrl+Shift+R) | UI reloads cleanly, state intact | +| 22.1 | Tap 🎵 tab in bottom bar | Tuner opens full-screen | +| 22.2 | Note display shows `--` when silent | Large text centered | +| 22.3 | Cents bar shows flat/center/sharp indicator | Visual position indicator | +| 22.4 | Frequency readout shows `0.0 Hz` when silent | Below note display | +| 22.5 | Play open **E string** (low E, ~82Hz) | Shows `E`, cents bar near center | +| 22.6 | Play open **A string** (~110Hz) | Shows `A` | +| 22.7 | Play open **D string** (~147Hz) | Shows `D` | +| 22.8 | Play open **G string** (~196Hz) | Shows `G` | +| 22.9 | Play open **B string** (~247Hz) | Shows `B` | +| 22.10 | Play open **high e string** (~330Hz) | Shows `e` or `E` | +| 22.11 | Bend a string sharp — cents bar moves right | Red fill on sharp side | +| 22.12 | Bend a string flat — cents bar moves left | Blue fill on flat side | +| 22.13 | Tune to pitch — cents bar turns green centered | Green fill, narrow bar centered | +| 22.14 | **AUDIO:** Output is muted when tuner is active | No sound from speakers | +| 22.15 | Tap "✕ Close Tuner" button | Returns to home screen | +| 22.16 | **AUDIO:** Audio resumes after closing tuner | Normal processing, NAM CPU > 0% | --- -## 23. Expected Reference Values +## 23. Stress Tests + +| # | Test | Expected Result | Pass/Fail | +|---|------|-----------------|-----------| +| 23.1 | Rapidly tap footswitch 10x | Toggles each time, no crash | +| 23.2 | Rapidly change buffer size 5x in a row | Each change works, NAM survives | +| 23.3 | Load 3 different NAM models in succession | Each loads cleanly | +| 23.4 | Change routing mode 5x in a row | No crash, CPU stable | +| 23.5 | Change channel mode 5x in a row | No crash, CPU stable | +| 23.6 | Open/close all 5 overlays rapidly | No UI freezes | +| 23.7 | Cycle through all 5 instruments rapidly | No glitch | +| 23.8 | Leave pedal running 30 min with audio | No audio dropouts or xruns | +| 23.9 | Hard-refresh browser (Ctrl+Shift+R) | UI reloads cleanly, state intact | +| 23.10 | Kill browser, reopen — page loads fresh | No stale state | + +--- + +## 24. Expected Reference Values | Setting | Typical Value | CPU Range | |---------|---------------|-----------| | Buffer 128 @ 48k | 2.67ms window | 70-90% (may xrun) | | Buffer 256 @ 48k | 5.33ms window | 60-80% (may xrun occasionally) | -| Buffer 512 @ 48k | 10.67ms window | 35-50% (stable) | +| Buffer 512 @ 48k (default) | 10.67ms window | 35-50% (stable) | | Buffer 1024 @ 48k | 21.33ms window | 18-25% (very stable) | | 4CM routing mode | Both channels processed | CPU ~1.5x mono | | Model unloaded | No NAM processing | 0% NAM CPU | | Bypass ON | DI signal | 0% NAM CPU | +| Tuner active | Muted output | 0% NAM CPU | +| 96kHz sample rate | Higher clarity | CPU ~2x 48kHz | +| PyTorch engine | In-process inference | CPU varies by model | ---