Package-level declarations

Types

Link copied to clipboard
data class ContourExtractorConfig(val preset: PitchPreset = PitchPreset.BALANCED, val algorithm: PitchAlgorithm = PitchAlgorithm.SWIFT_F0, val sampleRate: Int = 16000, val hopMs: Int = 10, val cleanup: PitchProcessingConfig = PitchProcessingConfig.SCORING, val voiceType: VoiceType = VoiceType.Auto, val quietHandling: QuietHandling = QuietHandling.NORMAL, val strictness: DetectionStrictness = DetectionStrictness.BALANCED)

Configuration for batch pitch contour extraction (ADR-001).

Link copied to clipboard

How strict to be about pitch detection.

Link copied to clipboard
data class HistogramConfig(val numBins: Int? = null, val density: Boolean = true, val foldOctaves: Boolean = false, val mode: HistogramMode = HistogramMode.DURATION, val smoothSigma: Float? = 5.0f)

Configuration for pitch histogram computation.

Link copied to clipboard

How histogram bins are weighted.

Link copied to clipboard

Interpolation method for silence gap filling.

Link copied to clipboard
data class LabellingConfig(val windowSeconds: Float = 0.15f, val hopSeconds: Float = 0.03f)

Configuration for mean-pitch labelling of contour segments.

Link copied to clipboard
data class LinearFitConfig(val windowSeconds: Float = 1.5f, val breakThresholdSeconds: Float = 1.5f, val hopSeconds: Float? = null)

Configuration for piecewise linear segment fitting.

Link copied to clipboard
data class OctaveCorrectionConfig(val removeSpuriousJumps: Boolean = true, val snapBackCorrection: Boolean = true, val snapBackThresholdCents: Float = 150.0f, val referencePitchHz: Float = 0.0f, val correctBoundaries: Boolean = true, val boundaryWindowMs: Float = 50.0f, val hopMs: Int = 10)

Configuration for octave correction (ADR-001).

Link copied to clipboard
data class PeakDetectionConfig(val method: String = "hybrid", val peakAmpThresh: Float = 5.0E-5f, val valleyThresh: Float = 3.0E-5f, val lookahead: Int = 20, val avgIntervalHint: Float? = null, val minPeakAreaFraction: Float = 0.0f)

Configuration for peak detection in a pitch histogram.

Link copied to clipboard
data class PeakStats(val referenceInterval: Float, val peakPosition: Float, val peakAmplitude: Float, val mean: Float, val median: Float, val stdDev: Float, val variance: Float, val coeffOfVariation: Float, val skewness: Float, val kurtosis: Float, val pearsonSkew2: Float)

Statistical summary of pitch distribution around a detected histogram peak.

Link copied to clipboard
data class PeakStatsCollection(val statsByReferenceInterval: Map<Float, PeakStats>) : Iterable<PeakStats>

Collection of PeakStats keyed by reference interval (cents).

Link copied to clipboard
data class PeakStatsConfig(val maxPeakwidthCents: Float = 50.0f, val minPeakwidthCents: Float = 25.0f, val symmetricBounds: Boolean = true)

Configuration for per-peak statistics computation.

Link copied to clipboard

Pitch detection algorithm backend.

Link copied to clipboard
data class PitchContour(val samples: List<PitchPoint>, val sampleRate: Int = 16000, val hopSize: Int = 0)

A sequence of PitchPoints representing a pitch contour over time.

Link copied to clipboard
data class PitchDetectorConfig(val algorithm: PitchAlgorithm = PitchAlgorithm.YIN, val bufferSize: Int = 1024, val hopSize: Int = 160, val tolerance: Float = 0.15f, val minFreq: Float = 80.0f, val maxFreq: Float = 1000.0f, val amplitudeGateDb: Float = -40f, val confidenceThreshold: Float = 0.75f, val enableSmoothing: Boolean = false, val enableOctaveCorrection: Boolean = false, val smoothingWindowSize: Int = 5, val octaveThresholdCents: Float = 150.0f, val swiftF0BatchSize: Int = 2560)

Configuration for pitch detector.

Link copied to clipboard
data class PitchHistogram(val binCenters: FloatArray, val values: FloatArray, val tonicHz: Float, val isDensity: Boolean, val isFolded: Boolean, val mode: HistogramMode)

Pitch histogram with musical metadata. Wraps Histogram from common.

Link copied to clipboard
data class PitchPoint(val pitch: Float, val confidence: Float, val timeSeconds: Float = 0.0f)

A pitch detection result or timestamped pitch sample.

Link copied to clipboard

Pre-configured pitch detection presets.

Link copied to clipboard
data class PitchProcessingConfig(val fixOctaveErrors: Boolean = true, val removeSpuriousJumps: Boolean = true, val octaveThresholdCents: Float = 150.0f, val referencePitchHz: Float = 0.0f, val fixBoundaryOctaves: Boolean = true, val boundaryWindowMs: Float = 50.0f, val smoothPitch: Boolean = true, val smoothingWindowSize: Int = 7, val removeBlips: Boolean = true, val minimumNoteDurationMs: Float = 80.0f, val hopMs: Int = 10)

Configuration for batch pitch processing pipeline (ADR-001).

Link copied to clipboard
data class QuantizationConfig(val slopeThresholdCentsPerSec: Float = 150.0f, val maxDeviationCents: Float = 50.0f, val medianFilterWindowSamples: Int = 7, val applyMedianFilter: Boolean = true, val minSegmentDurationMs: Int? = null)

Configuration for pitch quantization (snapping to target intervals).

Link copied to clipboard

How to handle quiet audio.

Link copied to clipboard
data class RealtimePitchProcessingConfig(val enableSmoothing: Boolean = true, val smoothingWindowSize: Int = 5, val enableOctaveCorrection: Boolean = true, val octaveThresholdCents: Float = 150.0f, val referencePitchHz: Float = 0.0f)

Configuration for realtime pitch processing (ADR-001).

Link copied to clipboard
data class TonalSegment(val startSeconds: Float, val endSeconds: Float, val label: String? = null, val meanCents: Float? = null, val slopeCentsPerSec: Float? = null, val interceptCents: Float? = null)

A labelled time-span from melodic transcription.

Link copied to clipboard
sealed class VoiceType

Voice type presets for different singing styles and voice ranges.