1. Everything goes at the card root
All custom-DSP files live at the root of the microSD card (drive 0:/) — the same place the box keeps its packs, next to your XT8DSP.P56. No sub-folders. Copy the files in and that's it.
| File | What it is | Engine |
|---|---|---|
XT8DSP.P56 | The DSP program itself — all 5 effects + all 6 oscillator engines. Required for any custom sound. | — |
XTRB3A.BIN / XTRB3B.BIN | DX / 6-operator FM recipes (converted DX7 voices) | 3 — DX |
XTRB5A.BIN / XTRB5B.BIN | Supersaw (detuned-saw swarm) recipes | 5 — Supersaw |
XTRB6A.BIN / XTRB6B.BIN | Pluck (Karplus-Strong string) recipes | 6 — Pluck |
A and B are two slots, not two banks. They're power-safe duplicates (same idea as the box's own state files): copy both the A and B file for each engine, and the firmware loads the newer valid one. If you only have one, copy it to both names.
fm4 (the 4-operator FM engine) has no card record yet — it shares no card slot id, so its presets come only from the defaults baked into XT8DSP.P56 for now.
2. Get the files
Download these and drop them on the card root:
3. Load them
- Flash the DSP build v0.2.20 (4547) from the flash page.
- Put the files above at the card root, insert the card, power on.
- A few seconds after boot, the MIDI monitor should show CC70 = 0 and CC77 = 1 (DSP program loaded), and CC90/92/94 = 0 with CC98 > 0 (recipe banks staged).
- On a synth part, multi-tap Preset to a custom tab (amber = DX, blue = supersaw, green = pluck) and pick a recipe pad.
4. Absolute locations on the build box
Source of truth for every file, if you'd rather copy them off the box directly:
| Thing | Path |
|---|---|
| Card records (ready for the SD root) | /home/jp123/circuit/patches/dsp-recipes/card/XTRB{3,5,6}{A,B}.BIN |
| DSP program | /home/jp123/circuit/dist/XT8DSP.P56 |
| Full preset libraries (for curating more) | /home/jp123/circuit/patches/dsp-recipes/{supersaw,pluck,fm4,6op}-library.json |
| DX7 6-op library (180 voices) | branch dsp-lab-6op-dx7-library: patches/dsp-recipes/6op-dx7-library.json |
| Bake-sets (the curated resident subset per engine) | /home/jp123/circuit/patches/dsp-recipes/bake-set/ |
5. Honest status & how many fit
The card is the library; the baked defaults are only the no-card fallback. Patches load from the card records — XTRB3 carries 21 DX recipes, XTRB5 42 supersaw, XTRB6 16 pluck. If the card doesn't load, the box falls back to the baked defaults and the preset pages are harmless no-ops (no crash).
- Resident window. Running all six engines together shares the DSP's control memory, so only a window of recipes is live at once — about 5 for DX and supersaw, 16 for pluck. That's a memory-layout limit of the six-in-one image, not the size of your library.
- Reaching the whole library needs paging — re-staging the next batch from the card as you scroll the Preset tabs. That step isn't built yet: today the loader stages the first window and stops. So the full 64 supersaw / 64 pluck / 180 DX7 libraries aren't all reachable on-box until paging lands (or a single-engine image with a bigger table is used).
- Card loading is new and not yet hardware-proven — it needs the v0.2.20 DSP build, itself first-hardware.
- To author more or re-curate what lands on the card:
tooling/author_dsp_recipe_bank.py(supersaw/pluck),tooling/dx7_to_6op_bank.py(DX7.syx→ DX),tooling/build_dsp_recipe_card_record.py(bank →XTRB*.BIN).