Skip to content

feat(highway-2d): render unpitched slides (slu)#524

Merged
byrongamatos merged 1 commit into
mainfrom
feat/2d-highway-unpitched-slide
Jun 20, 2026
Merged

feat(highway-2d): render unpitched slides (slu)#524
byrongamatos merged 1 commit into
mainfrom
feat/2d-highway-unpitched-slide

Conversation

@byrongamatos

Copy link
Copy Markdown
Contributor

The 2D highway rendered pitched slides (sl) but ignored unpitched slides (slu)drawNote read only opts.sl, and there was no slu anywhere in static/highway.js. The 3D highway already renders both (slideTrailEnd). This brings the 2D highway to parity (the last item in epic #334's render-parity slice).

Change

  • drawNote now draws slu as a dashed diagonal, no arrowhead (no definite target pitch), keeping the solid arrow + arrowhead for pitched sl. The two are mutually exclusive in the data; the 3D highway makes the same split.
  • Chord notes flow through the same drawNote, so chord-note unpitched slides are covered too.
  • Latent fix (review): opts?.sl || -1 discarded a pitched slide-to-open (sl: 0); now ?? -1 preserves fret-0 targets and keeps pitched precedence over unpitched.

Review

Codex: no P1/P2. Confirmed setLineDash is reset on all paths (no dash-state leak), no pitched-slide regression. The one P3 (the sl: 0 asymmetry) is fixed above. node --check clean.

Render-only; the editor already authors slu (promptSlideUnpitch).

Closes #336. Part of #334.

🤖 Generated with Claude Code

The 2D highway drew pitched slides (sl) but ignored unpitched slides (slu) —
drawNote read only opts.sl. The 3D highway already renders both (slideTrailEnd).

drawNote now draws slu as a dashed diagonal with no arrowhead (no definite
target pitch), keeping the solid arrow+arrowhead for pitched sl. The two are
mutually exclusive in the data. Chord notes flow through the same drawNote, so
chord-note unpitched slides are covered too.

Also fixes a latent pre-existing bug flagged in review: `opts?.sl || -1`
discarded a pitched slide-to-open (sl: 0); now `?? -1` preserves fret-0 targets
and keeps pitched precedence.

Codex-reviewed: no P1/P2; dash state reset on all paths, no pitched-slide
regression. node --check clean.

Closes #336. Part of #334.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@byrongamatos
byrongamatos merged commit e8db65a into main Jun 20, 2026
0 of 3 checks passed
@byrongamatos
byrongamatos deleted the feat/2d-highway-unpitched-slide branch June 20, 2026 19:09
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.

2D highway: render unpitched slides (slu)

1 participant