plltrack

plltrack — Tracks the pitch of a signal.

Description

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".

Syntax

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

Performance

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.

Examples

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

Example 771. Example of the plltrack operator.

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

<CsoundSynthesizer>
<CsOptions>
; 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
</CsOptions>
<CsInstruments>

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

endin
</CsInstruments>
<CsScore>
f1 0 65536 10 1	;sine wave

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

e
</CsScore>
</CsoundSynthesizer>


See also

Sensing and Control: Tempo and Pitch estimation

Credits

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

New in Csound version 5.18.031