<!-- Converted to DocBook/SGML by Kevin Conder -->
<refentry id="vbap16move">
  <refmeta>
    <refentrytitle>vbap16move</refentrytitle>
  </refmeta>
 
  <refnamediv>
    <refname>vbap16move</refname>
    <refpurpose>
      Distribute an audio signal among 16 channels with moving virtual sources.
      <indexterm id="IndexVbap16move"><primary>vbap16move</primary></indexterm>
    </refpurpose>
  </refnamediv>
 
  <refsect1>
    <title>Description</title>
    <para>
      Distribute an audio signal among 16 channels with moving virtual sources.
    </para>
  </refsect1>
 
  <refsect1>
    <title>Syntax</title>
    <synopsis>ar1, ..., ar16 <command>vbap16move</command> asig, ispread, ifldnum, ifld1 [, ifld2] [...]</synopsis>
  </refsect1>
 
  <refsect1>
    <title>Initialization</title>
    <para>
      <emphasis>ispread</emphasis> -- spreading of the virtual source (range 0 - 100).  If value is zero, conventional amplitude panning is used. When <emphasis>ispread</emphasis> is increased, the number of loudspeakers used in panning increases. If value is 100, the sound is applied to all loudspeakers.
    </para>

    <para>
      <emphasis>ifldnum</emphasis> -- number of fields (absolute value must be 2 or larger). If <emphasis>ifldnum</emphasis> is positive, the virtual source movement is a polyline specified by given directions. Each transition is performed in an equal time interval. If <emphasis>ifldnum</emphasis> is negative, specified angular velocities are applied to the virtual source during specified relative time intervals (see below).
    </para>

    <para>
      <emphasis>ifld1, ifld2, ... </emphasis> -- azimuth angles or angular velocities, and relative durations of movement phases.
    </para>
  </refsect1>
 
  <refsect1>
    <title>Performance</title>
    <para>
      <emphasis>asig</emphasis> -- audio signal to be panned
    </para>

    <para>
      <emphasis>vbap16move</emphasis> allows the use of moving virtual sources. If <emphasis>ifldnum</emphasis> is positive, the fields represent directions of virtual sources and equal times, <emphasis>iazi1</emphasis>, [<emphasis>iele1</emphasis>,] <emphasis>iazi2</emphasis>, [<emphasis>iele2</emphasis>,], etc.  The position of the virtual source is interpolated between directions starting from the first direction and ending at the last. Each interval is interpolated in time that is fraction total_time / number_of_intervals of the duration of the sound event.
    </para>

    <para>
      If <emphasis>ifldnum</emphasis> is negative, the fields represent angular velocities and equal times. The first field is, however, the starting direction, <emphasis>iazi1</emphasis>, [<emphasis>iele1</emphasis>,] <emphasis>iazi_vel1</emphasis>, [<emphasis>iele_vel1</emphasis>,] <emphasis>iazi_vel2</emphasis>, [<emphasis>iele_vel2</emphasis>,] .... Each velocity is applied to the note that is fraction total_time / number_of_velocities of the duration of the sound event.  If the elevation of the virtual source becomes greater than 90 degrees or less than 0 degrees, the polarity of angular velocity is changed. Thus the elevational angular velocity produces a virtual source that moves up and down between 0 and 90 degrees.
    </para>
  </refsect1>
 
  <refsect1>
    <title>Examples</title>
    <para>
      <example>
        <title>2-D panning example with stationary virtual sources</title>
        <programlisting>
  <emphasis>sr</emphasis>      =          4100
  <emphasis>kr</emphasis>      =           441
  <emphasis>ksmps</emphasis>   =           100
  <emphasis>nchnls</emphasis>  =             4
  <emphasis>vbaplsinit</emphasis>         2, 6,  0, 45, 90, 135, 200, 245, 290, 315 

          <emphasis>instr</emphasis> 1	           
  asig    <emphasis>oscil</emphasis>      20000, 440, 1                    
  a1,a2,a3,a4,a5,a6,a7,a8   <emphasis>vbap8</emphasis>  asig, p4, 0, 20 ;p4 = azimuth
	
  ;render twice with alternate <emphasis>outq</emphasis> statements
  ;  to obtain two 4 channel .wav files:

          <emphasis>outq</emphasis>       a1,a2,a3,a4
  ;       <emphasis>outq</emphasis>       a5,a6,a7,a8
          <emphasis>endin</emphasis>
        </programlisting>
      </example>
    </para>
  </refsect1>
 
  <refsect1>
    <title>Reference</title>
    <para>
      Ville Pulkki: <quote>Virtual Sound Source Positioning Using Vector Base Amplitude Panning</quote> <emphasis>Journal of the Audio Engineering Society</emphasis>, 1997 June, Vol. 45/6, p. 456.
    </para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <link linkend="vbap16"><citetitle>vbap16</citetitle></link>, 
      <link linkend="vbap4"><citetitle>vbap4</citetitle></link>, 
      <link linkend="vbap4move"><citetitle>vbap4move</citetitle></link>, 
      <link linkend="vbap8"><citetitle>vbap8</citetitle></link>, 
      <link linkend="vbap8move"><citetitle>vbap8move</citetitle></link>, 
      <link linkend="vbaplsinit"><citetitle>vbaplsinit</citetitle></link>, 
      <link linkend="vbapz"><citetitle>vbapz</citetitle></link>, 
      <link linkend="vbapzmove"><citetitle>vbapzmove</citetitle></link>
    </para>
  </refsect1>
 
  <refsect1>
    <title>Credits</title>
    <para>
      <simplelist>
        <member>Author: Ville Pulkki</member>
        <member>Sibelius Academy Computer Music Studio</member>
        <member>Laboratory of Acoustics and Audio Signal Processing</member>
        <member>Helsinki University of Technology</member>
        <member>Helsinki, Finland</member>
        <member>May 2000</member>
      </simplelist>
    </para>

    <para>New in Csound Version 4.07</para>
  </refsect1>
</refentry>
