rejectOutliers

fun rejectOutliers(pitchesHz: FloatArray, hopMs: Int = 10, minDurationMs: Float = 80.0f): FloatArray

Reject short pitch runs (blips) based on minimum duration.

Finds contiguous runs of voiced pitch and rejects runs shorter than the minimum duration. This removes transient artifacts at phrase boundaries without limiting melodic range.

Return

Filtered pitch array with short runs marked as unvoiced (-1)

Parameters

pitchesHz

Input pitch array in Hz (-1 for unvoiced)

hopMs

Hop size between frames in milliseconds (default: 10)

minDurationMs

Minimum duration for a valid pitch run in ms (default: 80)