Skip to content

feat: four notes, seventh chords and a tesseract in the Notes & Chords lab - #37

Merged
benjamin-small merged 12 commits into
mainfrom
notes-tesseract
Oct 13, 2026
Merged

benjamin-small merged 12 commits into
mainfrom
notes-tesseract

Conversation

@benjamin-small

Copy link
Copy Markdown
Owner

Summary

  • Four notes: single-note mode picks up to four; chord mode gains a Sevenths row (Dom7, Maj7, Min7, Half-dim7, Dim7) under the triads in the same radio group.
  • Tesseract: with four notes the curve is drawn inside a tesseract (16 corners, 32 edges) turned through the fourth dimension — rotation in the x–w and z–w planes, perspective 4D→3D with a fit factor that keeps it inside the existing camera framing — drawn by the existing 3D pipeline. Fourth bar (soft blue #7FA8E8) in the bottom gutter.
  • 4D controls: a 4D turn slider (0–359°) that follows the turn, and a Turn toggle; grabbing the slider holds the angle. The viz owns the angle (advanced in tick); a new Visualization::readout() → Engine::viz_readout() lets the page mirror it without per-frame config pushes (which would reset the cube's spin).
  • Overlay: four swing labels (the bottom bar's hangs under its middle), the ratio readout moved to the strip's top-left corner, fourth legend swatch, copy and README updated.
  • In pure ratios a C7 is 20 : 25 : 30 : 36 (the lab's 5-limit table makes the minor seventh 9/5), so it closes after 20 root swings.
  • Spec: docs/superpowers/specs/2026-10-12-notes-tesseract-design.md; plan: docs/superpowers/plans/2026-10-12-notes-tesseract.md.

Validation

  • cargo fmt --check, cargo clippy (only the 6 pre-existing Sierpinski warnings), cargo test 262 passed
  • wasm (headless Chrome 155): 33 passed incl. notes_renders_one_to_four_notes
  • vitest 414/414, svelte-check 0 errors
  • Per-task reviews (8) + a whole-branch review; its findings (label overlap at the bottom-right corner on stages < ~517 px, stale thesis, untested Turn-hold, per-frame readout read, doc word) fixed and re-reviewed
  • Browser (dev): #/notes?n=60,64,67,70&c=dom7 — tesseract turns, slider follows, no label overlaps at 1280×720 or 375×812, no console errors

@benjamin-small
benjamin-small merged commit 4ad93db into main Oct 13, 2026
6 checks passed
@benjamin-small
benjamin-small deleted the notes-tesseract branch October 13, 2026 17:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant