<!-- Converted to DocBook/SGML by Kevin Conder -->
<refentry id="vibrato">
  <refmeta>
    <refentrytitle>vibrato</refentrytitle>
  </refmeta>

  <refnamediv>
    <refname>vibrato</refname>
    <refpurpose>
      Generates a natural-sounding user-controllable vibrato.
      <indexterm id="IndexVibrato"><primary>vibrato</primary></indexterm>
    </refpurpose>
  </refnamediv>
  
  <refsect1>
    <title>Description</title>
    <para>
      Generates a natural-sounding user-controllable vibrato.
    </para>
  </refsect1>

  <refsect1>
    <title>Syntax</title>
    <synopsis>kout <command>vibrato</command> kAverageAmp, kAverageFreq, kRandAmountAmp, kRandAmountFreq, kAmpMinRate, kAmpMaxRate, kcpsMinRate, kcpsMaxRate, ifn [, iphs]</synopsis>
  </refsect1>

  <refsect1>
    <title>Initialization</title>
    <para>
      <emphasis>ifn</emphasis> -- Number of vibrato table. It normally contains a sine or a triangle wave.
    </para>

    <para>
      <emphasis>iphs</emphasis> -- (optional) Initial phase of table, expressed as a fraction of a cycle (0 to 1). A negative value will cause phase initialization to be skipped. The default value is 0.
    </para>
  </refsect1>

  <refsect1>
    <title>Performance</title>
    <para>
      <emphasis>kAverageAmp</emphasis> -- Average amplitude value of vibrato
    </para>

    <para>
      <emphasis>kAverageFreq</emphasis> -- Average frequency value of vibrato (in cps)
    </para>

    <para>
      <emphasis>kRandAmountAmp</emphasis> -- Amount of random amplitude deviation
    </para>

    <para>
      <emphasis>kRandAmountFreq</emphasis> -- Amount of random frequency deviation
    </para>

    <para>
      <emphasis>kAmpMinRate</emphasis> -- Minimum frequency of random amplitude deviation segments (in cps)
    </para>

    <para>
      <emphasis>kAmpMaxRate</emphasis> -- Maximum frequency of random amplitude deviation segments (in cps)
    </para>

    <para>
      <emphasis>kcpsMinRate</emphasis> -- Minimum frequency of random frequency deviation segments (in cps)
    </para>

    <para>
      <emphasis>kcpsMaxRate</emphasis> -- Maximum frequency of random frequency deviation segments (in cps)
    </para>

    <para>
      <emphasis>vibrato</emphasis> outputs a natural-sounding user-controllable vibrato. The concept is to randomly vary both frequency and amplitude of the oscillator generating the vibrato, in order to simulate the irregularities of a real vibrato. 
    </para>

    <para>
      In order to have a total control of these random variations, several input arguments are present. Random variations are obtained by two separated segmented lines, the first controlling amplitude deviations, the second the frequency deviations. Average duration of each segment of each line can be shortened or enlarged by the arguments kAmpMinRate, kAmpMaxRate, kcpsMinRate, kcpsMaxRate, and the deviation from the average amplitude and frequency values can be independently adjusted by means of kRandAmountAmp and kRandAmountFreq.
    </para>
  </refsect1>

  <refsect1>
    <title>Examples</title>
    <para>
      Here is an example of the vibrato opcode. It uses the files <ulink url="examples/vibrato.orc"><citetitle>vibrato.orc</citetitle></ulink> and <ulink url="examples/vibrato.sco"><citetitle>vibrato.sco</citetitle></ulink>.

      <example>
        <title>Example of the vibrato opcode.</title>

        <programlisting>
<inlinemediaobject>
            <imageobject>
              <imagedata fileref="examples/vibrato.orc" format="linespecific">
            </imageobject>
          </inlinemediaobject>
        </programlisting>

        <programlisting>
<inlinemediaobject>
            <imageobject>
              <imagedata fileref="examples/vibrato.sco" format="linespecific">
            </imageobject>
          </inlinemediaobject>
        </programlisting>
      </example>
    </para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <link linkend="jitter"><citetitle>jitter</citetitle></link>, 
      <link linkend="jitter2"><citetitle>jitter2</citetitle></link>, 
      <link linkend="vibr"><citetitle>vibr</citetitle></link>
    </para>
  </refsect1>

  <refsect1>
    <title>Credits</title>
    <para>Author: &namegabriel;</para>
    <para>Example written by &namekevin;.</para>
    <para>New in Version 4.15</para>
  </refsect1>
</refentry>
