plltrack — Tracks the pitch of a signal.


plltrack, a pitch tracker based on a phase-locked loop algorithm, described in Zolzer, U, Sankarababu, S.V. and Moller, S, "PLL-based Pitch Detection and Tracking for Audio Signals. Proc. of IIH-MSP 2012".


acps, alock plltrack asig, kd [, kloopf, kloopq, klf, khf, kthresh]


acps -- estimated pitch in Hz.

alock -- phase lock indicator, a phase error indicating the quality of the tracking, with values between 0 and 1. Higher values indicate good tracking

kd -- PLL feedback gain, controls frequency range of PLL (between 0 and 1). Higher values increase the range of the tracking.

kloopf -- PLL LP filter cf, controls frequency range of PLL (opt, defaults to 20Hz).

kloopq -- PLL LP filter Q, controls rise time of FO step (opt, defaults to 1/3)

klf -- lowest tracking freq (opt, defaults to 20Hz)

khf -- highest tracking freq (opt, defaults to 1500Hz)

kthresh -- tracking signal level threshold (optional, defaults to 0.001, equiv to -60dBfs)

plltrack analyzes the input signal, asig, estimating the fundamental of a monophonic signal. Its output is updated every sample.


Here is an example of the plltrack operator. It uses the file plltrack.csd.

Example 754. Example of the plltrack operator.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

; Select audio/midi flags here according to platform
-odac    ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o plltrack.wav -W ;;; for file output any platform

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

instr 1

kd = p4
a1 diskin2 "fox.wav", 1,0,1
apitch, aloc plltrack a1, kd
krms rms a1
krms port krms, 0.01
asig buzz krms, apitch, 10, 1
     outs asig, asig		;mix in some dry signal as well

f1 0 65536 10 1	;sine wave

i 1 0 6 0.1
i 1 7 6 0.3	;more feedback



Author: Victor Lazzarini
NUI, Maynooth.
Maynooth, Ireland
September, 2012

New in Csound version 5.18.031