lpanal — Performs both linear predictive and pitch-tracking analysis on a soundfile.


Linear predictive analysis for the Csound Linear Predictive Coding (LPC) Resynthesis opcodes.


csound -U lpanal [flags] infilename outfilename
lpanal [flags] infilename outfilename


lpanal performs both lpc and pitch-tracking analysis on a soundfile to produce a time-ordered sequence of frames of control information suitable for Csound resynthesis. Analysis is conditioned by the control flags below. A space is optional between the flag and its value.

-a -- [alternate storage] asks lpanal to write a file with filter poles values rather than the usual filter coefficient files. When lpread / lpreson are used with pole files, automatic stabilization is performed and the filter should not get wild. (This is the default in the Windows GUI) - Changed by Marc Resibois.

-s srate -- sampling rate of the audio input file. This will over-ride the srate of the soundfile header, which otherwise applies. If neither is present, the default is 10000.

-c channel -- channel number sought. The default is 1.

-b begin -- beginning time (in seconds) of the audio segment to be analyzed. The default is 0.0

-d duration -- duration (in seconds) of the audio segment to be analyzed. The default of 0.0 means to the end of the file.

-p npoles -- number of poles for analysis. The default is 34, the maximum 50.

-h hopsize -- hop size (in samples) between frames of analysis. This determines the number of frames per second (srate / hopsize) in the output control file. The analysis framesize is hopsize * 2 samples. The default is 200, the maximum 500.

-C string -- text for the comments field of the lpfile header. The default is the null string.

-P mincps -- lowest frequency (in Hz) of pitch tracking. -P0 means no pitch tracking.

-Q maxcps -- highest frequency (in Hz) of pitch tracking. The narrower the pitch range, the more accurate the pitch estimate. The defaults are -P70, -Q200.

-v verbosity -- level of terminal information during analysis.

  • 0 = none

  • 1 = verbose

  • 2 = debug

The default is 0.

-X -- write machine independent format analysis file.


lpanal -a -p26 -d2.5 -P100 -Q400 audiofile.test lpfil22

will analyze the first 2.5 seconds of file "audiofile.test", producing srate/200 frames per second, each containing 26-pole filter coefficients and a pitch estimate between 100 and 400 Hertz. Stabilized (-a) output will be placed in "lpfil22" in the current directory.

File Format

Output is a file comprised of an identifiable header plus a set of frames of floating point analysis data. Each frame contains four values of pitch and gain information, followed by npoles filter coefficients. The file is readable by Csound's lpread.

lpanal is an extensive modification of Paul Lanksy's lpc analysis programs.