Sophie

Sophie

distrib > Mageia > 5 > x86_64 > media > core-release > by-pkgid > b707d9a4ee443103660a75ccb6e51334 > files > 1696

csound-doc-5.19.01-10.mga5.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>Features of CsoundAC</title>
    <link rel="stylesheet" type="text/css" href="csound.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.76.1" />
    <link rel="home" href="index.html" title="The Canonical Csound Reference Manual" />
    <link rel="up" href="RecentDevelopments.html" title="Recent Developments" />
    <link rel="prev" href="RecentDevelopments.html" title="Recent Developments" />
    <link rel="next" href="CommandTop.html" title="The Csound Command" />
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Features of CsoundAC</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="RecentDevelopments.html">Prev</a> </td>
          <th width="60%" align="center">Recent Developments</th>
          <td width="20%" align="right"> <a accesskey="n" href="CommandTop.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="section" title="Features of CsoundAC">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title" style="clear: both"><a id="featuresOfCsoundAC"></a>Features of CsoundAC</h2>
          </div>
        </div>
      </div>
      <p>CsoundAC is a Python extension module for writing music by programming in Python. CsoundAC is based
    on Michael Gogins' concept of music graphs, in which a score is represented as hierarchical tree of nodes,
    which can contain notes, score generators, score transforms, and other nodes.</p>
      <p>CsoundAC also provides a Python interface to the Csound API. This makes it very easy to use Csound to render
    CsoundAC compositions. Using Python's triple quotes, it is even possible to embed the formatted Csound orchestra
    code for a piece directly into the Python code for that piece, so that all programming for a composition can be 
    maintained in a single file.</p>
      <p>The coordinate system in CsoundAC is based on a Euclidean music space with dimensions {time, duration, event type, instrument number,
    pitch as MIDI key, loudness as MIDI velocity, phase, spatial X coordinate, spatial Y coordinate, spatial Z coordinate, pitch-class set, 1}. 
    A point in music space can be a note, an inflection of a note, or even a grain of sound.</p>
      <p>A music graph is a directed acyclical graph, or tree, of nodes in music space. These nodes are associated with local transformations
    of coordinate system. There are nodes for containing scores or fragments of scores, for generating scores, and for
    transforming scores. In addition, any node may contain child nodes that inherit the parent's coordinate system.</p>
      <p>Thus, it is possible to compose a musical score by containing or generating notes in lower level nodes, assembling them into a 
    score using higher level nodes, and finally rendering the score with Csound. The process is strictly analogous to the 
    construction of a 3-dimensional scene in computer graphics by generating primitive objects such as spheres, cones, and cubes and 
    moving them around in space to assemble a scene.</p>
      <p>Some of the node classes included in CsoundAC are:</p>
      <div class="itemizedlist">
        <ul class="itemizedlist" type="disc">
          <li class="listitem">ScoreNode: Simply contains a sequence of notes or other points in music space, perhaps imported from a MIDI file.</li>
          <li class="listitem">Rescale: Rescales child points to fit a desired range in time, duration, pitch, and/or other dimensions.</li>
          <li class="listitem">Cell: Repeats child points in a sequence at regular intervals; 
	the interval can be shorter or longer than the actual duration of the child points.</li>
          <li class="listitem">Hocket: Hockets points produced by child nodes.</li>
          <li class="listitem">Lindenmayer: Generates scores using O-L Lindenmayer systems.</li>
          <li class="listitem">StrangeAttractor: Generates scores from a variety of tunable chaotic dynamical systems.</li>
          <li class="listitem">MCRM: Generates scores using the Multiple Copy Reducing Machine algorithm.</li>
          <li class="listitem">ImageToScore: Generates scores by translating image files into points in music space.</li>
          <li class="listitem">Random: Randomizes child points on any dimension or dimensions of music space, using a variety of random variables.</li>
          <li class="listitem">VoiceleadingNode: Generates chord progressions and voice-leadings for child notes, using operations based on the mathematical music theory
	of Dmitri Tymoczko.</li>
        </ul>
      </div>
      <p>Finally, is is possible to derive a new Node class in Python from any existing Node, 
    in order to create new score generators and transforms as part of the composing process.</p>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="RecentDevelopments.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="RecentDevelopments.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="CommandTop.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">Recent Developments </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> The Csound Command</td>
        </tr>
      </table>
    </div>
  </body>
</html>