Gee 2196633ed5
Some checks failed
check / check (push) Has been cancelled
Seedbox v0.1 + firmware, generic kit/synth, ROOT/SCALE pages
First commit of the repo. Contents beyond the v0.1 simulator and layout:

- Full Pico 2 W firmware (firmware/app, drivers, engine port, host test).
- BANK page and 404 mode A/B removed; learned pads play exactly what was learned.
- 404/MiniFreak renamed to KIT/SYNTH throughout (jacks, code, sim, docs,
  layout labels; wiring rebuilt).
- ROLL returns to page select after a re-roll; a freshly learned track turns on.
- LCD contrast 66.
- ROOT and SCALE pages: 21 scales, AUTO = the seed picks; global and sticky.

Intended music change: the scale table grew from 8 to 21 and AUTO picks from
all of them, so every seed's scale changed. Vectors regenerated with
npm run vectors, plus new key-override cases. Flash record is now version 2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 20:39:36 +03:00

Seedbox

A generative rhythm and melody machine for a Raspberry Pi Pico 2 W. One 32-bit seed grows a whole tune: a drum part for any sampler or drum machine and a bass, melody and pad line for a poly synth, both over MIDI. Built and tested with a Roland SP-404MKII and an Arturia MiniFreak. You don't program steps. You pick a seed, turn tracks on and off, and steer it with two knobs.

Status: v0.1. The engine and the controls are settled in a browser simulator that drives the real gear over Web MIDI. The stripboard layout has been checked by script and by an independent review. The Pico firmware is not written yet: that's the next step.

What's in the box

Part
Brain Raspberry Pi Pico 2 W (RP2350), powered and flashed through its own USB port at the back
Screen Nokia 5110 LCD (PCD8544, 84 × 48)
Controls Encoder with push, ENERGY and DRIFT pots, SEED button, 11 track buttons in a 4 × 3 grid, with the RUN toggle in its top-right corner
MIDI IN (for learning drum pads), OUT KIT (sampler or drum machine), OUT SYNTH. 3.5 mm TRS (Type A), MIDI 1.0 3.3 V spec.

Repo map

sim/            the browser simulator: index.html, engine.js (portable engine), app.js (UI, Web MIDI)
test/           golden vectors and the scripts that make and check them
hardware/       layout.js (the stripboard, one source of truth) and check-layout.js
tools/          bench pages: wiring.html, bom.html (tick-off parts list), panel.html (panel layout)
docs/           concept, controls, MIDI setup, hardware (BOM, pinout, wiring, panel, SVG drawings)
firmware/       the port plan for the Pico (C, Pico SDK)

Run it

The simulator is a static page. Web MIDI needs a secure context, so serve it over localhost or HTTPS rather than opening the file directly:

npx serve .            # or: python3 -m http.server
# open http://localhost:3000/sim/   (Chrome or Edge; Firefox needs a Web MIDI add-on)

GitHub Pages works too: enable Pages for the repo and open /sim/.

Checks (Node 18 or later, no dependencies):

npm test               # golden vectors + stripboard netlist

Docs

Licence

None chosen yet. Add a LICENSE file before making the repo public (MIT for code and CC BY-SA for the hardware docs is a common pairing).

Credits

The track model leans on Eric Lyon's paper "Techno Counterpoint", an analysis of Aphex Twin's tracking practice. The AMENIZER plays a re-voiced Amen break pattern (The Winstons, "Amen, Brother", 1969).

Description
on demand drums + keys ideas with separate midi outs and midi in for learning pads.
Readme 890 KiB
Languages
JavaScript 35.1%
HTML 32.4%
C 29.9%
CMake 2.4%
Makefile 0.2%