Radio Music Mk2 Test Script - Standard
Radio Music Mk2 Test Script - Standard
This script verifies the broader day-to-day behaviors described in docs/radio-music-user-manual.md.
Active test time
- Typical active time: 3-6 hours.
Prerequisite
- Core script completed with a stable setup:
docs/radio-music-test-script-core.md
Additions beyond Core
Recommended media source:
- run
python3 tools/generate_rm2_test_media.py --overwrite - use
test-media/rm2_generated_v1/as SD source
Extra equipment
- One additional microSD card (recommended:
exFAT) for filesystem parity checks. - Stable 1V/oct source for calibration verification.
- External trigger source for reset-jack input/output checks.
Extra SD content
Add these banks to your existing Core card or a cloned card:
1_formats(format coverage)2_subdirs(random andnextfolder behavior)3_identical(same-length files)4_nonidentical(mixed lengths/rates)7_8mu(8mu-focused content)8_pot_density_3(low station density)9_pot_density_30(medium station density)10_pot_density_60(high station density)
Suggested minimum content per bank:
1_formats: WAV/AIFF/RAW representatives (valid + one invalid RAW).2_subdirs: one_nextfolder and one non-nextfolder.3_identical: at least 4 files with same sample rate and frame count.4_nonidentical: at least 4 files with mixed lengths/sample rates.7_8mu: files where start/end loop behavior is easy to hear.8/9/10pot-density banks: generated spoken files with 3/30/60 entries.
Logging
For each test, record:
Test ID- firmware build/date
- SD details (card + filesystem)
PASS/FAIL/BLOCKED- exact settings lines used for the test
- concise observed vs expected note for failures
Standard tests
File and bank behavior
ST-01 Bank naming and discovery (P1)
- Confirm only root folders starting
0..15are treated as banks. - Confirm non-numbered root folders are ignored as banks.
Expected:
- bank list follows naming rule exactly.
ST-02 Station order is lexicographic (P1)
- Use mixed names (
001,02,10,A,a). - Sweep
STATIONand log order. Expected:- playback order matches lexicographic ordering.
ST-03 Root audio ignored (P1)
- Place a valid WAV in SD root plus valid bank files.
- Reboot and sweep stations.
Expected:
- root WAV is not part of station pool.
ST-03A RESET long-hold bank increment (P1)
- Hold RESET longer than a short tap.
- Continue holding to observe repeated bank increments.
- Release and verify selected bank.
Expected:
- long-hold increments bank repeatedly,
- release leaves module in the selected bank.
ST-04 Subfolder random behavior (P1)
- Select station pointing to non-
nextsubfolder. - Trigger reset repeatedly.
Expected:
- child file varies over repeated resets.
ST-05 Subfolder sequential next behavior (P1)
- Select station pointing to
*_nextsubfolder. - Trigger reset repeatedly.
Expected:
- deterministic cyclic progression through child files.
ST-06 Nested subfolder behavior (P1)
- Use nested subfolder content.
- Trigger reset sequence.
Expected:
- nested entries resolve/play reliably.
ST-07 Subfolder reselection setting (P1)
- Compare
reselectSubdirOnStationChange=0and1. - Move stations without reset and listen for reselection differences.
Expected:
- behavior matches selected setting.
Format coverage
ST-08 WAV sample-rate coverage (P1)
Check representative WAV files at:
- 22.05k, 44.1k, 48k, 96k. Expected:
- all play correctly.
ST-09 WAV bit-depth coverage (P1)
Check 8/16/24-bit WAV at fixed sample rate. Expected:
- all play correctly.
ST-10 AIFF coverage (P1)
Check AIFF at at least two sample rates and two bit depths. Expected:
- files play correctly.
ST-11 RAW behavior (P1)
- Play valid
.rawfile. - Include one odd-byte-length
.rawfile. Expected:- valid raw plays,
- invalid raw is rejected safely.
ST-12 Stereo left-channel playback (P1)
- Play stereo file with tone only on left channel.
- Play stereo file with tone only on right channel.
Expected:
- left-only file is audible,
- right-only file is near-silent.
Mode families
ST-13 Loop modes (P1)
Test loopMode=0,1,2 with short files.
Expected:
- none/forward/ping-pong behaviors are correct and stable.
ST-14 Tuner modes (P1)
Test tunerMode=0,1,2.
Expected:
- switch/fade/radio behaviors are distinct and stable.
ST-15 Speed modes (P1)
Test speedMode=0,1,2.
Expected:
- tape/notes/90s behaviors are distinct and usable.
ST-16 Fade mode (P2)
Compare fadeMode=0 and 1 on correlated material.
Expected:
- crossfade character changes appropriately.
Control-response settings
ST-17 Station immediate vs latched (P1)
Check stationPotImmediate and stationCVImmediate with values 0 and 1.
Expected:
0applies on reset;1applies immediately.
ST-18 Start immediate vs latched (P1)
Check startPotImmediate and startCVImmediate.
Expected:
- behavior matches setting.
ST-19 Pitch immediate vs latched (P1)
Check pitchPotImmediate and pitchCVImmediate.
Expected:
- behavior matches setting.
ST-20 Start CV divider (P2)
Compare startCVDivider values (1, 2, 8, 32).
Expected:
- larger value gives coarser start-position stepping.
ST-21 Per-bank settings overrides (P1)
- Set root default value.
- Override same key in one bank
settings.txt. - Switch banks and compare behavior.
Expected:
- bank-local override is active only in that bank.
ST-21A settings.txt parser syntax behavior (P1)
- Write equivalent keys using varied case/spacing.
- Include inline
#comments. - Reboot and verify behavior.
Expected:
- case and spacing variants are parsed correctly,
- comments are ignored,
- intended values are applied.
Display and quality
ST-22 showMeter modes (P1)
Check showMeter=0, 1, and 2.
Expected:
- each mode shows its documented display behavior.
ST-23 meterHide behavior (P2)
Use short and long meterHide values.
Expected:
- hold-time of bank display changes accordingly.
ST-24 highQuality toggle (P1)
Compare highQuality=0 and 1.
Expected:
- audible quality/path difference and stable playback in both.
Calibration and special modes
ST-25 Calibration success path (P1)
- Enter calibration mode (hold START push at power-on).
- Feed stable 1V/oct notes across multiple octaves.
- Finish and verify success indication.
Expected:
- calibration completes and reports success.
ST-26 Calibration persistence (P1)
- Power-cycle after successful calibration.
- Recheck pitch tracking.
Expected:
- calibrated behavior persists across reboot.
ST-27 USB mass-storage workflow (P2)
- Enter mass-storage mode (hold STATION push at power-on).
- Edit a settings file over USB.
- Press RESET to reboot and verify setting is applied.
Expected:
- mode entry/exit works; file edit is retained.
ST-28 Firmware update workflow (P1)
- Enter bootloader (hold RESET + both pot pushes at power-on).
- Confirm bootloader drive appears.
- Load test firmware (or same firmware build) and reboot.
Expected:
- deterministic bootloader entry,
- firmware copy and reboot path succeeds.
8mu wider behavior
ST-29 Full slider mapping (P1)
Check all mapped slider functions in practical playback. Expected:
- each mapping is responsive and stable.
ST-30 Full button mapping (P1)
Check pause/reset/motion/pulse-toggle behavior. Expected:
- each mapped button action behaves correctly.
ST-31 Motion control behavior (P2)
- Hold motion button.
- Move 8mu to generate motion CC changes.
Expected:
- motion modulation is active only while motion-hold is active.
ST-32 Loop window + pulse interaction (P1)
- Use 8mu loop start/end sliders.
- Check pulse output behavior with
pulseOutDividesCustomLoopat0and1. Expected:- pulse timing follows selected mode.
ST-33 Connect/disconnect stability (P1)
- Connect/disconnect 8mu several times during playback.
Expected:
- no crash or persistent control corruption.
ST-33A Return to local control after 8mu activity (P1)
- Move 8mu controls, then set all sliders back to zero.
- Stop MIDI activity briefly.
- Confirm panel-only behavior is fully normal.
Expected:
- RM exits active remote behavior when timeout + zero-slider condition is met.
ST-34 settings.txt regeneration recovery (P2)
- Remove or rename root
settings.txt. - Reboot module.
- Confirm default
settings.txtis recreated and playback remains normal. Expected:- clean recovery from missing settings file.
Station density and pot stability
ST-35 Low-density station sweep (P1)
- Select bank
8_pot_density_3. - Sweep STATION slowly end-to-end 10 times.
- Confirm each of the 3 spoken IDs is easy to select.
Expected:
- all files are reliably reachable with stable transitions.
ST-36 Medium-density station sweep (P1)
- Select bank
9_pot_density_30. - Sweep STATION slowly and then at moderate speed.
- Check that spoken IDs are reachable across full range.
Expected:
- no dead zones,
- no persistent skipping of specific indices.
ST-37 High-density station sweep (P1)
- Select bank
10_pot_density_60. - Sweep STATION very slowly and pause at fine increments.
- Repeat with station CV offset applied.
Expected:
- dense-bank selection remains usable,
- no unstable toggling around index boundaries.
Next script
After Standard is stable, continue with:
docs/radio-music-test-script-full.md