<?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>lorismorph</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="OpcodesTop.html" title="Orchestra Opcodes and Operators" /> <link rel="prev" href="lorisread.html" title="lorisread" /> <link rel="next" href="lorisplay.html" title="lorisplay" /> </head> <body> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr> <th colspan="3" align="center">lorismorph</th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="lorisread.html">Prev</a> </td> <th width="60%" align="center">Orchestra Opcodes and Operators</th> <td width="20%" align="right"> <a accesskey="n" href="lorisplay.html">Next</a></td> </tr> </table> <hr /> </div> <div class="refentry" title="lorismorph"> <a id="lorismorph"></a> <div class="titlepage"></div> <a id="IndexLorisMorph" class="indexterm"></a> <div class="refnamediv"> <h2> <span class="refentrytitle">lorismorph</span> </h2> <p>lorismorph — Morphs two stored sets of bandwidth-enhanced partials and stores a new set of partials representing the morphed sound. The morph is performed by linearly interpolating the parameter envelopes (frequency, amplitude, and bandwidth, or noisiness) of the bandwidth-enhanced partials according to control-rate frequency, amplitude, and bandwidth morphing functions. </p> </div> <div class="refsect1" title="Syntax"> <a id="id2995866"></a> <h2>Syntax</h2> <pre class="synopsis"><span class="command"><strong>lorismorph</strong></span> isrcidx, itgtidx, istoreidx, kfreqmorphenv, kampmorphenv, kbwmorphenv</pre> </div> <div class="refsect1" title="Description"> <a id="id2995884"></a> <h2>Description</h2> <p><span class="emphasis"><em>lorismorph</em></span> morphs two stored sets of bandwidth-enhanced partials and stores a new set of partials representing the morphed sound. The morph is performed by linearly interpolating the parameter envelopes (frequency, amplitude, and bandwidth, or noisiness) of the bandwidth-enhanced partials according to control-rate frequency, amplitude, and bandwidth morphing functions. </p> </div> <div class="refsect1" title="Initialization"> <a id="id2996236"></a> <h2>Initialization</h2> <p><span class="emphasis"><em>istoreidx, ireadidx, isrcidx, itgtidx</em></span> are labels that identify a stored set of bandwidth-enhanced partials. <span class="emphasis"><em>lorisread</em></span> imports partials from a SDIF file and stores them with the integer label istoreidx. <span class="emphasis"><em>lorismorph</em></span> morphs sets of partials labeled <span class="emphasis"><em>isrcidx</em></span> and <span class="emphasis"><em>itgtidx</em></span>, and stores the resulting partials with the integer label <span class="emphasis"><em>istoreidx</em></span>. <span class="emphasis"><em>lorisplay</em></span> renders the partials stored with the label <span class="emphasis"><em>ireadidx</em></span>. The labels are used only at initialization time, and may be reused without any cost or benefit in efficiency, and without introducing any interaction between instruments or instances.</p> </div> <div class="refsect1" title="Performance"> <a id="id2996705"></a> <h2>Performance</h2> <p><span class="emphasis"><em>lorismorph</em></span> generates a set of bandwidth-enhanced partials by morphing two stored sets of partials, the source and target partials, which may have been imported using <span class="emphasis"><em>lorisread</em></span>, or generated by another unit generator, including another instance of <span class="emphasis"><em>lorismorph</em></span>. The morph is performed by interpolating the parameters of corresponding (labeled) partials in the two source sounds. The sound morph is described by three control-rate morphing envelopes. <span class="emphasis"><em>kfreqmorphenv</em></span> describes the interpolation of partial frequency values in the two source sounds. When <span class="emphasis"><em>kfreqmorphenv</em></span> is 0, partial frequencies are obtained from the partials stored at <span class="emphasis"><em>isrcidx</em></span>. When <span class="emphasis"><em>kfreqmorphenv</em></span> is 1, partial frequencies are obtained from the partials at <span class="emphasis"><em>itgtidx</em></span>. When <span class="emphasis"><em>kfreqmorphenv</em></span> is between 0 and 1, the partial frequencies are interpolated between corresponding source and target partials. Interpolation of partial amplitudes and bandwidth (noisiness) coefficients are similarly described by <span class="emphasis"><em>kampmorphenv</em></span> and <span class="emphasis"><em>kbwmorphenv</em></span>.</p> </div> <div class="refsect1" title="Credits"> <a id="id2996769"></a> <h2>Credits</h2> <p>This implementation of the Loris unit generators was written by Kelly Fitz (<a class="ulink" href="mailto:loris@cerlsoundgroup.org" target="_top">loris@cerlsoundgroup.org</a>). It is patterned after a prototype implementation of the <span class="emphasis"><em>lorisplay</em></span> unit generator written by Corbin Champion, and based on the method of Bandwidth-Enhanced Additive Synthesis and on the sound morphing algorithms implemented in the Loris library for sound modeling and manipulation. The opcodes were further adapted as a plugin for Csound 5 by Michael gogins.</p> </div> </div> <div class="navfooter"> <hr /> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"><a accesskey="p" href="lorisread.html">Prev</a> </td> <td width="20%" align="center"> <a accesskey="u" href="OpcodesTop.html">Up</a> </td> <td width="40%" align="right"> <a accesskey="n" href="lorisplay.html">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top">lorisread </td> <td width="20%" align="center"> <a accesskey="h" href="index.html">Home</a> </td> <td width="40%" align="right" valign="top"> lorisplay</td> </tr> </table> </div> </body> </html>