pitch Contour
The session's pitch contour. 100 Hz (detector's native rate), player-time-stamped, session-scoped with segment-aware wiping on retry / seek.
Read it via PitchContourRecorder: recent(seconds) for a scrolling visualisation (pulled per render frame), snapshot() for whole-contour scoring.
Timestamps on each PitchPoint are in the player's time domain. On segment (re)start, LiveEvaluator calls com.musicmuni.voxatrace.tona.detection.PitchDetector.clearPitchContourFrom with the segment's start time, which drops any existing points at or after that time and leaves earlier segments intact. Net effect per scenario:
Retry the current segment — the retried segment's points are replaced; prior segments' points are preserved.
Advance to the next segment — drop is a no-op; new points extend the contour.
Seek back to an earlier segment — everything from there forward is wiped and refilled as the user resings.
For simple "what pitch right now" displays (a single value), use state.currentPitch instead.