Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 6ed14ebfd686aa32f7956e552aa2e21d > files > 172

csound-manual-5.13.0-5.fc15.noarch.rpm

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>GEN08</title>
    <link rel="stylesheet" href="csound.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
    <link rel="home" href="index.html" title="The Canonical Csound Reference Manual" />
    <link rel="up" href="ScoregensTop.html" title="Score Statements and GEN Routines" />
    <link rel="prev" href="GEN07.html" title="GEN07" />
    <link rel="next" href="GEN09.html" title="GEN09" />
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">GEN08</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="GEN07.html">Prev</a> </td>
          <th width="60%" align="center">Score Statements and GEN Routines</th>
          <td width="20%" align="right"> <a accesskey="n" href="GEN09.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="refentry" title="GEN08">
      <a id="GEN08"></a>
      <div class="titlepage"></div>
      <a id="IndexGEN08" class="indexterm"></a>
      <div class="refnamediv">
        <h2>
          <span class="refentrytitle">GEN08</span>
        </h2>
        <p>GEN08 — 
      Generate a piecewise cubic spline curve.
    </p>
      </div>
      <div class="refsect1" title="Description">
        <a id="id3732144"></a>
        <h2>Description</h2>
        <p>
      This subroutine will generate a piecewise cubic spline curve, the smoothest possible through all specified points.
    </p>
      </div>
      <div class="refsect1" title="Syntax">
        <a id="id3732158"></a>
        <h2>Syntax</h2>
        <pre class="synopsis"><span class="command"><strong>f</strong></span> # time size 8 a n1 b n2 c n3 d ...</pre>
      </div>
      <div class="refsect1" title="Initialization">
        <a id="id3732374"></a>
        <h2>Initialization</h2>
        <p>
      <span class="emphasis"><em>size</em></span> -- number of points in the table. Must be a power of 2 or power-of-2 plus 1 (see <a class="link" href="f.html" title="f Statement (or Function Table Statement)"><em class="citetitle">f statement</em></a>).
    </p>
        <p>
      <span class="emphasis"><em>a, b, c,</em></span> etc. -- ordinate values of the function.
    </p>
        <p>
      <span class="emphasis"><em>n1, n2, n3 ... </em></span> -- length of each segment measured in stored values. May not be zero, but may be fractional. A particular segment may or may not actually store any values; stored values will be generated at integral points from the beginning of the function. The sum <span class="emphasis"><em>n1</em></span> + <span class="emphasis"><em>n2</em></span> + ... will normally equal <span class="emphasis"><em>size</em></span> for fully specified functions.
    </p>
        <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
          <table border="0" summary="Note: Note">
            <tr>
              <td rowspan="2" align="center" valign="top" width="25">
                <img alt="[Note]" src="images/note.png" />
              </td>
              <th align="left">Note</th>
            </tr>
            <tr>
              <td align="left" valign="top">
                <p>
        </p>
                <div class="itemizedlist">
                  <ul class="itemizedlist" type="disc">
                    <li class="listitem">
                      <p>
              <span class="emphasis"><em>GEN08</em></span> constructs a stored table from segments of cubic polynomial functions. Each segment runs between two specified points but depends as well on their neighbors on each side. Neighboring segments will agree in both value and slope at their common point. (The common slope is that of a parabola through that point and its two neighbors). The slope at the two ends of the function is constrained to be zero (flat).
            </p>
                    </li>
                    <li class="listitem">
                      <p>
              <span class="emphasis"><em>Hint:</em></span> to make a discontinuity in slope or value in the function as stored, arrange a series of points in the interval between two stored values; likewise for a non-zero boundary slope.
            </p>
                    </li>
                  </ul>
                </div>
                <p>
      </p>
              </td>
            </tr>
          </table>
        </div>
      </div>
      <div class="refsect1" title="Examples">
        <a id="id3733123"></a>
        <h2>Examples</h2>
        <p>
      Here is a simple example of the GEN08 routine. It uses the file <a class="ulink" href="examples/gen08.csd" target="_top"><em class="citetitle">gen08.csd</em></a>. It will create a curve with a smooth hump in the middle, going briefly negative outside the hump then flat at its ends. Here is its diagram:
      </p>
        <div class="mediaobject">
          <img src="images/gen08.png" alt="Diagram of the waveform generated by GEN08." />
          <div class="caption">
            <p>Diagram of the waveform generated by GEN08.</p>
          </div>
        </div>
        <p>

      </p>
        <div class="example">
          <a id="id3733172"></a>
          <p class="title">
            <b>Example 739. A simple example of the GEN08 routine.</b>
          </p>
          <div class="example-contents">
            <p>
          See the sections <a class="link" href="UsingRealTime.html" title="Real-Time Audio"><em class="citetitle">Real-time Audio</em></a> and <a class="link" href="CommandFlags.html" title="Csound command line"><em class="citetitle">Command Line Flags</em></a> for more information on using command line flags.</p>
            <pre class="programlisting">
<span class="csdtag">&lt;CsoundSynthesizer&gt;</span>
<span class="csdtag">&lt;CsOptions&gt;</span>
<span class="comment">; Select audio/midi flags here according to platform</span>
<span class="comment">; Audio out   Audio in</span>
-odac           -iadc    <span class="comment">;;;RT audio I/O</span>
<span class="comment">; For Non-realtime ouput leave only the line below:</span>
<span class="comment">; -o gen08.wav -W ;;; for file output any platform</span>
<span class="csdtag">&lt;/CsOptions&gt;</span>
<span class="csdtag">&lt;CsInstruments&gt;</span>

<span class="comment">; Initialize the global variables.</span>
<span class="ohdr">sr</span> <span class="op">=</span> 44100
<span class="ohdr">kr</span> <span class="op">=</span> 4410
<span class="ohdr">ksmps</span> <span class="op">=</span> 10
<span class="ohdr">nchnls</span> <span class="op">=</span> 1

<span class="comment">; Instrument #1.</span>
<span class="oblock">instr</span> 1
  <span class="comment">; Create an index over the length of our entire note.</span>
  kcps <span class="opc">init</span> 1<span class="op">/</span>p3
  kndx <span class="opc">phasor</span> kcps

  <span class="comment">; Read Table #1 with our index.</span>
  ifn <span class="op">=</span> 1
  ixmode <span class="op">=</span> 1
  kval <span class="opc">table</span> kndx, ifn, ixmode

  <span class="comment">; Generate a sine waveform, use our Table #1 value to </span>
  <span class="comment">; vary its frequency by 100 Hz from its base frequency.</span>
  ibasefreq <span class="op">=</span> 440
  kfreq <span class="op">=</span> kval <span class="op">*</span> 100
  a1 <span class="opc">oscil</span> 20000, ibasefreq <span class="op">+</span> kfreq, 2
  <span class="opc">out</span> a1
<span class="oblock">endin</span>


<span class="csdtag">&lt;/CsInstruments&gt;</span>
<span class="csdtag">&lt;CsScore&gt;</span>

<span class="comment">; Table #1: a curve with a smooth hump (using GEN08).</span>
<span class="stamnt">f</span> 1 0 65 8 0 16 0 16 1 16 0 16 0
<span class="comment">; Table #2, a sine wave.</span>
<span class="stamnt">f</span> 2 0 16384 10 1

<span class="comment">; Play Instrument #1 for two seconds.</span>
<span class="stamnt">i</span> 1 0 2
<span class="stamnt">e</span>


<span class="csdtag">&lt;/CsScore&gt;</span>
<span class="csdtag">&lt;/CsoundSynthesizer&gt;</span>
</pre>
          </div>
        </div>
        <p><br class="example-break" />
    </p>
      </div>
      <div class="refsect1" title="See Also">
        <a id="id3733210"></a>
        <h2>See Also</h2>
        <p>
       <a class="link" href="GEN05.html" title="GEN05"><em class="citetitle">GEN05</em></a>,
       <a class="link" href="GEN06.html" title="GEN06"><em class="citetitle">GEN06</em></a>, and
       <a class="link" href="GEN07.html" title="GEN07"><em class="citetitle">GEN07</em></a>
     </p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="GEN07.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="ScoregensTop.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="GEN09.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">GEN07 </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> GEN09</td>
        </tr>
      </table>
    </div>
  </body>
</html>