The seam (editor-core): a session-local caret — (voice, position, entry duration), never in the op log, undo leaves it advanced, a deleted voice clears it — with enter_nominal/enter_pitch/enter_rest funneling to one insertion core that reuses the pencil's make-room verbatim and advances only on success. Octave inference is nearest-in-staff-steps to the preceding note with a downward tie-break — proven unreachable for real letter pairs (candidate octaves sit an odd 7 steps apart), so the comparator is tested directly. midi_note_to_pitch (sharps-spelled v1 policy) is the testable core of MIDI entry; x_at_position mirrors invert_x for the GUI's caret line, extrapolation-tested on non-uniform anchors after the uniform fixture proved blind to the wrong-segment mutation. The GUI (editor-gui): N-toggled entry mode, mutually exclusive with pencil via a pure toggle_exclusive; mode-gated letters A-G, R for rests, arrow-key caret movement, the duration palette doing double duty; the caret drawn full staff height at x_at_position from the staff's own rendered strokes. G5 locks the entry loop: C-D-E-F entered at the caret, each advancing position value-asserted as an exact rational before any pixel, baseline user-reviewed. Twelve mutations killed across the pair, coordinator re-verified. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| goldens | ||
| src | ||
| Cargo.toml | ||
| DECISIONS.md | ||