<!-- Converted to DocBook/SGML by Kevin Conder -->
<refentry id="lpread">
  <refmeta>
    <refentrytitle>lpread</refentrytitle>
  </refmeta>
 
  <refnamediv>
    <refname>lpread</refname>
    <refpurpose>
      Reads a control file of time-ordered information frames.
      <indexterm id="IndexLpread"><primary>lpread</primary></indexterm>
    </refpurpose>
  </refnamediv>
 
  <refsect1>
    <title>Description</title>
    <para>
      Reads a control file of time-ordered information frames.
    </para>
  </refsect1>
 
  <refsect1>
    <title>Syntax</title>
    <synopsis>krmsr, krmso, kerr, kcps <command>lpread</command> ktimpnt, ifilcod [, inpoles] [, ifrmrate]</synopsis>
  </refsect1>
 
  <refsect1>
    <title>Initialization</title>
    <para>
      <emphasis>ifilcod</emphasis> -- integer or character-string denoting a control-file (reflection coefficients and four parameter values) derived from n-pole linear predictive spectral analysis of a source audio signal. An integer denotes the suffix of a file <emphasis>lp.m</emphasis>; a character-string (in double quotes) gives a filename, optionally a full pathname. If not fullpath, the file is sought first in the current directory, then in that of the environment variable SADIR (if defined). Memory usage depends on the size of the file, which is held entirely in memory during computation but shared by multiple calls (see also <emphasis>adsyn</emphasis>, <link linkend="pvoc"><citetitle>pvoc</citetitle></link>).
    </para>

    <para>
      <emphasis>inpoles</emphasis> (optional, default=0) -- number of poles in the lpc analysis. It is required only when the control file does not have a header; it is ignored when a header is detected.
    </para>

    <para>
      <emphasis>ifrmrate</emphasis> (optional, default=0) -- frame rate per second in the lpc analysis. It is required only when the control file does not have a header; it is ignored when a header is detected.
    </para>
  </refsect1>
 
  <refsect1>
    <title>Performance</title>
    <para>
      <emphasis>lpread</emphasis> accesses a control file of time-ordered information frames, each containing n-pole filter coefficients derived from linear predictive analysis of a source signal at fixed time intervals (e.g. 1/100 of a second), plus four parameter values:
    </para>

    <para>
      <emphasis>krmsr</emphasis> -- root-mean-square (rms) of the residual of analysis
    </para>

    <para>
      <emphasis>krmso</emphasis> -- rms of the original signal
    </para>

    <para>
      <emphasis>kerr</emphasis> -- the normalized error signal
    </para>

    <para>
      <emphasis>kcps</emphasis> -- pitch in Hz
    </para>

    <para>
      <emphasis>ktimpnt</emphasis> -- The passage of time, in seconds, through the analysis file. <emphasis>ktimpnt</emphasis> must always be positive, but can move forwards or backwards in time, be stationary or discontinuous, as a pointer into the analysis file.
    </para>

    <para>
      <emphasis>lpread</emphasis> gets its values from the control file according to the input value <emphasis>ktimpnt</emphasis> (in seconds). If <emphasis>ktimpnt</emphasis> proceeds at the analysis rate, time-normal synthesis will result; proceeding at a faster, slower, or variable rate will result in time-warped synthesis. At each k-period, <emphasis>lpread</emphasis> interpolates between adjacent frames to more accurately determine the parameter values (presented as output) and the filter coefficient settings (passed internally to a subsequent <link linkend="lpreson"><citetitle>lpreson</citetitle></link>).
    </para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <link linkend="lpfreson"><citetitle>lpfreson</citetitle></link>, 
      <link linkend="lpreson"><citetitle>lpreson</citetitle></link> 
    </para>
  </refsect1>
</refentry>
