The signal to be analyzed.
The initial value of the freq
output, until the first
valid pitch is found. (init-time only)
The minimum frequency in Hertz to be considered for reporting. (init-time only)
The maximum frequency in Hertz to be considered for reporting. (init-time only)
The frequency at which the pitch is estimated. This
will be automatically clipped to be between minFreq
and maxFreq
. (init-time only)
A value which guides the search for the peak frequency in the first coarse step. Its setting does *not* affect the final pitch resolution; setting it larger will cause the coarse search to take longer, and setting it smaller will cause the fine search to take longer. (init-time only)
This specifies the length of a median filter applied to
the frequency output estimation. With the default value
of 1
the filter is defeated. Median filtering can help
eliminating single spikes and jitter. This will however
add latency to the output. (init-time only)
The minimum amplitude threshold above which the pitch follower operates. An input signal below this threshold is not analyzed. (init-time only)
This is a threshold used to find the first peak in the
autocorrelation signal which gives the reported
frequency. It is a factor of the energy of the signal
(autocorrelation coefficient at zero). Set this value
higher (e.g. to 1
) to eliminate false frequencies
corresponding to overtones. (init-time only)
An integer factor by which the input signal is down
sampled to reduce CPU overhead. This will also reduce
the pitch resolution. The default value of 1
means
that the input signal is not down sampled. (init-time
only)
If the clarity
argument is greater than zero (it is
zero by default) then the hasFreq
output is given
additional detail. Rather than simply being 1 when a
pitch is detected, it is a "clarity" measure in the
range between zero and one. (Technically, it's the
height of the autocorrelation peak normalised by the
height of the zero-lag peak.) It therefore gives a kind
of measure of "purity" of the pitched signal.
(init-time only)
An autocorrelation based pitch following UGen. It is more accurate than
ZeroCrossing
, but more also more CPU costly. For most purposes the default settings can be used and onlyin
needs to be supplied.The UGen has two outputs: The first output is the frequency estimate in Hertz, the second output is a toggle
hasFreq
, which tells whether a pitch was found (1) or not (0). If theclarify
argument is used,hasFreq
has more fine grained information.The pitch follower executes periodically at the rate specified by
execFreq
in cps. First it detects whether the input peak to peak amplitude is above theampThresh
. If it is not then no pitch estimation is performed, thehasFreq
output is set to zero and thefreq
output is held at its previous value. Otherwise, the autocorrelation is calculated, and the first peak after the peak around the lag of zero that is abovepeakThresh
times the amplitude of the peak at lag zero is reported.Examples