Skip to content

Add quantization and foot-parity evaluation scatterplots (rssp parity)#558

Draft
adstep wants to merge 5 commits into
pnn64:mainfrom
adstep:adstep/port-quant-foot-scatterplot
Draft

Add quantization and foot-parity evaluation scatterplots (rssp parity)#558
adstep wants to merge 5 commits into
pnn64:mainfrom
adstep:adstep/port-quant-foot-scatterplot

Conversation

@adstep

@adstep adstep commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Why

Simply Love offers evaluation scatterplots colored by note quantization and by left/right foot, which give players useful feedback on rhythm reading and per-foot timing bias. Now that rssp exposes real step-parity annotations, we can port both, with the foot view backed by actual parity data instead of a guess.

What

Adds two new evaluation graph panes and replaces an inaccurate heuristic with real rssp parity throughout the foot-based displays.

  • Quantization scatter (EvalGraphPane::Quant): colors each timing point by its note quantization using Simply Love's palette (4th red, 8th blue, 12th purple, 16th green, 24th pink, 32nd yellow, 48th light pink, 64th/192nd teal).
  • Foot scatter (EvalGraphPane::FootParity): colors points by real rssp left/right foot parity (left red, right blue, jumps/unknown black). This replaces the old heuristic Foot pane, which alternated feet and blacked out anything not detected as a stream (so a "No Streams" chart rendered entirely black).
  • Timing-stats foot breakdown: the per-arrow timing pane's left/right buckets now use the same real parity. Each arrow, including the two halves of a jump, is attributed to its actual foot instead of dumping a whole row onto one alternated foot.
  • Graph label: each scatter pane now shows a small bottom-left label describing what its colors encode (Judgment / Column / Quantization / Foot).

adstep added 5 commits June 17, 2026 01:43
Port Simply Love's by-quantization and by-foot evaluation scatterplots as
two new graph panes. Quant colors points by note quantization; FootParity
uses real rssp left/right foot parity. ScatterFoot stays in deadsync-rules
(rssp-free); parity is computed in the app layer and joined onto scatter
points by row_index.
Drop the alternating-feet heuristic Foot pane and its now-dead support
code (ScatterPoint.is_stream/is_left_foot, is_stream_beat, the foot
alternation in build_scatter_points and its stream_segments param). The
rssp-based FootParity pane is now the sole left/right-foot view and
inherits the red/blue feet overlay. Graph cycle is now scoring, Arrow,
Quant, FootParity.
Show a small bottom-left label naming what the active graph's colors
encode (Judgment, Column, Quantization, Foot). The graph cache key already
includes the pane, so the label refreshes when cycling graphs.
Drop the "By " prefix so labels read Judgment / Column / Quantization / Foot.
The per-arrow timing-stats pane's left/right-foot buckets now use real
rssp foot parity instead of the alternation heuristic.
compute_arrow_timing_stats takes an optional per-note parity map
(deadsync-rules stays rssp-free; the map is built in the app layer via
foot_parity_by_note_for_results), attributing each arrow - including the
two halves of a jump - to its actual foot. Alternation remains the
fallback for non-4/8-panel charts and rows rssp skips.
@adstep adstep force-pushed the adstep/port-quant-foot-scatterplot branch from e9651dd to 925b0e0 Compare June 17, 2026 08:43
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