<!-- Converted to DocBook/SGML by Kevin Conder -->
<refentry id="locsend">
  <refmeta>
    <refentrytitle>locsend</refentrytitle>
  </refmeta>
 
  <refnamediv>
    <refname>locsend</refname>
    <refpurpose>
      Distributes the audio signals of a previous <emphasis>locsig</emphasis> opcode.
      <indexterm id="IndexLocsend"><primary>locsend</primary></indexterm>
    </refpurpose>
  </refnamediv>
 
  <refsect1>
    <title>Description</title>
    <para>
      <emphasis>locsend</emphasis> depends upon the existence of a previously defined <link linkend="locsig"><citetitle>locsig</citetitle></link>. The number of output signals must match the number in the previous <emphasis>locsig</emphasis>. The output signals from <emphasis>locsend</emphasis> are derived from the values given for distance and reverb in the <emphasis>locsig</emphasis> and are ready to be sent to local or global reverb units (see example below). The reverb amount and the balance between the 2 or 4 channels are calculated in the same way as described in the Dodge book (an essential text!).
    </para>
  </refsect1>
 
  <refsect1>
    <title>Syntax</title>
    <synopsis>a1, a2 <command>locsend</command></synopsis>

    <synopsis>a1, a2,  a3, a4 <command>locsend</command></synopsis>
  </refsect1>

  <refsect1>
    <title>Examples</title>
    <para>
      <informalexample>
        <programlisting>
  asig some audio signal
  kdegree            <emphasis>line</emphasis>    0, p3, 360
  kdistance          <emphasis>line</emphasis>    1, p3, 10
  a1, a2, a3, a4     <emphasis>locsig</emphasis>  asig, kdegree, kdistance, .1
  ar1, ar2, ar3, ar4 <emphasis>locsend</emphasis>
  ga1 = ga1+ar1
  ga2 = ga2+ar2
  ga3 = ga3+ar3
  ga4 = ga4+ar4
                     <emphasis>outq</emphasis>    a1, a2, a3, a4
<emphasis>endin</emphasis>

<emphasis>instr</emphasis> 99 ; reverb instrument
  a1                 <emphasis>reverb2</emphasis> ga1, 2.5, .5
  a2                 <emphasis>reverb2</emphasis> ga2, 2.5, .5
  a3                 <emphasis>reverb2</emphasis> ga3, 2.5, .5
  a4                 <emphasis>reverb2</emphasis> ga4, 2.5, .5
                     <emphasis>outq</emphasis>    a1, a2, a3, a4
  ga1=0
  ga2=0
  ga3=0
  ga4=0
        </programlisting>
      </informalexample>
    </para>

    <para>
      In the above example, the signal, <emphasis>asig</emphasis>, is sent around a complete circle once during the duration of a note while at the same time it becomes more and more <quote>distant</quote> from the listeners' location. <emphasis>locsig</emphasis> sends the appropriate amount of the signal internally to <emphasis>locsend</emphasis>. The outputs of the <emphasis>locsend</emphasis> are added to global accumulators in a common Csound style and the global signals are used as inputs to the reverb units in a separate instrument.
    </para>

    <para>
      <emphasis>locsig</emphasis> is useful for quad and stereo panning as well as fixed placed of sounds anywhere between two loudspeakers. Below is an example of the fixed placement of sounds in a stereo field.
    </para>

    <para>
      <informalexample>
        <programlisting>
<emphasis>instr</emphasis> 1
  a1, a2             <emphasis>locsig</emphasis>  asig, p4, p5, .1
  ar1, ar2           <emphasis>locsend</emphasis>
  ga1=ga1+ar1
  ga2=ga2+ar2
                     <emphasis>outs</emphasis> a1, a
<emphasis>endin
instr</emphasis> 99 
  ; reverb....
<emphasis>endin</emphasis>
        </programlisting>
      </informalexample>
    </para>

    <para>
      A few notes:
      <informalexample>
        <programlisting>
  ;place the sound in the left speaker and near:
  i1 0 1 0 1
  
  ;place the sound in the right speaker and far:
  i1 1 1 90 25
  
  ;place the sound equally between left and right and in the middle ground distance:
  i1 2 1 45 12
  e
        </programlisting>
      </informalexample>
    </para>

    <para>
      The next example shows a simple intuitive use of the distance value to simulate Doppler shift. The same value is used to scale the frequency as is used as the distance input to <emphasis>locsig</emphasis>.
      <informalexample>
        <programlisting>
  kdistance          <emphasis>line</emphasis>    1, p3, 10
  kfreq = (ifreq * 340) / (340 + kdistance)
  asig               <emphasis>oscili</emphasis>  iamp, kfreq, 1
  kdegree            <emphasis>line</emphasis>    0, p3, 360
  a1, a2, a3, a4     <emphasis>locsig</emphasis>  asig, kdegree, kdistance, .1
  ar1, ar2, ar3, ar4 <emphasis>locsend</emphasis>
        </programlisting>
      </informalexample>
    </para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <link linkend="locsig"><citetitle>locsig</citetitle></link>
    </para>
  </refsect1>
 
  <refsect1>
    <title>Credits</title>
    <para>
      <simplelist>
        <member>Author: Richard Karpen</member>
        <member>Seattle, WA USA</member>
        <member>1998</member>
      </simplelist>
    </para>

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