Package-level declarations

Types

Link copied to clipboard

Listener for audio focus changes.

Link copied to clipboard

Audio session mode for configuring system audio behavior.

Link copied to clipboard
actual object AudioSessionManager

Android implementation of AudioSessionManager.

expect object AudioSessionManager

Cross-platform audio session manager (ADR-016).

actual object AudioSessionManager

iOS implementation of AudioSessionManager.

actual object AudioSessionManager

Desktop-JVM audio session manager. The desktop OS audio stack has no app-level audio-session/focus concept (that's a mobile notion, ADR-016), so there is no session to race: configure just records the mode and reports active. Focus listeners are tracked for contract parity but never fire (no system focus events on desktop). System AEC and shared session ids are mobile-only.

Link copied to clipboard

A playback source that com.musicmuni.voxatrace.calibra.CalibraLiveEval can drive and clock against. Implemented by SonixPlayer (a single track) and SonixMixer (a reference track plus synced accompaniment), so live evaluation can run over either without knowing which.

Link copied to clipboard
sealed class RecordingState

Recording session state - mirrors AudioSession.State with public visibility.

Link copied to clipboard

Audio utility functions for manipulating AudioRawData and converting between frame indices and time.

Link copied to clipboard
object SonixClock

The monotonic clock VoxaTrace stamps audio with (ADR-021).

Link copied to clipboard

Decodes audio files to raw PCM data.

Link copied to clipboard

Encodes audio to file formats (M4A/AAC, MP3, WAV).

Link copied to clipboard
data class SonixError(val message: String, val cause: Throwable? = null)

Error information for Sonix operations.

Link copied to clipboard
open class SonixException(message: String, cause: Throwable? = null) : VoxaTraceException

Base exception for Sonix audio operations.

Link copied to clipboard

Utilities for converting between frame indices and time (seconds).

Link copied to clipboard

Exception thrown when API key is invalid or license has been revoked.

Link copied to clipboard

Measures the residual playback-out latency this device leaves after the OS-timestamp presentation clock (ADR-021 follow-up): how far the playback presentation clock still leads the truly-audible output. Measured through a SonixMixer with the probe as its reference track — the same clock the live-eval scorer anchors through in practice; the bare single-track player can have a different DAC sink, so calibrating it would mis-compensate real takes.

Link copied to clipboard

Synthesizes audio lessons from note sequences.

Link copied to clipboard

Metronome for practice mode with click track playback.

Link copied to clipboard

MIDI synthesizer for converting MIDI to audio using SoundFont files.

Link copied to clipboard

Multi-track audio mixer with synchronized playback.

Link copied to clipboard
data class SonixMixerConfig(val loopCount: Int = 1, val onPlaybackComplete: () -> Unit? = null, val onLoopComplete: (loopIndex: Int) -> Unit? = null, val onError: (error: String) -> Unit? = null)

Configuration for SonixMixer.

Link copied to clipboard

The audio output route a player's audio is actually being rendered on.

Link copied to clipboard

Parser for pitch, notes, and transcription data files.

Link copied to clipboard

Unified audio player for playback with pitch shifting and tempo control.

Link copied to clipboard
data class SonixPlayerConfig(val volume: Float = 1.0f, val pitch: Float = 0.0f, val tempo: Float = 1.0f, val loopCount: Int = 1, val onComplete: () -> Unit? = null, val onLoopComplete: (loopIndex: Int, totalLoops: Int) -> Unit? = null, val onPlaybackStateChanged: (isPlaying: Boolean) -> Unit? = null, val onError: (message: String) -> Unit? = null)

Configuration for SonixPlayer.

Link copied to clipboard

Unified audio recorder for capturing microphone input.

Link copied to clipboard
data class SonixRecorderConfig(val format: AudioFormat = AudioFormat.M4A, val sampleRate: Int = 16000, val channels: Int = 1, val bitrate: Int = 64000, val playbackSyncProvider: PlaybackInfoProvider? = null, val enableSegmentRecording: Boolean = false, val segmentOutputDirectory: String? = null, val bufferPoolSize: Int = 4, val bufferSampleSize: Int = 2048, val recordingBufferSizeBytes: Int = 10 * 1024 * 1024, val audioBufferSizeMs: Int = 40, val echoCancellation: Boolean = false, val onRecordingStarted: () -> Unit? = null, val onRecordingStopped: (outputPath: String) -> Unit? = null, val onError: (message: String) -> Unit? = null, val onLevelUpdate: (level: Float) -> Unit? = null, val onStateChange: (RecordingState) -> Unit? = null, val inputSource: AudioInputSource = AudioInputSource.Microphone)

Configuration for SonixRecorder.

Link copied to clipboard
actual object SonixResampler
expect object SonixResampler

High-quality audio resampling using libsamplerate.

actual object SonixResampler
actual object SonixResampler
Link copied to clipboard

Generates raw audio waveforms as AudioRawData.

Link copied to clipboard

Formats reference data into the on-disk text formats parsed by SonixParser — the inverse direction, for tools that author reference lessons.