<!-- Converted to DocBook/SGML by Kevin Conder -->
<refentry id="vdelay">
  <refmeta>
    <refentrytitle>vdelay</refentrytitle>
  </refmeta>
 
  <refnamediv>
    <refname>vdelay</refname>
    <refpurpose>
      An interpolating variable time delay.
      <indexterm id="IndexVdelay"><primary>vdelay</primary></indexterm>
    </refpurpose>
  </refnamediv>
 
  <refsect1>
    <title>Description</title>
    <para>
      This is an interpolating variable time delay, it is not very different from the existing implementation (<emphasis>deltapi</emphasis>), it is only easier to use.
    </para>
  </refsect1>
 
  <refsect1>
    <title>Syntax</title>
    <synopsis>ar <command>vdelay</command> asig, adel, imaxdel [, iskip]</synopsis>
  </refsect1>
 
  <refsect1>
    <title>Initialization</title>
    <para>
      <emphasis>imaxdel</emphasis> -- Maximum value of delay in milliseconds. If <emphasis>adel</emphasis> gains a value greater than <emphasis>imaxdel</emphasis> it is folded around <emphasis>imaxdel</emphasis>. This should not happen.
    </para>

    <para>
      <emphasis>iskip</emphasis> -- Skip initialization if present and non&shy;zero
    </para>
  </refsect1>
 
  <refsect1>
    <title>Performance</title>
    <para>
      With this unit generator it is possible to do Doppler effects or chorusing and flanging.
    </para>

    <para>
      <emphasis>asig</emphasis> -- Input signal.
    </para>

    <para>
      <emphasis>adel</emphasis> -- Current value of delay in milliseconds. Note that linear functions have no pitch change effects. Fast changing values of <emphasis>adel</emphasis> will cause discontinuities in the waveform resulting noise.
    </para>
  </refsect1>
 
  <refsect1>
    <title>Examples</title>
    <para>
      <informalexample>
        <programlisting>
  f1 0 8192 10 1
  ims     =          100             ; Maximum delay time in msec
  a1      <emphasis>oscil</emphasis>      10000, 1737, 1  ; Make a signal
  a2      <emphasis>oscil</emphasis>      ims/2, 1/p3, 1  ; Make an LFO
  a2      =          a2 + ims/2      ; Offset the LFO so that it is positive
  a3      <emphasis>vdelay</emphasis>     a1, a2, ims     ; Use the LFO to control delay time
          <emphasis>out</emphasis>        a3
        </programlisting>
      </informalexample>
    </para>

    <para>
      Two important points here. First, the delay time must be always positive. And second, even though the delay time can be controlled in k-rate, it is not advised to do so, since sudden time changes will create clicks.
    </para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <link linkend="vdelay3"><citetitle>vdelay3</citetitle></link>
    </para>
  </refsect1>
 
  <refsect1>
    <title>Credits</title>
    <para>
      <simplelist>
        <member>Author: &nameparis;</member>
        <member>MIT, Cambridge</member>
        <member>1995</member>
      </simplelist>
    </para>
  </refsect1>
</refentry>
