create

fun create(reference: LessonMaterial, session: SessionConfig = SessionConfig.DEFAULT, detector: CalibraPitch.Detector, player: SonixPlayer? = null, recorder: SonixRecorder? = null): CalibraLiveEval

Create a new live evaluation session.

Session takes ownership of the detector and will close it when the session closes. Player and recorder are NOT owned - caller manages their lifecycle.

Usage

Low-Level API (manual audio management)

val session = CalibraLiveEval.create(
reference,
detector = CalibraPitch.createDetector()
)
session.prepareSession()
session.startPracticingSegment(0)
// Manually feed audio...

Convenience API (library manages audio)

val session = CalibraLiveEval.create(
reference,
detector = CalibraPitch.createDetector(),
player = player,
recorder = recorder
)
session.prepareSession()
session.onSegmentComplete { result -> showScore(result) }
session.startPracticingSegment(0) // Single call handles everything

Return

New session instance

Parameters

reference

The lesson material (reference audio, segments, key)

session

Session configuration (default: DEFAULT)

detector

Pitch detector (required). Session takes ownership.

player

Optional SonixPlayer for audio coordination. Caller manages lifecycle.

recorder

Optional SonixRecorder for audio coordination. Caller manages lifecycle.