Release 4.4.3 tarball

This commit is contained in:
Gary Scavone
2013-09-29 23:49:37 +02:00
committed by Stephen Sinclair
parent cfdfe7736a
commit f13d5bb3cd
632 changed files with 12236 additions and 19041 deletions

View File

@@ -53,7 +53,8 @@ void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>John Chowning's reverberator class. </p>
<p>This class takes a monophonic input signal and produces a stereo output signal. It is derived from the CLM <a class="el" href="classstk_1_1JCRev.html" title="John Chowning&#39;s reverberator class.">JCRev</a> function, which is based on the use of networks of simple allpass and comb delay filters. This class implements three series allpass units, followed by four parallel comb filters, and two decorrelation delay lines in parallel at the output.</p>
<p>by Perry R. Cook and Gary P. Scavone, 1995 - 2010. </p>
<p>Although not in the original JC reverberator, one-pole lowpass filters have been added inside the feedback comb filters.</p>
<p>by Perry R. Cook and Gary P. Scavone, 1995-2011. </p>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a599e46bcfbc2b4b9a30a30d67580412b"></a><!-- doxytag: member="stk::JCRev::lastOut" ref="a599e46bcfbc2b4b9a30a30d67580412b" args="(unsigned int channel=0)" -->
<div class="memitem">
@@ -74,6 +75,18 @@ void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<p>Return the specified channel value of the last computed stereo frame. </p>
<p>Use the <a class="el" href="classstk_1_1Effect.html#a3d7e2b8942bf7adcc71dfc6dccbb7aa0" title="Return an StkFrames reference to the last output sample frame.">lastFrame()</a> function to get both values of the last computed stereo frame. The <code>channel</code> argument must be 0 or 1 (the first channel is specified by 0). However, range checking is only performed if _STK_DEBUG_ is defined during compilation, in which case an out-of-range value will trigger an <a class="el" href="classstk_1_1StkError.html" title="STK error handling class.">StkError</a> exception. </p>
<p><div class="fragment"><pre class="fragment"><a name="l00101"></a>00101 {
<a name="l00102"></a>00102 <span class="preprocessor">#if defined(_STK_DEBUG_)</span>
<a name="l00103"></a>00103 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( channel &gt; 1 ) {
<a name="l00104"></a>00104 oStream_ &lt;&lt; <span class="stringliteral">&quot;JCRev::lastOut(): channel argument must be less than 2!&quot;</span>;
<a name="l00105"></a>00105 <a class="code" href="classstk_1_1Stk.html#a48ac73a0d8ca28445ba1a054e1f061ff" title="Static function for error reporting and handling using c-strings.">handleError</a>( StkError::FUNCTION_ARGUMENT );
<a name="l00106"></a>00106 }
<a name="l00107"></a>00107 <span class="preprocessor">#endif</span>
<a name="l00108"></a>00108 <span class="preprocessor"></span>
<a name="l00109"></a>00109 <span class="keywordflow">return</span> lastFrame_[channel];
<a name="l00110"></a>00110 }
</pre></div></p>
</div>
</div>
<a class="anchor" id="ad667b48a6dbd663f2d7c49e201325f00"></a><!-- doxytag: member="stk::JCRev::tick" ref="ad667b48a6dbd663f2d7c49e201325f00" args="(StkFloat input, unsigned int channel=0)" -->
@@ -104,6 +117,57 @@ void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<p>Input one sample to the effect and return the specified <code>channel</code> value of the computed stereo frame. </p>
<p>Use the <a class="el" href="classstk_1_1Effect.html#a3d7e2b8942bf7adcc71dfc6dccbb7aa0" title="Return an StkFrames reference to the last output sample frame.">lastFrame()</a> function to get both values of the computed stereo output frame. The <code>channel</code> argument must be 0 or 1 (the first channel is specified by 0). However, range checking is only performed if _STK_DEBUG_ is defined during compilation, in which case an out-of-range value will trigger an <a class="el" href="classstk_1_1StkError.html" title="STK error handling class.">StkError</a> exception. </p>
<p><div class="fragment"><pre class="fragment"><a name="l00113"></a>00113 {
<a name="l00114"></a>00114 <span class="preprocessor">#if defined(_STK_DEBUG_)</span>
<a name="l00115"></a>00115 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( channel &gt; 1 ) {
<a name="l00116"></a>00116 oStream_ &lt;&lt; <span class="stringliteral">&quot;JCRev::tick(): channel argument must be less than 2!&quot;</span>;
<a name="l00117"></a>00117 <a class="code" href="classstk_1_1Stk.html#a48ac73a0d8ca28445ba1a054e1f061ff" title="Static function for error reporting and handling using c-strings.">handleError</a>( StkError::FUNCTION_ARGUMENT );
<a name="l00118"></a>00118 }
<a name="l00119"></a>00119 <span class="preprocessor">#endif</span>
<a name="l00120"></a>00120 <span class="preprocessor"></span>
<a name="l00121"></a>00121 StkFloat temp, temp0, temp1, temp2, temp3, temp4, temp5, temp6;
<a name="l00122"></a>00122 StkFloat filtout;
<a name="l00123"></a>00123
<a name="l00124"></a>00124 temp = allpassDelays_[0].lastOut();
<a name="l00125"></a>00125 temp0 = allpassCoefficient_ * temp;
<a name="l00126"></a>00126 temp0 += input;
<a name="l00127"></a>00127 allpassDelays_[0].tick(temp0);
<a name="l00128"></a>00128 temp0 = -(allpassCoefficient_ * temp0) + temp;
<a name="l00129"></a>00129
<a name="l00130"></a>00130 temp = allpassDelays_[1].lastOut();
<a name="l00131"></a>00131 temp1 = allpassCoefficient_ * temp;
<a name="l00132"></a>00132 temp1 += temp0;
<a name="l00133"></a>00133 allpassDelays_[1].tick(temp1);
<a name="l00134"></a>00134 temp1 = -(allpassCoefficient_ * temp1) + temp;
<a name="l00135"></a>00135
<a name="l00136"></a>00136 temp = allpassDelays_[2].lastOut();
<a name="l00137"></a>00137 temp2 = allpassCoefficient_ * temp;
<a name="l00138"></a>00138 temp2 += temp1;
<a name="l00139"></a>00139 allpassDelays_[2].tick(temp2);
<a name="l00140"></a>00140 temp2 = -(allpassCoefficient_ * temp2) + temp;
<a name="l00141"></a>00141
<a name="l00142"></a>00142 temp3 = temp2 + ( combFilters_[0].tick( combCoefficient_[0] * combDelays_[0].<a class="code" href="classstk_1_1JCRev.html#a599e46bcfbc2b4b9a30a30d67580412b" title="Return the specified channel value of the last computed stereo frame.">lastOut</a>() ) );
<a name="l00143"></a>00143 temp4 = temp2 + ( combFilters_[1].tick( combCoefficient_[1] * combDelays_[1].<a class="code" href="classstk_1_1JCRev.html#a599e46bcfbc2b4b9a30a30d67580412b" title="Return the specified channel value of the last computed stereo frame.">lastOut</a>() ) );
<a name="l00144"></a>00144 temp5 = temp2 + ( combFilters_[2].tick( combCoefficient_[2] * combDelays_[2].<a class="code" href="classstk_1_1JCRev.html#a599e46bcfbc2b4b9a30a30d67580412b" title="Return the specified channel value of the last computed stereo frame.">lastOut</a>() ) );
<a name="l00145"></a>00145 temp6 = temp2 + ( combFilters_[3].tick( combCoefficient_[3] * combDelays_[3].<a class="code" href="classstk_1_1JCRev.html#a599e46bcfbc2b4b9a30a30d67580412b" title="Return the specified channel value of the last computed stereo frame.">lastOut</a>() ) );
<a name="l00146"></a>00146
<a name="l00147"></a>00147 combDelays_[0].tick(temp3);
<a name="l00148"></a>00148 combDelays_[1].tick(temp4);
<a name="l00149"></a>00149 combDelays_[2].tick(temp5);
<a name="l00150"></a>00150 combDelays_[3].tick(temp6);
<a name="l00151"></a>00151
<a name="l00152"></a>00152 filtout = temp3 + temp4 + temp5 + temp6;
<a name="l00153"></a>00153
<a name="l00154"></a>00154 lastFrame_[0] = effectMix_ * (outLeftDelay_.tick(filtout));
<a name="l00155"></a>00155 lastFrame_[1] = effectMix_ * (outRightDelay_.tick(filtout));
<a name="l00156"></a>00156 temp = (1.0 - effectMix_) * input;
<a name="l00157"></a>00157 lastFrame_[0] += temp;
<a name="l00158"></a>00158 lastFrame_[1] += temp;
<a name="l00159"></a>00159
<a name="l00160"></a>00160 <span class="keywordflow">return</span> 0.7 * lastFrame_[channel];
<a name="l00161"></a>00161 }
</pre></div></p>
</div>
</div>
<a class="anchor" id="abfdf0b4db6d08cce1b0473776fce03d5"></a><!-- doxytag: member="stk::JCRev::tick" ref="abfdf0b4db6d08cce1b0473776fce03d5" args="(StkFrames &amp;frames, unsigned int channel=0)" -->
@@ -186,7 +250,7 @@ void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<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-2010 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
<tr><td>&copy;1995-2011 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>