Skip to content

Commit

Permalink
Regenerated.
Browse files Browse the repository at this point in the history
  • Loading branch information
sletz committed Nov 14, 2024
1 parent 4e059fb commit 1c612ef
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 18 deletions.
2 changes: 1 addition & 1 deletion docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -384,5 +384,5 @@ <h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>

<!--
MkDocs version : 1.5.3
Build Date UTC : 2024-11-12 18:35:48.466269+00:00
Build Date UTC : 2024-11-14 20:35:39.724627+00:00
-->
88 changes: 72 additions & 16 deletions docs/libs/filters/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -604,6 +604,14 @@
<li class="nav-item" data-level="3"><a href="#fisvf" class="nav-link">(fi.)svf</a>
<ul class="nav flex-column">
</ul>
</li>
<li class="nav-item" data-level="3"><a href="#fisvftpt" class="nav-link">(fi.)SVFTPT</a>
<ul class="nav flex-column">
</ul>
</li>
<li class="nav-item" data-level="3"><a href="#fidynamicsmoother" class="nav-link">(fi.)dynamicSmoother</a>
<ul class="nav flex-column">
</ul>
</li>
</ul>
</li>
Expand Down Expand Up @@ -2024,6 +2032,54 @@ <h4 id="usage_67">Usage</h4>
<li><code>Q</code>: quality factor</li>
<li><code>[gain]</code>: gain in dB</li>
</ul>
<hr />
<h3 id="fisvftpt"><code>(fi.)SVFTPT</code></h3>
<p>Topology-preserving transform implementation following Zavalishin's method.</p>
<p>Outputs: lowpass, highpass, bandpass, normalised bandpass, notch, allpass,
peaking.</p>
<p>Each individual output can be recalled with its name in the environment as in:
<code>SVFTPT.LP2(1000.0, .707)</code>.</p>
<p>The 7 outputs can be recalled by using <code>SVF</code> name as in:
<code>SVFTPT.SVF(1000.0, .707)</code>.</p>
<p>Even though the implementation is different, the characteristics of this
filter are comparable to those of the <code>svf</code> environment in this library.</p>
<h4 id="usage_68">Usage:</h4>
<pre><code>_ : SVFTPT.xxx(CF, Q) : _
</code></pre>
<p>Where:</p>
<ul>
<li><code>xxx</code> can be one of the following: <code>LP2</code>, <code>HP2</code>, <code>BP2</code>, <code>BP2Norm</code>, <code>Notch2</code>, <code>AP2</code>, <code>Peaking2</code></li>
<li><code>CF</code>: cutoff in Hz</li>
<li><code>Q</code>: resonance</li>
</ul>
<hr />
<h3 id="fidynamicsmoother"><code>(fi.)dynamicSmoother</code></h3>
<p>Adaptive smoother based on Andy Simper's paper.</p>
<p>This filter uses both the lowpass and bandpass outputs of a
state-variable filter. The lowpass is used to smooth out the input signal,
the bandpass, which is a smoothed out version of the highpass, provides
information on the rate of change of the input. Hence, the bandpass signal
can be used to adjust the cutoff of the filter to quickly follow the input's
fast and large variations while effectively filtering out local
perturbations.</p>
<p>This implementation does not use an approximation for the CF computation,
and it deploys guards to prevent overshooting with extreme sensitivity
values.</p>
<h4 id="usage_69">Usage:</h4>
<pre><code>_ : dynamicSmoother(sensitivity, baseCF) : _
</code></pre>
<h4 id="where_2">Where:</h4>
<ul>
<li><code>sensitivity</code>: sensitivity to changes in the input signal.
The range is, theoretically, from 0 to INF, though anything between
0.0 and 1.0 should be reasonable</li>
<li><code>baseCF</code>: cutoff frequency, in Hz, when there is no variation in the
input signal</li>
</ul>
<h4 id="reference_24">Reference</h4>
<ul>
<li><a href="https://cytomic.com/files/dsp/DynamicSmoothing.pdf">https://cytomic.com/files/dsp/DynamicSmoothing.pdf</a></li>
</ul>
<h2 id="linkwitz-riley-4th-order-2-way-3-way-and-4-way-crossovers">Linkwitz-Riley 4th-order 2-way, 3-way, and 4-way crossovers</h2>
<p>The Linkwitz-Riley (LR) crossovers are designed to produce a fully-flat
magnitude response when their outputs are combined. The 4th-order
Expand All @@ -2034,12 +2090,12 @@ <h2 id="linkwitz-riley-4th-order-2-way-3-way-and-4-way-crossovers">Linkwitz-Rile
filter implemented above by setting the Q-factor to 1.0 / sqrt(2.0).
These will be cascaded in pairs to build the LR4 highpass and lowpass.
For the phase correction, we will use the 2nd-order Butterworth allpass.</p>
<h4 id="reference_24">Reference</h4>
<h4 id="reference_25">Reference</h4>
<p>Zavalishin, Vadim. "The art of VA filter design." Native Instruments, Berlin, Germany (2012).</p>
<hr />
<h3 id="filowpasslr4"><code>(fi.)lowpassLR4</code></h3>
<p>4th-order Linkwitz-Riley lowpass.</p>
<h4 id="usage_68">Usage</h4>
<h4 id="usage_70">Usage</h4>
<pre><code>_ : lowpassLR4(cf) : _
</code></pre>
<p>Where:</p>
Expand All @@ -2049,7 +2105,7 @@ <h4 id="usage_68">Usage</h4>
<hr />
<h3 id="fihighpasslr4"><code>(fi.)highpassLR4</code></h3>
<p>4th-order Linkwitz-Riley highpass.</p>
<h4 id="usage_69">Usage</h4>
<h4 id="usage_71">Usage</h4>
<pre><code>_ : highpassLR4(cf) : _
</code></pre>
<p>Where:</p>
Expand All @@ -2059,7 +2115,7 @@ <h4 id="usage_69">Usage</h4>
<hr />
<h3 id="ficrossover2lr4"><code>(fi.)crossover2LR4</code></h3>
<p>Two-way 4th-order Linkwitz-Riley crossover.</p>
<h4 id="usage_70">Usage</h4>
<h4 id="usage_72">Usage</h4>
<pre><code>_ : crossover2LR4(cf) : si.bus(2)
</code></pre>
<p>Where:</p>
Expand All @@ -2069,7 +2125,7 @@ <h4 id="usage_70">Usage</h4>
<hr />
<h3 id="ficrossover3lr4"><code>(fi.)crossover3LR4</code></h3>
<p>Three-way 4th-order Linkwitz-Riley crossover.</p>
<h4 id="usage_71">Usage</h4>
<h4 id="usage_73">Usage</h4>
<pre><code>_ : crossover3LR4(cf1, cf2) : si.bus(3)
</code></pre>
<p>Where:</p>
Expand All @@ -2080,7 +2136,7 @@ <h4 id="usage_71">Usage</h4>
<hr />
<h3 id="ficrossover4lr4"><code>(fi.)crossover4LR4</code></h3>
<p>Four-way 4th-order Linkwitz-Riley crossover.</p>
<h4 id="usage_72">Usage</h4>
<h4 id="usage_74">Usage</h4>
<pre><code>_ : crossover4LR4(cf1, cf2, cf3) : si.bus(4)
</code></pre>
<p>Where:</p>
Expand All @@ -2092,7 +2148,7 @@ <h4 id="usage_72">Usage</h4>
<hr />
<h3 id="ficrossover8lr4"><code>(fi.)crossover8LR4</code></h3>
<p>Eight-way 4th-order Linkwitz-Riley crossover.</p>
<h4 id="usage_73">Usage</h4>
<h4 id="usage_75">Usage</h4>
<pre><code>_ : crossover8LR4(cf1, cf2, cf3, cf4, cf5, cf6, cf7) : si.bus(8)
</code></pre>
<p>Where:</p>
Expand All @@ -2116,10 +2172,10 @@ <h3 id="fiitu_r_bs_1770_4_kfilter"><code>(fi.)itu_r_bs_1770_4_kfilter</code></h3
magnitude difference at 48kHz between the ITU-defined filter and
<code>itu_r_bs_1770_4_kfilter</code> is 0.001dB, which obviously could be
less.</p>
<h4 id="usage_74">Usage</h4>
<h4 id="usage_76">Usage</h4>
<pre><code>_ : itu_r_bs_1770_4_kfilter : _
</code></pre>
<h4 id="reference_25">Reference</h4>
<h4 id="reference_26">Reference</h4>
<ul>
<li><a href="https://www.itu.int/rec/R-REC-BS.1770">https://www.itu.int/rec/R-REC-BS.1770</a></li>
<li><a href="https://gist.github.com/jkbd/07521a98f7873a2dc3dbe16417930791">https://gist.github.com/jkbd/07521a98f7873a2dc3dbe16417930791</a></li>
Expand All @@ -2128,7 +2184,7 @@ <h2 id="averaging-functions">Averaging Functions</h2>
<hr />
<h3 id="fiavg_rect"><code>(fi.)avg_rect</code></h3>
<p>Moving average.</p>
<h4 id="usage_75">Usage</h4>
<h4 id="usage_77">Usage</h4>
<pre><code>_ : avg_rect(period) : _
</code></pre>
<p>Where:</p>
Expand All @@ -2142,15 +2198,15 @@ <h3 id="fiavg_tau"><code>(fi.)avg_tau</code></h3>
that is, tau is the integral of the filter's impulse response. This
response is slower to reach the final value but has less ripples in
non-steady signals.</p>
<h4 id="usage_76">Usage</h4>
<h4 id="usage_78">Usage</h4>
<pre><code>_ : avg_tau(period) : _
</code></pre>
<p>Where:</p>
<ul>
<li><code>period</code> is the time, in seconds, for the system to decay by 1/e,
or to reach 1-1/e of its final value.</li>
</ul>
<h4 id="reference_26">Reference</h4>
<h4 id="reference_27">Reference</h4>
<ul>
<li><a href="https://ccrma.stanford.edu/~jos/mdft/Exponentials.html">https://ccrma.stanford.edu/~jos/mdft/Exponentials.html</a></li>
</ul>
Expand All @@ -2159,15 +2215,15 @@ <h3 id="fiavg_t60"><code>(fi.)avg_t60</code></h3>
<p>Averaging function based on a one-pole filter and the t60 response time.
This response is particularly useful when the system is required to
reach the final value after about <code>period</code> seconds.</p>
<h4 id="usage_77">Usage</h4>
<h4 id="usage_79">Usage</h4>
<pre><code>_ : avg_t60(period) : _
</code></pre>
<p>Where:</p>
<ul>
<li><code>period</code> is the time, in seconds, for the system to decay by 1/1000,
or to reach 1-1/1000 of its final value.</li>
</ul>
<h4 id="reference_27">Reference</h4>
<h4 id="reference_28">Reference</h4>
<ul>
<li><a href="https://ccrma.stanford.edu/~jos/mdft/Audio_Decay_Time_T60.html">https://ccrma.stanford.edu/~jos/mdft/Audio_Decay_Time_T60.html</a></li>
</ul>
Expand All @@ -2177,15 +2233,15 @@ <h3 id="fiavg_t19"><code>(fi.)avg_t19</code></h3>
This response is close to the moving-average algorithm as it roughly reaches
the final value after <code>period</code> seconds and shows about the same
oscillations for non-steady signals.</p>
<h4 id="usage_78">Usage</h4>
<h4 id="usage_80">Usage</h4>
<pre><code>_ : avg_t19(period) : _
</code></pre>
<p>Where:</p>
<ul>
<li><code>period</code> is the time, in seconds, for the system to decay by 1/e^2.2,
or to reach 1-1/e^2.2 of its final value.</li>
</ul>
<h4 id="reference_28">Reference</h4>
<h4 id="reference_29">Reference</h4>
<p>Zölzer, U. (2008). Digital audio signal processing (Vol. 9). New York: Wiley.</p></div>
</div>
</div>
Expand Down
2 changes: 2 additions & 0 deletions docs/libs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,8 @@ <h2 id="filters">filters</h2>
<a href="filters/#fifilterbank">(fi.)filterbank</a> &nbsp; &nbsp;
<a href="filters/#fifilterbanki">(fi.)filterbanki</a> &nbsp; &nbsp;
<a href="filters/#fisvf">(fi.)svf</a> &nbsp; &nbsp;
<a href="filters/#fisvftpt">(fi.)SVFTPT</a> &nbsp; &nbsp;
<a href="filters/#fidynamicsmoother">(fi.)dynamicSmoother</a> &nbsp; &nbsp;
<a href="filters/#filowpasslr4">(fi.)lowpassLR4</a> &nbsp; &nbsp;
<a href="filters/#fihighpasslr4">(fi.)highpassLR4</a> &nbsp; &nbsp;
<a href="filters/#ficrossover2lr4">(fi.)crossover2LR4</a> &nbsp; &nbsp;
Expand Down
2 changes: 1 addition & 1 deletion docs/search/search_index.json

Large diffs are not rendered by default.

Binary file modified docs/sitemap.xml.gz
Binary file not shown.

0 comments on commit 1c612ef

Please sign in to comment.