# Device checkpoint A Projects written by the Go writer (`internal/xpj`, `internal/project`, `internal/export`), for build plan section 7, checkpoint A. The builder is a Go program, so the same command works in cmd, PowerShell and sh. It needs only Go. From the repo root (in cmd, PowerShell or sh): ``` go run ./tools/checkpoint-a ``` That writes `mpckit-checkpoint-a.zip` in the current folder. To also write the projects unzipped, for example straight onto the device's card (here drive `E:`): ``` go run ./tools/checkpoint-a -folder E:\ ``` Options: `-zip FILE` (zip path), `-folder DIR` (also write the projects there), `-force` (replace projects already in that folder). Without `-force`, projects already in the folder are left alone and nothing is written there. Samples come from `testdata/device/DemoFile_[ProjectData]`. The test tones are generated in `tone.go` and are the same tone as the WAV test pack: 0.8 s at 440 Hz, then a 0.2 s beep an octave higher as an end marker. The plain 44.1 kHz 16-bit mono tone is byte-identical to that pack's control file. Each risky item is in its own project, so one that fails to load does not hide the others. ## Projects and what to check ### MpckitKit: kit, tuning extremes, choke, lengths (A1, A2, A3, A5) | Pad | Sample | Setting | |---|---|---| | A1 | kick | | | A2 | snare | | | A3 | hat 1 | mute group 1 | | A4 | hat 2 | mute group 1 | | B1 | bass (C) | none: the reference pitch | | B2 | bass | -24 semitones | | B3 | bass | +24 semitones | | B4 | bass | -90 cents | | B5 | bass | +90 cents | | B6 | bass | -24 semitones, -90 cents | | B7 | bass | +24 semitones, +90 cents | Sequences: 1 "One Bar" (120 BPM, 1 bar), 2 "Long" (120 BPM, 64 bars). 1. The project loads; A1-A4 and B1 play. 2. B2-B7 show the tuning in the table and sound shifted against B1 (two octaves down/up for B2/B3, just under a semitone for B4/B5). 3. A3 and A4 cut each other off. Note the highest mute group number the device's pad settings offer. 4. Sequence 1 shows 1 bar and sequence 2 shows 64 bars; both loop at their length. ### MpckitMute: high mute group numbers (A3) A1 and A2 (hats) in group 16; A3 and A4 in group 32. 1. Does the project load? 2. What group does each pad show? Do A1/A2 choke each other, and A3/A4? ### MpckitTempo: BPM extremes (A5) Kick on A1. Sequences: 1 "Slow" 30 BPM, 2 "Fast" 300 BPM, 3 "Very Slow" 20 BPM, 4 "Very Fast" 999 BPM (2 bars each). 1. Does the project load? 2. What BPM does each sequence show? (20 and 999 are probably outside the device's range: note whether it clamps them, and to what. Also note the device's own BPM range from its tempo control.) ### MpckitWav: extensible WAV headers (section 7, "Not yet tested") | Pad | File | |---|---| | A1 | 44.1 kHz 16-bit mono, plain header (control) | | A2 | 48 kHz 24-bit stereo, extensible header | | A3 | 44.1 kHz 16-bit stereo, extensible header | | A4 | 44.1 kHz 16-bit mono, extensible header | 1. The project loads, and A2-A4 match A1 in pitch and length, with the end beep heard. ## Results To fill in after the device run, then copy into the format doc (section 7) and the build plan (section 7, checkpoint A). | Project | Loads | Result | |---|---|---| | MpckitKit | | | | MpckitMute | | | | MpckitTempo | | | | MpckitWav | | | Device mute group range: Device BPM range: