summaryrefslogtreecommitdiff
path: root/opcodes/deltapxw.xml
blob: 71ab235be03b39218f68336d924a9481c6b48017 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<refentry id="deltapxw">
<indexterm id="IndexDeltapxw"><primary>deltapxw</primary></indexterm>
  <refentryinfo><title>Signal Modifiers:Delay</title></refentryinfo>
  <refmeta>
    <refentrytitle>deltapxw</refentrytitle>
  </refmeta>



  <refnamediv>
    <refname>deltapxw</refname>
    <refpurpose>
      Mixes the input signal to a delay line.
          </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>