summaryrefslogtreecommitdiff
path: root/opcodes/pvstanal.xml
blob: 8da2030f2e53dad44dd43c7dd3ed47b4a29b15ce (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
<refentry id="pvstanal">
<indexterm id="IndexPvstanal"><primary>pvstanal</primary></indexterm>
  <refentryinfo><title>Spectral processing: pvstanal</title></refentryinfo>
  <refmeta>
    <refentrytitle>pvstanal</refentrytitle>
  </refmeta>



  <refnamediv>
    <refname>pvstanal</refname>
    <refpurpose>
Phase vocoder analysis processing with onset detection/processing.
          </refpurpose>
  </refnamediv>
  
  <refsect1>
    <title>Description</title>
    <para>
<emphasis>pvstanal</emphasis> implements phase vocoder analysis by reading function tables
containing sampled-sound sources, with <link linkend="GEN01"><citetitle>GEN01</citetitle></link>, and
<emphasis>pvstanal</emphasis> will accept deferred allocation tables.
  </para>
  <para>
This opcode allows for time and frequency-independent scaling. Time is advanced internally, but controlled by a tempo scaling parameter; when an onset is detected, timescaling is momentarily stopped to avoid smearing of attacks. The quality of the effect is generally improved with phase locking switched on. 
  </para>
  <para>
<emphasis>pvstanal</emphasis> will also scale pitch, independently of frequency, using a transposition factor (k-rate).
  </para>
  </refsect1>

  <refsect1>
    <title>Syntax</title>
    <synopsis>asig <command>pvstanal</command> ktimescal,kamp,kpitch,ktab,[kdetect, kwrap, ioffset,ifftsize, ihop, ithresh]
      </synopsis>
  </refsect1>

  <refsect1>
    <title>Initialization</title>
      <para>
      <emphasis>ifftsize</emphasis> -- FFT size (power-of-two), defaults to 2048.
    </para>
	      <para>
      <emphasis>ihop</emphasis> -- hopsize, defaults to 512
    </para>
<para>
      <emphasis>ioffset</emphasis> -- startup read offset into table, in secs.
    </para>

		      <para>
      <emphasis>idbthresh</emphasis> -- threshold based on dB power spectrum ratio between two successive windows. A detected ratio above it will cancel timescaling momentarily, to avoid smearing (defaults to 1)
    </para>
	
  </refsect1>
  
  <refsect1>
    <title>Performance</title>
  <para>
      <emphasis>ktimescal</emphasis> -- timescaling ratio, &lt; 1 stretch, > 1 contract.
    </para>
    <para>
      <emphasis>kamp</emphasis> -- amplitude scaling
    </para>
    <para>
      <emphasis>kpitch</emphasis> -- grain pitch scaling (1=normal pitch, &lt; 1 lower, > 1 higher; negative, backwards)
    </para>

    <para>
      <emphasis>kdetect</emphasis> -- 0 or 1, to switch onset detection/processing
    </para>
    <para>
      <emphasis>ktab</emphasis> -- source signal function table. Deferred-allocation tables (see
      <link linkend="GEN01"><citetitle>GEN01</citetitle></link>) are accepted, but the opcode
      expects a mono source. Tables can be switched at k-rate.
    </para>
 <para>
      <emphasis>kwrap</emphasis> -- 0 or 1, to switch on/off table wrap-around read (default to 1)
    </para>

  </refsect1>
  <refsect1>
    <title>Examples</title>
    <para>
      <example>
        <title>Example</title>
        <programlisting>
		
idur = p3
ilock = p4
itab = 1
ipitch = 1
iamp = 0.8
ktime linseg 0.3, p3/2, 0.8, p3/2, 0.3

fs1 pvstanal ktime,iamp,ipitch,itab
a1 pvsynth fs1
   out a1
    

   </programlisting>
      </example>

    </para>
    

  </refsect1>



  <refsect1>
    <title>Credits</title>
    <para>
      <simplelist>
        <member>Author: &namevictor;</member>
        <member>February 2010</member>
      </simplelist>
    </para>

    <para>New plugin in version 5.13</para>
    <para>February 2005.</para>
  </refsect1>
</refentry>