pitchContour

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.