Repository navigation
New module: Bar LED 0.1.0-experimental: tempo LED green on the pattern's 1 (Octatrack) - #1173
nathangroth wants to merge 32 commits into
Conversation
…e 1 of every bar While the sequencer plays, the beat-flash call (set_led(38, 3) at 0x40056f24) lights LED 39, the tempo LED's green half, on every fourth beat counted from PLAY. Other beats and the stopped state stay stock. ot_emu on stock 1.40C: 39 on beats 1, 5, 9 and 38 on the rest (verify.py). Not yet run on a unit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The beat flash now turns green on the first flash after the master step (0x800065b4) wraps, and on the first flash after PLAY, instead of every fourth beat counted from PLAY. It follows the pattern length and scale and drops the bar counter. ot_emu: green on step 0 at 12, 16 and 20 steps (verify.py); 14 steps greens the first flash after the wrap. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks, this is neat: one stock call, no clock of its own, and nothing in the base covers the tempo LED, so its own declared site is the right place for it. The guide gaps you found are in #1174. The step left is the USB run. Your unit needs a Modwerk base for that: the USB card on the site's Octatrack page walks you through installing it. Then install the package through the site, do Keep, a power cycle and Undo, then remove it, and record the results in TESTING.md. With that, move it from Generated by Claude Code |
Trial and Undo, Keep, power cycle, removal and SELF TEST on the flashed beta base 9680e9ac, package bce3b4d6, with the tester's LED reports. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@repeat98 The USB run is done on my MKI, on the flashed beta base One question before I move it out of drafts. Publication needs Generated by Claude Code |
|
Thanks, the USB run is everything I asked for. On screenshots: you're right that a picture of an LCD page wouldn't show anything Bar LED does, and a photo of a green LED can't pass the black-and-white check. Butter Fingers has the same problem. So I've widened Until then you can do the move to One thing to check on the unit while you're there. As I read Generated by Claude Code |
…pauses and continues The owner's review: any flash while the transport word was not 1 rearmed the last step, and the word is 2 while paused, so continuing flashed green wherever the pattern was. Only 0 (stopped and rewound) rearms now. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The rule is on Generated by Claude Code |
…ason in place of screenshots Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…age, Tape Echo and Euclid recipes re-pinned Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d pair checks Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…identical), tree hash re-pinned Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tock-effects image) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e/bar-led # Conflicts: # scripts/build-module-packages.py # scripts/module-release-scope.test.mjs # scripts/module-source.test.mjs # sdk/catalog.json # sdk/machines/octatrack/module-adapters/standalone-recipes.json # src/catalog/module-documents.json # src/engine/assets/analog-bd-composition-proofs.json # src/engine/assets/bootstrap-package.json # src/engine/assets/coldfire-packages.json # src/engine/assets/descriptor-recipes.json # src/engine/assets/dsp-packages.json # src/engine/assets/menu-recipes.json # src/engine/assets/module-build.json # src/engine/assets/platform-writes.json # src/engine/assets/requested-packages.json # src/engine/assets/resident-dsp.json # src/engine/assets/rom-packages.json # src/engine/assets/usb-audio-packages.json # src/engine/assets/utility-packages.json
…er 0.1.0); Tape Echo and Euclid recipes re-pinned Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… refusals, 0 mismatches) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…dentical), tree hash re-pinned Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e/bar-led # Conflicts: # sdk/machines/octatrack/module-adapters/standalone-recipes.json # src/engine/assets/analog-bd-composition-proofs.json # src/engine/assets/bootstrap-package.json # src/engine/assets/coldfire-packages.json # src/engine/assets/descriptor-recipes.json # src/engine/assets/dsp-packages.json # src/engine/assets/menu-recipes.json # src/engine/assets/module-build.json # src/engine/assets/platform-writes.json # src/engine/assets/requested-packages.json # src/engine/assets/resident-dsp.json # src/engine/assets/rom-packages.json # src/engine/assets/usb-audio-packages.json # src/engine/assets/utility-packages.json
…le Quantizer 0.1.4); Tape Echo and Euclid recipes re-pinned Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…dentical), tree hash re-pinned Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks, the pause fix is the right one, and the gate that pauses and continues twice is just what I wanted next to it. Everything else from my last comment is in: the move, Three things are left before I can merge:
Then mark it ready. Slow LFO (#1224) and this PR touch the same generated and package files, so whichever merges second needs one more merge of Generated by Claude Code |
The README, presentation and changelog no longer say it follows pattern scale, pattern changes, tempo changes or external MIDI clock: none has been run. Those go on the not-yet-tested list. TESTING.md's Performance section now points at evidence/performance.json. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # sdk/machines/octatrack/module-adapters/standalone-recipes.json # src/engine/assets/analog-bd-composition-proofs.json # src/engine/assets/bootstrap-package.json # src/engine/assets/coldfire-packages.json # src/engine/assets/descriptor-recipes.json # src/engine/assets/dsp-packages.json # src/engine/assets/menu-recipes.json # src/engine/assets/module-build.json # src/engine/assets/platform-writes.json # src/engine/assets/requested-packages.json # src/engine/assets/resident-dsp.json # src/engine/assets/rom-packages.json # src/engine/assets/usb-audio-packages.json # src/engine/assets/utility-packages.json
… hash re-pinned Toolchain-image build imported; Bar LED's USB package is unchanged (de7f9cae). Tape Echo and Euclid recipes re-pinned for the four rebuilt asset files; Play Modes stays on its reviewed sources. Native comparison: 78 match, 96 refused, 0 mismatches. Analog BD: all 212 proofs identical. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The committed package kept beside Slow LFO on the tester's MKI (SELF TEST 2/2 intact). Reported: external MIDI clock, tempo changes, pattern scales 3/4, 3/2 and 2X, per-track mode on the master length, STOP/PLAY and pause/continue. module:verify writes the chooser-metadata row; the release notes gain the MKII known issue. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The base is built from that file, so a row here makes the committed beta base stale; recent ColdFire-only modules carry no row either. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n only) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
One more thing I noticed while reading the 5 November results, separate from what's still open from my last comment. At 2X the README says the green comes once every two passes, but the presentation overview says it flashes green on the first beat of each pass. By Generated by Claude Code |
Bar LED 0.1.0-experimental (Octatrack)
The tempo LED flashes green on the pattern's 1 while the sequencer plays; every other beat stays stock red, and stopped it is stock. A visual downbeat for players who route the cue outputs through external effects and can't use the click.
jsr set_ledat0x40056f24(set_led(38, 3), the tempo LED's red half), goes throughbl_flash, which passes LED 39 (green) on the first flash after the master step (0x800065b4) wraps. No clock or count of its own.ot_emuthe longest frame interrupt and idle time are identical to the same build without it (evidence/performance.json,perf:auditpasses).uiClaimsempty; no conflicts.The owner's review
STEM_REC.md), so continuing flashed green wherever the pattern was.unit.snow rearms only on 0 (stopped and rewound); a pause keeps the step it paused on.verify.pygained a run that pauses and continues twice: the old source fails it (green at steps 7 and 14 after continuing), this one passes.de7f9cae…next; the result goes into TESTING.md and the qualification record before this leaves draft. Until then the hardware record is the earlier run onbce3b4d6…, which predates the fix and says so.access.noUiReason("It draws nothing: the tempo LED turns green on the pattern's 1."), both screenshot lists empty, the qualification tutorial now the README's three steps.Publication
sdk/octabam/modules/bar-led/; catalogue entry; qualification record; changelog insrc/community/module-changelogs/bar-led.json.modwerk-source-toolsand imported; every USB package checks identical. The committed USB packagede7f9cae…differs from a local test build only in the name bytes.module:verify: 80 native module-owned images match, 90 matching refusals, 0 mismatches, of 170 selections; pairs recorded.Checks
npm run pr:ready: every module, catalogue, pair, board, typecheck, build and SDK check passes. Locallytestfails only ondiscord.js(not installed) and on 5 s timeouts on an external disk; those tests pass with a longer timeout.linttrips over leftover.claude/worktrees/checkouts.What the guides lacked or got wrong
For a
Docs:pull request (a module PR stays free of guide edits), beside the four listed on #1224:state,stats,memand key steps answer "build it with --dev";status,do inventory,missing,try/removeanddo selftestwork.access.noUiReason.Hardware results, 5 November 2026
The committed package (
de7f9cae) kept beside Slow LFO on @nathangroth's MKI (flashed beta base9680e9ac): SELF TEST passed, 2/2 intact, longest frame 371 us. The tester reports green on the pattern's 1 on external MIDI clock, through tempo changes while playing (internal and external clock), at pattern scales 3/4, 3/2 and 2X, on the master length in per-track mode, after STOP/PLAY, and after continuing from a pause. Still not tested: a pattern change while playing, MKII (now aKnown issue:line in the release notes), the site's install dialog. Details in TESTING.md.module:verifypasses again (78 match, 96 refusals, 0 mismatches). It also asks to commit achooser-metadata.jsonrow, but the beta base is built from that file, so a row makes the committed base stale (octatrack-base.test.ts). Recent ColdFire-only modules carry no row, so this PR doesn't either; the row belongs with the next base rebuild. That instruction inmodule-verify.mjscould say so: a small follow-up, not part of this release.pr:ready: everything passes exceptpush-runtimeandchange-scope, which time out on this external disk and pass alone with longer timeouts.Known limit: a pattern no longer than one beat (documentation only)
The README's Compatibility and limitations now says a pattern of 1, 2 or 4 steps at 1x (or 8 at 2x) is green only on the first flash after PLAY, then red: every beat flash sees step 0, so the step never drops. 4 steps at 1x was seen under the port in review of octabam's copy (sambanks/octabam#1053); 8 at 2x is inferred. No code change. Locally
module:doctoris green;npm run checkpassed except ESLint, which failed only on extra worktrees under.claude/worktrees/(more than one tsconfig root), which CI doesn't have.🤖 Generated with Claude Code