Release 4.2.1 tarball

This commit is contained in:
Gary Scavone
2013-09-29 23:40:35 +02:00
committed by Stephen Sinclair
parent 11cf5faa0a
commit 21b93795e7
1041 changed files with 23984 additions and 16348 deletions

View File

@@ -8,8 +8,8 @@
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &nbsp; <img src="mcgill.gif"><P>
<a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="information.html">Information</a> &nbsp; <a class="qindex" href="classes.html">Classes</a> &nbsp; <a class="qindex" href="download.html">Download</a> &nbsp; <a class="qindex" href="usage.html">Usage</a> &nbsp; <a class="qindex" href="maillist.html">Mail List</a> &nbsp; <a class="qindex" href="system.html">Requirements</a> &nbsp; <a class="qindex" href="links.html">Links</a> &nbsp; <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>TwoPole Class Reference</h1><code>#include &lt;<a class="el" href="TwoPole_8h-source.html">TwoPole.h</a>&gt;</code>
<!-- Generated by Doxygen 1.4.4 -->
<h1>TwoPole Class Reference</h1><!-- doxytag: class="TwoPole" --><!-- doxytag: inherits="Filter" --><code>#include &lt;<a class="el" href="TwoPole_8h-source.html">TwoPole.h</a>&gt;</code>
<p>
<p>Inheritance diagram for TwoPole:
<p><center><img src="classTwoPole.png" usemap="#TwoPole_map" border="0" alt=""></center>
@@ -21,98 +21,91 @@
STK two-pole filter class.
<p>
This protected <a class="el" href="classFilter.html">Filter</a> subclass implements a two-pole digital filter. A method is provided for creating a resonance in the frequency response while maintaining a nearly constant filter gain.<p>
by Perry R. Cook and Gary P. Scavone, 1995 - 2004.
by Perry R. Cook and Gary P. Scavone, 1995 - 2005.
<p>
<p>
Definition at line <a class="el" href="TwoPole_8h-source.html#l00020">20</a> of file <a class="el" href="TwoPole_8h-source.html">TwoPole.h</a>.<table border=0 cellpadding=0 cellspacing=0>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a0" doxytag="TwoPole::TwoPole" ></a>
&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classTwoPole.html#a0">TwoPole</a> ()</td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0"></a><!-- doxytag: member="TwoPole::TwoPole" ref="a0" args="()" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTwoPole.html#a0">TwoPole</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor creates a second-order pass-through filter. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a1" doxytag="TwoPole::~TwoPole" ></a>
&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classTwoPole.html#a1">~TwoPole</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor creates a second-order pass-through filter. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a1"></a><!-- doxytag: member="TwoPole::~TwoPole" ref="a1" args="()" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTwoPole.html#a1">~TwoPole</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class destructor. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a2" doxytag="TwoPole::clear" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classTwoPole.html#a2">clear</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class destructor. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a2"></a><!-- doxytag: member="TwoPole::clear" ref="a2" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTwoPole.html#a2">clear</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears the internal states of the filter. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a3" doxytag="TwoPole::setB0" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classTwoPole.html#a3">setB0</a> (StkFloat b0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears the internal states of the filter. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a3"></a><!-- doxytag: member="TwoPole::setB0" ref="a3" args="(StkFloat b0)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTwoPole.html#a3">setB0</a> (StkFloat b0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the b[0] coefficient value. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a4" doxytag="TwoPole::setA1" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classTwoPole.html#a4">setA1</a> (StkFloat a1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the b[0] coefficient value. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a4"></a><!-- doxytag: member="TwoPole::setA1" ref="a4" args="(StkFloat a1)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTwoPole.html#a4">setA1</a> (StkFloat a1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the a[1] coefficient value. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a5" doxytag="TwoPole::setA2" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classTwoPole.html#a5">setA2</a> (StkFloat a2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the a[1] coefficient value. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a5"></a><!-- doxytag: member="TwoPole::setA2" ref="a5" args="(StkFloat a2)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTwoPole.html#a5">setA2</a> (StkFloat a2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the a[2] coefficient value. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classTwoPole.html#a6">setResonance</a> (StkFloat frequency, StkFloat radius, bool normalize=false)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the a[2] coefficient value. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTwoPole.html#a6">setResonance</a> (StkFloat frequency, StkFloat radius, bool normalize=false)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the filter coefficients for a resonance at <em>frequency</em> (in Hz). </em> <a href="#a6"></a><em><br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classTwoPole.html#a7">setGain</a> (StkFloat gain)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the filter coefficients for a resonance at <em>frequency</em> (in Hz). <a href="#a6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTwoPole.html#a7">setGain</a> (StkFloat gain)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the filter gain. </em> <a href="#a7"></a><em><br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a8" doxytag="TwoPole::getGain" ></a>
StkFloat&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classTwoPole.html#a8">getGain</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the filter gain. <a href="#a7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a8"></a><!-- doxytag: member="TwoPole::getGain" ref="a8" args="(void) const " -->
StkFloat&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTwoPole.html#a8">getGain</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the current filter gain. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a9" doxytag="TwoPole::lastOut" ></a>
StkFloat&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classTwoPole.html#a9">lastOut</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the current filter gain. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a9"></a><!-- doxytag: member="TwoPole::lastOut" ref="a9" args="(void) const " -->
StkFloat&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTwoPole.html#a9">lastOut</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the last computed output value. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a10" doxytag="TwoPole::tick" ></a>
StkFloat&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classTwoPole.html#a10">tick</a> (StkFloat sample)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the last computed output value. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a10"></a><!-- doxytag: member="TwoPole::tick" ref="a10" args="(StkFloat sample)" -->
StkFloat&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTwoPole.html#a10">tick</a> (StkFloat sample)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Input one sample to the filter and return one output. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a11" doxytag="TwoPole::tick" ></a>
StkFloat *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classTwoPole.html#a11">tick</a> (StkFloat *vector, unsigned int vectorSize)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Input one sample to the filter and return one output. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classStkFrames.html">StkFrames</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTwoPole.html#a11">tick</a> (<a class="el" href="classStkFrames.html">StkFrames</a> &amp;frames, unsigned int channel=0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Input <em>vectorSize</em> samples to the filter and return an equal number of outputs in <em>vector</em>. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classStkFrames.html">StkFrames</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classTwoPole.html#a12">tick</a> (<a class="el" href="classStkFrames.html">StkFrames</a> &amp;frames, unsigned int channel=1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Take a channel of the <a class="el" href="classStkFrames.html">StkFrames</a> object as inputs to the filter and replace with corresponding outputs. </em> <a href="#a12"></a><em><br><br></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Take a channel of the <a class="el" href="classStkFrames.html">StkFrames</a> object as inputs to the filter and replace with corresponding outputs. <a href="#a11"></a><br></td></tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a6" doxytag="TwoPole::setResonance" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<a class="anchor" name="a6"></a><!-- doxytag: member="TwoPole::setResonance" ref="a6" args="(StkFloat frequency, StkFloat radius, bool normalize=false)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void TwoPole::setResonance </td>
<td class="md" nowrap valign="top">void TwoPole::setResonance </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">StkFloat&nbsp;</td>
<td class="mdname" nowrap> <em>frequency</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>StkFloat&nbsp;</td>
<td class="mdname" nowrap> <em>radius</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>bool&nbsp;</td>
<td class="mdname" nowrap> <em>normalize</em> = false</td>
<td class="mdname" nowrap> <em>normalize</em> = <code>false</code></td>
</tr>
<tr>
<td></td>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
@@ -122,29 +115,28 @@ StkFloat *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="
<p>
Sets the filter coefficients for a resonance at <em>frequency</em> (in Hz).
<p>
This method determines the filter coefficients corresponding to two complex-conjugate poles with the given <em>frequency</em> (in Hz) and <em>radius</em> from the z-plane origin. If <em>normalize</em> is true, the coefficients are then normalized to produce unity gain at <em>frequency</em> (the actual maximum filter gain tends to be slightly greater than unity when <em>radius</em> is not close to one). The resulting filter frequency response has a resonance at the given <em>frequency</em>. The closer the poles are to the unit-circle (<em>radius</em> close to one), the narrower the resulting resonance width. An unstable filter will result for <em>radius</em> &gt;= 1.0. For a better resonance filter, use a <a class="el" href="classBiQuad.html">BiQuad</a> filter. <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classBiQuad.html">BiQuad</a> filter class </dd></dl>
This method determines the filter coefficients corresponding to two complex-conjugate poles with the given <em>frequency</em> (in Hz) and <em>radius</em> from the z-plane origin. If <em>normalize</em> is true, the coefficients are then normalized to produce unity gain at <em>frequency</em> (the actual maximum filter gain tends to be slightly greater than unity when <em>radius</em> is not close to one). The resulting filter frequency response has a resonance at the given <em>frequency</em>. The closer the poles are to the unit-circle (<em>radius</em> close to one), the narrower the resulting resonance width. An unstable filter will result for <em>radius</em> &gt;= 1.0. For a better resonance filter, use a <a class="el" href="classBiQuad.html">BiQuad</a> filter.<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classBiQuad.html">BiQuad</a> filter class</dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="a7" doxytag="TwoPole::setGain" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<a class="anchor" name="a7"></a><!-- doxytag: member="TwoPole::setGain" ref="a7" args="(StkFloat gain)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void TwoPole::setGain </td>
<td class="md" nowrap valign="top">void TwoPole::setGain </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">StkFloat&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>gain</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
@@ -154,39 +146,38 @@ This method determines the filter coefficients corresponding to two complex-conj
<p>
Set the filter gain.
<p>
The gain is applied at the filter input and does not affect the coefficient values. The default gain value is 1.0.
The gain is applied at the filter input and does not affect the coefficient values. The default gain value is 1.0.
<p>
Reimplemented from <a class="el" href="classFilter.html#a7">Filter</a>. </td>
</tr>
</table>
<a class="anchor" name="a12" doxytag="TwoPole::tick" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<a class="anchor" name="a11"></a><!-- doxytag: member="TwoPole::tick" ref="a11" args="(StkFrames &amp;frames, unsigned int channel=0)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="classStkFrames.html">StkFrames</a>&amp; TwoPole::tick </td>
<td class="md" nowrap valign="top"><a class="el" href="classStkFrames.html">StkFrames</a>&amp; TwoPole::tick </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classStkFrames.html">StkFrames</a> &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>frames</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>unsigned int&nbsp;</td>
<td class="mdname" nowrap> <em>channel</em> = 1</td>
<td class="mdname" nowrap> <em>channel</em> = <code>0</code></td>
</tr>
<tr>
<td></td>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
@@ -196,9 +187,9 @@ Reimplemented from <a class="el" href="classFilter.html#a7">Filter</a>. </td>
<p>
Take a channel of the <a class="el" href="classStkFrames.html">StkFrames</a> object as inputs to the filter and replace with corresponding outputs.
<p>
The <code>channel</code> argument should be one or greater (the first channel is specified by 1). An <a class="el" href="classStkError.html">StkError</a> will be thrown if the <code>channel</code> argument is zero or it is greater than the number of channels in the <a class="el" href="classStkFrames.html">StkFrames</a> object.
The <code>channel</code> argument should be zero or greater (the first channel is specified by 0). An <a class="el" href="classStkError.html">StkError</a> will be thrown if the <code>channel</code> argument is equal to or greater than the number of channels in the <a class="el" href="classStkFrames.html">StkFrames</a> object.
<p>
Reimplemented from <a class="el" href="classFilter.html#a12">Filter</a>. </td>
Reimplemented from <a class="el" href="classFilter.html#a11">Filter</a>. </td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
@@ -207,7 +198,7 @@ Reimplemented from <a class="el" href="classFilter.html#a12">Filter</a>. </td
<table>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
<tr><td>&copy;1995-2005 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>