PitchContourSegmentation

standard mode | Pitch category

Inputs

  • pitch (vector_real) - estimated pitch contour [Hz]

  • signal (vector_real) - input audio signal

Outputs

  • onset (vector_real) - note onset times [s]

  • duration (vector_real) - note durations [s]

  • MIDIpitch (vector_real) - quantized MIDI pitch value

Parameters

  • hopSize (integer ∈ (0, ∞), default = 128) :

    hop size of the extracted pitch

  • minDuration (real ∈ (0, ∞), default = 0.1) :

    minimum note duration [s]

  • pitchDistanceThreshold (integer ∈ (0, ∞), default = 60) :

    pitch threshold for note segmentation [cents]

  • rmsThreshold (integer ∈ (-∞, 0), default = -2) :

    zscore threshold for note segmentation

  • sampleRate (integer ∈ (0, ∞), default = 44100) :

    sample rate of the audio signal

  • tuningFrequency (integer ∈ (0, 22000), default = 440) :

    tuning reference frequency [Hz]

Description

This algorithm converts a pitch sequence estimated from an audio signal into a set of discrete note events. Each note is defined by its onset time, duration and MIDI pitch value, quantized to the equal tempered scale.

Note segmentation is performed based on pitch contour characteristics (island building) and signal RMS. Notes below an adjustable minimum duration are rejected.

References:

[1] R. J. McNab et al., “Signal processing for melody transcription,” in Proc. Proc. 19th Australasian Computer Science Conf., 1996

Source code

See also

RMS (standard) RMS (streaming)