summaryrefslogtreecommitdiff
path: root/opcodes/minabsaccum.xml
blob: 64d6ad2bd396a1f26ddad706ebd893a0715ad867 (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
<refentry id="minabsaccum">
<indexterm id="IndexMinabsaccum"><primary>minabsaccum</primary></indexterm>
  <refentryinfo><title>Signal Modifiers:Comparators and Accumulators</title></refentryinfo>
  <refmeta>
    <refentrytitle>minabsaccum</refentrytitle>
  </refmeta>



  <refnamediv>
    <refname>minabsaccum</refname>
    <refpurpose>
      Accumulates the minimum of the absolute values of audio signals.
          </refpurpose>
  </refnamediv>

  <refsect1>
    <title>Description</title>
    <para>
      <emphasis>minabsaccum</emphasis> compares two audio-rate variables and stores the minimum of their absolute values into the first.
    </para>
  </refsect1>

  <refsect1>
    <title>Syntax</title>
    <synopsis><command>minabsaccum</command> aAccumulator, aInput</synopsis>
  </refsect1>

  <refsect1>
    <title>Performance</title>
    <para>
      <emphasis>aAccumulator</emphasis> -- audio variable to store the minimum value
    </para>

    <para>
      <emphasis>aInput</emphasis> -- signal that aAccumulator is compared to
    </para>

    <para>
      The <emphasis>minabsaccum</emphasis> opcode is designed to accumulate the minimum value from among many audio signals that may be in different note instances, different channels, or otherwise cannot all be compared at once using the <emphasis>minabs</emphasis> opcode.  <emphasis>minabsaccum</emphasis> is identical to <emphasis>minaccum</emphasis> except that it takes the absolute value of aInput before the comparison.  Its semantics are similar to <emphasis>vincr</emphasis> since <emphasis>aAccumulator</emphasis> is used as both an input and an output variable, except that <emphasis>minabsaccum</emphasis> keeps the minimum absolute value instead of adding the signals together.  <emphasis>minabsaccum</emphasis> performs the following operation on each pair of samples:
    </para>

    <para>
      <literallayout>
            if  (abs(aInput) &lt; aAccumulator)  aAccumulator = abs(aInput)
      </literallayout>
    </para>

    <para>
      <emphasis>aAccumulator</emphasis> will usually be a global audio variable.  At the end of any given computation cycle (k-period), after its value is read and used in some way, the accumulator variable should usually be reset to some large enough positive value that will always be greater than the input signals to which it is compared.
    </para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <link linkend="maxabsaccum"><citetitle>maxabsaccum</citetitle></link>,
      <link linkend="maxaccum"><citetitle>maxaccum</citetitle></link>,
      <link linkend="minaccum"><citetitle>minaccum</citetitle></link>,
      <link linkend="max"><citetitle>max</citetitle></link>,
      <link linkend="min"><citetitle>min</citetitle></link>,
      <link linkend="maxabs"><citetitle>maxabs</citetitle></link>,
      <link linkend="minabs"><citetitle>minabs</citetitle></link>,
      <link linkend="vincr"><citetitle>vincr</citetitle></link>
    </para>
  </refsect1>

  <refsect1>
    <title>Credits</title>
    <para>
      <simplelist>
        <member>Author: &nameanthony;</member>
        <member>March 2006</member>
      </simplelist>
    </para>

    <para>New in Csound version 5.01</para>
  </refsect1>
</refentry>