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 >= 1/kr Delay line length
adl1 >= (iws1/2)/sr Write before read
adl1 <= idlr - (1 + iws1/2)/sr (allows shorter delays)
adl2 >= 1/kr + (iws2/2)/sr Read time
adl2 <= idlr - (1 + iws2/2)/sr
adl2 >= adl1 + (iws1 + iws2) / (2*sr)
adl2 >= 1/kr + adl3 + (iws2 + iws3) / (2*sr)
adl3 >= (iws3/2)/sr Write after read
adl3 <= 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>
|