Repository navigation
digidice: a meloDICEr-style melody generator for Digitakt OS 1.54 (draft) - #676
Draft
todd-neale wants to merge 2 commits into
Draft
todd-neale wants to merge 2 commits into
todd-neale wants to merge 2 commits into
Conversation
Research for a meloDICEr-style random melody generator on the Digitakt mk1 (OS 1.54): how a mod can write trigs, NOTE, VEL and LEN through the OS's own per-step setters from the UI task, with the track layout, the notification chain, the undo snapshot and a hardware checklist. Static analysis only; nothing has run on a unit. dtpeek.py is a macOS/Linux client for digihealth's read-only USB PEEK channel for those checks. The digidice draft holds the generator engine: plain C99 with no libc, two seeds so rhythm and notes can be rolled separately, and host tests under ASan/UBSan. MIT licence. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… OS 1.54 A double press on TRIG opens a page that rolls a random melody into the active audio or MIDI track as ordinary trigs with NOTE, VEL and LEN, written through the OS's own step setters from the UI task. Eight knobs shape the rhythm and the notes; YES, LEFT and RIGHT roll everything, the rhythm or the notes. It keeps no clock: the sequencer plays what it writes. The draft keeps the full module layout (manifest, build.json, README, TESTING, emulator report, screenshots, thumbnail, MIT licence) in sdk/drafts/digidice until it has run on a unit and has an .elemod release the browser builder can pin. Tested in the digiemu emulator on OS 1.54, including recorded audio and a build beside digihealth and DIGISLICER. The research note records what the emulator confirmed and what it did not. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
digidice: a random melody generator for the Digitakt mk1 (OS 1.54), inspired by Vermona's meloDICEr. A double press on TRIG opens a page that rolls a melody into the active track, audio or MIDI, as ordinary trigs with NOTE, VEL and LEN. After that it is a normal pattern: play it, edit it, save it or copy it.
YES rolls everything, LEFT only the rhythm, RIGHT only the notes; NO or another double press on TRIG closes. Turning a knob reshapes the current melody rather than replacing it, and raising DENSITY only adds notes. digidice keeps no clock: it writes trigs through the OS's own step setters from the UI task, and the sequencer plays them with the project's tempo, swing, track length and speed.
It is a draft (
sdk/drafts/digidice), with the full module layout. It moves tosdk/digitakt/modules/once it has run on a unit (author-hardware) and has an.elemodrelease for the browser builder to pin. The library tests require that pin for every Digitakt module. The steps are in its TESTING.md.Files
sdk/drafts/digidice/:modwerk.module.jsonandbuild.jsonsrc/(the mod, and the engine from the first commit)tests/test_engine.cevidence/emulator.mdsdk/digitakt/research/pattern-write.md: what the emulator confirmed and what it did not (the undo snapshot).sdk/digitakt/research/dtpeek.py.No firmware, extracted code or tables, dumps or built images are included.
Testing
npm run check: passes (805 tests), with Python 3.14 first on PATH. macOS's Python 3.9 fails an existing f-string test on cleanmaintoo.npm run module:doctor -- digidice, run with the folder insdk/digitakt/modules/: manifest, category guide and module rules pass. The browser builder fails as expected, since no.elemodrelease exists yet.sdk/drafts/digidice/evidence/emulator.md):emu.fwcheckpasses.19/5); stock does nothing on that press.emu.fwcheck, and the screens after closing are identical to stock's.🤖 Generated with Claude Code