<!-- Converted to DocBook/SGML by Kevin Conder -->
<section id="OrchStatemnt">
  <title>Orchestra Statement Types</title>

  <para>
    An orchestra program in Csound is comprised of <link linkend="OrchHeader"><citetitle>orchestra header statements</citetitle></link> which set various global parameters, followed by a number of <link linkend="OrchIblock"><citetitle>instrument blocks</citetitle></link> representing different instrument types. An instrument block, in turn, is comprised of <emphasis>ordinary statements</emphasis> that set values, control the logical flow, or invoke the various signal processing subroutines that lead to audio output. 
  </para>

  <para>
An <emphasis>orchestra header statement</emphasis> operates once only, at orchestra setup time. It is most commonly an assignment of some value to a <emphasis>global reserved symbol</emphasis> , e.g. sr = 20000. All orchestra header statements belong to a pseudo instrument 0, an <emphasis>init</emphasis> pass of which is run prior to all other instruments at score time 0. Any <emphasis>ordinary statement</emphasis> can serve as an orchestra header statement, eg. gifreq = cpspch(8.09) provided it is an init-time only operation. 
  </para>

  <para>
An <emphasis>ordinary statement</emphasis> runs at either init time or performance time or both. Operations which produce a result formally run at the rate of that result (that is, at init time for i-rate results; at performance time for k- and a-rate results), with the sole exception of the <emphasis role="strong">init</emphasis> opcode. Most generators and modifiers, however, produce signals that depend not only on the instantaneous value of their arguments but also on some preserved internal state. These performance-time units therefore have an implicit init-time component to set up that state. The run time of an operation which produces no result is apparent in the opcode. 
  </para>

  <para>
Arguments are values that are sent to an operation. Most arguments will accept arithmetic expressions composed of constants, variables, reserved symbols, value converters, arithmetic operations, and conditional values.
  </para>
</section>
