summaryrefslogtreecommitdiff
path: root/opcodes/specscal.xml
blob: c99f67d0c7afe66b19a17dd51af083c8a43174a2 (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
<refentry id="specscal">
<indexterm id="IndexSpecscal"><primary>specscal</primary></indexterm>
  <refentryinfo><title>Spectral Processing:Non-Standard</title></refentryinfo>
  <refmeta>
    <refentrytitle>specscal</refentrytitle>
  </refmeta>

  <refnamediv>
    <refname>specscal</refname>
    <refpurpose>
      Scales an input spectral datablock with spectral envelopes.
    </refpurpose>
  </refnamediv>
 
  <refsect1>
    <title>Description</title>
    <para>
      Scales an input spectral datablock with spectral envelopes.
    </para>
  </refsect1>
 
  <refsect1>
    <title>Syntax</title>
    <synopsis>wsig <command>specscal</command> wsigin, ifscale, ifthresh</synopsis>
  </refsect1>
 
  <refsect1>
    <title>Initialization</title>
    <para>
      <emphasis>ifscale</emphasis> -- scale function table. A function table containing values by which a value's magnitude is rescaled.
    </para>

    <para>
      <emphasis>ifthresh</emphasis> -- threshold function table. If <emphasis>ifthresh</emphasis> is non-zero, each magnitude is reduced by its corresponding table-value (to not less than zero)
    </para>
  </refsect1>
 
  <refsect1>
    <title>Performance</title>
    <para>
      <emphasis>wsig</emphasis> -- the output spectrum
    </para>

    <para>
      <emphasis>wsigin</emphasis> -- the input spectra
    </para>

    <para>
      Scales an input spectral datablock with spectral envelopes. Function tables <emphasis>ifthresh</emphasis> and <emphasis>ifscale</emphasis> are initially sampled across the (logarithmic) frequency space of the input spectrum; then each time a new input spectrum is sensed the sampled values are used to scale each of its magnitude channels as follows: if <emphasis>ifthresh</emphasis> is non-zero, each magnitude is reduced by its corresponding table-value (to not less than zero); then each magnitude is rescaled by the corresponding <emphasis>ifscale</emphasis> value, and the resulting spectrum written to <emphasis>wsig</emphasis>.
    </para>
  </refsect1>
 
  <refsect1>
    <title>Examples</title>
    <para>
      <informalexample>
        <programlisting>
  wsig2    <emphasis role="opc">specdiff</emphasis>    wsig1         <emphasis role="comment">; sense onsets</emphasis>
  wsig3    <emphasis role="opc">specfilt</emphasis>    wsig2, 2      <emphasis role="comment">; absorb slowly</emphasis>
           <emphasis role="opc">specdisp</emphasis>    wsig2, 0.1    <emphasis role="comment">; &amp; display both spectra</emphasis>
           <emphasis role="opc">specdisp</emphasis>    wsig3, 0.1</programlisting>
      </informalexample>
    </para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <link linkend="specaddm"><citetitle>specaddm</citetitle></link>,
      <link linkend="specdiff"><citetitle>specdiff</citetitle></link>,
      <link linkend="specfilt"><citetitle>specfilt</citetitle></link>,
      <link linkend="spechist"><citetitle>spechist</citetitle></link>
    </para>
  </refsect1>
</refentry>