<?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>pvstencil</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="pvstanal.html" title="pvstanal" /> <link rel="next" href="pvsvoc.html" title="pvsvoc" /> </head> <body> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr> <th colspan="3" align="center">pvstencil</th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="pvstanal.html">Prev</a> </td> <th width="60%" align="center">Orchestra Opcodes and Operators</th> <td width="20%" align="right"> <a accesskey="n" href="pvsvoc.html">Next</a></td> </tr> </table> <hr /> </div> <div class="refentry" title="pvstencil"> <a id="pvstencil"></a> <div class="titlepage"></div> <a id="IndexPvstencil" class="indexterm"></a> <div class="refnamediv"> <h2> <span class="refentrytitle">pvstencil</span> </h2> <p>pvstencil — Transforms a pvoc stream according to a masking function table. </p> </div> <div class="refsect1" title="Description"> <a id="id3143267"></a> <h2>Description</h2> <p> Transforms a pvoc stream according to a masking function table; if the pvoc stream amplitude falls below the value of the function for a specific pvoc channel, it applies a gain to that channel. </p> <p> The pvoc stream amplitudes are compared to a masking table, if the fall below the table values, they are scaled by kgain. Prior to the operation, table values are scaled by klevel, which can be used as masking depth control. </p> <p> Tables have to be at least fftsize/2 in size; for most GENS it is important to use an extended-guard point (size power-of-two plus one), however this is not necessary with GEN43. </p> <p> One of the typical uses of pvstencil would be in noise reduction. A noise print can be analysed with pvanal into a PVOCEX file and loaded in a table with GEN43. This then can be used as the masking table for pvstencil and the amount of reduction would be controlled by kgain. Skipping post-normalisation will keep the original noise print average amplitudes. This would provide a good starting point for a successful noise reduction (so that klevel can be generally set to close to 1). </p> <p> Other possible transformation effects are possible, such as filtering and `inverse-masking'. </p> </div> <div class="refsect1" title="Syntax"> <a id="id3143508"></a> <h2>Syntax</h2> <pre class="synopsis">fsig <span class="command"><strong>pvstencil</strong></span> fsigin, kgain, klevel, iftable</pre> </div> <div class="refsect1" title="Performance"> <a id="id3143526"></a> <h2>Performance</h2> <p> <span class="emphasis"><em>fsig</em></span> -- output pv stream </p> <p> <span class="emphasis"><em>fsigin</em></span> -- input pv stream. </p> <p> <span class="emphasis"><em>kgain</em></span> -- `stencil' gain. </p> <p> <span class="emphasis"><em>klevel</em></span> -- masking function level (scales the ftable prior to `stenciling') . </p> <p> <span class="emphasis"><em>iftable</em></span> -- masking function table. </p> <div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;"> <table border="0" summary="Warning"> <tr> <td rowspan="2" align="center" valign="top" width="25"> <img alt="[Warning]" src="images/warning.png" /> </td> <th align="left">Warning</th> </tr> <tr> <td align="left" valign="top"> <p> It is unsafe to use the same f-variable for both input and output of pvs opcodes. Using the same one might lead to undefined behavior on some opcodes. Use a different one on the left and right sides of the opcode. </p> </td> </tr> </table> </div> </div> <div class="refsect1" title="Examples"> <a id="id3144247"></a> <h2>Examples</h2> <p> </p> <div class="example"> <a id="id3144254"></a> <p class="title"> <b>Example 496. Example</b> </p> <div class="example-contents"> <pre class="programlisting"> fsig pvsanal asig, 1024, 256, 1024, 1 fclean pvstencil fsig, 0, 1, 1 aclean pvsynth fclean </pre> </div> </div> <p><br class="example-break" /> </p> </div> <div class="refsect1" title="Credits"> <a id="id3144271"></a> <h2>Credits</h2> <p> </p> <table border="0" summary="Simple list" class="simplelist"> <tr> <td>Author: Victor Lazzarini</td> </tr> <tr> <td>November 2004 </td> </tr> </table> <p> </p> <p>New plugin in version 5</p> <p>Nivember 2004.</p> </div> </div> <div class="navfooter"> <hr /> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"><a accesskey="p" href="pvstanal.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="pvsvoc.html">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top">pvstanal </td> <td width="20%" align="center"> <a accesskey="h" href="index.html">Home</a> </td> <td width="40%" align="right" valign="top"> pvsvoc</td> </tr> </table> </div> </body> </html>