summaryrefslogtreecommitdiff
path: root/opcodes/linenr.xml
blob: f62fca8e9638c351c05a7cf19c1bc92c92f29deb (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
<refentry id="linenr">
<indexterm id="IndexLinenr"><primary>linenr</primary></indexterm>
  <refentryinfo><title>Signal Generators:Envelope Generators</title></refentryinfo>
  <refmeta>
    <refentrytitle>linenr</refentrytitle>
  </refmeta>

  <refnamediv>
    <refname>linenr</refname>
    <refpurpose>
      The <emphasis>linen</emphasis> opcode extended with a final release segment.
    </refpurpose>
  </refnamediv>

  <refsect1>
    <title>Description</title>
    <para>
      <emphasis>linenr</emphasis> -- same as <link linkend="linen"><citetitle>linen</citetitle></link> except that the final segment is entered only on sensing a MIDI note release. The note is then extended by the decay time.
    </para>
  </refsect1>

  <refsect1>
    <title>Syntax</title>
    <synopsis>ares <command>linenr</command> xamp, irise, idec, iatdec</synopsis>

    <synopsis>kres <command>linenr</command> kamp, irise, idec, iatdec</synopsis>
 </refsect1>

  <refsect1>
    <title>Initialization</title>
    <para>
      <emphasis>irise</emphasis> -- rise time in seconds. A zero or negative value signifies no rise modification.
    </para>

    <para>
      <emphasis>idec</emphasis> -- decay time in seconds. Zero means no decay. An <emphasis>idec</emphasis> &gt; <emphasis>idur</emphasis> will cause a truncated decay.
    </para>

    <para>
      <emphasis>iatdec</emphasis> -- attenuation factor by which the closing steady state value is reduced exponentially over the decay period. This value must be positive and is normally of the order of .01. A large or excessively small value is apt to produce a cutoff which is audible. A zero or negative value is illegal.
    </para>
  </refsect1>

  <refsect1>
    <title>Performance</title>
    <para>
      <emphasis>kamp, xamp</emphasis> -- input amplitude signal.
    </para>

    <para>
      <emphasis>linenr</emphasis> is unique within Csound in containing a <emphasis>note-off sensor</emphasis> and <emphasis>release time extender</emphasis>. When it senses either a score event termination or a MIDI noteoff, it will immediately extend the performance time of the current instrument by <emphasis>idec</emphasis> seconds, then execute an exponential decay towards the factor <emphasis>iatdec</emphasis>. For two or more units in an instrument, extension is by the greatest <emphasis>idec</emphasis>.
    </para>

    <para>
      You can use other pre-made envelopes which start a release segment upon recieving a note off message, like <link linkend="linsegr"><citetitle>linsegr</citetitle></link> and <link linkend="expsegr"><citetitle>expsegr</citetitle></link>, or you can construct more complex envelopes using <link linkend="xtratim"><citetitle>xtratim</citetitle></link> and <link linkend="release"><citetitle>release</citetitle></link>. Note that you don't need to use <link linkend="xtratim"><citetitle>xtratim</citetitle></link> if you are using <emphasis>linenr</emphasis>, since the time is extended automatically.
    </para>

    <para>
      These <quote>r</quote> units can also be modified by MIDI noteoff velocities (see veloffs).
    </para>

  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <link linkend="linsegr"><citetitle>linsegr</citetitle></link>,
      <link linkend="expsegr"><citetitle>expsegr</citetitle></link>,
      <link linkend="envlpxr"><citetitle>envlpxr</citetitle></link>,
      <link linkend="mxadsr"><citetitle>mxadsr</citetitle></link>,
      <link linkend="madsr"><citetitle>madsr</citetitle></link>,
      <link linkend="envlpx"><citetitle>envlpx</citetitle></link>,
      <link linkend="linen"><citetitle>linen</citetitle></link>,
      <link linkend="xtratim"><citetitle>xtratim</citetitle></link>
    </para>
  </refsect1>
</refentry>