Package-level declarations

Types

Link copied to clipboard
data class ActiveSegmentState(val segmentIndex: Int, val segment: Segment, val currentPitch: Float, val currentAmplitude: Float, val elapsedSeconds: Float, val isCapturing: Boolean)

State of the currently active segment during practice.

Link copied to clipboard
sealed class AudioSource

Represents the source of audio data for evaluation.

Link copied to clipboard
@Serializable
data class BundleManifest(val version: Int = FORMAT_VERSION, val keyHz: Float, val sampleRate: Int = 16000, val hopSize: Int = 320, val frameSize: Int = 1024, val hpcpSize: Int = 12, val lessonType: String = "singalong", val bpm: Int? = null, val beatsPerMeasure: Int? = null)

Metadata for a reference lesson bundle (reference-meta.json).

Link copied to clipboard
data class LessonMaterial(val audioSource: AudioSource, val segments: List<Segment>, val keyHz: Float, val pitchContour: PitchContour? = null, val hpcpFrames: List<FloatArray>? = null, val lessonType: LessonType = LessonType.SINGALONG)

Reference material for singing evaluation.

Link copied to clipboard

How the student performs a lesson relative to the reference: together with it (SINGALONG) or echoing each phrase after hearing it (SINGAFTER).

Link copied to clipboard
data class NoteEvalConfig(val algorithm: ScoringAlgorithm = ScoringAlgorithm.SIMPLE, val boundaryToleranceMs: Int = 0)

Configuration for note evaluation scoring.

Link copied to clipboard

Presets for common note evaluation use cases.

Link copied to clipboard

Practice phase during a CalibraLiveEval session.

Link copied to clipboard
data class ReferenceExtractorConfig(val sampleRate: Int = 16000, val frameSize: Int = 1024, val hopSize: Int = 320, val hpcpSize: Int = 12)

Configuration for com.musicmuni.voxatrace.calibra.ReferenceExtractor (ADR-001: companion presets + Builder + .copy()).

Link copied to clipboard

How to aggregate multiple attempts per segment into a final score.

Link copied to clipboard

Calibration of raw evaluation scores into the score a session reports.

Link copied to clipboard
fun interface ScoreCurve

A score-calibration curve: maps a raw 0..1 evaluation score to the 0..1 score surfaced to users.

Link copied to clipboard

Algorithm for computing note accuracy scores.

Link copied to clipboard
data class Segment(val index: Int, val startSeconds: Float, val endSeconds: Float, val lyrics: String = "", val studentStartSeconds: Float? = null, val studentEndSeconds: Float? = null)

A segment of a song or exercise with timing and optional lyrics.

Link copied to clipboard
data class SegmentResult(val segment: Segment, val score: Float, val pitchAccuracy: Float = score, val attemptNumber: Int = 1, val referencePitch: PitchContour = PitchContour.EMPTY, val studentPitch: PitchContour = PitchContour.EMPTY)

Result of evaluating a single segment.

Link copied to clipboard
data class SessionConfig(val autoAdvance: Boolean = true, val scoreThreshold: Float = 0.0f, val maxAttempts: Int = 0, val resultAggregation: ResultAggregation = ResultAggregation.LATEST, val hopSize: Int = 320, val autoPhaseTransition: Boolean = true, val autoSegmentDetection: Boolean = true, val playInterSegmentAudio: Boolean = false, val scoreCalibration: ScoreCalibration = ScoreCalibration.IDENTITY)

Configuration for a CalibraLiveEval session.

Link copied to clipboard

Current phase of a CalibraLiveEval.

Link copied to clipboard
data class SessionState(val phase: SessionPhase = SessionPhase.IDLE, val activeSegmentIndex: Int? = null, val activeSegment: Segment? = null, val currentPitch: Float = -1f, val currentAmplitude: Float = 0.0f, val segmentProgress: Float = 0.0f, val completedSegments: Set<Int> = emptySet(), val error: String? = null)

Current state of a CalibraLiveEval.

Link copied to clipboard
data class SingingResult(val overallScore: Float, val segmentResults: Map<Int, List<SegmentResult>>, val aggregation: ResultAggregation = ResultAggregation.LATEST)

Complete result of a singing evaluation session.

Link copied to clipboard

Available Voice Activity Detection backend engines.

Link copied to clipboard
data class VADConfig(val backend: VADBackend = VADBackend.SPEECH, val sampleRate: Int = 16000, val threshold: Float = 0.5f, val minSpeechDuration: Float = 0.25f, val minSilenceDuration: Float = 0.25f, val windowSize: Int = 512, val numThreads: Int = 1, val modelPath: String? = null, val rmsThreshold: Float = 0.05f, val pitchProbThreshold: Float = 0.5f, val minPitch: Float = 50.0f)

Configuration for Voice Activity Detection.

Link copied to clipboard
sealed class VADModelProvider

Type-safe model provider for VAD backends.

Link copied to clipboard
data class VADResult(val ratio: Float, val level: VoiceActivityLevel)

Result from VAD analysis containing ratio, level, and convenience properties.

Link copied to clipboard

Voice activity classification levels.