Skip to content

Musical typing, piano roll octave echoes and scale marks, separate STOP/PLAY - #22

Merged
nooga merged 2 commits into
masterfrom
claude/musical-typing
Oct 16, 2026
Merged

nooga merged 2 commits into
masterfrom
claude/musical-typing

Conversation

@nooga

@nooga nooga commented Oct 15, 2026

Copy link
Copy Markdown
Owner

Summary

  • Musical typing (docs/40). KEYS in the transport bar plays the selected track from the computer keyboard. There are three layouts:

    • PIANO: one chromatic row.
    • GRID: Push-style fourths, in key when a scale is set.
    • CHORD: in-key chords on the Z row under a melody on the A/Q rows; keys 1–6 pick the chord type.

    Octave is - =, velocity [ ] (on PIANO also Z X / C V). Held notes use the KEYS velocity (Engine.holdNoteVel). While KEYS is on, its keys switch off the panes' unmodified shortcuts on those keys; ⌘ combinations, text fields and menus still get them.

  • Recording. With KEYS on, REC records into the clip open in the piano roll, or into a new "Take" clip. The clip grows by bars. Loop passes layer on top of each other, with one undo step per pass. Held notes draw growing, outlined in red.

  • Piano roll. A pressed key lights faintly in every octave on the keys and the grid. In DRAW mode (or with ⌘ held) a ghost shows the note a click would add, with outlines in its other octaves. A picked scale stripes its keys (solid on the root), greys the keys outside it, and tints its rows in the track color.

  • Transport. STOP and PLAY are separate buttons. STOP pressed again while stopped returns to the loop start, or to the song start when the loop is off.

Test plan

  • zig build test: new unit tests for the layouts, chords, scale degrees, key claims, the velocity ladder, and the take recorder (presses, releases, loop-wrap split)
  • App launches with the KEYS tile and the ■ ▶ buttons in the transport bar
  • By hand: play each layout, record over a loop, check the octave echoes, ghost and scale marks on retina

🤖 Generated with Claude Code

nooga and others added 2 commits October 16, 2026 00:47
…docs/40)

KEYS in the transport bar plays the selected track from the computer
keyboard: PIANO (one chromatic row), GRID (Push-style fourths, in key
with a scale) or CHORD (in-key chords on the bottom row under a melody).
With KEYS on, REC records into the open clip or a new take clip, growing
by bars and layering across loop passes, one undo step per pass. Held
notes carry the KEYS velocity (Engine.holdNoteVel); claimed keys stand
the panes' unmodified shortcuts down.

The piano roll lights a pressed note in every octave on keys and grid,
shows the note a click would add (with octave outlines) in DRAW mode,
and marks a picked scale: key stripes, greyed out-of-key keys, tinted
rows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nooga
nooga merged commit d7db2ad into master Oct 16, 2026
1 check passed
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