summaryrefslogtreecommitdiff
path: root/opcodes/vdelay3.xml
blob: d967811707494a46f0032fdbb8c224db4a00fcc9 (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
<refentry id="vdelay3">
<indexterm id="IndexVdelay3"><primary>vdelay3</primary></indexterm>
  <refentryinfo><title>Signal Modifiers:Delay</title></refentryinfo>
  <refmeta>
    <refentrytitle>vdelay3</refentrytitle>
  </refmeta>


 
  <refnamediv>
    <refname>vdelay3</refname>
    <refpurpose>
      An variable time delay with cubic interpolation.
          </refpurpose>
  </refnamediv>
 
  <refsect1>
    <title>Description</title>
    <para>
      <emphasis>vdelay3</emphasis> is experimental. It is the same as <link linkend="vdelay"><citetitle>vdelay</citetitle></link> except that it uses cubic interpolation. (New in Version 3.50.)
    </para>
  </refsect1>
 
  <refsect1>
    <title>Syntax</title>
    <synopsis>ares <command>vdelay3</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> (optional) -- Skip initialization if present and non-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="vdelay"><citetitle>vdelay</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>