Radio Music Mk2 Discovery Test Script (Combination Bug Hunt)
Radio Music Mk2 Discovery Test Script (Combination Bug Hunt)
This script is intentionally different from checklist/unit-style verification. It is designed to find serious real-world bugs caused by interactions, unusual workflows, and unexpected content.
1. Core idea
Instead of only asking “does feature X work?”, this approach asks:
- what happens when many valid features are used together,
- what happens with unfamiliar files and card states,
- what happens during performance-style use where state changes are fast and non-linear.
2. Session format
Run in 3 parts:
- Guided charters (10 missions, 15-25 min each).
- Combination sweeps (targeted mode intersections).
- Free exploration (creative abuse with full logging).
Target total runtime: one long day (6-10 hours) or split across 2-3 shorter sessions.
3. Prep before starting
3.1 Media and SD prep
- Use the generated pack:
test-media/rm2_generated_v1/. - Add at least 20-40 extra files exported by tools not used in firmware bring-up, for example:
- Logic Pro
- Ableton Live
- Reaper
- Audacity
- Zoom recorder / phone audio app
- Keep one SD card formatted on macOS and one on Linux/Windows if possible.
3.2 Logging setup
For every anomaly, capture:
- continuous phone video of panel + patch,
- exact bank/folder and station position,
- exact
settings.txtused, - whether 8mu was connected and active,
- whether issue survives reboot,
- copy of SD card contents (zip or image) used when issue occurred.
4. Ten discovery charters
D-01 Conventional sampler performance
Goal: test normal musical play with rapid station changes.
- Use
loopMode=0,tunerMode=0,speedMode=0. - Play it like a one-shot sample player for 15 minutes.
- Alternate between reset-button hits and reset-jack triggers. Watch for:
- stuck voices, missed retriggers, unintended fades.
D-02 Drum machine behavior
Goal: high retrigger pressure + station churn.
- Use short percussive files.
- Drive RESET from an external clock and change STATION during clocking.
- Repeat with
crossfadeTimeshort vs long. Watch for: - timing drift, transient smearing, freezes.
D-03 Virtual radio behavior
Goal: tuner interaction realism and station transitions.
- Use
tunerMode=2(radio). - Sweep STATION continuously with and without CV.
- Vary
minRadioStationStrength,noiseVol,whistleVol,ssbEffect. Watch for: - abrupt discontinuities, unstable gain behavior, mode lockups.
D-04 Clock source behavior
Goal: pulse output stability while playback state changes.
- Set
pulseModeto output mode. - Patch RESET jack output to an external clock destination.
- Change loop mode, start point, bank, and 8mu loop region during run. Watch for:
- missing/double pulses, pulse stalls, output mode confusion.
D-05 8mu live-control behavior
Goal: remote-control edge interactions.
- Connect 8mu and use all sliders/buttons in performance style.
- Hold motion control while changing speed/tuner/loop modes.
- Return sliders to zero and verify clean return to local control. Watch for:
- stale remote state, control jumps, unexpected mode persistence.
D-06 Adjacent-bank interaction stress
Goal: catch bank-to-bank edge bugs.
- Put one bank with identical-length files next to one with mixed long files.
- Switch between those banks while keeping file active for very short times.
- Repeat with crossfade times longer than active dwell. Watch for:
- wrong seek position, wrong file state carry-over, crash/lockup.
D-07 Station-density stress (pot feel)
Goal: detect selection instability with dense banks.
- Compare
8_pot_density_3,9_pot_density_30,10_pot_density_60. - Sweep STATION slowly and pause at boundary areas.
- Add small station CV offsets. Watch for:
- unreachable files, oscillation near boundaries, jumpy selection.
D-08 Settings edit workflow stress
Goal: validate real-world settings iteration.
- Enter USB mass-storage mode.
- Make small
settings.txtedits, reboot, test immediately. - Include case/spacing/comment variants and per-bank overrides. Watch for:
- settings not applied, partial apply, parser oddities.
D-09 Format roulette
Goal: parser and playback robustness with mixed provenance files.
- Build one bank with mixed WAV/AIFF/RAW from many programs.
- Include odd headers, unusual metadata chunks, and near-edge valid files.
- Rapidly move through stations and retrigger. Watch for:
- scan crashes, mis-detected files, silent-but-counted files.
D-10 Creative freeform abuse
Goal: find unknown unknowns.
- Spend 30-60 minutes using RM2 in any unusual way you can think of.
- Switch roles repeatedly: sampler -> radio -> clock -> pitched voice.
- Use 8mu, CV, panel, bank changes, and settings edits in one flow. Watch for:
- anything surprising, inconsistent, or hard to explain.
5. Combination sweep matrix
Run at least 12 combinations from this matrix (more is better):
| Combo ID | loopMode | tunerMode | speedMode | Bank type | crossfadeTime | 8mu |
|---|---|---|---|---|---|---|
| C01 | 0 | 0 | 0 | identical | 5 | off |
| C02 | 0 | 1 | 1 | nonidentical | 25 | off |
| C03 | 0 | 2 | 2 | mixed | 200 | on |
| C04 | 1 | 0 | 1 | identical | 5 | on |
| C05 | 1 | 1 | 2 | nonidentical | 25 | on |
| C06 | 1 | 2 | 0 | mixed | 200 | off |
| C07 | 2 | 0 | 2 | identical | 5 | off |
| C08 | 2 | 1 | 0 | nonidentical | 25 | on |
| C09 | 2 | 2 | 1 | mixed | 200 | on |
| C10 | 1 | 2 | 2 | adjacent-bank stress | 100 | on |
| C11 | 2 | 2 | 0 | dense station bank (60) | 25 | off |
| C12 | 0 | 1 | 2 | dense station bank (60) | 150 | on |
For each combo:
- Run for 5-10 minutes.
- Include station sweeps, reset triggers, and at least one bank switch.
- Record anomalies immediately with timestamp.
6. What counts as a serious bug here
Prioritize reporting when you see:
- hard lockups, reboots, or audio engine stalls,
- wrong file/position/state after mode or bank transitions,
- behavior that depends on hidden historical state and is hard to predict,
- controls that become unreliable only in high-density or mixed-mode usage,
- data-dependent failures (specific file export chain/card format/settings combos).
7. Bug report payload for discovery bugs
When filing:
- include short video from before failure to after failure,
- include exact SD content snapshot (zip or image),
- include exact settings files (root + bank),
- include firmware build identifier,
- include an ordered action list that another tester can replay.
Use template:
.github/ISSUE_TEMPLATE/radio-music-bug-report.md
8. How this complements existing scripts
- Core/Standard/Full scripts remain the structured baseline.
- This discovery script is for high-value combination bugs and workflow surprises.
- Run this after baseline scripts, or in parallel when baseline confidence is already high.