<!-- Converted to DocBook/SGML by Kevin Conder -->
<refentry id="deltapxw">
  <refmeta>
    <refentrytitle>deltapxw</refentrytitle>
  </refmeta>

  <refnamediv>
    <refname>deltapxw</refname>
    <refpurpose>
      Mixes the input signal to a delay line.
      <indexterm id="IndexDeltapxw"><primary>deltapxw</primary></indexterm>
    </refpurpose>
  </refnamediv>
  
  <refsect1>
    <title>Description</title>
    <para>
      <emphasis>deltapxw</emphasis> mixes the input signal to a delay line. This opcode can be mixed with reading units (<link linkend="deltap"><citetitle>deltap</citetitle></link>, <link linkend="deltapn"><citetitle>deltapn</citetitle></link>, <link linkend="deltapi"><citetitle>deltapi</citetitle></link>, <link linkend="deltap3"><citetitle>deltap3</citetitle></link>, and <link linkend="deltapx"><citetitle>deltapx</citetitle></link>) in any order; the actual delay time is the difference of the read and write time. This opcode can read from and write to a <link linkend="delayr"><citetitle>delayr</citetitle></link>/<link linkend="delayw"><citetitle>delayw</citetitle></link> delay line with interpolation. 
    </para>
  </refsect1>

  <refsect1>
    <title>Syntax</title>
    <synopsis><command>deltapxw</command> ain, adel, iwsize</synopsis>
  </refsect1>

  <refsect1>
    <title>Initialization</title>
    <para>
      <emphasis>iwsize</emphasis> -- interpolation window size in samples. Allowed values are integer multiplies of 4 in the range 4 to 1024. iwsize = 4 uses cubic interpolation.  Increasing iwsize improves sound quality at the expense of CPU usage, and minimum delay time.
    </para>
  </refsect1>

  <refsect1>
    <title>Performance</title>
    <para>
      <emphasis>ain</emphasis> -- Input signal
    </para>

    <para>
      <emphasis>adel</emphasis> -- Delay time in seconds.
    </para>

    <para>
      <informalexample>
        <programlisting>
a1      delayr idlr
        deltapxw a2, adl1, iws1
a3      deltapx adl2, iws2
        deltapxw a4, adl3, iws3
        delayw a5
        </programlisting>
      </informalexample>
    </para>
 
    <para>
      Minimum and maximum delay times:

      <informalexample>
        <programlisting>
idlr &gt;= 1/kr                                Delay line length
 
adl1 &gt;= (iws1/2)/sr                         Write before read
adl1 &lt;= idlr - (1 + iws1/2)/sr              (allows shorter delays)
 
adl2 &gt;= 1/kr + (iws2/2)/sr                  Read time
adl2 &lt;= idlr - (1 + iws2/2)/sr
adl2 &gt;= adl1 + (iws1 + iws2) / (2*sr)
adl2 &gt;= 1/kr + adl3 + (iws2 + iws3) / (2*sr)
 
adl3 &gt;= (iws3/2)/sr                         Write after read
adl3 &lt;= idlr - (1 + iws3/2)/sr              (allows feedback)
        </programlisting>
      </informalexample>
    </para>

    <note>
      <title>Note</title>
      <para>
        Window sizes for opcodes other than deltapx are: deltap, deltapn: 1, deltapi: 2 (linear), deltap3: 4 (cubic)
      </para>
    </note>
  </refsect1>

  <refsect1>
    <title>Examples</title>
    <para>
      <informalexample>
        <programlisting>
a1      phasor 300.0
a1      =  a1 - 0.5
a_      delayr 1.0
adel    phasor 4.0
adel    =  sin (2.0 * 3.14159265 * adel) * 0.01 + 0.2
        deltapxw a1, adel, 32
adel    phasor 2.0
adel    =  sin (2.0 * 3.14159265 * adel) * 0.01 + 0.2
        deltapxw a1, adel, 32
adel    =  0.3
a2      deltapx adel, 32
a1      =  0
        delayw a1
 
        out a2 * 20000.0
        </programlisting>
      </informalexample>
    </para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <link linkend="deltapx"><citetitle>deltapx</citetitle></link>
    </para>
  </refsect1>

  <refsect1>
    <title>Credits</title>
    <para>
      <simplelist>
        <member>Author: &nameistvan;</member>
        <member>August 2001</member>
      </simplelist>
    </para>

    <para>New in version 4.13</para>
  </refsect1>
</refentry>
