shithub: leaf

Download patch

ref: 87cc8192ca2cdaa640486420c8e5836a1399a336
parent: 0400bc13cf30359da0fedf61cc0f24436ed1babe
author: Matthew Wang <mjw7@princeton.edu>
date: Wed Jan 6 05:41:16 EST 2021

add doc files

--- a/.gitignore
+++ b/.gitignore
@@ -10,4 +10,3 @@
 *.swp
 */Builds
 */JuceLibraryCode
-doxygen/leaf
--- /dev/null
+++ b/doxygen/leaf/annotated.html
@@ -1,0 +1,110 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Data Structures</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Data Structures</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_l_e_a_f.html" target="_self">LEAF</a></td><td class="desc">Struct for an instance of <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/basic-oscillators_8c-example.html
@@ -1,0 +1,164 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: basic-oscillators.c</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">basic-oscillators.c</div>  </div>
+</div><!--header-->
+<div class="contents">
+<p>Header. </p><div class="fragment"><div class="line"><span class="comment">/*</span></div>
+<div class="line"><span class="comment">  ==============================================================================</span></div>
+<div class="line"><span class="comment"></span> </div>
+<div class="line"><span class="comment">    basic-oscillators.h</span></div>
+<div class="line"><span class="comment">    Created: 5 Mar 2020 2:56:24pm</span></div>
+<div class="line"><span class="comment">    Author:  Matthew Wang</span></div>
+<div class="line"><span class="comment"></span> </div>
+<div class="line"><span class="comment">  ==============================================================================</span></div>
+<div class="line"><span class="comment">*/</span></div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#include &quot;../leaf/leaf.h&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">char</span> mempool[1000];</div>
+<div class="line">tCycle cycle;</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span>    exampleInit(<span class="keywordtype">void</span>);</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span>    exampleFrame(<span class="keywordtype">void</span>);</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">float</span>   exampleTick(<span class="keywordtype">float</span> sampleIn);</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">float</span>   exampleRandom(<span class="keywordtype">void</span>);</div>
+</div><!-- fragment --><p>An example.</p>
+<div class="fragment"><div class="line"><span class="comment">/*</span></div>
+<div class="line"><span class="comment">  ==============================================================================</span></div>
+<div class="line"><span class="comment"></span> </div>
+<div class="line"><span class="comment">    basic-oscillators.c</span></div>
+<div class="line"><span class="comment">    Created: 5 Mar 2020 2:56:24pm</span></div>
+<div class="line"><span class="comment">    Author:  Matthew Wang</span></div>
+<div class="line"><span class="comment"></span> </div>
+<div class="line"><span class="comment">  ==============================================================================</span></div>
+<div class="line"><span class="comment">*/</span></div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#include &quot;basic-oscillators.h&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> exampleInit()</div>
+<div class="line">{</div>
+<div class="line">    <a name="_a0"></a><a class="code" href="struct_l_e_a_f.html">LEAF</a> leaf;</div>
+<div class="line">    </div>
+<div class="line">    <a name="a1"></a><a class="code" href="group__leaf.html#ga13fefd14706bd5d85346066660f3c9eb">LEAF_init</a>(&amp;leaf, 44100, 128, mempool, 1000, &amp;exampleRandom);</div>
+<div class="line">    </div>
+<div class="line">    <a name="a2"></a><a class="code" href="group__tcycle.html#ga3ae2b653f390bdacdfe952e22a7aa5c4">tCycle_init</a>(&amp;cycle, &amp;leaf);</div>
+<div class="line">    <a name="a3"></a><a class="code" href="group__tcycle.html#ga7eeb58e2292483416474bf83bf313deb">tCycle_setFreq</a>(&amp;cycle, 220);</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> exampleFrame()</div>
+<div class="line">{</div>
+<div class="line">    </div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">float</span> exampleTick(<span class="keywordtype">float</span> sampleIn)</div>
+<div class="line">{</div>
+<div class="line">    <span class="keywordtype">float</span> sampleOut = <a name="a4"></a><a class="code" href="group__tcycle.html#ga4fd599981f6caf87720db3a9811716cf">tCycle_tick</a>(&amp;cycle);</div>
+<div class="line">    <span class="keywordflow">return</span> sampleOut;</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">float</span> exampleRandom()</div>
+<div class="line">{</div>
+<div class="line">    <span class="keywordflow">return</span> ((<span class="keywordtype">float</span>)rand()/(<span class="keywordtype">float</span>)(RAND_MAX));</div>
+<div class="line">}</div>
+<div class="line"> </div>
+</div><!-- fragment --> </div><!-- contents -->
+<div class="ttc" id="agroup__tcycle_html_ga3ae2b653f390bdacdfe952e22a7aa5c4"><div class="ttname"><a href="group__tcycle.html#ga3ae2b653f390bdacdfe952e22a7aa5c4">tCycle_init</a></div><div class="ttdeci">void tCycle_init(tCycle *const osc, LEAF *const leaf)</div><div class="ttdoc">Initialize a tCycle to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:387</div></div>
+<div class="ttc" id="agroup__tcycle_html_ga7eeb58e2292483416474bf83bf313deb"><div class="ttname"><a href="group__tcycle.html#ga7eeb58e2292483416474bf83bf313deb">tCycle_setFreq</a></div><div class="ttdeci">void tCycle_setFreq(tCycle *const osc, float freq)</div><div class="ttdoc">Set the frequency of a tCycle oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:409</div></div>
+<div class="ttc" id="agroup__tcycle_html_ga4fd599981f6caf87720db3a9811716cf"><div class="ttname"><a href="group__tcycle.html#ga4fd599981f6caf87720db3a9811716cf">tCycle_tick</a></div><div class="ttdeci">float tCycle_tick(tCycle *const osc)</div><div class="ttdoc">Tick a tCycle oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:422</div></div>
+<div class="ttc" id="agroup__leaf_html_ga13fefd14706bd5d85346066660f3c9eb"><div class="ttname"><a href="group__leaf.html#ga13fefd14706bd5d85346066660f3c9eb">LEAF_init</a></div><div class="ttdeci">void LEAF_init(LEAF *const leaf, float sampleRate, int blockSize, char *memory, size_t memorySize, float(*random)(void))</div><div class="ttdoc">Initialize the LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf.c:21</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
binary files /dev/null b/doxygen/leaf/bc_s.png differ
binary files /dev/null b/doxygen/leaf/bdwn.png differ
--- /dev/null
+++ b/doxygen/leaf/classes.html
@@ -1,0 +1,116 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Data Structure Index</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Data Structure Index</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_l">l</a></div>
+<table class="classindex">
+<tr><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;l&#160;&#160;</div></td></tr></table>
+</td>
+<td></td></tr>
+<tr><td></td></tr>
+<tr><td valign="top"><a class="el" href="struct_l_e_a_f.html">LEAF</a>&#160;&#160;&#160;</td>
+<td></td></tr>
+<tr><td></td><td></td></tr>
+</table>
+<div class="qindex"><a class="qindex" href="#letter_l">l</a></div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
binary files /dev/null b/doxygen/leaf/closed.png differ
--- /dev/null
+++ b/doxygen/leaf/customdoxygen.css
@@ -1,0 +1,1973 @@
+/* The standard CSS for doxygen 1.8.18 */
+
+body, table, div, p, dl {
+	font: inherit;
+	font-family: -apple-system, BlinkMacSystemFont, 'avenir next', avenir, 'helvetica neue', helvetica, ubuntu, roboto, noto, 'segoe ui', arial, sans-serif;
+}
+
+p.reference, p.definition {
+	font: inherit;
+}
+
+/* @group Heading Levels */
+
+h1 {
+	display: block;
+	padding-bottom: calc(1rem + 2px) !important;
+    font-size: 2em; 
+    margin: .60em 0;
+    font-weight: bold;
+}
+
+h1.groupheader {
+	font-size: 150%;
+}
+
+.title {
+	font: 400 14px/28px Roboto,sans-serif;
+	font-size: 150%;
+	font-weight: bold;
+	margin: 10px 0px;
+}
+
+h2.groupheader {
+	border-bottom: 1px solid #879ECB;
+	color: #354C7B;
+	font-size: 150%;
+	font-weight: normal;
+	margin-top: 1.75em;
+	padding-top: 8px;
+	padding-bottom: 4px;
+	width: 100%;
+}
+
+h3.groupheader {
+	font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	-webkit-transition: text-shadow 0.5s linear;
+	-moz-transition: text-shadow 0.5s linear;
+	-ms-transition: text-shadow 0.5s linear;
+	-o-transition: text-shadow 0.5s linear;
+	transition: text-shadow 0.5s linear;
+	margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+	text-shadow: 0 0 15px cyan;
+}
+
+dt {
+	font-weight: bold;
+}
+
+ul.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+	column-count: 3;
+}
+
+p.startli, p.startdd {
+	margin-top: 2px;
+}
+
+th p.starttd, p.intertd, p.endtd {
+        font-size: 100%;
+        font-weight: 700;
+}
+
+p.starttd {
+	margin-top: 0px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+p.interli {
+}
+
+p.interdd {
+}
+
+p.intertd {
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 100%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #3D578C;
+	font-weight: inherit;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #4665A2;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #9CAFD4;
+	color: #FFFFFF;
+	border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+        color: #FFFFFF;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+	color: #4665A2; 
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+	color: #4665A2; 
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+ul {
+  overflow: hidden; /*Fixed: list item bullets overlap floating elements*/
+}
+
+#side-nav ul {
+  overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */
+}
+
+#main-nav ul {
+  overflow: visible; /* reset ul rule for the navigation bar drop down lists */
+}
+
+.fragment {
+  text-align: left;
+  direction: ltr;
+  overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/
+  overflow-y: hidden;
+}
+
+pre.fragment {
+        border: 1px solid #C4CFE5;
+        background-color: #FBFCFD;
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+        overflow: auto;
+        word-wrap: break-word;
+        font-size:  9pt;
+        line-height: 125%;
+        font-family: monospace, fixed;
+        font-size: 105%;
+}
+
+div.fragment {
+  padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/
+  margin: 4px 8px 4px 2px;
+	background-color: #FBFCFD;
+	border: 1px solid #C4CFE5;
+}
+
+div.line {
+	font-family: monospace, fixed;
+        font-size: 13px;
+	min-height: 13px;
+	line-height: 1.0;
+	text-wrap: unrestricted;
+	white-space: -moz-pre-wrap; /* Moz */
+	white-space: -pre-wrap;     /* Opera 4-6 */
+	white-space: -o-pre-wrap;   /* Opera 7 */
+	white-space: pre-wrap;      /* CSS3  */
+	word-wrap: break-word;      /* IE 5.5+ */
+	text-indent: -53px;
+	padding-left: 53px;
+	padding-bottom: 0px;
+	margin: 0px;
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+div.line:after {
+    content:"\000A";
+    white-space: pre;
+}
+
+div.line.glow {
+	background-color: cyan;
+	box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+	padding-right: 4px;
+	text-align: right;
+	border-right: 2px solid #0F0;
+	background-color: #E8E8E8;
+        white-space: pre;
+}
+span.lineno a {
+	background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+	background-color: #C8C8C8;
+}
+
+.lineno {
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+div.ah, span.ah {
+	background-color: black;
+	font-weight: bold;
+	color: #FFFFFF;
+	margin-bottom: 3px;
+	margin-top: 3px;
+	padding: 0.2em;
+	border: solid thin #333;
+	border-radius: 0.5em;
+	-webkit-border-radius: .5em;
+	-moz-border-radius: .5em;
+	box-shadow: 2px 2px 3px #999;
+	-webkit-box-shadow: 2px 2px 3px #999;
+	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
+}
+
+div.classindex ul {
+        list-style: none;
+        padding-left: 0;
+}
+
+div.classindex span.ai {
+        display: inline-block;
+}
+
+div.groupHeader {
+	margin-left: 16px;
+	margin-top: 12px;
+	font-weight: bold;
+}
+
+div.groupText {
+	margin-left: 16px;
+	font-style: italic;
+}
+
+body {
+	background-color: #e8fdf5;
+	color: black;
+        margin: 0;
+}
+
+div.contents {
+	margin-top: 10px;
+	margin-left: 1px;
+	margin-right: 8px;
+	margin-bottom: 12px;
+	padding-left: 2rem;
+}
+
+
+
+.indexkey {
+	background-color: #EBEFF6;
+	font-weight: bold;
+	border: 1px solid #C4CFE5;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+        white-space: nowrap;
+        vertical-align: top;
+}
+
+td.indexvalue {
+	background-color: #EBEFF6;
+	border: 1px solid #C4CFE5;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl, img.inline {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: right;
+	padding-right: 12px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #008000
+}
+
+span.keywordtype {
+	color: #604020
+}
+
+span.keywordflow {
+	color: #e08000
+}
+
+span.comment {
+	color: #800000
+}
+
+span.preprocessor {
+	color: #806020
+}
+
+span.stringliteral {
+	color: #002080
+}
+
+span.charliteral {
+	color: #008080
+}
+
+span.vhdldigit { 
+	color: #ff00ff 
+}
+
+span.vhdlchar { 
+	color: #000000 
+}
+
+span.vhdlkeyword { 
+	color: #700070 
+}
+
+span.vhdllogic { 
+	color: #ff0000 
+}
+
+blockquote {
+        background-color: #F7F8FB;
+        border-left: 2px solid #9CAFD4;
+        margin: 0 24px 0 4px;
+        padding: 0 12px 0 16px;
+}
+
+blockquote.DocNodeRTL {
+   border-left: 0;
+   border-right: 2px solid #9CAFD4;
+   margin: 0 4px 0 24px;
+   padding: 0 16px 0 12px;
+}
+
+/* @end */
+
+/*
+.search {
+	color: #003399;
+	font-weight: bold;
+}
+
+form.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+
+input.search {
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+	background: #EBEFF6;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+	height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+	border-spacing: 0px;
+	padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+	background-color: cyan;
+	box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #F9FAFC;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memSeparator {
+        border-bottom: 1px solid #DEE4F0;
+        line-height: 1px;
+        margin: 0px;
+        padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memItemRight, .memTemplItemRight {
+	width: 100%;
+}
+
+.memTemplParams {
+	color: #4665A2;
+        white-space: nowrap;
+	font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtitle {
+	padding: 8px;
+	border-top: 1px solid #A8B8D9;
+	border-left: 1px solid #A8B8D9;
+	border-right: 1px solid #A8B8D9;
+	border-top-right-radius: 4px;
+	border-top-left-radius: 4px;
+	margin-bottom: -1px;
+	background-image: url('nav_f.png');
+	background-repeat: repeat-x;
+	background-color: #E2E8F2;
+	line-height: 1.25;
+	font-weight: 300;
+	float:left;
+}
+
+.permalink
+{
+        font-size: 65%;
+        display: inline-block;
+        vertical-align: middle;
+}
+
+.memtemplate {
+	font-size: 80%;
+	color: #4665A2;
+	font-weight: normal;
+	margin-left: 9px;
+}
+
+.memnav {
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.mempage {
+	width: 100%;
+}
+
+.memitem {
+	padding: 0;
+	margin-bottom: 10px;
+	margin-right: 5px;
+        -webkit-transition: box-shadow 0.5s linear;
+        -moz-transition: box-shadow 0.5s linear;
+        -ms-transition: box-shadow 0.5s linear;
+        -o-transition: box-shadow 0.5s linear;
+        transition: box-shadow 0.5s linear;
+        display: table !important;
+        width: 100%;
+}
+
+.memitem.glow {
+         box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+        font-weight: 400;
+        margin-left: 6px;
+}
+
+.memname td {
+	vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+        border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        background-color: #DFE5F1;
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 4px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 4px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 4px;
+
+}
+
+.overload {
+        font-family: "courier new",courier,monospace;
+	font-size: 65%;
+}
+
+.memdoc, dl.reflist dd {
+        border-bottom: 1px solid #A8B8D9;      
+        border-left: 1px solid #A8B8D9;      
+        border-right: 1px solid #A8B8D9; 
+        padding: 6px 10px 2px 10px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        background-image:url('nav_g.png');
+        background-repeat:repeat-x;
+        background-color: #FFFFFF;
+        /* opera specific markup */
+        border-bottom-left-radius: 4px;
+        border-bottom-right-radius: 4px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 4px;
+        -moz-border-radius-bottomright: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 4px;
+        -webkit-border-bottom-right-radius: 4px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+        padding: 5px;
+}
+
+dl.reflist dd {
+        margin: 0px 0px 10px 0px;
+        padding: 5px;
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #602020;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+.paramname code {
+        line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+        margin-left: 0px;
+        padding-left: 0px;
+}       
+
+.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype, .tparams .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .paramdir, .tparams .paramdir {
+        font-family: "courier new",courier,monospace;
+        vertical-align: top;
+}
+
+table.mlabels {
+	border-spacing: 0px;
+}
+
+td.mlabels-left {
+	width: 100%;
+	padding: 0px;
+}
+
+td.mlabels-right {
+	vertical-align: bottom;
+	padding: 0px;
+	white-space: nowrap;
+}
+
+span.mlabels {
+        margin-left: 8px;
+}
+
+span.mlabel {
+        background-color: #728DC1;
+        border-top:1px solid #5373B4;
+        border-left:1px solid #5373B4;
+        border-right:1px solid #C4CFE5;
+        border-bottom:1px solid #C4CFE5;
+	text-shadow: none;
+	color: white;
+	margin-right: 4px;
+	padding: 2px 3px;
+	border-radius: 3px;
+	font-size: 7pt;
+	white-space: nowrap;
+	vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+    margin: 0px 0px;
+    border-top: none;
+    border-bottom: none;
+    width: 100%;
+}
+
+.directory table {
+    border-collapse:collapse;
+}
+
+.directory td {
+    margin: 0px;
+    padding: 0px;
+	vertical-align: top;
+}
+
+.directory td.entry {
+    white-space: nowrap;
+    padding-right: 6px;
+	padding-top: 3px;
+}
+
+.directory td.entry a {
+    outline:none;
+}
+
+.directory td.entry a img {
+    border: none;
+}
+
+.directory td.desc {
+    width: 100%;
+    padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 3px;
+	border-left: 1px solid rgba(0,0,0,0.1);
+}
+
+.directory tr {
+	padding-left: 6px;
+	padding-top: 6px;
+
+}
+
+.directory tr.even {
+	background-color: #e8fdf5;
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+.directory .levels {
+        white-space: nowrap;
+        width: 100%;
+        text-align: right;
+        font-size: 10pt;
+}
+
+.directory .levels span {
+        cursor: pointer;
+        padding-left: 2px;
+        padding-right: 2px;
+	color: #3D578C;
+}
+
+.arrow {
+    color: #9CAFD4;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+    cursor: pointer;
+    font-size: 80%;
+    display: inline-block;
+    width: 16px;
+    height: 22px;
+}
+
+.icon {
+    font-family: Arial, Helvetica;
+    font-weight: bold;
+    font-size: 12px;
+    height: 14px;
+    width: 16px;
+    display: inline-block;
+    background-color: #728DC1;
+    color: white;
+    text-align: center;
+    border-radius: 4px;
+    margin-left: 2px;
+    margin-right: 2px;
+}
+
+.icona {
+    width: 24px;
+    height: 22px;
+    display: inline-block;
+}
+
+.iconfopen {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('folderopen.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.iconfclosed {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('folderclosed.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.icondoc {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('doc.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+table.directory {
+    font: 400 14px Roboto,sans-serif;
+}
+
+/* @end */
+
+div.dynheader {
+        margin-top: 8px;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+address {
+	font-style: normal;
+	color: #2A3D61;
+}
+
+table.doxtable caption {
+	caption-side: top;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+table.fieldtable {
+        /*width: 100%;*/
+        margin-bottom: 10px;
+        border: 1px solid #A8B8D9;
+        border-spacing: 0px;
+        -moz-border-radius: 4px;
+        -webkit-border-radius: 4px;
+        border-radius: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+        padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+        white-space: nowrap;
+        border-right: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+        padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+        border-bottom: 1px solid #A8B8D9;
+        /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+        margin-top: 0px;
+}       
+        
+.fieldtable td.fielddoc p:last-child {
+        margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+        border-bottom: none;
+}
+
+.fieldtable th {
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #e8fdf5;
+        font-size: 90%;
+        color: #253555;
+        padding-bottom: 4px;
+        padding-top: 5px;
+        text-align:left;
+        font-weight: 400;
+        -moz-border-radius-topleft: 4px;
+        -moz-border-radius-topright: 4px;
+        -webkit-border-top-left-radius: 4px;
+        -webkit-border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        border-top-right-radius: 4px;
+        border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+	top: 0px;
+	left: 10px;
+	height: 36px;
+	background-image: url('tab_b.png');
+	z-index: 101;
+	overflow: hidden;
+	font-size: 13px;
+}
+
+.navpath ul
+{
+	font-size: 11px;
+	background-image:none;
+	height:0px;
+	line-height:0px;
+	color:#8AA0CC;
+	border-top:solid 1px #C2CDE4;
+	border-left: none;
+	border-right: none;
+	border-bottom: none;
+	overflow:hidden;
+	margin:0px;
+	padding:0px;
+}
+
+.navpath li
+{
+	list-style-type:none;
+	float:left;
+	padding-left:10px;
+	padding-right:15px;
+	background-image:none;
+	background-repeat:no-repeat;
+	background-position:right;
+	color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+	height:32px;
+	display:block;
+	text-decoration: none;
+	outline: none;
+	color: #283A5D;
+	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+	text-decoration: none;        
+}
+
+.navpath li.navelem a:hover
+{
+	color:#6884BD;
+}
+
+.navpath li.footer
+{
+        list-style-type:none;
+        float:right;
+        padding-left:10px;
+        padding-right:15px;
+        background-image:none;
+        background-repeat:no-repeat;
+        background-position:right;
+        color:#364D7C;
+        font-size: 8pt;
+}
+
+
+div.summary
+{
+	float: right;
+	font-size: 8pt;
+	padding-right: 5px;
+	width: 50%;
+	text-align: right;
+}       
+
+div.summary a
+{
+	white-space: nowrap;
+}
+
+table.classindex
+{
+        margin: 10px;
+        white-space: nowrap;
+        margin-left: 3%;
+        margin-right: 3%;
+        width: 94%;
+        border: 0;
+        border-spacing: 0; 
+        padding: 0;
+}
+
+div.ingroups
+{
+	font-size: 8pt;
+	width: 50%;
+	text-align: left;
+}
+
+div.ingroups a
+{
+	white-space: nowrap;
+}
+
+div.header
+{
+    background-image:none;
+	background-color: #e8fdf5;
+	margin:  0px;
+	border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+	padding: 5px 5px 5px 10px;
+	padding-left: 2rem;
+}
+
+.PageDocRTL-title div.headertitle {
+  text-align: right;
+  direction: rtl;
+}
+
+dl {
+        padding: 0 0 0 0;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */
+dl.section {
+	margin-left: 0px;
+	padding-left: 0px;
+}
+
+dl.section.DocNodeRTL {
+  margin-right: 0px;
+  padding-right: 0px;
+}
+
+dl.note {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #D0C000;
+}
+
+dl.note.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #D0C000;
+}
+
+dl.warning, dl.attention {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #FF0000;
+}
+
+dl.warning.DocNodeRTL, dl.attention.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #00D000;
+}
+
+dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #00D000;
+}
+
+dl.deprecated {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #505050;
+}
+
+dl.deprecated.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #505050;
+}
+
+dl.todo {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #00C0E0;
+}
+
+dl.todo.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #00C0E0;
+}
+
+dl.test {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #3030E0;
+}
+
+dl.test.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #3030E0;
+}
+
+dl.bug {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #C08050;
+}
+
+dl.bug.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #C08050;
+}
+
+dl.section dd {
+	margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+	text-align: center;
+	vertical-align: bottom;
+	border-collapse: separate;
+}
+ 
+#projectlogo img
+{ 
+	border: 0px none;
+}
+ 
+#projectalign
+{
+        vertical-align: middle;
+}
+
+#projectname
+{
+	font: 300% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 2px 0px;
+}
+    
+#projectbrief
+{
+	font: 120% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#projectnumber
+{
+	font: 50% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#titlearea
+{
+	padding: 0px;
+	margin: 0px;
+	width: 100%;
+	border-bottom: 0px solid #5373B4;
+}
+
+.image
+{
+        text-align: center;
+}
+
+.dotgraph
+{
+        text-align: center;
+}
+
+.mscgraph
+{
+        text-align: center;
+}
+
+.plantumlgraph
+{
+        text-align: center;
+}
+
+.diagraph
+{
+        text-align: center;
+}
+
+.caption
+{
+	font-weight: bold;
+}
+
+div.zoom
+{
+	border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+        margin-bottom:50px;
+}
+
+dl.citelist dt {
+        color:#334975;
+        float:left;
+        font-weight:bold;
+        margin-right:10px;
+        padding:5px;
+}
+
+dl.citelist dd {
+        margin:2px 0;
+        padding:5px 0;
+}
+
+div.toc {
+        padding: 14px 25px;
+        background-color: #F4F6FA;
+        border: 1px solid #D8DFEE;
+        border-radius: 7px 7px 7px 7px;
+        float: right;
+        height: auto;
+        margin: 0 8px 10px 10px;
+        width: 200px;
+}
+
+.PageDocRTL-title div.toc {
+  float: left !important;
+  text-align: right;
+}
+
+div.toc li {
+        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+        margin-top: 5px;
+        padding-left: 10px;
+        padding-top: 2px;
+}
+
+.PageDocRTL-title div.toc li {
+  background-position-x: right !important;
+  padding-left: 0 !important;
+  padding-right: 10px;
+}
+
+div.toc h3 {
+        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+	color: #4665A2;
+        border-bottom: 0 none;
+        margin: 0;
+}
+
+div.toc ul {
+        list-style: none outside none;
+        border: medium none;
+        padding: 0px;
+}       
+
+div.toc li.level1 {
+        margin-left: 0px;
+}
+
+div.toc li.level2 {
+        margin-left: 15px;
+}
+
+div.toc li.level3 {
+        margin-left: 30px;
+}
+
+div.toc li.level4 {
+        margin-left: 45px;
+}
+
+.PageDocRTL-title div.toc li.level1 {
+  margin-left: 0 !important;
+  margin-right: 0;
+}
+
+.PageDocRTL-title div.toc li.level2 {
+  margin-left: 0 !important;
+  margin-right: 15px;
+}
+
+.PageDocRTL-title div.toc li.level3 {
+  margin-left: 0 !important;
+  margin-right: 30px;
+}
+
+.PageDocRTL-title div.toc li.level4 {
+  margin-left: 0 !important;
+  margin-right: 45px;
+}
+
+.inherit_header {
+        font-weight: bold;
+        color: gray;
+        cursor: pointer;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.inherit_header td {
+        padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+        display: none;
+}
+
+tr.heading h2 {
+        margin-top: 12px;
+        margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+        position: absolute;
+        display: none;
+}
+
+#powerTip {
+	cursor: default;
+	white-space: nowrap;
+	background-color: white;
+	border: 1px solid gray;
+	border-radius: 4px 4px 4px 4px;
+	box-shadow: 1px 1px 7px gray;
+	display: none;
+	font-size: smaller;
+	max-width: 80%;
+	opacity: 0.9;
+	padding: 1ex 1em 1em;
+	position: absolute;
+	z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+        color: grey;
+	font-style: italic;
+}
+
+#powerTip div.ttname a {
+        font-weight: bold;
+}
+
+#powerTip div.ttname {
+        font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+        color: #006318;
+}
+
+#powerTip div {
+        margin: 0px;
+        padding: 0px;
+        font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+	content: "";
+	position: absolute;
+	margin: 0px;
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.w:after,  #powerTip.w:before,
+#powerTip.e:after,  #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	border: solid transparent;
+	content: " ";
+	height: 0;
+	width: 0;
+	position: absolute;
+}
+
+#powerTip.n:after,  #powerTip.s:after,
+#powerTip.w:after,  #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+	border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before,  #powerTip.s:before,
+#powerTip.w:before,  #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+	border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+	top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+	border-top-color: #FFFFFF;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+#powerTip.n:before {
+	border-top-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+	left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+	right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+	left: 14px;
+}
+
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+	border-bottom-color: #FFFFFF;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+	border-bottom-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+	left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+	right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+	left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+	left: 100%;
+}
+#powerTip.e:after {
+	border-left-color: #FFFFFF;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.e:before {
+	border-left-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+	right: 100%;
+}
+#powerTip.w:after {
+	border-right-color: #FFFFFF;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.w:before {
+	border-right-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+@media print
+{
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+}
+
+/* @group Markdown */
+
+table.markdownTable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.markdownTable tr {
+}
+
+th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+th.markdownTableHeadLeft, td.markdownTableBodyLeft {
+	text-align: left
+}
+
+th.markdownTableHeadRight, td.markdownTableBodyRight {
+	text-align: right
+}
+
+th.markdownTableHeadCenter, td.markdownTableBodyCenter {
+	text-align: center
+}
+
+.DocNodeRTL {
+  text-align: right;
+  direction: rtl;
+}
+
+.DocNodeLTR {
+  text-align: left;
+  direction: ltr;
+}
+
+table.DocNodeRTL {
+   width: auto;
+   margin-right: 0;
+   margin-left: auto;
+}
+
+table.DocNodeLTR {
+   width: auto;
+   margin-right: auto;
+   margin-left: 0;
+}
+
+tt, code, kbd, samp
+{
+  display: inline-block;
+  direction:ltr; 
+}
+/* @end */
+
+u {
+	text-decoration: underline;
+}
+
+
+
+
+
+/* NAVTREE */
+
+
+#nav-tree .children_ul {
+  margin:0;
+  padding:4px;
+}
+
+#nav-tree ul {
+  list-style:none outside none;
+  margin:0px;
+  padding:0px;
+}
+
+#nav-tree li {
+  white-space:nowrap;
+  margin:0px;
+  padding:0px;
+}
+
+#nav-tree .plus {
+  margin:0px;
+}
+
+#nav-tree .selected {
+  background-image: none;
+  background-repeat:repeat-x;
+  color: #fff;
+}
+
+#nav-tree img {
+  margin:0px;
+  padding:0px;
+  border:0px;
+  vertical-align: middle;
+}
+
+#nav-tree a {
+  text-decoration:none;
+  padding:0px;
+  margin:0px;
+  outline:none;
+}
+
+#nav-tree .label {
+  margin:0px;
+  padding:0px;
+  font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+#nav-tree .label a {
+  padding:2px;
+}
+
+#nav-tree .selected a {
+  text-decoration:none;
+  color:#fff;
+}
+
+#nav-tree .children_ul {
+  margin:0px;
+  padding:0px;
+}
+
+#nav-tree .item {
+  margin:0px;
+  padding:0px;
+}
+
+#nav-tree {
+  padding: 0px 0px;
+  background-color: #e8fdf5; 
+  font-size:14px;
+  overflow:auto;
+}
+
+#doc-content {
+  overflow:auto;
+  display:block;
+  padding:0px;
+  margin:0px;
+  -webkit-overflow-scrolling : touch; /* iOS 5+ */
+}
+
+#side-nav {
+  padding:0 6px 0 0;
+  margin: 0px;
+  display:block;
+  position: absolute;
+  left: 0px;
+  width: 250px;
+}
+
+.ui-resizable .ui-resizable-handle {
+  display:block;
+}
+
+.ui-resizable-e {
+  background-image:url("splitbar.png");
+  background-size:100%;
+  background-repeat:repeat-y;
+  background-attachment: scroll;
+  cursor:ew-resize;
+  height:100%;
+  right:0;
+  top:0;
+  width:6px;
+}
+
+.ui-resizable-handle {
+  display:none;
+  font-size:0.1px;
+  position:absolute;
+  z-index:1;
+}
+
+#nav-tree-contents {
+  margin: 6px 0px 0px 0px;
+}
+
+#nav-tree {
+  background-image:url('nav_h.png');
+  background-repeat:repeat-x;
+  background-color: #e8fdf5;
+  -webkit-overflow-scrolling : touch; /* iOS 5+ */
+}
+
+#nav-sync {
+  position:absolute;
+  top:5px;
+  right:24px;
+  z-index:0;
+}
+
+#nav-sync img {
+  opacity:0.3;
+}
+
+#nav-sync img:hover {
+  opacity:0.9;
+}
+
+@media print
+{
+  #nav-tree { display: none; }
+  div.ui-resizable-handle { display: none; position: relative; }
+}
+
+
+
+
+
+
+/* TABS */
+
+.tabs, .tabs2, .tabs3 {
+    background-image: none;
+    background-color: transparent;
+    width: 100%;
+    z-index: 101;
+    font-size: 14px;
+    font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+.tabs2 {
+	background-color: rgba( 0, 0, 0, 0.7 );
+    font-size: 12px;
+}
+.tabs3 {
+    font-size: 10px;
+}
+
+.tablist {
+	background-color: #096e48;
+	width: 100%;
+    margin: 0;
+    padding: 0;
+    display: table;
+}
+
+.tablist li {
+    float: left;
+    display: table-cell;
+    background-image: none;
+    line-height: 36px;
+    list-style: none;
+}
+
+.tablist a {
+    display: block;
+    padding: 0 20px;
+    padding-left: 4rem;
+    font-weight: bold;
+    background-image: none;
+    color: #fff;
+    text-shadow: none;
+    text-decoration: none;
+    outline: none;
+}
+
+.tabs3 .tablist a {
+    padding: 0 10px;
+}
+
+.tablist a:hover {
+    background-image: none;
+    background-repeat:repeat-x;
+    color: #ffb700;
+    text-shadow: none;
+    text-decoration: none;
+}
+
+.tablist li.current a {
+    background-image: none;
+    background-repeat:repeat-x;
+    color: #ffb700;
+    text-shadow: none;
+}
+
+
--- /dev/null
+++ b/doxygen/leaf/d__fft__mayer_8h_source.html
@@ -1,0 +1,139 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Externals/d_fft_mayer.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_c32436ea5eb8693473f37766c9d9ff95.html">Externals</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">d_fft_mayer.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * d_fft_mayer.h</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Created: 5/4/2017 10:33:59 PM</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *  Author: Kenny</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> */</span> </div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#ifndef D_FFT_MAYER_H_</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define D_FFT_MAYER_H_</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160; </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">float</span> t_sample;       <span class="comment">/* a float type at most the same size */</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#define REAL t_sample</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keywordtype">void</span> mayer_fht(REAL *fz, <span class="keywordtype">int</span> n);</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keywordtype">void</span> mayer_fft(<span class="keywordtype">int</span> n, REAL *real, REAL *imag);</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keywordtype">void</span> mayer_ifft(<span class="keywordtype">int</span> n, REAL *real, REAL *imag);</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keywordtype">void</span> mayer_realfft(<span class="keywordtype">int</span> n, REAL *real);</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keywordtype">void</span> mayer_realifft(<span class="keywordtype">int</span> n, REAL *real);</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;}</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* D_FFT_MAYER_H_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/dir_127e6aa213d41105176fe0c3bbb2560c.html
@@ -1,0 +1,118 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF Directory Reference</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">LEAF Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:leaf-config_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="leaf-config_8h.html">leaf-config.h</a> <a href="leaf-config_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:leaf-config_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> configuration file. Contains defines for controlling inclusion of various tables. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/dir_2638202b9749e6ce2c919e410b7e2f43.html
@@ -1,0 +1,108 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc Directory Reference</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Inc Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/dir_76a7f9c0effa62c8115652ccf2f83bfd.html
@@ -1,0 +1,108 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Src Directory Reference</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_76a7f9c0effa62c8115652ccf2f83bfd.html">Src</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Src Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/dir_c32436ea5eb8693473f37766c9d9ff95.html
@@ -1,0 +1,108 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Externals Directory Reference</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_c32436ea5eb8693473f37766c9d9ff95.html">Externals</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Externals Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
binary files /dev/null b/doxygen/leaf/doc.png differ
--- /dev/null
+++ b/doxygen/leaf/doxygen.css
@@ -1,0 +1,1766 @@
+/* The standard CSS for doxygen 1.8.16 */
+
+body, table, div, p, dl {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
+p.reference, p.definition {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+	font-size: 150%;
+}
+
+.title {
+	font: 400 14px/28px Roboto,sans-serif;
+	font-size: 150%;
+	font-weight: bold;
+	margin: 10px 2px;
+}
+
+h2.groupheader {
+	border-bottom: 1px solid #879ECB;
+	color: #354C7B;
+	font-size: 150%;
+	font-weight: normal;
+	margin-top: 1.75em;
+	padding-top: 8px;
+	padding-bottom: 4px;
+	width: 100%;
+}
+
+h3.groupheader {
+	font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	-webkit-transition: text-shadow 0.5s linear;
+	-moz-transition: text-shadow 0.5s linear;
+	-ms-transition: text-shadow 0.5s linear;
+	-o-transition: text-shadow 0.5s linear;
+	transition: text-shadow 0.5s linear;
+	margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+	text-shadow: 0 0 15px cyan;
+}
+
+dt {
+	font-weight: bold;
+}
+
+ul.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+	column-count: 3;
+}
+
+p.startli, p.startdd {
+	margin-top: 2px;
+}
+
+p.starttd {
+	margin-top: 0px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+p.interli {
+}
+
+p.interdd {
+}
+
+p.intertd {
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 140%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #3D578C;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #4665A2;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #9CAFD4;
+	color: #FFFFFF;
+	border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+        color: #FFFFFF;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+	color: #4665A2; 
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+	color: #4665A2; 
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+ul {
+  overflow: hidden; /*Fixed: list item bullets overlap floating elements*/
+}
+
+#side-nav ul {
+  overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */
+}
+
+#main-nav ul {
+  overflow: visible; /* reset ul rule for the navigation bar drop down lists */
+}
+
+.fragment {
+  text-align: left;
+  direction: ltr;
+  overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/
+  overflow-y: hidden;
+}
+
+pre.fragment {
+        border: 1px solid #C4CFE5;
+        background-color: #FBFCFD;
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+        overflow: auto;
+        word-wrap: break-word;
+        font-size:  9pt;
+        line-height: 125%;
+        font-family: monospace, fixed;
+        font-size: 105%;
+}
+
+div.fragment {
+  padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/
+  margin: 4px 8px 4px 2px;
+	background-color: #FBFCFD;
+	border: 1px solid #C4CFE5;
+}
+
+div.line {
+	font-family: monospace, fixed;
+        font-size: 13px;
+	min-height: 13px;
+	line-height: 1.0;
+	text-wrap: unrestricted;
+	white-space: -moz-pre-wrap; /* Moz */
+	white-space: -pre-wrap;     /* Opera 4-6 */
+	white-space: -o-pre-wrap;   /* Opera 7 */
+	white-space: pre-wrap;      /* CSS3  */
+	word-wrap: break-word;      /* IE 5.5+ */
+	text-indent: -53px;
+	padding-left: 53px;
+	padding-bottom: 0px;
+	margin: 0px;
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+div.line:after {
+    content:"\000A";
+    white-space: pre;
+}
+
+div.line.glow {
+	background-color: cyan;
+	box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+	padding-right: 4px;
+	text-align: right;
+	border-right: 2px solid #0F0;
+	background-color: #E8E8E8;
+        white-space: pre;
+}
+span.lineno a {
+	background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+	background-color: #C8C8C8;
+}
+
+.lineno {
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+div.ah, span.ah {
+	background-color: black;
+	font-weight: bold;
+	color: #FFFFFF;
+	margin-bottom: 3px;
+	margin-top: 3px;
+	padding: 0.2em;
+	border: solid thin #333;
+	border-radius: 0.5em;
+	-webkit-border-radius: .5em;
+	-moz-border-radius: .5em;
+	box-shadow: 2px 2px 3px #999;
+	-webkit-box-shadow: 2px 2px 3px #999;
+	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
+}
+
+div.classindex ul {
+        list-style: none;
+        padding-left: 0;
+}
+
+div.classindex span.ai {
+        display: inline-block;
+}
+
+div.groupHeader {
+	margin-left: 16px;
+	margin-top: 12px;
+	font-weight: bold;
+}
+
+div.groupText {
+	margin-left: 16px;
+	font-style: italic;
+}
+
+body {
+	background-color: white;
+	color: black;
+        margin: 0;
+}
+
+div.contents {
+	margin-top: 10px;
+	margin-left: 12px;
+	margin-right: 8px;
+}
+
+td.indexkey {
+	background-color: #EBEFF6;
+	font-weight: bold;
+	border: 1px solid #C4CFE5;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+        white-space: nowrap;
+        vertical-align: top;
+}
+
+td.indexvalue {
+	background-color: #EBEFF6;
+	border: 1px solid #C4CFE5;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl, img.inline {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: right;
+	padding-right: 12px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #008000
+}
+
+span.keywordtype {
+	color: #604020
+}
+
+span.keywordflow {
+	color: #e08000
+}
+
+span.comment {
+	color: #800000
+}
+
+span.preprocessor {
+	color: #806020
+}
+
+span.stringliteral {
+	color: #002080
+}
+
+span.charliteral {
+	color: #008080
+}
+
+span.vhdldigit { 
+	color: #ff00ff 
+}
+
+span.vhdlchar { 
+	color: #000000 
+}
+
+span.vhdlkeyword { 
+	color: #700070 
+}
+
+span.vhdllogic { 
+	color: #ff0000 
+}
+
+blockquote {
+        background-color: #F7F8FB;
+        border-left: 2px solid #9CAFD4;
+        margin: 0 24px 0 4px;
+        padding: 0 12px 0 16px;
+}
+
+blockquote.DocNodeRTL {
+   border-left: 0;
+   border-right: 2px solid #9CAFD4;
+   margin: 0 4px 0 24px;
+   padding: 0 16px 0 12px;
+}
+
+/* @end */
+
+/*
+.search {
+	color: #003399;
+	font-weight: bold;
+}
+
+form.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+
+input.search {
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+	background: #EBEFF6;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+	height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+	border-spacing: 0px;
+	padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+	background-color: cyan;
+	box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #F9FAFC;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memSeparator {
+        border-bottom: 1px solid #DEE4F0;
+        line-height: 1px;
+        margin: 0px;
+        padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memItemRight {
+	width: 100%;
+}
+
+.memTemplParams {
+	color: #4665A2;
+        white-space: nowrap;
+	font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtitle {
+	padding: 8px;
+	border-top: 1px solid #A8B8D9;
+	border-left: 1px solid #A8B8D9;
+	border-right: 1px solid #A8B8D9;
+	border-top-right-radius: 4px;
+	border-top-left-radius: 4px;
+	margin-bottom: -1px;
+	background-image: url('nav_f.png');
+	background-repeat: repeat-x;
+	background-color: #E2E8F2;
+	line-height: 1.25;
+	font-weight: 300;
+	float:left;
+}
+
+.permalink
+{
+        font-size: 65%;
+        display: inline-block;
+        vertical-align: middle;
+}
+
+.memtemplate {
+	font-size: 80%;
+	color: #4665A2;
+	font-weight: normal;
+	margin-left: 9px;
+}
+
+.memnav {
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.mempage {
+	width: 100%;
+}
+
+.memitem {
+	padding: 0;
+	margin-bottom: 10px;
+	margin-right: 5px;
+        -webkit-transition: box-shadow 0.5s linear;
+        -moz-transition: box-shadow 0.5s linear;
+        -ms-transition: box-shadow 0.5s linear;
+        -o-transition: box-shadow 0.5s linear;
+        transition: box-shadow 0.5s linear;
+        display: table !important;
+        width: 100%;
+}
+
+.memitem.glow {
+         box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+        font-weight: 400;
+        margin-left: 6px;
+}
+
+.memname td {
+	vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+        border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        background-color: #DFE5F1;
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 4px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 4px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 4px;
+
+}
+
+.overload {
+        font-family: "courier new",courier,monospace;
+	font-size: 65%;
+}
+
+.memdoc, dl.reflist dd {
+        border-bottom: 1px solid #A8B8D9;      
+        border-left: 1px solid #A8B8D9;      
+        border-right: 1px solid #A8B8D9; 
+        padding: 6px 10px 2px 10px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        background-image:url('nav_g.png');
+        background-repeat:repeat-x;
+        background-color: #FFFFFF;
+        /* opera specific markup */
+        border-bottom-left-radius: 4px;
+        border-bottom-right-radius: 4px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 4px;
+        -moz-border-radius-bottomright: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 4px;
+        -webkit-border-bottom-right-radius: 4px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+        padding: 5px;
+}
+
+dl.reflist dd {
+        margin: 0px 0px 10px 0px;
+        padding: 5px;
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #602020;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+.paramname code {
+        line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+        margin-left: 0px;
+        padding-left: 0px;
+}       
+
+.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype, .tparams .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .paramdir, .tparams .paramdir {
+        font-family: "courier new",courier,monospace;
+        vertical-align: top;
+}
+
+table.mlabels {
+	border-spacing: 0px;
+}
+
+td.mlabels-left {
+	width: 100%;
+	padding: 0px;
+}
+
+td.mlabels-right {
+	vertical-align: bottom;
+	padding: 0px;
+	white-space: nowrap;
+}
+
+span.mlabels {
+        margin-left: 8px;
+}
+
+span.mlabel {
+        background-color: #728DC1;
+        border-top:1px solid #5373B4;
+        border-left:1px solid #5373B4;
+        border-right:1px solid #C4CFE5;
+        border-bottom:1px solid #C4CFE5;
+	text-shadow: none;
+	color: white;
+	margin-right: 4px;
+	padding: 2px 3px;
+	border-radius: 3px;
+	font-size: 7pt;
+	white-space: nowrap;
+	vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+        margin: 10px 0px;
+        border-top: 1px solid #9CAFD4;
+        border-bottom: 1px solid #9CAFD4;
+        width: 100%;
+}
+
+.directory table {
+        border-collapse:collapse;
+}
+
+.directory td {
+        margin: 0px;
+        padding: 0px;
+	vertical-align: top;
+}
+
+.directory td.entry {
+        white-space: nowrap;
+        padding-right: 6px;
+	padding-top: 3px;
+}
+
+.directory td.entry a {
+        outline:none;
+}
+
+.directory td.entry a img {
+        border: none;
+}
+
+.directory td.desc {
+        width: 100%;
+        padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 3px;
+	border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+	padding-left: 6px;
+	background-color: #F7F8FB;
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+.directory .levels {
+        white-space: nowrap;
+        width: 100%;
+        text-align: right;
+        font-size: 9pt;
+}
+
+.directory .levels span {
+        cursor: pointer;
+        padding-left: 2px;
+        padding-right: 2px;
+	color: #3D578C;
+}
+
+.arrow {
+    color: #9CAFD4;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+    cursor: pointer;
+    font-size: 80%;
+    display: inline-block;
+    width: 16px;
+    height: 22px;
+}
+
+.icon {
+    font-family: Arial, Helvetica;
+    font-weight: bold;
+    font-size: 12px;
+    height: 14px;
+    width: 16px;
+    display: inline-block;
+    background-color: #728DC1;
+    color: white;
+    text-align: center;
+    border-radius: 4px;
+    margin-left: 2px;
+    margin-right: 2px;
+}
+
+.icona {
+    width: 24px;
+    height: 22px;
+    display: inline-block;
+}
+
+.iconfopen {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('folderopen.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.iconfclosed {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('folderclosed.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.icondoc {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('doc.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+table.directory {
+    font: 400 14px Roboto,sans-serif;
+}
+
+/* @end */
+
+div.dynheader {
+        margin-top: 8px;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+address {
+	font-style: normal;
+	color: #2A3D61;
+}
+
+table.doxtable caption {
+	caption-side: top;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+table.fieldtable {
+        /*width: 100%;*/
+        margin-bottom: 10px;
+        border: 1px solid #A8B8D9;
+        border-spacing: 0px;
+        -moz-border-radius: 4px;
+        -webkit-border-radius: 4px;
+        border-radius: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+        padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+        white-space: nowrap;
+        border-right: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+        padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+        border-bottom: 1px solid #A8B8D9;
+        /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+        margin-top: 0px;
+}       
+        
+.fieldtable td.fielddoc p:last-child {
+        margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+        border-bottom: none;
+}
+
+.fieldtable th {
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+        font-size: 90%;
+        color: #253555;
+        padding-bottom: 4px;
+        padding-top: 5px;
+        text-align:left;
+        font-weight: 400;
+        -moz-border-radius-topleft: 4px;
+        -moz-border-radius-topright: 4px;
+        -webkit-border-top-left-radius: 4px;
+        -webkit-border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        border-top-right-radius: 4px;
+        border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+	top: 0px;
+	left: 10px;
+	height: 36px;
+	background-image: url('tab_b.png');
+	z-index: 101;
+	overflow: hidden;
+	font-size: 13px;
+}
+
+.navpath ul
+{
+	font-size: 11px;
+	background-image:url('tab_b.png');
+	background-repeat:repeat-x;
+	background-position: 0 -5px;
+	height:30px;
+	line-height:30px;
+	color:#8AA0CC;
+	border:solid 1px #C2CDE4;
+	overflow:hidden;
+	margin:0px;
+	padding:0px;
+}
+
+.navpath li
+{
+	list-style-type:none;
+	float:left;
+	padding-left:10px;
+	padding-right:15px;
+	background-image:url('bc_s.png');
+	background-repeat:no-repeat;
+	background-position:right;
+	color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+	height:32px;
+	display:block;
+	text-decoration: none;
+	outline: none;
+	color: #283A5D;
+	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+	text-decoration: none;        
+}
+
+.navpath li.navelem a:hover
+{
+	color:#6884BD;
+}
+
+.navpath li.footer
+{
+        list-style-type:none;
+        float:right;
+        padding-left:10px;
+        padding-right:15px;
+        background-image:none;
+        background-repeat:no-repeat;
+        background-position:right;
+        color:#364D7C;
+        font-size: 8pt;
+}
+
+
+div.summary
+{
+	float: right;
+	font-size: 8pt;
+	padding-right: 5px;
+	width: 50%;
+	text-align: right;
+}       
+
+div.summary a
+{
+	white-space: nowrap;
+}
+
+table.classindex
+{
+        margin: 10px;
+        white-space: nowrap;
+        margin-left: 3%;
+        margin-right: 3%;
+        width: 94%;
+        border: 0;
+        border-spacing: 0; 
+        padding: 0;
+}
+
+div.ingroups
+{
+	font-size: 8pt;
+	width: 50%;
+	text-align: left;
+}
+
+div.ingroups a
+{
+	white-space: nowrap;
+}
+
+div.header
+{
+        background-image:url('nav_h.png');
+        background-repeat:repeat-x;
+	background-color: #F9FAFC;
+	margin:  0px;
+	border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+	padding: 5px 5px 5px 10px;
+}
+
+.PageDocRTL-title div.headertitle {
+  text-align: right;
+  direction: rtl;
+}
+
+dl {
+        padding: 0 0 0 0;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */
+dl.section {
+	margin-left: 0px;
+	padding-left: 0px;
+}
+
+dl.section.DocNodeRTL {
+  margin-right: 0px;
+  padding-right: 0px;
+}
+
+dl.note {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #D0C000;
+}
+
+dl.note.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #D0C000;
+}
+
+dl.warning, dl.attention {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #FF0000;
+}
+
+dl.warning.DocNodeRTL, dl.attention.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #00D000;
+}
+
+dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #00D000;
+}
+
+dl.deprecated {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #505050;
+}
+
+dl.deprecated.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #505050;
+}
+
+dl.todo {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #00C0E0;
+}
+
+dl.todo.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #00C0E0;
+}
+
+dl.test {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #3030E0;
+}
+
+dl.test.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #3030E0;
+}
+
+dl.bug {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #C08050;
+}
+
+dl.bug.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #C08050;
+}
+
+dl.section dd {
+	margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+	text-align: center;
+	vertical-align: bottom;
+	border-collapse: separate;
+}
+ 
+#projectlogo img
+{ 
+	border: 0px none;
+}
+ 
+#projectalign
+{
+        vertical-align: middle;
+}
+
+#projectname
+{
+	font: 300% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 2px 0px;
+}
+    
+#projectbrief
+{
+	font: 120% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#projectnumber
+{
+	font: 50% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#titlearea
+{
+	padding: 0px;
+	margin: 0px;
+	width: 100%;
+	border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+        text-align: center;
+}
+
+.dotgraph
+{
+        text-align: center;
+}
+
+.mscgraph
+{
+        text-align: center;
+}
+
+.plantumlgraph
+{
+        text-align: center;
+}
+
+.diagraph
+{
+        text-align: center;
+}
+
+.caption
+{
+	font-weight: bold;
+}
+
+div.zoom
+{
+	border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+        margin-bottom:50px;
+}
+
+dl.citelist dt {
+        color:#334975;
+        float:left;
+        font-weight:bold;
+        margin-right:10px;
+        padding:5px;
+}
+
+dl.citelist dd {
+        margin:2px 0;
+        padding:5px 0;
+}
+
+div.toc {
+        padding: 14px 25px;
+        background-color: #F4F6FA;
+        border: 1px solid #D8DFEE;
+        border-radius: 7px 7px 7px 7px;
+        float: right;
+        height: auto;
+        margin: 0 8px 10px 10px;
+        width: 200px;
+}
+
+.PageDocRTL-title div.toc {
+  float: left !important;
+  text-align: right;
+}
+
+div.toc li {
+        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+        margin-top: 5px;
+        padding-left: 10px;
+        padding-top: 2px;
+}
+
+.PageDocRTL-title div.toc li {
+  background-position-x: right !important;
+  padding-left: 0 !important;
+  padding-right: 10px;
+}
+
+div.toc h3 {
+        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+	color: #4665A2;
+        border-bottom: 0 none;
+        margin: 0;
+}
+
+div.toc ul {
+        list-style: none outside none;
+        border: medium none;
+        padding: 0px;
+}       
+
+div.toc li.level1 {
+        margin-left: 0px;
+}
+
+div.toc li.level2 {
+        margin-left: 15px;
+}
+
+div.toc li.level3 {
+        margin-left: 30px;
+}
+
+div.toc li.level4 {
+        margin-left: 45px;
+}
+
+.PageDocRTL-title div.toc li.level1 {
+  margin-left: 0 !important;
+  margin-right: 0;
+}
+
+.PageDocRTL-title div.toc li.level2 {
+  margin-left: 0 !important;
+  margin-right: 15px;
+}
+
+.PageDocRTL-title div.toc li.level3 {
+  margin-left: 0 !important;
+  margin-right: 30px;
+}
+
+.PageDocRTL-title div.toc li.level4 {
+  margin-left: 0 !important;
+  margin-right: 45px;
+}
+
+.inherit_header {
+        font-weight: bold;
+        color: gray;
+        cursor: pointer;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.inherit_header td {
+        padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+        display: none;
+}
+
+tr.heading h2 {
+        margin-top: 12px;
+        margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+        position: absolute;
+        display: none;
+}
+
+#powerTip {
+	cursor: default;
+	white-space: nowrap;
+	background-color: white;
+	border: 1px solid gray;
+	border-radius: 4px 4px 4px 4px;
+	box-shadow: 1px 1px 7px gray;
+	display: none;
+	font-size: smaller;
+	max-width: 80%;
+	opacity: 0.9;
+	padding: 1ex 1em 1em;
+	position: absolute;
+	z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+        color: grey;
+	font-style: italic;
+}
+
+#powerTip div.ttname a {
+        font-weight: bold;
+}
+
+#powerTip div.ttname {
+        font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+        color: #006318;
+}
+
+#powerTip div {
+        margin: 0px;
+        padding: 0px;
+        font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+	content: "";
+	position: absolute;
+	margin: 0px;
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.w:after,  #powerTip.w:before,
+#powerTip.e:after,  #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	border: solid transparent;
+	content: " ";
+	height: 0;
+	width: 0;
+	position: absolute;
+}
+
+#powerTip.n:after,  #powerTip.s:after,
+#powerTip.w:after,  #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+	border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before,  #powerTip.s:before,
+#powerTip.w:before,  #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+	border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+	top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+	border-top-color: #FFFFFF;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+#powerTip.n:before {
+	border-top-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+	left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+	right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+	left: 14px;
+}
+
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+	border-bottom-color: #FFFFFF;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+	border-bottom-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+	left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+	right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+	left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+	left: 100%;
+}
+#powerTip.e:after {
+	border-left-color: #FFFFFF;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.e:before {
+	border-left-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+	right: 100%;
+}
+#powerTip.w:after {
+	border-right-color: #FFFFFF;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.w:before {
+	border-right-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+@media print
+{
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+}
+
+/* @group Markdown */
+
+/*
+table.markdownTable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.markdownTableHead tr {
+}
+
+table.markdownTableBodyLeft td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+th.markdownTableHeadLeft {
+	text-align: left
+}
+
+th.markdownTableHeadRight {
+	text-align: right
+}
+
+th.markdownTableHeadCenter {
+	text-align: center
+}
+*/
+
+table.markdownTable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.markdownTable tr {
+}
+
+th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+th.markdownTableHeadLeft, td.markdownTableBodyLeft {
+	text-align: left
+}
+
+th.markdownTableHeadRight, td.markdownTableBodyRight {
+	text-align: right
+}
+
+th.markdownTableHeadCenter, td.markdownTableBodyCenter {
+	text-align: center
+}
+
+.DocNodeRTL {
+  text-align: right;
+  direction: rtl;
+}
+
+.DocNodeLTR {
+  text-align: left;
+  direction: ltr;
+}
+
+table.DocNodeRTL {
+   width: auto;
+   margin-right: 0;
+   margin-left: auto;
+}
+
+table.DocNodeLTR {
+   width: auto;
+   margin-right: auto;
+   margin-left: 0;
+}
+
+tt, code, kbd, samp
+{
+  display: inline-block;
+  direction:ltr; 
+}
+/* @end */
+
+u {
+	text-decoration: underline;
+}
+
binary files /dev/null b/doxygen/leaf/doxygen.png differ
--- /dev/null
+++ b/doxygen/leaf/dynsections.js
@@ -1,0 +1,120 @@
+/*
+ @licstart  The following is the entire license notice for the
+ JavaScript code in this file.
+
+ Copyright (C) 1997-2017 by Dimitri van Heesch
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ @licend  The above is the entire license notice
+ for the JavaScript code in this file
+ */
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+   content.hide();
+   summary.show();
+   $(linkObj).addClass('closed').removeClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+   content.show();
+   summary.hide();
+   $(linkObj).removeClass('closed').addClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+ return false;
+}
+
+function updateStripes()
+{
+  $('table.directory tr').
+       removeClass('even').filter(':visible:even').addClass('even');
+}
+
+function toggleLevel(level)
+{
+  $('table.directory tr').each(function() {
+    var l = this.id.split('_').length-1;
+    var i = $('#img'+this.id.substring(3));
+    var a = $('#arr'+this.id.substring(3));
+    if (l<level+1) {
+      i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
+      a.html('&#9660;');
+      $(this).show();
+    } else if (l==level+1) {
+      i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
+      a.html('&#9658;');
+      $(this).show();
+    } else {
+      $(this).hide();
+    }
+  });
+  updateStripes();
+}
+
+function toggleFolder(id)
+{
+  // the clicked row
+  var currentRow = $('#row_'+id);
+
+  // all rows after the clicked row
+  var rows = currentRow.nextAll("tr");
+
+  var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+
+  // only match elements AFTER this one (can't hide elements before)
+  var childRows = rows.filter(function() { return this.id.match(re); });
+
+  // first row is visible we are HIDING
+  if (childRows.filter(':first').is(':visible')===true) {
+    // replace down arrow by right arrow for current row
+    var currentRowSpans = currentRow.find("span");
+    currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+    currentRowSpans.filter(".arrow").html('&#9658;');
+    rows.filter("[id^=row_"+id+"]").hide(); // hide all children
+  } else { // we are SHOWING
+    // replace right arrow by down arrow for current row
+    var currentRowSpans = currentRow.find("span");
+    currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
+    currentRowSpans.filter(".arrow").html('&#9660;');
+    // replace down arrows by right arrows for child rows
+    var childRowsSpans = childRows.find("span");
+    childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+    childRowsSpans.filter(".arrow").html('&#9658;');
+    childRows.show(); //show all children
+  }
+  updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+  var rows = $('tr.inherit.'+id);
+  var img = $('tr.inherit_header.'+id+' img');
+  var src = $(img).attr('src');
+  if (rows.filter(':first').is(':visible')===true) {
+    rows.css('display','none');
+    $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+  } else {
+    rows.css('display','table-row'); // using show() causes jump in firefox
+    $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+  }
+}
+/* @license-end */
--- /dev/null
+++ b/doxygen/leaf/examples.html
@@ -1,0 +1,102 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Examples</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li class="current"><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Examples</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all examples:</div><ul>
+<li><a class="el" href="basic-oscillators_8c-example.html">basic-oscillators.c</a></li>
+
+</ul>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/files.html
@@ -1,0 +1,133 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: File List</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">File List</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html" target="_self">LEAF</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span id="img_0_0_" class="iconfopen" onclick="toggleFolder('0_0_')">&#160;</span><a class="el" href="dir_c32436ea5eb8693473f37766c9d9ff95.html" target="_self">Externals</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="d__fft__mayer_8h_source.html"><span class="icondoc"></span></a><b>d_fft_mayer.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="trigtbl_8h_source.html"><span class="icondoc"></span></a><b>trigtbl.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_1_" class="arrow" onclick="toggleFolder('0_1_')">&#9660;</span><span id="img_0_1_" class="iconfopen" onclick="toggleFolder('0_1_')">&#160;</span><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html" target="_self">Inc</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-analysis_8h_source.html"><span class="icondoc"></span></a><b>leaf-analysis.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-delay_8h_source.html"><span class="icondoc"></span></a><b>leaf-delay.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_2_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-distortion_8h_source.html"><span class="icondoc"></span></a><b>leaf-distortion.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_3_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-dynamics_8h_source.html"><span class="icondoc"></span></a><b>leaf-dynamics.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_4_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-effects_8h_source.html"><span class="icondoc"></span></a><b>leaf-effects.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_5_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-electrical_8h_source.html"><span class="icondoc"></span></a><b>leaf-electrical.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_6_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-envelopes_8h_source.html"><span class="icondoc"></span></a><b>leaf-envelopes.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_7_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-filters_8h_source.html"><span class="icondoc"></span></a><b>leaf-filters.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_8_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-global_8h_source.html"><span class="icondoc"></span></a><b>leaf-global.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_9_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-instruments_8h_source.html"><span class="icondoc"></span></a><b>leaf-instruments.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_10_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-math_8h_source.html"><span class="icondoc"></span></a><b>leaf-math.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_11_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-mempool_8h_source.html"><span class="icondoc"></span></a><b>leaf-mempool.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_12_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-midi_8h_source.html"><span class="icondoc"></span></a><b>leaf-midi.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_13_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-oscillators_8h_source.html"><span class="icondoc"></span></a><b>leaf-oscillators.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_14_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-physical_8h_source.html"><span class="icondoc"></span></a><b>leaf-physical.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_15_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-reverb_8h_source.html"><span class="icondoc"></span></a><b>leaf-reverb.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_16_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-sampling_8h_source.html"><span class="icondoc"></span></a><b>leaf-sampling.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_17_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="leaf-tables_8h_source.html"><span class="icondoc"></span></a><b>leaf-tables.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="leaf-config_8h_source.html"><span class="icondoc"></span></a><a class="el" href="leaf-config_8h.html" target="_self">leaf-config.h</a></td><td class="desc"><a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> configuration file. Contains defines for controlling inclusion of various tables </td></tr>
+<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="leaf_8h_source.html"><span class="icondoc"></span></a><b>leaf.h</b></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
binary files /dev/null b/doxygen/leaf/folderclosed.png differ
binary files /dev/null b/doxygen/leaf/folderopen.png differ
--- /dev/null
+++ b/doxygen/leaf/functions.html
@@ -1,0 +1,139 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Data Fields</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:</div><ul>
+<li>blockSize
+: <a class="el" href="struct_l_e_a_f.html#a4aaa73e329d20f35039fa5cdd2e6f648">LEAF</a>
+</li>
+<li>clearOnAllocation
+: <a class="el" href="struct_l_e_a_f.html#ad65a59f4aa73365d2e77aeddfca7a449">LEAF</a>
+</li>
+<li>errorCallback
+: <a class="el" href="struct_l_e_a_f.html#a7c7ae1db705b3fdea2bec18add896856">LEAF</a>
+</li>
+<li>errorState
+: <a class="el" href="struct_l_e_a_f.html#afdc66be5b816adc061930cf832328a44">LEAF</a>
+</li>
+<li>header_size
+: <a class="el" href="struct_l_e_a_f.html#a64f1d0c53909f30b0aac882348cd32f2">LEAF</a>
+</li>
+<li>invSampleRate
+: <a class="el" href="struct_l_e_a_f.html#ae4c744f56f561ff4acc66ba4bd3ed201">LEAF</a>
+</li>
+<li>mempool
+: <a class="el" href="struct_l_e_a_f.html#a8bcf1ce65df673f85688cca6f0883723">LEAF</a>
+</li>
+<li>random
+: <a class="el" href="struct_l_e_a_f.html#a8b5a79e58a190779d202a188f82e9e86">LEAF</a>
+</li>
+<li>sampleRate
+: <a class="el" href="struct_l_e_a_f.html#af6a61da668f2188e2850eba261e217c4">LEAF</a>
+</li>
+<li>twoPiTimesInvSampleRate
+: <a class="el" href="struct_l_e_a_f.html#aabd759d3fcb8411249ab4813424e6b29">LEAF</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/functions_vars.html
@@ -1,0 +1,139 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Data Fields - Variables</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>blockSize
+: <a class="el" href="struct_l_e_a_f.html#a4aaa73e329d20f35039fa5cdd2e6f648">LEAF</a>
+</li>
+<li>clearOnAllocation
+: <a class="el" href="struct_l_e_a_f.html#ad65a59f4aa73365d2e77aeddfca7a449">LEAF</a>
+</li>
+<li>errorCallback
+: <a class="el" href="struct_l_e_a_f.html#a7c7ae1db705b3fdea2bec18add896856">LEAF</a>
+</li>
+<li>errorState
+: <a class="el" href="struct_l_e_a_f.html#afdc66be5b816adc061930cf832328a44">LEAF</a>
+</li>
+<li>header_size
+: <a class="el" href="struct_l_e_a_f.html#a64f1d0c53909f30b0aac882348cd32f2">LEAF</a>
+</li>
+<li>invSampleRate
+: <a class="el" href="struct_l_e_a_f.html#ae4c744f56f561ff4acc66ba4bd3ed201">LEAF</a>
+</li>
+<li>mempool
+: <a class="el" href="struct_l_e_a_f.html#a8bcf1ce65df673f85688cca6f0883723">LEAF</a>
+</li>
+<li>random
+: <a class="el" href="struct_l_e_a_f.html#a8b5a79e58a190779d202a188f82e9e86">LEAF</a>
+</li>
+<li>sampleRate
+: <a class="el" href="struct_l_e_a_f.html#af6a61da668f2188e2850eba261e217c4">LEAF</a>
+</li>
+<li>twoPiTimesInvSampleRate
+: <a class="el" href="struct_l_e_a_f.html#aabd759d3fcb8411249ab4813424e6b29">LEAF</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/globals.html
@@ -1,0 +1,132 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Globals</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div><ul>
+<li>LEAF_INCLUDE_ADSR_TABLES
+: <a class="el" href="leaf-config_8h.html#ac97160952072d68ef1b972822ad272ae">leaf-config.h</a>
+</li>
+<li>LEAF_INCLUDE_FILTERTAN_TABLE
+: <a class="el" href="leaf-config_8h.html#aab2893efe703eab3bb551c9add5ef387">leaf-config.h</a>
+</li>
+<li>LEAF_INCLUDE_MINBLEP_TABLES
+: <a class="el" href="leaf-config_8h.html#a48382d3ccd1f8b5133cc39e5dfec6407">leaf-config.h</a>
+</li>
+<li>LEAF_INCLUDE_OVERSAMPLER_TABLES
+: <a class="el" href="leaf-config_8h.html#aa1d86fcc131ab6f1789217ed6706606b">leaf-config.h</a>
+</li>
+<li>LEAF_INCLUDE_SAWTOOTH_TABLE
+: <a class="el" href="leaf-config_8h.html#adc140cd309979869fe8a593cb4f1ee48">leaf-config.h</a>
+</li>
+<li>LEAF_INCLUDE_SINE_TABLE
+: <a class="el" href="leaf-config_8h.html#a6b45f1d5e0e5f16ef2b7bcfa5c2b69c3">leaf-config.h</a>
+</li>
+<li>LEAF_INCLUDE_SQUARE_TABLE
+: <a class="el" href="leaf-config_8h.html#aeea32201ca1663099f453916e852547d">leaf-config.h</a>
+</li>
+<li>LEAF_INCLUDE_TRIANGLE_TABLE
+: <a class="el" href="leaf-config_8h.html#aae5a99a230cd12d10d9b2011c8461787">leaf-config.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/globals_defs.html
@@ -1,0 +1,132 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Globals</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>LEAF_INCLUDE_ADSR_TABLES
+: <a class="el" href="leaf-config_8h.html#ac97160952072d68ef1b972822ad272ae">leaf-config.h</a>
+</li>
+<li>LEAF_INCLUDE_FILTERTAN_TABLE
+: <a class="el" href="leaf-config_8h.html#aab2893efe703eab3bb551c9add5ef387">leaf-config.h</a>
+</li>
+<li>LEAF_INCLUDE_MINBLEP_TABLES
+: <a class="el" href="leaf-config_8h.html#a48382d3ccd1f8b5133cc39e5dfec6407">leaf-config.h</a>
+</li>
+<li>LEAF_INCLUDE_OVERSAMPLER_TABLES
+: <a class="el" href="leaf-config_8h.html#aa1d86fcc131ab6f1789217ed6706606b">leaf-config.h</a>
+</li>
+<li>LEAF_INCLUDE_SAWTOOTH_TABLE
+: <a class="el" href="leaf-config_8h.html#adc140cd309979869fe8a593cb4f1ee48">leaf-config.h</a>
+</li>
+<li>LEAF_INCLUDE_SINE_TABLE
+: <a class="el" href="leaf-config_8h.html#a6b45f1d5e0e5f16ef2b7bcfa5c2b69c3">leaf-config.h</a>
+</li>
+<li>LEAF_INCLUDE_SQUARE_TABLE
+: <a class="el" href="leaf-config_8h.html#aeea32201ca1663099f453916e852547d">leaf-config.h</a>
+</li>
+<li>LEAF_INCLUDE_TRIANGLE_TABLE
+: <a class="el" href="leaf-config_8h.html#aae5a99a230cd12d10d9b2011c8461787">leaf-config.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__analysis.html
@@ -1,0 +1,139 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Analysis</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#groups">Modules</a>  </div>
+  <div class="headertitle">
+<div class="title">Analysis</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Signal analysis.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:group__tenvelopefollower"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvelopefollower.html">tEnvelopeFollower</a></td></tr>
+<tr class="memdesc:group__tenvelopefollower"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detects and returns the basic envelope of incoming audio data. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tzerocrossingcounter"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tzerocrossingcounter.html">tZeroCrossingCounter</a></td></tr>
+<tr class="memdesc:group__tzerocrossingcounter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Count the amount of zero crossings within a window of the input audio data. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tpowerfollower"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpowerfollower.html">tPowerFollower</a></td></tr>
+<tr class="memdesc:group__tpowerfollower"><td class="mdescLeft">&#160;</td><td class="mdescRight">Measure and follow the power of an input signal using an exponential moving average for smoothing. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tenvpd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvpd.html">tEnvPD</a></td></tr>
+<tr class="memdesc:group__tenvpd"><td class="mdescLeft">&#160;</td><td class="mdescRight">ENV~ from PD, modified for <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tattackdetection"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tattackdetection.html">tAttackDetection</a></td></tr>
+<tr class="memdesc:group__tattackdetection"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detect attacks in an input signal. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tsnac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsnac.html">tSNAC</a></td></tr>
+<tr class="memdesc:group__tsnac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Component of period detection algorithm from Katja Vetters <a href="http://www.katjaas.nl/helmholtz/helmholtz.html">http://www.katjaas.nl/helmholtz/helmholtz.html</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tperioddetection"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetection.html">tPeriodDetection</a></td></tr>
+<tr class="memdesc:group__tperioddetection"><td class="mdescLeft">&#160;</td><td class="mdescRight">Period detection algorithm from Katja Vetters <a href="http://www.katjaas.nl/helmholtz/helmholtz.html">http://www.katjaas.nl/helmholtz/helmholtz.html</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tperioddetector"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetector.html">tPeriodDetector</a></td></tr>
+<tr class="memdesc:group__tperioddetector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Period detection algorithm from Joel de Guzman's Q Audio DSP Library. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tpitchdetector"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpitchdetector.html">tPitchDetector</a></td></tr>
+<tr class="memdesc:group__tpitchdetector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pitch detection algorithm from Joel de Guzman's Q Audio DSP Library. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tdualpitchdetector"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdualpitchdetector.html">tDualPitchDetector</a></td></tr>
+<tr class="memdesc:group__tdualpitchdetector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Combined pitch detection algorithm using both Joel de Guzman's Q Audio DSP Library and Katya Vetters algorithms. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Signal analysis. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__delay.html
@@ -1,0 +1,127 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Delay</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#groups">Modules</a>  </div>
+  <div class="headertitle">
+<div class="title">Delay</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Delays.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:group__tdelay"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdelay.html">tDelay</a></td></tr>
+<tr class="memdesc:group__tdelay"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-interpolating delay, reimplemented from STK (Cook and Scavone). <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tlineardelay"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlineardelay.html">tLinearDelay</a></td></tr>
+<tr class="memdesc:group__tlineardelay"><td class="mdescLeft">&#160;</td><td class="mdescRight">Linearly-interpolating delay, reimplemented from STK (Cook and Scavone). <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__thermitedelay"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html">tHermiteDelay</a></td></tr>
+<tr class="memdesc:group__thermitedelay"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hermite-interpolating delay, created by adapting STK linear delay with Hermite interpolation. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tallpassdelay"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpassdelay.html">tAllpassDelay</a></td></tr>
+<tr class="memdesc:group__tallpassdelay"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allpass-interpolating delay, reimplemented from STK (Cook and Scavone). <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__ttapedelay"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttapedelay.html">tTapeDelay</a></td></tr>
+<tr class="memdesc:group__ttapedelay"><td class="mdescLeft">&#160;</td><td class="mdescRight">Linear interpolating delay with fixed read and write pointers, variable rate. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tringbuffer"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tringbuffer.html">tRingBuffer</a></td></tr>
+<tr class="memdesc:group__tringbuffer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ring buffer. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Delays. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__distortion.html
@@ -1,0 +1,121 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Distortion</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#groups">Modules</a>  </div>
+  <div class="headertitle">
+<div class="title">Distortion</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Degradation and oversampling.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:group__tsamplereducer"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsamplereducer.html">tSampleReducer</a></td></tr>
+<tr class="memdesc:group__tsamplereducer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sample rate reducer. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__toversampler"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__toversampler.html">tOversampler</a></td></tr>
+<tr class="memdesc:group__toversampler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Oversampler. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tlockhartwavefolder"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlockhartwavefolder.html">tLockhartWavefolder</a></td></tr>
+<tr class="memdesc:group__tlockhartwavefolder"><td class="mdescLeft">&#160;</td><td class="mdescRight">Analog model wavefolder. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tcrusher"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcrusher.html">tCrusher</a></td></tr>
+<tr class="memdesc:group__tcrusher"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bit depth and sampler rate degrader. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Degradation and oversampling. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__dynamics.html
@@ -1,0 +1,118 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Dynamics</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#groups">Modules</a>  </div>
+  <div class="headertitle">
+<div class="title">Dynamics</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Compression and levelling.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:group__tcompressor"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcompressor.html">tCompressor</a></td></tr>
+<tr class="memdesc:group__tcompressor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard compressor. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tfeedbackleveler"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html">tFeedbackLeveler</a></td></tr>
+<tr class="memdesc:group__tfeedbackleveler"><td class="mdescLeft">&#160;</td><td class="mdescRight">An auto VCA that you put into a feedback circuit to make it stay at the same level. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tthreshold"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tthreshold.html">tThreshold</a></td></tr>
+<tr class="memdesc:group__tthreshold"><td class="mdescLeft">&#160;</td><td class="mdescRight">Threshold with hysteresis (like Max/MSP thresh~ object) <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Compression and levelling. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__effects.html
@@ -1,0 +1,136 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Effects</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#groups">Modules</a>  </div>
+  <div class="headertitle">
+<div class="title">Effects</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Vocoders, pitch shifters, and more.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:group__ttalkbox"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkbox.html">tTalkbox</a></td></tr>
+<tr class="memdesc:group__ttalkbox"><td class="mdescLeft">&#160;</td><td class="mdescRight">High resolution vocoder from mda using Levinson-Durbin LPC algorithm. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__ttalkboxfloat"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkboxfloat.html">tTalkboxFloat</a></td></tr>
+<tr class="memdesc:group__ttalkboxfloat"><td class="mdescLeft">&#160;</td><td class="mdescRight">High resolution vocoder from mda using Levinson-Durbin LPC algorithm. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tvocoder"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvocoder.html">tVocoder</a></td></tr>
+<tr class="memdesc:group__tvocoder"><td class="mdescLeft">&#160;</td><td class="mdescRight">Channel vocoder from mda. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__trosenbergglottalpulse"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trosenbergglottalpulse.html">tRosenbergGlottalPulse</a></td></tr>
+<tr class="memdesc:group__trosenbergglottalpulse"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rosenberg glottal pulse approximator. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tsolad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsolad.html">tSOLAD</a></td></tr>
+<tr class="memdesc:group__tsolad"><td class="mdescLeft">&#160;</td><td class="mdescRight">pitch shifting algorithm that underlies tRetune etc from Katja Vetters <a href="http://www.katjaas.nl/pitchshiftlowlatency/pitchshiftlowlatency.html">http://www.katjaas.nl/pitchshiftlowlatency/pitchshiftlowlatency.html</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tpitchshift"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpitchshift.html">tPitchShift</a></td></tr>
+<tr class="memdesc:group__tpitchshift"><td class="mdescLeft">&#160;</td><td class="mdescRight">SOLAD-based pitch shifter. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tsimpleretune"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimpleretune.html">tSimpleRetune</a></td></tr>
+<tr class="memdesc:group__tsimpleretune"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrapper for multiple pitch shifters with single-channel output. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tretune"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tretune.html">tRetune</a></td></tr>
+<tr class="memdesc:group__tretune"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrapper for multiple pitch shifters with multi-channel output. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tformantshifter"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tformantshifter.html">tFormantShifter</a></td></tr>
+<tr class="memdesc:group__tformantshifter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formant remover and adder, allowing for formant shifting. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Vocoders, pitch shifters, and more. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__electrical.html
@@ -1,0 +1,112 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Electrical Models</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#groups">Modules</a>  </div>
+  <div class="headertitle">
+<div class="title">Electrical Models</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Circuit models.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:group__twdf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twdf.html">tWDF</a></td></tr>
+<tr class="memdesc:group__twdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wave digital filter component. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Circuit models. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__envelopes.html
@@ -1,0 +1,132 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Envelopes</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#groups">Modules</a>  </div>
+  <div class="headertitle">
+<div class="title">Envelopes</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Envelopes and smoothers.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:group__tenvelope"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvelope.html">tEnvelope</a></td></tr>
+<tr class="memdesc:group__tenvelope"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic attack-decay envelope. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__texpsmooth"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__texpsmooth.html">tExpSmooth</a></td></tr>
+<tr class="memdesc:group__texpsmooth"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exponential curve smoother. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tadsr"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr.html">tADSR</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tasdr2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tasdr2.html">tADSR2</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tadsr3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr3.html">tADSR3</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tadsr4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr4.html">tADSR4</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tramp"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tramp.html">tRamp</a></td></tr>
+<tr class="memdesc:group__tramp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Value ramp. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__trampupdown"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trampupdown.html">tRampUpDown</a></td></tr>
+<tr class="memdesc:group__trampupdown"><td class="mdescLeft">&#160;</td><td class="mdescRight">Value ramp with variable rate depending on direction. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tslide"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tslide.html">tSlide</a></td></tr>
+<tr class="memdesc:group__tslide"><td class="mdescLeft">&#160;</td><td class="mdescRight">Based on Max/MSP's slide~. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Envelopes and smoothers. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__filters.html
@@ -1,0 +1,154 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Filters</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#groups">Modules</a>  </div>
+  <div class="headertitle">
+<div class="title">Filters</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Filters.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:group__tallpass"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpass.html">tAllpass</a></td></tr>
+<tr class="memdesc:group__tallpass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schroeder allpass. Comb-filter with feedforward and feedback. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tonepole"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonepole.html">tOnePole</a></td></tr>
+<tr class="memdesc:group__tonepole"><td class="mdescLeft">&#160;</td><td class="mdescRight">OnePole filter, reimplemented from STK (Cook and Scavone). <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__ttwopole"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwopole.html">tTwoPole</a></td></tr>
+<tr class="memdesc:group__ttwopole"><td class="mdescLeft">&#160;</td><td class="mdescRight">TwoPole filter, reimplemented from STK (Cook and Scavone). <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tonezero"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonezero.html">tOneZero</a></td></tr>
+<tr class="memdesc:group__tonezero"><td class="mdescLeft">&#160;</td><td class="mdescRight">OneZero filter, reimplemented from STK (Cook and Scavone). <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__ttwozero"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwozero.html">tTwoZero</a></td></tr>
+<tr class="memdesc:group__ttwozero"><td class="mdescLeft">&#160;</td><td class="mdescRight">TwoZero filter, reimplemented from STK (Cook and Scavone). <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tpolezero"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpolezero.html">tPoleZero</a></td></tr>
+<tr class="memdesc:group__tpolezero"><td class="mdescLeft">&#160;</td><td class="mdescRight">PoleZero filter, reimplemented from STK (Cook and Scavone). <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tbiquad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbiquad.html">tBiQuad</a></td></tr>
+<tr class="memdesc:group__tbiquad"><td class="mdescLeft">&#160;</td><td class="mdescRight">BiQuad filter, reimplemented from STK (Cook and Scavone). <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tsvf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsvf.html">tSVF</a></td></tr>
+<tr class="memdesc:group__tsvf"><td class="mdescLeft">&#160;</td><td class="mdescRight">State Variable Filter, algorithm from Andy Simper. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tefficientsvf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tefficientsvf.html">tEfficientSVF</a></td></tr>
+<tr class="memdesc:group__tefficientsvf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Efficient State Variable Filter for 14-bit control input, [0, 4096). <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__thighpass"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thighpass.html">tHighpass</a></td></tr>
+<tr class="memdesc:group__thighpass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simple Highpass filter. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tbutterworth"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbutterworth.html">tButterworth</a></td></tr>
+<tr class="memdesc:group__tbutterworth"><td class="mdescLeft">&#160;</td><td class="mdescRight">Butterworth filter. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tfir"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfir.html">tFIR</a></td></tr>
+<tr class="memdesc:group__tfir"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finite impulse response filter. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tmedianfilter"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmedianfilter.html">tMedianFilter</a></td></tr>
+<tr class="memdesc:group__tmedianfilter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Median filter. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tvzfilter"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvzfilter.html">tVZFilter</a></td></tr>
+<tr class="memdesc:group__tvzfilter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vadim Zavalishin style from VA book (from implementation in RSlib posted to kvr forum) <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tdiodefilter"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdiodefilter.html">tDiodeFilter</a></td></tr>
+<tr class="memdesc:group__tdiodefilter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diode filter. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Filters. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__instruments.html
@@ -1,0 +1,121 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Instruments</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#groups">Modules</a>  </div>
+  <div class="headertitle">
+<div class="title">Instruments</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Instruments.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:group__t808cowbell"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808cowbell.html">t808Cowbell</a></td></tr>
+<tr class="memdesc:group__t808cowbell"><td class="mdescLeft">&#160;</td><td class="mdescRight">808 drum machine cowbell. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__t808hihat"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808hihat.html">t808Hihat</a></td></tr>
+<tr class="memdesc:group__t808hihat"><td class="mdescLeft">&#160;</td><td class="mdescRight">808 drum machine hihat. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__t808snare"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808snare.html">t808Snare</a></td></tr>
+<tr class="memdesc:group__t808snare"><td class="mdescLeft">&#160;</td><td class="mdescRight">808 drum machine snare. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__t808kick"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808kick.html">t808Kick</a></td></tr>
+<tr class="memdesc:group__t808kick"><td class="mdescLeft">&#160;</td><td class="mdescRight">808 drum machine kick. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Instruments. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__leaf.html
@@ -1,0 +1,323 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a>  </div>
+  <div class="headertitle">
+<div class="title">LEAF</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The structure of an instance of <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a>.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_l_e_a_f.html">LEAF</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct for an instance of <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a>.  <a href="struct_l_e_a_f.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga13fefd14706bd5d85346066660f3c9eb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__leaf.html#ga13fefd14706bd5d85346066660f3c9eb">LEAF_init</a> (<a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf, float sampleRate, int blockSize, char *memory, size_t memorySize, float(*random)(void))</td></tr>
+<tr class="memdesc:ga13fefd14706bd5d85346066660f3c9eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__leaf.html#ga13fefd14706bd5d85346066660f3c9eb">More...</a><br /></td></tr>
+<tr class="separator:ga13fefd14706bd5d85346066660f3c9eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab84d5b2ad600cc920248996c86b72f9f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__leaf.html#gab84d5b2ad600cc920248996c86b72f9f">LEAF_setSampleRate</a> (<a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf, float sampleRate)</td></tr>
+<tr class="memdesc:gab84d5b2ad600cc920248996c86b72f9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the sample rate of <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a>.  <a href="group__leaf.html#gab84d5b2ad600cc920248996c86b72f9f">More...</a><br /></td></tr>
+<tr class="separator:gab84d5b2ad600cc920248996c86b72f9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf680c38a6e3234739e57391650dea267"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__leaf.html#gaf680c38a6e3234739e57391650dea267">LEAF_getSampleRate</a> (<a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gaf680c38a6e3234739e57391650dea267"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the sample rate of <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a>.  <a href="group__leaf.html#gaf680c38a6e3234739e57391650dea267">More...</a><br /></td></tr>
+<tr class="separator:gaf680c38a6e3234739e57391650dea267"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6ad73444bc6f242c30a83bddbd120052"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__leaf.html#ga6ad73444bc6f242c30a83bddbd120052">LEAF_defaultErrorCallback</a> (<a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf, LEAFErrorType errorType)</td></tr>
+<tr class="memdesc:ga6ad73444bc6f242c30a83bddbd120052"><td class="mdescLeft">&#160;</td><td class="mdescRight">The default callback function for <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> errors.  <a href="group__leaf.html#ga6ad73444bc6f242c30a83bddbd120052">More...</a><br /></td></tr>
+<tr class="separator:ga6ad73444bc6f242c30a83bddbd120052"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga046f5f075ebc4562b8e2d97de4b69536"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__leaf.html#ga046f5f075ebc4562b8e2d97de4b69536">LEAF_setErrorCallback</a> (<a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf, void(*callback)(<a class="el" href="struct_l_e_a_f.html">LEAF</a> *const, LEAFErrorType))</td></tr>
+<tr class="memdesc:ga046f5f075ebc4562b8e2d97de4b69536"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the callback function for <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> errors.  <a href="group__leaf.html#ga046f5f075ebc4562b8e2d97de4b69536">More...</a><br /></td></tr>
+<tr class="separator:ga046f5f075ebc4562b8e2d97de4b69536"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>The structure of an instance of <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a>. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga13fefd14706bd5d85346066660f3c9eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga13fefd14706bd5d85346066660f3c9eb">&#9670;&nbsp;</a></span>LEAF_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void LEAF_init </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sampleRate</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>blockSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>memory</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>memorySize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float(*)(void)&#160;</td>
+          <td class="paramname"><em>random</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize the <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampleRate</td><td>The audio sample rate. </td></tr>
+    <tr><td class="paramname">blockSize</td><td>The audio block size. </td></tr>
+    <tr><td class="paramname">memory</td><td>A pointer to the memory that will make up the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </td></tr>
+    <tr><td class="paramname">memorySize</td><td>The size of the memory that will make up the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </td></tr>
+    <tr><td class="paramname">random</td><td>A pointer to a random number function. Should return a float &gt;= 0 and &lt; 1. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="basic-oscillators_8c-example.html#a1">basic-oscillators.c</a>.</dd>
+</dl>
+
+</div>
+</div>
+<a id="gab84d5b2ad600cc920248996c86b72f9f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab84d5b2ad600cc920248996c86b72f9f">&#9670;&nbsp;</a></span>LEAF_setSampleRate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void LEAF_setSampleRate </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sampleRate</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the sample rate of <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampleRate</td><td>The new audio sample rate. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf680c38a6e3234739e57391650dea267"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf680c38a6e3234739e57391650dea267">&#9670;&nbsp;</a></span>LEAF_getSampleRate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float LEAF_getSampleRate </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the sample rate of <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a>. </p>
+<dl class="section return"><dt>Returns</dt><dd>The current sample rate as a float. </dd></dl>
+
+</div>
+</div>
+<a id="ga6ad73444bc6f242c30a83bddbd120052"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6ad73444bc6f242c30a83bddbd120052">&#9670;&nbsp;</a></span>LEAF_defaultErrorCallback()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void LEAF_defaultErrorCallback </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">LEAFErrorType&#160;</td>
+          <td class="paramname"><em>errorType</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The default callback function for <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> errors. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">errorType</td><td>The type of the error that has occurred. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga046f5f075ebc4562b8e2d97de4b69536"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga046f5f075ebc4562b8e2d97de4b69536">&#9670;&nbsp;</a></span>LEAF_setErrorCallback()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void LEAF_setErrorCallback </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void(*)(<a class="el" href="struct_l_e_a_f.html">LEAF</a> *const, LEAFErrorType)&#160;</td>
+          <td class="paramname"><em>callback</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the callback function for <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> errors. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">callback</td><td>A pointer to the callback function. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__math.html
@@ -1,0 +1,103 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Math</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Math</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Math functions.  
+<a href="#details">More...</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Math functions. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__mempool.html
@@ -1,0 +1,112 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Mempool</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#groups">Modules</a>  </div>
+  <div class="headertitle">
+<div class="title">Mempool</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Memory allocation.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:group__tmempool"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmempool.html">tMempool</a></td></tr>
+<tr class="memdesc:group__tmempool"><td class="mdescLeft">&#160;</td><td class="mdescRight">Memory pool for the allocation of <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> objects. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Memory allocation. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__midi.html
@@ -1,0 +1,118 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: MIDI</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#groups">Modules</a>  </div>
+  <div class="headertitle">
+<div class="title">MIDI</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>MIDI handling.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:group__tstack"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tstack.html">tStack</a></td></tr>
+<tr class="memdesc:group__tstack"><td class="mdescLeft">&#160;</td><td class="mdescRight">A basic stack of integers with a fixed capacity of 128, used by tPoly to keep track of MIDI notes. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tpoly"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html">tPoly</a></td></tr>
+<tr class="memdesc:group__tpoly"><td class="mdescLeft">&#160;</td><td class="mdescRight">Polyphony handler with glide and pitch bend options. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tsimplepoly"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplepoly.html">tSimplePoly</a></td></tr>
+<tr class="memdesc:group__tsimplepoly"><td class="mdescLeft">&#160;</td><td class="mdescRight">Polyphony handler. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>MIDI handling. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__oscillators.html
@@ -1,0 +1,157 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Oscillators</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#groups">Modules</a>  </div>
+  <div class="headertitle">
+<div class="title">Oscillators</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Oscillators and generators.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:group__ttable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttable.html">tTable</a></td></tr>
+<tr class="memdesc:group__ttable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simple aliasing wavetable oscillator. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__twavetable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twavetable.html">tWavetable</a></td></tr>
+<tr class="memdesc:group__twavetable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Anti-aliased wavetable oscillator. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tcompactwavetable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcompactwavetable.html">tCompactWavetable</a></td></tr>
+<tr class="memdesc:group__tcompactwavetable"><td class="mdescLeft">&#160;</td><td class="mdescRight">A more space-efficient anti-aliased wavetable oscillator than tWavetable but with slightly worse fidelity. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tcycle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcycle.html">tCycle</a></td></tr>
+<tr class="memdesc:group__tcycle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wavetable cycle/sine wave oscillator. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__ttriangle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttriangle.html">tTriangle</a></td></tr>
+<tr class="memdesc:group__ttriangle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Anti-aliased wavetable triangle wave oscillator. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tsquare"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsquare.html">tSquare</a></td></tr>
+<tr class="memdesc:group__tsquare"><td class="mdescLeft">&#160;</td><td class="mdescRight">Anti-aliased wavetable square wave oscillator. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tsawtooth"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsawtooth.html">tSawtooth</a></td></tr>
+<tr class="memdesc:group__tsawtooth"><td class="mdescLeft">&#160;</td><td class="mdescRight">Anti-aliased wavetable saw wave oscillator. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__ttri"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttri.html">tTri</a></td></tr>
+<tr class="memdesc:group__ttri"><td class="mdescLeft">&#160;</td><td class="mdescRight">Triangle wave oscillator with polyBLEP anti-aliasing. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tpulse"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpulse.html">tPulse</a></td></tr>
+<tr class="memdesc:group__tpulse"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pulse wave oscillator with polyBLEP anti-aliasing. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tsaw"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsaw.html">tSaw</a></td></tr>
+<tr class="memdesc:group__tsaw"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saw wave oscillator with polyBLEP anti-aliasing. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tphasor"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tphasor.html">tPhasor</a></td></tr>
+<tr class="memdesc:group__tphasor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aliasing phasor. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tnoise"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tnoise.html">tNoise</a></td></tr>
+<tr class="memdesc:group__tnoise"><td class="mdescLeft">&#160;</td><td class="mdescRight">Noise generator, capable of producing white or pink noise. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tneuron"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html">tNeuron</a></td></tr>
+<tr class="memdesc:group__tneuron"><td class="mdescLeft">&#160;</td><td class="mdescRight">Model of a neuron, adapted to act as an oscillator. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tmbpulse"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbpulse.html">tMBPulse</a></td></tr>
+<tr class="memdesc:group__tmbpulse"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pulse wave oscillator with minBLEP anti-aliasing. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tmbtriangle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbtriangle.html">tMBTriangle</a></td></tr>
+<tr class="memdesc:group__tmbtriangle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Triangle wave oscillator with minBLEP anti-aliasing. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tmbsaw"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbsaw.html">tMBSaw</a></td></tr>
+<tr class="memdesc:group__tmbsaw"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saw wave oscillator with minBLEP anti-aliasing. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Oscillators and generators. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__physical.html
@@ -1,0 +1,127 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Physical Models</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#groups">Modules</a>  </div>
+  <div class="headertitle">
+<div class="title">Physical Models</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>String models and more.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:group__tpluck"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpluck.html">tPluck</a></td></tr>
+<tr class="memdesc:group__tpluck"><td class="mdescLeft">&#160;</td><td class="mdescRight">Karplus-Strong model. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tkarplusstrong"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tkarplusstrong.html">tKarplusStrong</a></td></tr>
+<tr class="memdesc:group__tkarplusstrong"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stiff Karplus-Strong model. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tsimplelivingstring"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplelivingstring.html">tSimpleLivingString</a></td></tr>
+<tr class="memdesc:group__tsimplelivingstring"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simplified string model. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tlivingstring"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlivingstring.html">tLivingString</a></td></tr>
+<tr class="memdesc:group__tlivingstring"><td class="mdescLeft">&#160;</td><td class="mdescRight">String model. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tcomplexlivingstring"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html">tComplexLivingString</a></td></tr>
+<tr class="memdesc:group__tcomplexlivingstring"><td class="mdescLeft">&#160;</td><td class="mdescRight">Complex string model. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__treedtable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__treedtable.html">tReedTable</a></td></tr>
+<tr class="memdesc:group__treedtable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reed Table - borrowed from STK. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>String models and more. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__reverb.html
@@ -1,0 +1,118 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Reverb</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#groups">Modules</a>  </div>
+  <div class="headertitle">
+<div class="title">Reverb</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Reverbs.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:group__tprcreverb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tprcreverb.html">tPRCReverb</a></td></tr>
+<tr class="memdesc:group__tprcreverb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reverb, reimplemented from STK (Cook and Scavone). <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tnreverb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tnreverb.html">tNReverb</a></td></tr>
+<tr class="memdesc:group__tnreverb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reverb, reimplemented from STK (Cook and Scavone). <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tdattorroreverb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdattorroreverb.html">tDattorroReverb</a></td></tr>
+<tr class="memdesc:group__tdattorroreverb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dattorro plate reverb. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Reverbs. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__sampling.html
@@ -1,0 +1,121 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Sampling</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#groups">Modules</a>  </div>
+  <div class="headertitle">
+<div class="title">Sampling</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Samplers.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:group__tbuffer"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html">tBuffer</a></td></tr>
+<tr class="memdesc:group__tbuffer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Buffer for use in Sampler objects. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tsampler"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsampler.html">tSampler</a></td></tr>
+<tr class="memdesc:group__tsampler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loopable input sampler with crossfading. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__tautosampler"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautosampler.html">tAutoSampler</a></td></tr>
+<tr class="memdesc:group__tautosampler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Automatic sampler based on power of input. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__t_m_b_sampler"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t_m_b_sampler.html">tMBSampler</a></td></tr>
+<tr class="memdesc:group__t_m_b_sampler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loopable input sampler using minBLEP to remove discontinuities. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Samplers. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__t808cowbell.html
@@ -1,0 +1,509 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: t808Cowbell</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">t808Cowbell<div class="ingroups"><a class="el" href="group__instruments.html">Instruments</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>808 drum machine cowbell.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gad73082119a3ea30b5531c683617d007b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808cowbell.html#gad73082119a3ea30b5531c683617d007b">t808Cowbell_init</a> (t808Cowbell *const, int useStick, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gad73082119a3ea30b5531c683617d007b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a t808Cowbell to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__t808cowbell.html#gad73082119a3ea30b5531c683617d007b">More...</a><br /></td></tr>
+<tr class="separator:gad73082119a3ea30b5531c683617d007b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga99059721c541953474999ddd3bb59913"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808cowbell.html#ga99059721c541953474999ddd3bb59913">t808Cowbell_initToPool</a> (t808Cowbell *const, int useStick, tMempool *const)</td></tr>
+<tr class="memdesc:ga99059721c541953474999ddd3bb59913"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a t808Cowbell to a specified mempool.  <a href="group__t808cowbell.html#ga99059721c541953474999ddd3bb59913">More...</a><br /></td></tr>
+<tr class="separator:ga99059721c541953474999ddd3bb59913"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf582d380f2b6af70344a3a8b4ae04d09"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808cowbell.html#gaf582d380f2b6af70344a3a8b4ae04d09">t808Cowbell_free</a> (t808Cowbell *const)</td></tr>
+<tr class="memdesc:gaf582d380f2b6af70344a3a8b4ae04d09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a t808Cowbell from its mempool.  <a href="group__t808cowbell.html#gaf582d380f2b6af70344a3a8b4ae04d09">More...</a><br /></td></tr>
+<tr class="separator:gaf582d380f2b6af70344a3a8b4ae04d09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga58c18da70d7dbe34f5074dd3864950ec"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808cowbell.html#ga58c18da70d7dbe34f5074dd3864950ec">t808Cowbell_tick</a> (t808Cowbell *const)</td></tr>
+<tr class="separator:ga58c18da70d7dbe34f5074dd3864950ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0345c870253d83d7328ddcaa8cd5962f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808cowbell.html#ga0345c870253d83d7328ddcaa8cd5962f">t808Cowbell_on</a> (t808Cowbell *const, float vel)</td></tr>
+<tr class="separator:ga0345c870253d83d7328ddcaa8cd5962f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7f1e2a1ce97bb32cba4c8c55ea23ccd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808cowbell.html#gaa7f1e2a1ce97bb32cba4c8c55ea23ccd">t808Cowbell_setDecay</a> (t808Cowbell *const, float decay)</td></tr>
+<tr class="separator:gaa7f1e2a1ce97bb32cba4c8c55ea23ccd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7d3ae5159a1e71f7a48e2888b931d6a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808cowbell.html#ga7d3ae5159a1e71f7a48e2888b931d6a6">t808Cowbell_setHighpassFreq</a> (t808Cowbell *const, float freq)</td></tr>
+<tr class="separator:ga7d3ae5159a1e71f7a48e2888b931d6a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab2b2eb374bdd28d96dc91e279cf7f8c8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808cowbell.html#gab2b2eb374bdd28d96dc91e279cf7f8c8">t808Cowbell_setBandpassFreq</a> (t808Cowbell *const, float freq)</td></tr>
+<tr class="separator:gab2b2eb374bdd28d96dc91e279cf7f8c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga231f7ba0e351caf6989db61a37229c49"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808cowbell.html#ga231f7ba0e351caf6989db61a37229c49">t808Cowbell_setFreq</a> (t808Cowbell *const, float freq)</td></tr>
+<tr class="separator:ga231f7ba0e351caf6989db61a37229c49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8547ef62c511459d58c1c10636a4ff0e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808cowbell.html#ga8547ef62c511459d58c1c10636a4ff0e">t808Cowbell_setOscMix</a> (t808Cowbell *const, float oscMix)</td></tr>
+<tr class="separator:ga8547ef62c511459d58c1c10636a4ff0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2da4c28c28924e77adb14a477bc2b099"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808cowbell.html#ga2da4c28c28924e77adb14a477bc2b099">t808Cowbell_setStick</a> (t808Cowbell *const, int useStick)</td></tr>
+<tr class="separator:ga2da4c28c28924e77adb14a477bc2b099"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>808 drum machine cowbell. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gad73082119a3ea30b5531c683617d007b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad73082119a3ea30b5531c683617d007b">&#9670;&nbsp;</a></span>t808Cowbell_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Cowbell_init </td>
+          <td>(</td>
+          <td class="paramtype">t808Cowbell * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>useStick</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a t808Cowbell to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">cowbell</td><td>A pointer to the t808Cowbell to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga99059721c541953474999ddd3bb59913"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga99059721c541953474999ddd3bb59913">&#9670;&nbsp;</a></span>t808Cowbell_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Cowbell_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">t808Cowbell * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>useStick</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a t808Cowbell to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">cowbell</td><td>A pointer to the t808Cowbell to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf582d380f2b6af70344a3a8b4ae04d09"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf582d380f2b6af70344a3a8b4ae04d09">&#9670;&nbsp;</a></span>t808Cowbell_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Cowbell_free </td>
+          <td>(</td>
+          <td class="paramtype">t808Cowbell * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a t808Cowbell from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">cowbell</td><td>A pointer to the t808Cowbell to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga58c18da70d7dbe34f5074dd3864950ec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga58c18da70d7dbe34f5074dd3864950ec">&#9670;&nbsp;</a></span>t808Cowbell_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float t808Cowbell_tick </td>
+          <td>(</td>
+          <td class="paramtype">t808Cowbell * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">cowbell</td><td>A pointer to the relevant t808Cowbell. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0345c870253d83d7328ddcaa8cd5962f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0345c870253d83d7328ddcaa8cd5962f">&#9670;&nbsp;</a></span>t808Cowbell_on()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Cowbell_on </td>
+          <td>(</td>
+          <td class="paramtype">t808Cowbell * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>vel</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">cowbell</td><td>A pointer to the relevant t808Cowbell. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa7f1e2a1ce97bb32cba4c8c55ea23ccd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa7f1e2a1ce97bb32cba4c8c55ea23ccd">&#9670;&nbsp;</a></span>t808Cowbell_setDecay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Cowbell_setDecay </td>
+          <td>(</td>
+          <td class="paramtype">t808Cowbell * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">cowbell</td><td>A pointer to the relevant t808Cowbell. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7d3ae5159a1e71f7a48e2888b931d6a6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7d3ae5159a1e71f7a48e2888b931d6a6">&#9670;&nbsp;</a></span>t808Cowbell_setHighpassFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Cowbell_setHighpassFreq </td>
+          <td>(</td>
+          <td class="paramtype">t808Cowbell * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">cowbell</td><td>A pointer to the relevant t808Cowbell. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab2b2eb374bdd28d96dc91e279cf7f8c8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab2b2eb374bdd28d96dc91e279cf7f8c8">&#9670;&nbsp;</a></span>t808Cowbell_setBandpassFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Cowbell_setBandpassFreq </td>
+          <td>(</td>
+          <td class="paramtype">t808Cowbell * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">cowbell</td><td>A pointer to the relevant t808Cowbell. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga231f7ba0e351caf6989db61a37229c49"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga231f7ba0e351caf6989db61a37229c49">&#9670;&nbsp;</a></span>t808Cowbell_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Cowbell_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">t808Cowbell * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">cowbell</td><td>A pointer to the relevant t808Cowbell. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8547ef62c511459d58c1c10636a4ff0e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8547ef62c511459d58c1c10636a4ff0e">&#9670;&nbsp;</a></span>t808Cowbell_setOscMix()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Cowbell_setOscMix </td>
+          <td>(</td>
+          <td class="paramtype">t808Cowbell * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>oscMix</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">cowbell</td><td>A pointer to the relevant t808Cowbell. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2da4c28c28924e77adb14a477bc2b099"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2da4c28c28924e77adb14a477bc2b099">&#9670;&nbsp;</a></span>t808Cowbell_setStick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Cowbell_setStick </td>
+          <td>(</td>
+          <td class="paramtype">t808Cowbell * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>useStick</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">cowbell</td><td>A pointer to the relevant t808Cowbell. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__t808hihat.html
@@ -1,0 +1,641 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: t808Hihat</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">t808Hihat<div class="ingroups"><a class="el" href="group__instruments.html">Instruments</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>808 drum machine hihat.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga90cf7603e94540308461463f738d120a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808hihat.html#ga90cf7603e94540308461463f738d120a">t808Hihat_init</a> (t808Hihat *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga90cf7603e94540308461463f738d120a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a t808Hihat to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__t808hihat.html#ga90cf7603e94540308461463f738d120a">More...</a><br /></td></tr>
+<tr class="separator:ga90cf7603e94540308461463f738d120a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1aa220309fb3475977ea7878105a8d1d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808hihat.html#ga1aa220309fb3475977ea7878105a8d1d">t808Hihat_initToPool</a> (t808Hihat *const, tMempool *const)</td></tr>
+<tr class="memdesc:ga1aa220309fb3475977ea7878105a8d1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a t808Hihat to a specified mempool.  <a href="group__t808hihat.html#ga1aa220309fb3475977ea7878105a8d1d">More...</a><br /></td></tr>
+<tr class="separator:ga1aa220309fb3475977ea7878105a8d1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacdf51e9c89696dfe6347bbf5bd750795"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808hihat.html#gacdf51e9c89696dfe6347bbf5bd750795">t808Hihat_free</a> (t808Hihat *const)</td></tr>
+<tr class="memdesc:gacdf51e9c89696dfe6347bbf5bd750795"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a t808Hihat from its mempool.  <a href="group__t808hihat.html#gacdf51e9c89696dfe6347bbf5bd750795">More...</a><br /></td></tr>
+<tr class="separator:gacdf51e9c89696dfe6347bbf5bd750795"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacd110ae0db13491f0eb4aa27b75b3cc0"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808hihat.html#gacd110ae0db13491f0eb4aa27b75b3cc0">t808Hihat_tick</a> (t808Hihat *const)</td></tr>
+<tr class="separator:gacd110ae0db13491f0eb4aa27b75b3cc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae906b0f89ba9a5ec113512e943b06762"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808hihat.html#gae906b0f89ba9a5ec113512e943b06762">t808Hihat_on</a> (t808Hihat *const, float vel)</td></tr>
+<tr class="separator:gae906b0f89ba9a5ec113512e943b06762"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga450a85981e478ea7bf7990b7867dfa7c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808hihat.html#ga450a85981e478ea7bf7990b7867dfa7c">t808Hihat_setOscNoiseMix</a> (t808Hihat *const, float oscNoiseMix)</td></tr>
+<tr class="separator:ga450a85981e478ea7bf7990b7867dfa7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe362829712b47febbc622a133c978eb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808hihat.html#gafe362829712b47febbc622a133c978eb">t808Hihat_setDecay</a> (t808Hihat *const, float decay)</td></tr>
+<tr class="separator:gafe362829712b47febbc622a133c978eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacece6ca1e3cc6bfe0b5b1ba1ef310a4d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808hihat.html#gacece6ca1e3cc6bfe0b5b1ba1ef310a4d">t808Hihat_setHighpassFreq</a> (t808Hihat *const, float freq)</td></tr>
+<tr class="separator:gacece6ca1e3cc6bfe0b5b1ba1ef310a4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga86f81ed83bf120be74b1d49c8e409ba9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808hihat.html#ga86f81ed83bf120be74b1d49c8e409ba9">t808Hihat_setOscBandpassFreq</a> (t808Hihat *const, float freq)</td></tr>
+<tr class="separator:ga86f81ed83bf120be74b1d49c8e409ba9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacfd6ccfd7606aa878c6b5a2b4abb646c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808hihat.html#gacfd6ccfd7606aa878c6b5a2b4abb646c">t808Hihat_setOscBandpassQ</a> (t808Hihat *const hihat, float Q)</td></tr>
+<tr class="separator:gacfd6ccfd7606aa878c6b5a2b4abb646c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac877fd8a5108ee60ce9bc9629c673749"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808hihat.html#gac877fd8a5108ee60ce9bc9629c673749">t808Hihat_setStickBandPassFreq</a> (t808Hihat *const, float freq)</td></tr>
+<tr class="separator:gac877fd8a5108ee60ce9bc9629c673749"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga554517ecfcd8d7c4f46d97a2be3d11ee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808hihat.html#ga554517ecfcd8d7c4f46d97a2be3d11ee">t808Hihat_setStickBandPassQ</a> (t808Hihat *const hihat, float Q)</td></tr>
+<tr class="separator:ga554517ecfcd8d7c4f46d97a2be3d11ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad9633cc3f51a6ce583c1941309582427"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808hihat.html#gad9633cc3f51a6ce583c1941309582427">t808Hihat_setOscFreq</a> (t808Hihat *const, float freq)</td></tr>
+<tr class="separator:gad9633cc3f51a6ce583c1941309582427"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae236e3f43e6099c9b6047bac2b72ab9a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808hihat.html#gae236e3f43e6099c9b6047bac2b72ab9a">t808Hihat_setStretch</a> (t808Hihat *const hihat, float stretch)</td></tr>
+<tr class="separator:gae236e3f43e6099c9b6047bac2b72ab9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa2611ffc113296265543a92ebcb1b772"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808hihat.html#gaa2611ffc113296265543a92ebcb1b772">t808Hihat_setFM</a> (t808Hihat *const hihat, float FM_amount)</td></tr>
+<tr class="separator:gaa2611ffc113296265543a92ebcb1b772"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>808 drum machine hihat. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga90cf7603e94540308461463f738d120a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga90cf7603e94540308461463f738d120a">&#9670;&nbsp;</a></span>t808Hihat_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Hihat_init </td>
+          <td>(</td>
+          <td class="paramtype">t808Hihat * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a t808Hihat to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hihat</td><td>A pointer to the t808Hihat to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1aa220309fb3475977ea7878105a8d1d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1aa220309fb3475977ea7878105a8d1d">&#9670;&nbsp;</a></span>t808Hihat_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Hihat_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">t808Hihat * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a t808Hihat to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hihat</td><td>A pointer to the t808Hihat to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gacdf51e9c89696dfe6347bbf5bd750795"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacdf51e9c89696dfe6347bbf5bd750795">&#9670;&nbsp;</a></span>t808Hihat_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Hihat_free </td>
+          <td>(</td>
+          <td class="paramtype">t808Hihat * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a t808Hihat from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hihat</td><td>A pointer to the t808Hihat to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gacd110ae0db13491f0eb4aa27b75b3cc0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacd110ae0db13491f0eb4aa27b75b3cc0">&#9670;&nbsp;</a></span>t808Hihat_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float t808Hihat_tick </td>
+          <td>(</td>
+          <td class="paramtype">t808Hihat * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hihat</td><td>A pointer to the relevant t808Hihat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae906b0f89ba9a5ec113512e943b06762"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae906b0f89ba9a5ec113512e943b06762">&#9670;&nbsp;</a></span>t808Hihat_on()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Hihat_on </td>
+          <td>(</td>
+          <td class="paramtype">t808Hihat * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>vel</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hihat</td><td>A pointer to the relevant t808Hihat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga450a85981e478ea7bf7990b7867dfa7c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga450a85981e478ea7bf7990b7867dfa7c">&#9670;&nbsp;</a></span>t808Hihat_setOscNoiseMix()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Hihat_setOscNoiseMix </td>
+          <td>(</td>
+          <td class="paramtype">t808Hihat * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>oscNoiseMix</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hihat</td><td>A pointer to the relevant t808Hihat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gafe362829712b47febbc622a133c978eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafe362829712b47febbc622a133c978eb">&#9670;&nbsp;</a></span>t808Hihat_setDecay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Hihat_setDecay </td>
+          <td>(</td>
+          <td class="paramtype">t808Hihat * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hihat</td><td>A pointer to the relevant t808Hihat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gacece6ca1e3cc6bfe0b5b1ba1ef310a4d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacece6ca1e3cc6bfe0b5b1ba1ef310a4d">&#9670;&nbsp;</a></span>t808Hihat_setHighpassFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Hihat_setHighpassFreq </td>
+          <td>(</td>
+          <td class="paramtype">t808Hihat * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hihat</td><td>A pointer to the relevant t808Hihat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga86f81ed83bf120be74b1d49c8e409ba9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga86f81ed83bf120be74b1d49c8e409ba9">&#9670;&nbsp;</a></span>t808Hihat_setOscBandpassFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Hihat_setOscBandpassFreq </td>
+          <td>(</td>
+          <td class="paramtype">t808Hihat * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hihat</td><td>A pointer to the relevant t808Hihat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gacfd6ccfd7606aa878c6b5a2b4abb646c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacfd6ccfd7606aa878c6b5a2b4abb646c">&#9670;&nbsp;</a></span>t808Hihat_setOscBandpassQ()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Hihat_setOscBandpassQ </td>
+          <td>(</td>
+          <td class="paramtype">t808Hihat *const&#160;</td>
+          <td class="paramname"><em>hihat</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>Q</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hihat</td><td>A pointer to the relevant t808Hihat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac877fd8a5108ee60ce9bc9629c673749"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac877fd8a5108ee60ce9bc9629c673749">&#9670;&nbsp;</a></span>t808Hihat_setStickBandPassFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Hihat_setStickBandPassFreq </td>
+          <td>(</td>
+          <td class="paramtype">t808Hihat * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hihat</td><td>A pointer to the relevant t808Hihat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga554517ecfcd8d7c4f46d97a2be3d11ee"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga554517ecfcd8d7c4f46d97a2be3d11ee">&#9670;&nbsp;</a></span>t808Hihat_setStickBandPassQ()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Hihat_setStickBandPassQ </td>
+          <td>(</td>
+          <td class="paramtype">t808Hihat *const&#160;</td>
+          <td class="paramname"><em>hihat</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>Q</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hihat</td><td>A pointer to the relevant t808Hihat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad9633cc3f51a6ce583c1941309582427"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad9633cc3f51a6ce583c1941309582427">&#9670;&nbsp;</a></span>t808Hihat_setOscFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Hihat_setOscFreq </td>
+          <td>(</td>
+          <td class="paramtype">t808Hihat * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hihat</td><td>A pointer to the relevant t808Hihat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae236e3f43e6099c9b6047bac2b72ab9a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae236e3f43e6099c9b6047bac2b72ab9a">&#9670;&nbsp;</a></span>t808Hihat_setStretch()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Hihat_setStretch </td>
+          <td>(</td>
+          <td class="paramtype">t808Hihat *const&#160;</td>
+          <td class="paramname"><em>hihat</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>stretch</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hihat</td><td>A pointer to the relevant t808Hihat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa2611ffc113296265543a92ebcb1b772"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa2611ffc113296265543a92ebcb1b772">&#9670;&nbsp;</a></span>t808Hihat_setFM()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Hihat_setFM </td>
+          <td>(</td>
+          <td class="paramtype">t808Hihat *const&#160;</td>
+          <td class="paramname"><em>hihat</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>FM_amount</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hihat</td><td>A pointer to the relevant t808Hihat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__t808kick.html
@@ -1,0 +1,569 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: t808Kick</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">t808Kick<div class="ingroups"><a class="el" href="group__instruments.html">Instruments</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>808 drum machine kick.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gadf0610a6f55caa8fe2bce29be8ae5866"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808kick.html#gadf0610a6f55caa8fe2bce29be8ae5866">t808Kick_init</a> (t808Kick *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gadf0610a6f55caa8fe2bce29be8ae5866"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a t808Kick to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__t808kick.html#gadf0610a6f55caa8fe2bce29be8ae5866">More...</a><br /></td></tr>
+<tr class="separator:gadf0610a6f55caa8fe2bce29be8ae5866"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0126a59483e835ffb84686ded5ffe4db"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808kick.html#ga0126a59483e835ffb84686ded5ffe4db">t808Kick_initToPool</a> (t808Kick *const, tMempool *const)</td></tr>
+<tr class="memdesc:ga0126a59483e835ffb84686ded5ffe4db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a t808Kick to a specified mempool.  <a href="group__t808kick.html#ga0126a59483e835ffb84686ded5ffe4db">More...</a><br /></td></tr>
+<tr class="separator:ga0126a59483e835ffb84686ded5ffe4db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga29c6085b72a735d53c2112d574b53019"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808kick.html#ga29c6085b72a735d53c2112d574b53019">t808Kick_free</a> (t808Kick *const)</td></tr>
+<tr class="memdesc:ga29c6085b72a735d53c2112d574b53019"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a t808Kick from its mempool.  <a href="group__t808kick.html#ga29c6085b72a735d53c2112d574b53019">More...</a><br /></td></tr>
+<tr class="separator:ga29c6085b72a735d53c2112d574b53019"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3bba7e177c2b54fadb802277ee4df1d1"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808kick.html#ga3bba7e177c2b54fadb802277ee4df1d1">t808Kick_tick</a> (t808Kick *const)</td></tr>
+<tr class="separator:ga3bba7e177c2b54fadb802277ee4df1d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga412fef7686fb7b6a6f9a545de1dd66c6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808kick.html#ga412fef7686fb7b6a6f9a545de1dd66c6">t808Kick_on</a> (t808Kick *const, float vel)</td></tr>
+<tr class="separator:ga412fef7686fb7b6a6f9a545de1dd66c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabb6ccbf278eacb145026c24591a0d37c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808kick.html#gabb6ccbf278eacb145026c24591a0d37c">t808Kick_setToneFreq</a> (t808Kick *const, float freq)</td></tr>
+<tr class="separator:gabb6ccbf278eacb145026c24591a0d37c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5c40b2f7ee8815cd3b50a52f33f69e50"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808kick.html#ga5c40b2f7ee8815cd3b50a52f33f69e50">t808Kick_setToneDecay</a> (t808Kick *const, float decay)</td></tr>
+<tr class="separator:ga5c40b2f7ee8815cd3b50a52f33f69e50"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf7d43ae5eeb2f104773e33f128d04ad7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808kick.html#gaf7d43ae5eeb2f104773e33f128d04ad7">t808Kick_setNoiseDecay</a> (t808Kick *const, float decay)</td></tr>
+<tr class="separator:gaf7d43ae5eeb2f104773e33f128d04ad7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacc0caa60a523b68eec29d7a6391021ba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808kick.html#gacc0caa60a523b68eec29d7a6391021ba">t808Kick_setSighAmount</a> (t808Kick *const, float sigh)</td></tr>
+<tr class="separator:gacc0caa60a523b68eec29d7a6391021ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5d87bb00168c68eb2c818bcb215998a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808kick.html#ga5d87bb00168c68eb2c818bcb215998a4">t808Kick_setChirpAmount</a> (t808Kick *const, float chirp)</td></tr>
+<tr class="separator:ga5d87bb00168c68eb2c818bcb215998a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8f8bf7a1fcd13931e431e7adf073de68"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808kick.html#ga8f8bf7a1fcd13931e431e7adf073de68">t808Kick_setToneNoiseMix</a> (t808Kick *const, float toneNoiseMix)</td></tr>
+<tr class="separator:ga8f8bf7a1fcd13931e431e7adf073de68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8595d5622afa9ca641b082f016969d25"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808kick.html#ga8595d5622afa9ca641b082f016969d25">t808Kick_setNoiseFilterFreq</a> (t808Kick *const, float noiseFilterFreq)</td></tr>
+<tr class="separator:ga8595d5622afa9ca641b082f016969d25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafccd007bf99d7997189694ae37ec568e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808kick.html#gafccd007bf99d7997189694ae37ec568e">t808Kick_setNoiseFilterQ</a> (t808Kick *const, float noiseFilterQ)</td></tr>
+<tr class="separator:gafccd007bf99d7997189694ae37ec568e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>808 drum machine kick. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gadf0610a6f55caa8fe2bce29be8ae5866"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gadf0610a6f55caa8fe2bce29be8ae5866">&#9670;&nbsp;</a></span>t808Kick_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Kick_init </td>
+          <td>(</td>
+          <td class="paramtype">t808Kick * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a t808Kick to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">kick</td><td>A pointer to the t808Kick to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0126a59483e835ffb84686ded5ffe4db"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0126a59483e835ffb84686ded5ffe4db">&#9670;&nbsp;</a></span>t808Kick_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Kick_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">t808Kick * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a t808Kick to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">kick</td><td>A pointer to the t808Kick to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga29c6085b72a735d53c2112d574b53019"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga29c6085b72a735d53c2112d574b53019">&#9670;&nbsp;</a></span>t808Kick_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Kick_free </td>
+          <td>(</td>
+          <td class="paramtype">t808Kick * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a t808Kick from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">kick</td><td>A pointer to the t808Kick to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3bba7e177c2b54fadb802277ee4df1d1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3bba7e177c2b54fadb802277ee4df1d1">&#9670;&nbsp;</a></span>t808Kick_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float t808Kick_tick </td>
+          <td>(</td>
+          <td class="paramtype">t808Kick * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">kick</td><td>A pointer to the relevant t808Kick. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga412fef7686fb7b6a6f9a545de1dd66c6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga412fef7686fb7b6a6f9a545de1dd66c6">&#9670;&nbsp;</a></span>t808Kick_on()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Kick_on </td>
+          <td>(</td>
+          <td class="paramtype">t808Kick * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>vel</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">kick</td><td>A pointer to the relevant t808Kick. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabb6ccbf278eacb145026c24591a0d37c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabb6ccbf278eacb145026c24591a0d37c">&#9670;&nbsp;</a></span>t808Kick_setToneFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Kick_setToneFreq </td>
+          <td>(</td>
+          <td class="paramtype">t808Kick * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">kick</td><td>A pointer to the relevant t808Kick. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5c40b2f7ee8815cd3b50a52f33f69e50"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5c40b2f7ee8815cd3b50a52f33f69e50">&#9670;&nbsp;</a></span>t808Kick_setToneDecay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Kick_setToneDecay </td>
+          <td>(</td>
+          <td class="paramtype">t808Kick * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">kick</td><td>A pointer to the relevant t808Kick. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf7d43ae5eeb2f104773e33f128d04ad7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf7d43ae5eeb2f104773e33f128d04ad7">&#9670;&nbsp;</a></span>t808Kick_setNoiseDecay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Kick_setNoiseDecay </td>
+          <td>(</td>
+          <td class="paramtype">t808Kick * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">kick</td><td>A pointer to the relevant t808Kick. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gacc0caa60a523b68eec29d7a6391021ba"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacc0caa60a523b68eec29d7a6391021ba">&#9670;&nbsp;</a></span>t808Kick_setSighAmount()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Kick_setSighAmount </td>
+          <td>(</td>
+          <td class="paramtype">t808Kick * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sigh</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">kick</td><td>A pointer to the relevant t808Kick. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5d87bb00168c68eb2c818bcb215998a4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5d87bb00168c68eb2c818bcb215998a4">&#9670;&nbsp;</a></span>t808Kick_setChirpAmount()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Kick_setChirpAmount </td>
+          <td>(</td>
+          <td class="paramtype">t808Kick * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>chirp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">kick</td><td>A pointer to the relevant t808Kick. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8f8bf7a1fcd13931e431e7adf073de68"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8f8bf7a1fcd13931e431e7adf073de68">&#9670;&nbsp;</a></span>t808Kick_setToneNoiseMix()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Kick_setToneNoiseMix </td>
+          <td>(</td>
+          <td class="paramtype">t808Kick * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>toneNoiseMix</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">kick</td><td>A pointer to the relevant t808Kick. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8595d5622afa9ca641b082f016969d25"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8595d5622afa9ca641b082f016969d25">&#9670;&nbsp;</a></span>t808Kick_setNoiseFilterFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Kick_setNoiseFilterFreq </td>
+          <td>(</td>
+          <td class="paramtype">t808Kick * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>noiseFilterFreq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">kick</td><td>A pointer to the relevant t808Kick. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gafccd007bf99d7997189694ae37ec568e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafccd007bf99d7997189694ae37ec568e">&#9670;&nbsp;</a></span>t808Kick_setNoiseFilterQ()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Kick_setNoiseFilterQ </td>
+          <td>(</td>
+          <td class="paramtype">t808Kick * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>noiseFilterQ</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">kick</td><td>A pointer to the relevant t808Kick. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__t808snare.html
@@ -1,0 +1,569 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: t808Snare</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">t808Snare<div class="ingroups"><a class="el" href="group__instruments.html">Instruments</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>808 drum machine snare.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gacd0d752096b9eb8c14b7bd5e7088f6df"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808snare.html#gacd0d752096b9eb8c14b7bd5e7088f6df">t808Snare_init</a> (t808Snare *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gacd0d752096b9eb8c14b7bd5e7088f6df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a t808Snare to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__t808snare.html#gacd0d752096b9eb8c14b7bd5e7088f6df">More...</a><br /></td></tr>
+<tr class="separator:gacd0d752096b9eb8c14b7bd5e7088f6df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2aca77d2a4474881901ede4e03bd6209"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808snare.html#ga2aca77d2a4474881901ede4e03bd6209">t808Snare_initToPool</a> (t808Snare *const, tMempool *const)</td></tr>
+<tr class="memdesc:ga2aca77d2a4474881901ede4e03bd6209"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a t808Snare to a specified mempool.  <a href="group__t808snare.html#ga2aca77d2a4474881901ede4e03bd6209">More...</a><br /></td></tr>
+<tr class="separator:ga2aca77d2a4474881901ede4e03bd6209"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61d0f7d53b904cf9919a767abe274d10"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808snare.html#ga61d0f7d53b904cf9919a767abe274d10">t808Snare_free</a> (t808Snare *const)</td></tr>
+<tr class="memdesc:ga61d0f7d53b904cf9919a767abe274d10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a t808Snare from its mempool.  <a href="group__t808snare.html#ga61d0f7d53b904cf9919a767abe274d10">More...</a><br /></td></tr>
+<tr class="separator:ga61d0f7d53b904cf9919a767abe274d10"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga517c3b4cfe9e4d362b37d897b852243c"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808snare.html#ga517c3b4cfe9e4d362b37d897b852243c">t808Snare_tick</a> (t808Snare *const)</td></tr>
+<tr class="separator:ga517c3b4cfe9e4d362b37d897b852243c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae053deab7660527b10d71b087e880565"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808snare.html#gae053deab7660527b10d71b087e880565">t808Snare_on</a> (t808Snare *const, float vel)</td></tr>
+<tr class="separator:gae053deab7660527b10d71b087e880565"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac2203aab6623948c0516eac99caff599"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808snare.html#gac2203aab6623948c0516eac99caff599">t808Snare_setTone1Freq</a> (t808Snare *const, float freq)</td></tr>
+<tr class="separator:gac2203aab6623948c0516eac99caff599"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae29d81ddb62b86a01e9d9f91af2727ae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808snare.html#gae29d81ddb62b86a01e9d9f91af2727ae">t808Snare_setTone2Freq</a> (t808Snare *const, float freq)</td></tr>
+<tr class="separator:gae29d81ddb62b86a01e9d9f91af2727ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2428f86cd194304d8473720dde039964"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808snare.html#ga2428f86cd194304d8473720dde039964">t808Snare_setTone1Decay</a> (t808Snare *const, float decay)</td></tr>
+<tr class="separator:ga2428f86cd194304d8473720dde039964"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9fd3b086cf100b54d044f8a4be211ffe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808snare.html#ga9fd3b086cf100b54d044f8a4be211ffe">t808Snare_setTone2Decay</a> (t808Snare *const, float decay)</td></tr>
+<tr class="separator:ga9fd3b086cf100b54d044f8a4be211ffe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac4d1025b896f471d4eaa28a00332ffd7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808snare.html#gac4d1025b896f471d4eaa28a00332ffd7">t808Snare_setNoiseDecay</a> (t808Snare *const, float decay)</td></tr>
+<tr class="separator:gac4d1025b896f471d4eaa28a00332ffd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac2d85920c25919c4d647243f32453229"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808snare.html#gac2d85920c25919c4d647243f32453229">t808Snare_setToneNoiseMix</a> (t808Snare *const, float toneNoiseMix)</td></tr>
+<tr class="separator:gac2d85920c25919c4d647243f32453229"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafaee814013dd2d593d88edb94760f4ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808snare.html#gafaee814013dd2d593d88edb94760f4ab">t808Snare_setNoiseFilterFreq</a> (t808Snare *const, float noiseFilterFreq)</td></tr>
+<tr class="separator:gafaee814013dd2d593d88edb94760f4ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6777f759f2d5969d1ce54337e85f00f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t808snare.html#ga6777f759f2d5969d1ce54337e85f00f2">t808Snare_setNoiseFilterQ</a> (t808Snare *const, float noiseFilterQ)</td></tr>
+<tr class="separator:ga6777f759f2d5969d1ce54337e85f00f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>808 drum machine snare. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gacd0d752096b9eb8c14b7bd5e7088f6df"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacd0d752096b9eb8c14b7bd5e7088f6df">&#9670;&nbsp;</a></span>t808Snare_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Snare_init </td>
+          <td>(</td>
+          <td class="paramtype">t808Snare * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a t808Snare to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snare</td><td>A pointer to the t808Snare to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2aca77d2a4474881901ede4e03bd6209"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2aca77d2a4474881901ede4e03bd6209">&#9670;&nbsp;</a></span>t808Snare_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Snare_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">t808Snare * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a t808Snare to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snare</td><td>A pointer to the t808Snare to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga61d0f7d53b904cf9919a767abe274d10"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga61d0f7d53b904cf9919a767abe274d10">&#9670;&nbsp;</a></span>t808Snare_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Snare_free </td>
+          <td>(</td>
+          <td class="paramtype">t808Snare * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a t808Snare from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snare</td><td>A pointer to the t808Snare to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga517c3b4cfe9e4d362b37d897b852243c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga517c3b4cfe9e4d362b37d897b852243c">&#9670;&nbsp;</a></span>t808Snare_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float t808Snare_tick </td>
+          <td>(</td>
+          <td class="paramtype">t808Snare * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snare</td><td>A pointer to the relevant t808Snare. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae053deab7660527b10d71b087e880565"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae053deab7660527b10d71b087e880565">&#9670;&nbsp;</a></span>t808Snare_on()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Snare_on </td>
+          <td>(</td>
+          <td class="paramtype">t808Snare * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>vel</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snare</td><td>A pointer to the relevant t808Snare. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac2203aab6623948c0516eac99caff599"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac2203aab6623948c0516eac99caff599">&#9670;&nbsp;</a></span>t808Snare_setTone1Freq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Snare_setTone1Freq </td>
+          <td>(</td>
+          <td class="paramtype">t808Snare * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snare</td><td>A pointer to the relevant t808Snare. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae29d81ddb62b86a01e9d9f91af2727ae"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae29d81ddb62b86a01e9d9f91af2727ae">&#9670;&nbsp;</a></span>t808Snare_setTone2Freq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Snare_setTone2Freq </td>
+          <td>(</td>
+          <td class="paramtype">t808Snare * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snare</td><td>A pointer to the relevant t808Snare. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2428f86cd194304d8473720dde039964"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2428f86cd194304d8473720dde039964">&#9670;&nbsp;</a></span>t808Snare_setTone1Decay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Snare_setTone1Decay </td>
+          <td>(</td>
+          <td class="paramtype">t808Snare * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snare</td><td>A pointer to the relevant t808Snare. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9fd3b086cf100b54d044f8a4be211ffe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9fd3b086cf100b54d044f8a4be211ffe">&#9670;&nbsp;</a></span>t808Snare_setTone2Decay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Snare_setTone2Decay </td>
+          <td>(</td>
+          <td class="paramtype">t808Snare * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snare</td><td>A pointer to the relevant t808Snare. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac4d1025b896f471d4eaa28a00332ffd7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac4d1025b896f471d4eaa28a00332ffd7">&#9670;&nbsp;</a></span>t808Snare_setNoiseDecay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Snare_setNoiseDecay </td>
+          <td>(</td>
+          <td class="paramtype">t808Snare * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snare</td><td>A pointer to the relevant t808Snare. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac2d85920c25919c4d647243f32453229"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac2d85920c25919c4d647243f32453229">&#9670;&nbsp;</a></span>t808Snare_setToneNoiseMix()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Snare_setToneNoiseMix </td>
+          <td>(</td>
+          <td class="paramtype">t808Snare * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>toneNoiseMix</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snare</td><td>A pointer to the relevant t808Snare. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gafaee814013dd2d593d88edb94760f4ab"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafaee814013dd2d593d88edb94760f4ab">&#9670;&nbsp;</a></span>t808Snare_setNoiseFilterFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Snare_setNoiseFilterFreq </td>
+          <td>(</td>
+          <td class="paramtype">t808Snare * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>noiseFilterFreq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snare</td><td>A pointer to the relevant t808Snare. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6777f759f2d5969d1ce54337e85f00f2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6777f759f2d5969d1ce54337e85f00f2">&#9670;&nbsp;</a></span>t808Snare_setNoiseFilterQ()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void t808Snare_setNoiseFilterQ </td>
+          <td>(</td>
+          <td class="paramtype">t808Snare * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>noiseFilterQ</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snare</td><td>A pointer to the relevant t808Snare. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__t_m_b_sampler.html
@@ -1,0 +1,525 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tMBSampler</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tMBSampler<div class="ingroups"><a class="el" href="group__sampling.html">Sampling</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Loopable input sampler using minBLEP to remove discontinuities.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaca3e3353a058e3b2d2231daba80e2cba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t_m_b_sampler.html#gaca3e3353a058e3b2d2231daba80e2cba">tMBSampler_init</a> (tMBSampler *const, tBuffer *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gaca3e3353a058e3b2d2231daba80e2cba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tMBSampler to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__t_m_b_sampler.html#gaca3e3353a058e3b2d2231daba80e2cba">More...</a><br /></td></tr>
+<tr class="separator:gaca3e3353a058e3b2d2231daba80e2cba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0cf8b1c9137072b7c99deeb3749a8f13"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t_m_b_sampler.html#ga0cf8b1c9137072b7c99deeb3749a8f13">tMBSampler_initToPool</a> (tMBSampler *const, tBuffer *const, tMempool *const)</td></tr>
+<tr class="memdesc:ga0cf8b1c9137072b7c99deeb3749a8f13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tMBSampler to a specified mempool.  <a href="group__t_m_b_sampler.html#ga0cf8b1c9137072b7c99deeb3749a8f13">More...</a><br /></td></tr>
+<tr class="separator:ga0cf8b1c9137072b7c99deeb3749a8f13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabf7ea61189e14b7df128c279342ecabb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t_m_b_sampler.html#gabf7ea61189e14b7df128c279342ecabb">tMBSampler_free</a> (tMBSampler *const)</td></tr>
+<tr class="memdesc:gabf7ea61189e14b7df128c279342ecabb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tMBSampler from its mempool.  <a href="group__t_m_b_sampler.html#gabf7ea61189e14b7df128c279342ecabb">More...</a><br /></td></tr>
+<tr class="separator:gabf7ea61189e14b7df128c279342ecabb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa96c1712d883af90494934258901ef98"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t_m_b_sampler.html#gaa96c1712d883af90494934258901ef98">tMBSampler_tick</a> (tMBSampler *const)</td></tr>
+<tr class="separator:gaa96c1712d883af90494934258901ef98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5df0750a1c82828dc7c3d654fd633c63"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t_m_b_sampler.html#ga5df0750a1c82828dc7c3d654fd633c63">tMBSampler_setSample</a> (tMBSampler *const, tBuffer *const)</td></tr>
+<tr class="separator:ga5df0750a1c82828dc7c3d654fd633c63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7017647251f4c6bf8ab2e919cf1d72a0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t_m_b_sampler.html#ga7017647251f4c6bf8ab2e919cf1d72a0">tMBSampler_setMode</a> (tMBSampler *const, PlayMode mode)</td></tr>
+<tr class="separator:ga7017647251f4c6bf8ab2e919cf1d72a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8b91b8513f515bd0a26411b14c2c43d6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t_m_b_sampler.html#ga8b91b8513f515bd0a26411b14c2c43d6">tMBSampler_play</a> (tMBSampler *const)</td></tr>
+<tr class="separator:ga8b91b8513f515bd0a26411b14c2c43d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4f7de005419ba042c280bc6aa0a43013"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t_m_b_sampler.html#ga4f7de005419ba042c280bc6aa0a43013">tMBSampler_stop</a> (tMBSampler *const)</td></tr>
+<tr class="separator:ga4f7de005419ba042c280bc6aa0a43013"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2adcb66cf57f16c7852fbffb4b6d2201"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t_m_b_sampler.html#ga2adcb66cf57f16c7852fbffb4b6d2201">tMBSampler_setStart</a> (tMBSampler *const, int32_t start)</td></tr>
+<tr class="separator:ga2adcb66cf57f16c7852fbffb4b6d2201"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf3fcfc2f5f9b14c712bc59d9e91d5365"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t_m_b_sampler.html#gaf3fcfc2f5f9b14c712bc59d9e91d5365">tMBSampler_setEnd</a> (tMBSampler *const, int32_t end)</td></tr>
+<tr class="separator:gaf3fcfc2f5f9b14c712bc59d9e91d5365"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga066b4da5f29266f9138772944f403d8b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t_m_b_sampler.html#ga066b4da5f29266f9138772944f403d8b">tMBSampler_setLength</a> (tMBSampler *const, int32_t length)</td></tr>
+<tr class="separator:ga066b4da5f29266f9138772944f403d8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafd87c733fd6c73885b84ac9d02b43f5a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__t_m_b_sampler.html#gafd87c733fd6c73885b84ac9d02b43f5a">tMBSampler_setRate</a> (tMBSampler *const, float rate)</td></tr>
+<tr class="separator:gafd87c733fd6c73885b84ac9d02b43f5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Loopable input sampler using minBLEP to remove discontinuities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gaca3e3353a058e3b2d2231daba80e2cba"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaca3e3353a058e3b2d2231daba80e2cba">&#9670;&nbsp;</a></span>tMBSampler_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBSampler_init </td>
+          <td>(</td>
+          <td class="paramtype">tMBSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tMBSampler to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the tMBSampler to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0cf8b1c9137072b7c99deeb3749a8f13"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0cf8b1c9137072b7c99deeb3749a8f13">&#9670;&nbsp;</a></span>tMBSampler_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBSampler_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tMBSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tMBSampler to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the tMBSampler to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabf7ea61189e14b7df128c279342ecabb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabf7ea61189e14b7df128c279342ecabb">&#9670;&nbsp;</a></span>tMBSampler_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBSampler_free </td>
+          <td>(</td>
+          <td class="paramtype">tMBSampler * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tMBSampler from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the tMBSampler to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa96c1712d883af90494934258901ef98"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa96c1712d883af90494934258901ef98">&#9670;&nbsp;</a></span>tMBSampler_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tMBSampler_tick </td>
+          <td>(</td>
+          <td class="paramtype">tMBSampler * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tMBSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5df0750a1c82828dc7c3d654fd633c63"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5df0750a1c82828dc7c3d654fd633c63">&#9670;&nbsp;</a></span>tMBSampler_setSample()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBSampler_setSample </td>
+          <td>(</td>
+          <td class="paramtype">tMBSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tMBSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7017647251f4c6bf8ab2e919cf1d72a0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7017647251f4c6bf8ab2e919cf1d72a0">&#9670;&nbsp;</a></span>tMBSampler_setMode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBSampler_setMode </td>
+          <td>(</td>
+          <td class="paramtype">tMBSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">PlayMode&#160;</td>
+          <td class="paramname"><em>mode</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tMBSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8b91b8513f515bd0a26411b14c2c43d6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8b91b8513f515bd0a26411b14c2c43d6">&#9670;&nbsp;</a></span>tMBSampler_play()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBSampler_play </td>
+          <td>(</td>
+          <td class="paramtype">tMBSampler * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tMBSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga4f7de005419ba042c280bc6aa0a43013"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4f7de005419ba042c280bc6aa0a43013">&#9670;&nbsp;</a></span>tMBSampler_stop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBSampler_stop </td>
+          <td>(</td>
+          <td class="paramtype">tMBSampler * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tMBSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2adcb66cf57f16c7852fbffb4b6d2201"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2adcb66cf57f16c7852fbffb4b6d2201">&#9670;&nbsp;</a></span>tMBSampler_setStart()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBSampler_setStart </td>
+          <td>(</td>
+          <td class="paramtype">tMBSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>start</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tMBSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf3fcfc2f5f9b14c712bc59d9e91d5365"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf3fcfc2f5f9b14c712bc59d9e91d5365">&#9670;&nbsp;</a></span>tMBSampler_setEnd()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBSampler_setEnd </td>
+          <td>(</td>
+          <td class="paramtype">tMBSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>end</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tMBSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga066b4da5f29266f9138772944f403d8b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga066b4da5f29266f9138772944f403d8b">&#9670;&nbsp;</a></span>tMBSampler_setLength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBSampler_setLength </td>
+          <td>(</td>
+          <td class="paramtype">tMBSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tMBSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gafd87c733fd6c73885b84ac9d02b43f5a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafd87c733fd6c73885b84ac9d02b43f5a">&#9670;&nbsp;</a></span>tMBSampler_setRate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBSampler_setRate </td>
+          <td>(</td>
+          <td class="paramtype">tMBSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>rate</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tMBSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tables.html
@@ -1,0 +1,103 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Tables</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Tables</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Wavetables, filter tables, minBLEP tables, and more.  
+<a href="#details">More...</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Wavetables, filter tables, minBLEP tables, and more. </p>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tadsr.html
@@ -1,0 +1,531 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tADSR</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tADSR<div class="ingroups"><a class="el" href="group__envelopes.html">Envelopes</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gafa76d2b76694362abf9cf0ed987b7106"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr.html#gafa76d2b76694362abf9cf0ed987b7106">tADSR_init</a> (tADSR *const adsrenv, float attack, float decay, float sustain, float release, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gafa76d2b76694362abf9cf0ed987b7106"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tADSR to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tadsr.html#gafa76d2b76694362abf9cf0ed987b7106">More...</a><br /></td></tr>
+<tr class="separator:gafa76d2b76694362abf9cf0ed987b7106"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada1d7d74e13cfddaba736b2920b79d9f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr.html#gada1d7d74e13cfddaba736b2920b79d9f">tADSR_initToPool</a> (tADSR *const adsrenv, float attack, float decay, float sustain, float release, tMempool *const mp)</td></tr>
+<tr class="memdesc:gada1d7d74e13cfddaba736b2920b79d9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tADSR to a specified mempool.  <a href="group__tadsr.html#gada1d7d74e13cfddaba736b2920b79d9f">More...</a><br /></td></tr>
+<tr class="separator:gada1d7d74e13cfddaba736b2920b79d9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaccc3f988aaab5a39b495b1ccd21da608"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr.html#gaccc3f988aaab5a39b495b1ccd21da608">tADSR_free</a> (tADSR *const)</td></tr>
+<tr class="memdesc:gaccc3f988aaab5a39b495b1ccd21da608"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tADSR from its mempool.  <a href="group__tadsr.html#gaccc3f988aaab5a39b495b1ccd21da608">More...</a><br /></td></tr>
+<tr class="separator:gaccc3f988aaab5a39b495b1ccd21da608"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabbc3685eb6c47a49e657a1792d38dfc7"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr.html#gabbc3685eb6c47a49e657a1792d38dfc7">tADSR_tick</a> (tADSR *const)</td></tr>
+<tr class="separator:gabbc3685eb6c47a49e657a1792d38dfc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1cceb7951e999aa388bd72a7bb3901f6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr.html#ga1cceb7951e999aa388bd72a7bb3901f6">tADSR_setAttack</a> (tADSR *const, float attack)</td></tr>
+<tr class="separator:ga1cceb7951e999aa388bd72a7bb3901f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f305ead6d014fbafcb132ebcc81dddb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr.html#ga7f305ead6d014fbafcb132ebcc81dddb">tADSR_setDecay</a> (tADSR *const, float decay)</td></tr>
+<tr class="separator:ga7f305ead6d014fbafcb132ebcc81dddb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac676d5a70fe7a8487d125e5aff250fd0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr.html#gac676d5a70fe7a8487d125e5aff250fd0">tADSR_setSustain</a> (tADSR *const, float sustain)</td></tr>
+<tr class="separator:gac676d5a70fe7a8487d125e5aff250fd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3d62827bbd4f058d07e6cb1a8b92cb9f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr.html#ga3d62827bbd4f058d07e6cb1a8b92cb9f">tADSR_setRelease</a> (tADSR *const, float release)</td></tr>
+<tr class="separator:ga3d62827bbd4f058d07e6cb1a8b92cb9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1802708b1a0c0ce324c3072554c01624"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr.html#ga1802708b1a0c0ce324c3072554c01624">tADSR_setLeakFactor</a> (tADSR *const, float leakFactor)</td></tr>
+<tr class="separator:ga1802708b1a0c0ce324c3072554c01624"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaffd817040cc125f3b8204e756a16085c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr.html#gaffd817040cc125f3b8204e756a16085c">tADSR_on</a> (tADSR *const, float velocity)</td></tr>
+<tr class="separator:gaffd817040cc125f3b8204e756a16085c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1a41adcdea81db09f04d008b9b8e62b8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr.html#ga1a41adcdea81db09f04d008b9b8e62b8">tADSR_off</a> (tADSR *const)</td></tr>
+<tr class="separator:ga1a41adcdea81db09f04d008b9b8e62b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gafa76d2b76694362abf9cf0ed987b7106"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafa76d2b76694362abf9cf0ed987b7106">&#9670;&nbsp;</a></span>tADSR_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR_init </td>
+          <td>(</td>
+          <td class="paramtype">tADSR *const&#160;</td>
+          <td class="paramname"><em>adsrenv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sustain</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>release</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tADSR to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the tADSR to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gada1d7d74e13cfddaba736b2920b79d9f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gada1d7d74e13cfddaba736b2920b79d9f">&#9670;&nbsp;</a></span>tADSR_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tADSR *const&#160;</td>
+          <td class="paramname"><em>adsrenv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sustain</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>release</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tADSR to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the tADSR to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaccc3f988aaab5a39b495b1ccd21da608"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaccc3f988aaab5a39b495b1ccd21da608">&#9670;&nbsp;</a></span>tADSR_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR_free </td>
+          <td>(</td>
+          <td class="paramtype">tADSR * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tADSR from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the tADSR to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabbc3685eb6c47a49e657a1792d38dfc7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabbc3685eb6c47a49e657a1792d38dfc7">&#9670;&nbsp;</a></span>tADSR_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tADSR_tick </td>
+          <td>(</td>
+          <td class="paramtype">tADSR * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1cceb7951e999aa388bd72a7bb3901f6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1cceb7951e999aa388bd72a7bb3901f6">&#9670;&nbsp;</a></span>tADSR_setAttack()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR_setAttack </td>
+          <td>(</td>
+          <td class="paramtype">tADSR * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attack</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7f305ead6d014fbafcb132ebcc81dddb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7f305ead6d014fbafcb132ebcc81dddb">&#9670;&nbsp;</a></span>tADSR_setDecay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR_setDecay </td>
+          <td>(</td>
+          <td class="paramtype">tADSR * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac676d5a70fe7a8487d125e5aff250fd0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac676d5a70fe7a8487d125e5aff250fd0">&#9670;&nbsp;</a></span>tADSR_setSustain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR_setSustain </td>
+          <td>(</td>
+          <td class="paramtype">tADSR * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sustain</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3d62827bbd4f058d07e6cb1a8b92cb9f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3d62827bbd4f058d07e6cb1a8b92cb9f">&#9670;&nbsp;</a></span>tADSR_setRelease()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR_setRelease </td>
+          <td>(</td>
+          <td class="paramtype">tADSR * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>release</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1802708b1a0c0ce324c3072554c01624"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1802708b1a0c0ce324c3072554c01624">&#9670;&nbsp;</a></span>tADSR_setLeakFactor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR_setLeakFactor </td>
+          <td>(</td>
+          <td class="paramtype">tADSR * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>leakFactor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaffd817040cc125f3b8204e756a16085c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaffd817040cc125f3b8204e756a16085c">&#9670;&nbsp;</a></span>tADSR_on()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR_on </td>
+          <td>(</td>
+          <td class="paramtype">tADSR * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>velocity</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1a41adcdea81db09f04d008b9b8e62b8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1a41adcdea81db09f04d008b9b8e62b8">&#9670;&nbsp;</a></span>tADSR_off()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR_off </td>
+          <td>(</td>
+          <td class="paramtype">tADSR * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tadsr3.html
@@ -1,0 +1,531 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tADSR3</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tADSR3<div class="ingroups"><a class="el" href="group__envelopes.html">Envelopes</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga61f1fd529df0d97a9a74b9523024b1fe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr3.html#ga61f1fd529df0d97a9a74b9523024b1fe">tADSR3_init</a> (tADSR3 *const, float attack, float decay, float sustain, float release, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga61f1fd529df0d97a9a74b9523024b1fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tADSR3 to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tadsr3.html#ga61f1fd529df0d97a9a74b9523024b1fe">More...</a><br /></td></tr>
+<tr class="separator:ga61f1fd529df0d97a9a74b9523024b1fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7e0784b34c2fef54de2ed993d68f9b7c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr3.html#ga7e0784b34c2fef54de2ed993d68f9b7c">tADSR3_initToPool</a> (tADSR3 *const, float attack, float decay, float sustain, float release, tMempool *const)</td></tr>
+<tr class="memdesc:ga7e0784b34c2fef54de2ed993d68f9b7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tADSR3 to a specified mempool.  <a href="group__tadsr3.html#ga7e0784b34c2fef54de2ed993d68f9b7c">More...</a><br /></td></tr>
+<tr class="separator:ga7e0784b34c2fef54de2ed993d68f9b7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf633a93865d4a9d4ba4840624f2b41bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr3.html#gaf633a93865d4a9d4ba4840624f2b41bf">tADSR3_free</a> (tADSR3 *const)</td></tr>
+<tr class="memdesc:gaf633a93865d4a9d4ba4840624f2b41bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tADSR3 from its mempool.  <a href="group__tadsr3.html#gaf633a93865d4a9d4ba4840624f2b41bf">More...</a><br /></td></tr>
+<tr class="separator:gaf633a93865d4a9d4ba4840624f2b41bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3b959e263e7322d7876bdf5e9b633a16"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr3.html#ga3b959e263e7322d7876bdf5e9b633a16">tADSR3_tick</a> (tADSR3 *const)</td></tr>
+<tr class="separator:ga3b959e263e7322d7876bdf5e9b633a16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0a6a119590346ee356f486d8af00567a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr3.html#ga0a6a119590346ee356f486d8af00567a">tADSR3_setAttack</a> (tADSR3 *const, float attack)</td></tr>
+<tr class="separator:ga0a6a119590346ee356f486d8af00567a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga325386ad4640ec898971fdedf87b3b49"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr3.html#ga325386ad4640ec898971fdedf87b3b49">tADSR3_setDecay</a> (tADSR3 *const, float decay)</td></tr>
+<tr class="separator:ga325386ad4640ec898971fdedf87b3b49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae5695ee654846bf4f3f092c3f2136ca8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr3.html#gae5695ee654846bf4f3f092c3f2136ca8">tADSR3_setSustain</a> (tADSR3 *const, float sustain)</td></tr>
+<tr class="separator:gae5695ee654846bf4f3f092c3f2136ca8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3ac9763101f9e3b5338ea92cc02a6032"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr3.html#ga3ac9763101f9e3b5338ea92cc02a6032">tADSR3_setRelease</a> (tADSR3 *const, float release)</td></tr>
+<tr class="separator:ga3ac9763101f9e3b5338ea92cc02a6032"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga589972bef8fca1a6a99064b92968c9fc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr3.html#ga589972bef8fca1a6a99064b92968c9fc">tADSR3_setLeakFactor</a> (tADSR3 *const, float leakFactor)</td></tr>
+<tr class="separator:ga589972bef8fca1a6a99064b92968c9fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6054295d933bb2d27898664f4b6f067e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr3.html#ga6054295d933bb2d27898664f4b6f067e">tADSR3_on</a> (tADSR3 *const, float velocity)</td></tr>
+<tr class="separator:ga6054295d933bb2d27898664f4b6f067e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad48b26429b4224b199b26690a0d480f1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr3.html#gad48b26429b4224b199b26690a0d480f1">tADSR3_off</a> (tADSR3 *const)</td></tr>
+<tr class="separator:gad48b26429b4224b199b26690a0d480f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga61f1fd529df0d97a9a74b9523024b1fe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga61f1fd529df0d97a9a74b9523024b1fe">&#9670;&nbsp;</a></span>tADSR3_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR3_init </td>
+          <td>(</td>
+          <td class="paramtype">tADSR3 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sustain</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>release</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tADSR3 to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the tADSR3 to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7e0784b34c2fef54de2ed993d68f9b7c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7e0784b34c2fef54de2ed993d68f9b7c">&#9670;&nbsp;</a></span>tADSR3_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR3_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tADSR3 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sustain</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>release</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tADSR3 to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the tADSR3 to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf633a93865d4a9d4ba4840624f2b41bf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf633a93865d4a9d4ba4840624f2b41bf">&#9670;&nbsp;</a></span>tADSR3_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR3_free </td>
+          <td>(</td>
+          <td class="paramtype">tADSR3 * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tADSR3 from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the tADSR3 to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3b959e263e7322d7876bdf5e9b633a16"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3b959e263e7322d7876bdf5e9b633a16">&#9670;&nbsp;</a></span>tADSR3_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tADSR3_tick </td>
+          <td>(</td>
+          <td class="paramtype">tADSR3 * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR3. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0a6a119590346ee356f486d8af00567a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0a6a119590346ee356f486d8af00567a">&#9670;&nbsp;</a></span>tADSR3_setAttack()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR3_setAttack </td>
+          <td>(</td>
+          <td class="paramtype">tADSR3 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attack</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR3. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga325386ad4640ec898971fdedf87b3b49"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga325386ad4640ec898971fdedf87b3b49">&#9670;&nbsp;</a></span>tADSR3_setDecay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR3_setDecay </td>
+          <td>(</td>
+          <td class="paramtype">tADSR3 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR3. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae5695ee654846bf4f3f092c3f2136ca8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae5695ee654846bf4f3f092c3f2136ca8">&#9670;&nbsp;</a></span>tADSR3_setSustain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR3_setSustain </td>
+          <td>(</td>
+          <td class="paramtype">tADSR3 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sustain</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR3. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3ac9763101f9e3b5338ea92cc02a6032"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3ac9763101f9e3b5338ea92cc02a6032">&#9670;&nbsp;</a></span>tADSR3_setRelease()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR3_setRelease </td>
+          <td>(</td>
+          <td class="paramtype">tADSR3 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>release</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR3. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga589972bef8fca1a6a99064b92968c9fc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga589972bef8fca1a6a99064b92968c9fc">&#9670;&nbsp;</a></span>tADSR3_setLeakFactor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR3_setLeakFactor </td>
+          <td>(</td>
+          <td class="paramtype">tADSR3 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>leakFactor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR3. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6054295d933bb2d27898664f4b6f067e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6054295d933bb2d27898664f4b6f067e">&#9670;&nbsp;</a></span>tADSR3_on()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR3_on </td>
+          <td>(</td>
+          <td class="paramtype">tADSR3 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>velocity</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR3. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad48b26429b4224b199b26690a0d480f1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad48b26429b4224b199b26690a0d480f1">&#9670;&nbsp;</a></span>tADSR3_off()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR3_off </td>
+          <td>(</td>
+          <td class="paramtype">tADSR3 * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR3. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tadsr4.html
@@ -1,0 +1,581 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tADSR4</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tADSR4<div class="ingroups"><a class="el" href="group__envelopes.html">Envelopes</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga18f8440695a8f99ff6469ff9df6395c2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr4.html#ga18f8440695a8f99ff6469ff9df6395c2">tADSR4_init</a> (tADSR4 *const, float attack, float decay, float sustain, float release, float *expBuffer, int bufferSize, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga18f8440695a8f99ff6469ff9df6395c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tADSR4 to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tadsr4.html#ga18f8440695a8f99ff6469ff9df6395c2">More...</a><br /></td></tr>
+<tr class="separator:ga18f8440695a8f99ff6469ff9df6395c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga731d6838ae65373c787ecf977523c121"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr4.html#ga731d6838ae65373c787ecf977523c121">tADSR4_initToPool</a> (tADSR4 *const, float attack, float decay, float sustain, float release, float *expBuffer, int bufferSize, tMempool *const)</td></tr>
+<tr class="memdesc:ga731d6838ae65373c787ecf977523c121"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tADSR4 to a specified mempool.  <a href="group__tadsr4.html#ga731d6838ae65373c787ecf977523c121">More...</a><br /></td></tr>
+<tr class="separator:ga731d6838ae65373c787ecf977523c121"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2889f7a9596ba5e9d386c9913e51e62d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr4.html#ga2889f7a9596ba5e9d386c9913e51e62d">tADSR4_free</a> (tADSR4 *const)</td></tr>
+<tr class="memdesc:ga2889f7a9596ba5e9d386c9913e51e62d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tADSR4 from its mempool.  <a href="group__tadsr4.html#ga2889f7a9596ba5e9d386c9913e51e62d">More...</a><br /></td></tr>
+<tr class="separator:ga2889f7a9596ba5e9d386c9913e51e62d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5f4cc4b20251f8240c0208b452b8eff3"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr4.html#ga5f4cc4b20251f8240c0208b452b8eff3">tADSR4_tick</a> (tADSR4 *const)</td></tr>
+<tr class="separator:ga5f4cc4b20251f8240c0208b452b8eff3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga32a5545ca2510d666b9c59d9106888c5"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr4.html#ga32a5545ca2510d666b9c59d9106888c5">tADSR4_tickNoInterp</a> (tADSR4 *const adsrenv)</td></tr>
+<tr class="separator:ga32a5545ca2510d666b9c59d9106888c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5059a2109760aa0188c4769a52b4a4a3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr4.html#ga5059a2109760aa0188c4769a52b4a4a3">tADSR4_setAttack</a> (tADSR4 *const, float attack)</td></tr>
+<tr class="separator:ga5059a2109760aa0188c4769a52b4a4a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab5b58a1067454a87cdff5e09a86e4af3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr4.html#gab5b58a1067454a87cdff5e09a86e4af3">tADSR4_setDecay</a> (tADSR4 *const, float decay)</td></tr>
+<tr class="separator:gab5b58a1067454a87cdff5e09a86e4af3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga691edaf4b254d1d44bee378312e370be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr4.html#ga691edaf4b254d1d44bee378312e370be">tADSR4_setSustain</a> (tADSR4 *const, float sustain)</td></tr>
+<tr class="separator:ga691edaf4b254d1d44bee378312e370be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a53860240f681a65d90302145702697"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr4.html#ga7a53860240f681a65d90302145702697">tADSR4_setRelease</a> (tADSR4 *const, float release)</td></tr>
+<tr class="separator:ga7a53860240f681a65d90302145702697"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad79710f31593ada4e3834ebefd67a388"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr4.html#gad79710f31593ada4e3834ebefd67a388">tADSR4_setLeakFactor</a> (tADSR4 *const, float leakFactor)</td></tr>
+<tr class="separator:gad79710f31593ada4e3834ebefd67a388"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga63a8a38f1f6f319d0103acf7d0fb21ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr4.html#ga63a8a38f1f6f319d0103acf7d0fb21ad">tADSR4_on</a> (tADSR4 *const, float velocity)</td></tr>
+<tr class="separator:ga63a8a38f1f6f319d0103acf7d0fb21ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0271a2f741bed72edb08dc965433dade"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tadsr4.html#ga0271a2f741bed72edb08dc965433dade">tADSR4_off</a> (tADSR4 *const)</td></tr>
+<tr class="separator:ga0271a2f741bed72edb08dc965433dade"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga18f8440695a8f99ff6469ff9df6395c2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga18f8440695a8f99ff6469ff9df6395c2">&#9670;&nbsp;</a></span>tADSR4_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR4_init </td>
+          <td>(</td>
+          <td class="paramtype">tADSR4 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sustain</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>release</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>expBuffer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>bufferSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tADSR4 to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the tADSR4 to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga731d6838ae65373c787ecf977523c121"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga731d6838ae65373c787ecf977523c121">&#9670;&nbsp;</a></span>tADSR4_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR4_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tADSR4 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sustain</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>release</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>expBuffer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>bufferSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tADSR4 to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the tADSR4 to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2889f7a9596ba5e9d386c9913e51e62d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2889f7a9596ba5e9d386c9913e51e62d">&#9670;&nbsp;</a></span>tADSR4_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR4_free </td>
+          <td>(</td>
+          <td class="paramtype">tADSR4 * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tADSR4 from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the tADSR4 to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5f4cc4b20251f8240c0208b452b8eff3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5f4cc4b20251f8240c0208b452b8eff3">&#9670;&nbsp;</a></span>tADSR4_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tADSR4_tick </td>
+          <td>(</td>
+          <td class="paramtype">tADSR4 * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR4. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga32a5545ca2510d666b9c59d9106888c5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga32a5545ca2510d666b9c59d9106888c5">&#9670;&nbsp;</a></span>tADSR4_tickNoInterp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tADSR4_tickNoInterp </td>
+          <td>(</td>
+          <td class="paramtype">tADSR4 *const&#160;</td>
+          <td class="paramname"><em>adsrenv</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR4. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5059a2109760aa0188c4769a52b4a4a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5059a2109760aa0188c4769a52b4a4a3">&#9670;&nbsp;</a></span>tADSR4_setAttack()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR4_setAttack </td>
+          <td>(</td>
+          <td class="paramtype">tADSR4 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attack</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR4. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab5b58a1067454a87cdff5e09a86e4af3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab5b58a1067454a87cdff5e09a86e4af3">&#9670;&nbsp;</a></span>tADSR4_setDecay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR4_setDecay </td>
+          <td>(</td>
+          <td class="paramtype">tADSR4 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR4. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga691edaf4b254d1d44bee378312e370be"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga691edaf4b254d1d44bee378312e370be">&#9670;&nbsp;</a></span>tADSR4_setSustain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR4_setSustain </td>
+          <td>(</td>
+          <td class="paramtype">tADSR4 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sustain</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR4. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7a53860240f681a65d90302145702697"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7a53860240f681a65d90302145702697">&#9670;&nbsp;</a></span>tADSR4_setRelease()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR4_setRelease </td>
+          <td>(</td>
+          <td class="paramtype">tADSR4 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>release</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR4. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad79710f31593ada4e3834ebefd67a388"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad79710f31593ada4e3834ebefd67a388">&#9670;&nbsp;</a></span>tADSR4_setLeakFactor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR4_setLeakFactor </td>
+          <td>(</td>
+          <td class="paramtype">tADSR4 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>leakFactor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR4. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga63a8a38f1f6f319d0103acf7d0fb21ad"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga63a8a38f1f6f319d0103acf7d0fb21ad">&#9670;&nbsp;</a></span>tADSR4_on()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR4_on </td>
+          <td>(</td>
+          <td class="paramtype">tADSR4 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>velocity</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR4. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0271a2f741bed72edb08dc965433dade"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0271a2f741bed72edb08dc965433dade">&#9670;&nbsp;</a></span>tADSR4_off()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR4_off </td>
+          <td>(</td>
+          <td class="paramtype">tADSR4 * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR4. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tallpass.html
@@ -1,0 +1,351 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tAllpass</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tAllpass<div class="ingroups"><a class="el" href="group__filters.html">Filters</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Schroeder allpass. Comb-filter with feedforward and feedback.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga49f8da193def13b70b2380288dbd96d2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpass.html#ga49f8da193def13b70b2380288dbd96d2">tAllpass_init</a> (tAllpass *const, float initDelay, uint32_t maxDelay, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga49f8da193def13b70b2380288dbd96d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tAllpass to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tallpass.html#ga49f8da193def13b70b2380288dbd96d2">More...</a><br /></td></tr>
+<tr class="separator:ga49f8da193def13b70b2380288dbd96d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga51e3ba1dedc220c6f466704870614ec7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpass.html#ga51e3ba1dedc220c6f466704870614ec7">tAllpass_initToPool</a> (tAllpass *const, float initDelay, uint32_t maxDelay, tMempool *const)</td></tr>
+<tr class="memdesc:ga51e3ba1dedc220c6f466704870614ec7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tAllpass to a specified mempool.  <a href="group__tallpass.html#ga51e3ba1dedc220c6f466704870614ec7">More...</a><br /></td></tr>
+<tr class="separator:ga51e3ba1dedc220c6f466704870614ec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga177191c8cb437f2a255f02ee476d6ee0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpass.html#ga177191c8cb437f2a255f02ee476d6ee0">tAllpass_free</a> (tAllpass *const)</td></tr>
+<tr class="memdesc:ga177191c8cb437f2a255f02ee476d6ee0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tAllpass from its mempool.  <a href="group__tallpass.html#ga177191c8cb437f2a255f02ee476d6ee0">More...</a><br /></td></tr>
+<tr class="separator:ga177191c8cb437f2a255f02ee476d6ee0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac0b56b4935f44e73e86566289d16aaa5"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpass.html#gac0b56b4935f44e73e86566289d16aaa5">tAllpass_tick</a> (tAllpass *const, float input)</td></tr>
+<tr class="separator:gac0b56b4935f44e73e86566289d16aaa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac301093f1c86a58e33f0d197e4f49719"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpass.html#gac301093f1c86a58e33f0d197e4f49719">tAllpass_setGain</a> (tAllpass *const, float gain)</td></tr>
+<tr class="separator:gac301093f1c86a58e33f0d197e4f49719"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa0e5e88f6000959b4a6146e0c1ce4553"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpass.html#gaa0e5e88f6000959b4a6146e0c1ce4553">tAllpass_setDelay</a> (tAllpass *const, float delay)</td></tr>
+<tr class="separator:gaa0e5e88f6000959b4a6146e0c1ce4553"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Schroeder allpass. Comb-filter with feedforward and feedback. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga49f8da193def13b70b2380288dbd96d2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga49f8da193def13b70b2380288dbd96d2">&#9670;&nbsp;</a></span>tAllpass_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAllpass_init </td>
+          <td>(</td>
+          <td class="paramtype">tAllpass * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>initDelay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>maxDelay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tAllpass to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tAllpass to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga51e3ba1dedc220c6f466704870614ec7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga51e3ba1dedc220c6f466704870614ec7">&#9670;&nbsp;</a></span>tAllpass_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAllpass_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tAllpass * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>initDelay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>maxDelay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tAllpass to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tAllpass to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga177191c8cb437f2a255f02ee476d6ee0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga177191c8cb437f2a255f02ee476d6ee0">&#9670;&nbsp;</a></span>tAllpass_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAllpass_free </td>
+          <td>(</td>
+          <td class="paramtype">tAllpass * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tAllpass from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tAllpass to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac0b56b4935f44e73e86566289d16aaa5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac0b56b4935f44e73e86566289d16aaa5">&#9670;&nbsp;</a></span>tAllpass_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tAllpass_tick </td>
+          <td>(</td>
+          <td class="paramtype">tAllpass * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tAllpass. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac301093f1c86a58e33f0d197e4f49719"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac301093f1c86a58e33f0d197e4f49719">&#9670;&nbsp;</a></span>tAllpass_setGain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAllpass_setGain </td>
+          <td>(</td>
+          <td class="paramtype">tAllpass * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>gain</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tAllpass. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa0e5e88f6000959b4a6146e0c1ce4553"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa0e5e88f6000959b4a6146e0c1ce4553">&#9670;&nbsp;</a></span>tAllpass_setDelay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAllpass_setDelay </td>
+          <td>(</td>
+          <td class="paramtype">tAllpass * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>delay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tAllpass.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tallpassdelay.html
@@ -1,0 +1,556 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tAllpassDelay</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tAllpassDelay<div class="ingroups"><a class="el" href="group__delay.html">Delay</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Allpass-interpolating delay, reimplemented from STK (Cook and Scavone).  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gac68b64e119c315b545227a9404c2dedc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpassdelay.html#gac68b64e119c315b545227a9404c2dedc">tAllpassDelay_init</a> (tAllpassDelay *const, float delay, uint32_t maxDelay, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gac68b64e119c315b545227a9404c2dedc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tAllpassDelay to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tallpassdelay.html#gac68b64e119c315b545227a9404c2dedc">More...</a><br /></td></tr>
+<tr class="separator:gac68b64e119c315b545227a9404c2dedc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9a65c14cde90540162d7fb94bedd4013"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpassdelay.html#ga9a65c14cde90540162d7fb94bedd4013">tAllpassDelay_initToPool</a> (tAllpassDelay *const, float delay, uint32_t maxDelay, tMempool *const)</td></tr>
+<tr class="memdesc:ga9a65c14cde90540162d7fb94bedd4013"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tAllpassDelay to a specified mempool.  <a href="group__tallpassdelay.html#ga9a65c14cde90540162d7fb94bedd4013">More...</a><br /></td></tr>
+<tr class="separator:ga9a65c14cde90540162d7fb94bedd4013"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaae4b75bede117322eedbb806f92af672"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpassdelay.html#gaae4b75bede117322eedbb806f92af672">tAllpassDelay_free</a> (tAllpassDelay *const)</td></tr>
+<tr class="memdesc:gaae4b75bede117322eedbb806f92af672"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tAllpassDelay from its mempool.  <a href="group__tallpassdelay.html#gaae4b75bede117322eedbb806f92af672">More...</a><br /></td></tr>
+<tr class="separator:gaae4b75bede117322eedbb806f92af672"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22a3124a087816518ae22e7dd57049dd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpassdelay.html#ga22a3124a087816518ae22e7dd57049dd">tAllpassDelay_clear</a> (tAllpassDelay *const)</td></tr>
+<tr class="separator:ga22a3124a087816518ae22e7dd57049dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga83b93819de2b2d825247c47b830d918c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpassdelay.html#ga83b93819de2b2d825247c47b830d918c">tAllpassDelay_setDelay</a> (tAllpassDelay *const, float delay)</td></tr>
+<tr class="separator:ga83b93819de2b2d825247c47b830d918c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7cda781e73a82d91e49f3ce5955cbd0a"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpassdelay.html#ga7cda781e73a82d91e49f3ce5955cbd0a">tAllpassDelay_getDelay</a> (tAllpassDelay *const)</td></tr>
+<tr class="separator:ga7cda781e73a82d91e49f3ce5955cbd0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga000dae89babb537265f9b56f8ce5560b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpassdelay.html#ga000dae89babb537265f9b56f8ce5560b">tAllpassDelay_tapIn</a> (tAllpassDelay *const, float in, uint32_t tapDelay)</td></tr>
+<tr class="separator:ga000dae89babb537265f9b56f8ce5560b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0348f7e531aa956c0e4f1e9eb3bb208a"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpassdelay.html#ga0348f7e531aa956c0e4f1e9eb3bb208a">tAllpassDelay_tapOut</a> (tAllpassDelay *const, uint32_t tapDelay)</td></tr>
+<tr class="separator:ga0348f7e531aa956c0e4f1e9eb3bb208a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga25124f2fc78144daa86e0008417f410c"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpassdelay.html#ga25124f2fc78144daa86e0008417f410c">tAllpassDelay_addTo</a> (tAllpassDelay *const, float value, uint32_t tapDelay)</td></tr>
+<tr class="separator:ga25124f2fc78144daa86e0008417f410c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6145fe6d2e4fd9e423d96725183498cc"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpassdelay.html#ga6145fe6d2e4fd9e423d96725183498cc">tAllpassDelay_tick</a> (tAllpassDelay *const, float sample)</td></tr>
+<tr class="separator:ga6145fe6d2e4fd9e423d96725183498cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab6937352ad500b205c4fc5e822937735"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpassdelay.html#gab6937352ad500b205c4fc5e822937735">tAllpassDelay_getLastOut</a> (tAllpassDelay *const)</td></tr>
+<tr class="separator:gab6937352ad500b205c4fc5e822937735"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga01be8563825023d090b5dbd750f2bba3"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tallpassdelay.html#ga01be8563825023d090b5dbd750f2bba3">tAllpassDelay_getLastIn</a> (tAllpassDelay *const)</td></tr>
+<tr class="separator:ga01be8563825023d090b5dbd750f2bba3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Allpass-interpolating delay, reimplemented from STK (Cook and Scavone). </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gac68b64e119c315b545227a9404c2dedc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac68b64e119c315b545227a9404c2dedc">&#9670;&nbsp;</a></span>tAllpassDelay_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAllpassDelay_init </td>
+          <td>(</td>
+          <td class="paramtype">tAllpassDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>delay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>maxDelay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tAllpassDelay to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the tAllpassDelay to initialize. </td></tr>
+    <tr><td class="paramname">initialLength</td><td></td></tr>
+    <tr><td class="paramname">maxLength</td><td></td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9a65c14cde90540162d7fb94bedd4013"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9a65c14cde90540162d7fb94bedd4013">&#9670;&nbsp;</a></span>tAllpassDelay_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAllpassDelay_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tAllpassDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>delay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>maxDelay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tAllpassDelay to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the tAllpassDelay to initialize. </td></tr>
+    <tr><td class="paramname">initialLength</td><td></td></tr>
+    <tr><td class="paramname">maxLength</td><td></td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaae4b75bede117322eedbb806f92af672"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaae4b75bede117322eedbb806f92af672">&#9670;&nbsp;</a></span>tAllpassDelay_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAllpassDelay_free </td>
+          <td>(</td>
+          <td class="paramtype">tAllpassDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tAllpassDelay from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the tAllpassDelay to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga22a3124a087816518ae22e7dd57049dd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga22a3124a087816518ae22e7dd57049dd">&#9670;&nbsp;</a></span>tAllpassDelay_clear()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAllpassDelay_clear </td>
+          <td>(</td>
+          <td class="paramtype">tAllpassDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tAllpassDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga83b93819de2b2d825247c47b830d918c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga83b93819de2b2d825247c47b830d918c">&#9670;&nbsp;</a></span>tAllpassDelay_setDelay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAllpassDelay_setDelay </td>
+          <td>(</td>
+          <td class="paramtype">tAllpassDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>delay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tAllpassDelay. </td></tr>
+    <tr><td class="paramname">delayLength</td><td>The new delay length in samples. Cannot be greater than the max delay length given on initialization. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7cda781e73a82d91e49f3ce5955cbd0a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7cda781e73a82d91e49f3ce5955cbd0a">&#9670;&nbsp;</a></span>tAllpassDelay_getDelay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tAllpassDelay_getDelay </td>
+          <td>(</td>
+          <td class="paramtype">tAllpassDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tAllpassDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The current delay length in samples. </dd></dl>
+
+</div>
+</div>
+<a id="ga000dae89babb537265f9b56f8ce5560b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga000dae89babb537265f9b56f8ce5560b">&#9670;&nbsp;</a></span>tAllpassDelay_tapIn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAllpassDelay_tapIn </td>
+          <td>(</td>
+          <td class="paramtype">tAllpassDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>tapDelay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tAllpassDelay. </td></tr>
+    <tr><td class="paramname">inptu</td><td></td></tr>
+    <tr><td class="paramname">position</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0348f7e531aa956c0e4f1e9eb3bb208a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0348f7e531aa956c0e4f1e9eb3bb208a">&#9670;&nbsp;</a></span>tAllpassDelay_tapOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tAllpassDelay_tapOut </td>
+          <td>(</td>
+          <td class="paramtype">tAllpassDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>tapDelay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tAllpassDelay. </td></tr>
+    <tr><td class="paramname">position</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga25124f2fc78144daa86e0008417f410c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga25124f2fc78144daa86e0008417f410c">&#9670;&nbsp;</a></span>tAllpassDelay_addTo()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tAllpassDelay_addTo </td>
+          <td>(</td>
+          <td class="paramtype">tAllpassDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>value</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>tapDelay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tAllpassDelay. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+    <tr><td class="paramname">position</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga6145fe6d2e4fd9e423d96725183498cc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6145fe6d2e4fd9e423d96725183498cc">&#9670;&nbsp;</a></span>tAllpassDelay_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tAllpassDelay_tick </td>
+          <td>(</td>
+          <td class="paramtype">tAllpassDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sample</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tAllpassDelay. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="gab6937352ad500b205c4fc5e822937735"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab6937352ad500b205c4fc5e822937735">&#9670;&nbsp;</a></span>tAllpassDelay_getLastOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tAllpassDelay_getLastOut </td>
+          <td>(</td>
+          <td class="paramtype">tAllpassDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tAllpassDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga01be8563825023d090b5dbd750f2bba3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga01be8563825023d090b5dbd750f2bba3">&#9670;&nbsp;</a></span>tAllpassDelay_getLastIn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tAllpassDelay_getLastIn </td>
+          <td>(</td>
+          <td class="paramtype">tAllpassDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tAllpassDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd> </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tasdr2.html
@@ -1,0 +1,531 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tADSR2</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tADSR2<div class="ingroups"><a class="el" href="group__envelopes.html">Envelopes</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga5b195997b8fc1934c6cb06cc13f09c13"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tasdr2.html#ga5b195997b8fc1934c6cb06cc13f09c13">tADSR2_init</a> (tADSR2 *const, float attack, float decay, float sustain, float release, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga5b195997b8fc1934c6cb06cc13f09c13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tADSR2 to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tasdr2.html#ga5b195997b8fc1934c6cb06cc13f09c13">More...</a><br /></td></tr>
+<tr class="separator:ga5b195997b8fc1934c6cb06cc13f09c13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga15dbf5b654eb51489bef787f4c9c23b7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tasdr2.html#ga15dbf5b654eb51489bef787f4c9c23b7">tADSR2_initToPool</a> (tADSR2 *const, float attack, float decay, float sustain, float release, tMempool *const)</td></tr>
+<tr class="memdesc:ga15dbf5b654eb51489bef787f4c9c23b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tADSR2 to a specified mempool.  <a href="group__tasdr2.html#ga15dbf5b654eb51489bef787f4c9c23b7">More...</a><br /></td></tr>
+<tr class="separator:ga15dbf5b654eb51489bef787f4c9c23b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3d78c0c766ca431b535d3adb0bc2f684"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tasdr2.html#ga3d78c0c766ca431b535d3adb0bc2f684">tADSR2_free</a> (tADSR2 *const)</td></tr>
+<tr class="memdesc:ga3d78c0c766ca431b535d3adb0bc2f684"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tADSR2 from its mempool.  <a href="group__tasdr2.html#ga3d78c0c766ca431b535d3adb0bc2f684">More...</a><br /></td></tr>
+<tr class="separator:ga3d78c0c766ca431b535d3adb0bc2f684"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3033906b9b5a6688818059210b10799e"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tasdr2.html#ga3033906b9b5a6688818059210b10799e">tADSR2_tick</a> (tADSR2 *const)</td></tr>
+<tr class="separator:ga3033906b9b5a6688818059210b10799e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga19f6d152bd5b351dcc4416f4a5f51555"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tasdr2.html#ga19f6d152bd5b351dcc4416f4a5f51555">tADSR2_setAttack</a> (tADSR2 *const, float attack)</td></tr>
+<tr class="separator:ga19f6d152bd5b351dcc4416f4a5f51555"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab50e8fb5a053b908b69315cd83e1840a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tasdr2.html#gab50e8fb5a053b908b69315cd83e1840a">tADSR2_setDecay</a> (tADSR2 *const, float decay)</td></tr>
+<tr class="separator:gab50e8fb5a053b908b69315cd83e1840a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3910c7c0360e0d7859e4bcf5521b3e7d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tasdr2.html#ga3910c7c0360e0d7859e4bcf5521b3e7d">tADSR2_setSustain</a> (tADSR2 *const, float sustain)</td></tr>
+<tr class="separator:ga3910c7c0360e0d7859e4bcf5521b3e7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf68f6a5e10f25998f33d65162f9eb583"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tasdr2.html#gaf68f6a5e10f25998f33d65162f9eb583">tADSR2_setRelease</a> (tADSR2 *const, float release)</td></tr>
+<tr class="separator:gaf68f6a5e10f25998f33d65162f9eb583"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8490472fff769f548a45739892a31758"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tasdr2.html#ga8490472fff769f548a45739892a31758">tADSR2_setLeakFactor</a> (tADSR2 *const, float leakFactor)</td></tr>
+<tr class="separator:ga8490472fff769f548a45739892a31758"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2ba1656a4f5d1f8dcecde930ea54c7b7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tasdr2.html#ga2ba1656a4f5d1f8dcecde930ea54c7b7">tADSR2_on</a> (tADSR2 *const, float velocity)</td></tr>
+<tr class="separator:ga2ba1656a4f5d1f8dcecde930ea54c7b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadd6f357864babc27382363b314efd70d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tasdr2.html#gadd6f357864babc27382363b314efd70d">tADSR2_off</a> (tADSR2 *const)</td></tr>
+<tr class="separator:gadd6f357864babc27382363b314efd70d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga5b195997b8fc1934c6cb06cc13f09c13"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5b195997b8fc1934c6cb06cc13f09c13">&#9670;&nbsp;</a></span>tADSR2_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR2_init </td>
+          <td>(</td>
+          <td class="paramtype">tADSR2 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sustain</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>release</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tADSR2 to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the tADSR2 to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga15dbf5b654eb51489bef787f4c9c23b7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga15dbf5b654eb51489bef787f4c9c23b7">&#9670;&nbsp;</a></span>tADSR2_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR2_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tADSR2 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sustain</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>release</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tADSR2 to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the tADSR2 to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3d78c0c766ca431b535d3adb0bc2f684"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3d78c0c766ca431b535d3adb0bc2f684">&#9670;&nbsp;</a></span>tADSR2_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR2_free </td>
+          <td>(</td>
+          <td class="paramtype">tADSR2 * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tADSR2 from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the tADSR2 to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3033906b9b5a6688818059210b10799e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3033906b9b5a6688818059210b10799e">&#9670;&nbsp;</a></span>tADSR2_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tADSR2_tick </td>
+          <td>(</td>
+          <td class="paramtype">tADSR2 * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR2. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga19f6d152bd5b351dcc4416f4a5f51555"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga19f6d152bd5b351dcc4416f4a5f51555">&#9670;&nbsp;</a></span>tADSR2_setAttack()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR2_setAttack </td>
+          <td>(</td>
+          <td class="paramtype">tADSR2 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attack</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR2. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab50e8fb5a053b908b69315cd83e1840a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab50e8fb5a053b908b69315cd83e1840a">&#9670;&nbsp;</a></span>tADSR2_setDecay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR2_setDecay </td>
+          <td>(</td>
+          <td class="paramtype">tADSR2 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR2. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3910c7c0360e0d7859e4bcf5521b3e7d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3910c7c0360e0d7859e4bcf5521b3e7d">&#9670;&nbsp;</a></span>tADSR2_setSustain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR2_setSustain </td>
+          <td>(</td>
+          <td class="paramtype">tADSR2 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sustain</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR2. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf68f6a5e10f25998f33d65162f9eb583"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf68f6a5e10f25998f33d65162f9eb583">&#9670;&nbsp;</a></span>tADSR2_setRelease()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR2_setRelease </td>
+          <td>(</td>
+          <td class="paramtype">tADSR2 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>release</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR2. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8490472fff769f548a45739892a31758"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8490472fff769f548a45739892a31758">&#9670;&nbsp;</a></span>tADSR2_setLeakFactor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR2_setLeakFactor </td>
+          <td>(</td>
+          <td class="paramtype">tADSR2 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>leakFactor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR2. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2ba1656a4f5d1f8dcecde930ea54c7b7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2ba1656a4f5d1f8dcecde930ea54c7b7">&#9670;&nbsp;</a></span>tADSR2_on()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR2_on </td>
+          <td>(</td>
+          <td class="paramtype">tADSR2 * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>velocity</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR2. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gadd6f357864babc27382363b314efd70d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gadd6f357864babc27382363b314efd70d">&#9670;&nbsp;</a></span>tADSR2_off()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tADSR2_off </td>
+          <td>(</td>
+          <td class="paramtype">tADSR2 * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">adsr</td><td>A pointer to the relevant tADSR2. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tattackdetection.html
@@ -1,0 +1,502 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tAttackDetection</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tAttackDetection<div class="ingroups"><a class="el" href="group__analysis.html">Analysis</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Detect attacks in an input signal.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaa7cf7c473a720eb6e034661a92a9164a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tattackdetection.html#gaa7cf7c473a720eb6e034661a92a9164a">tAttackDetection_init</a> (tAttackDetection *const, int blocksize, int atk, int rel, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gaa7cf7c473a720eb6e034661a92a9164a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tAttackDetection to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tattackdetection.html#gaa7cf7c473a720eb6e034661a92a9164a">More...</a><br /></td></tr>
+<tr class="separator:gaa7cf7c473a720eb6e034661a92a9164a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga159b77e3617708f63d34705f66891eca"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tattackdetection.html#ga159b77e3617708f63d34705f66891eca">tAttackDetection_initToPool</a> (tAttackDetection *const, int blocksize, int atk, int rel, tMempool *const)</td></tr>
+<tr class="memdesc:ga159b77e3617708f63d34705f66891eca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tAttackDetection to a specified mempool.  <a href="group__tattackdetection.html#ga159b77e3617708f63d34705f66891eca">More...</a><br /></td></tr>
+<tr class="separator:ga159b77e3617708f63d34705f66891eca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac0cecbd3eb9478a8ac62ad056b4e65e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tattackdetection.html#gac0cecbd3eb9478a8ac62ad056b4e65e8">tAttackDetection_free</a> (tAttackDetection *const)</td></tr>
+<tr class="memdesc:gac0cecbd3eb9478a8ac62ad056b4e65e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tAttackDetection from its mempool.  <a href="group__tattackdetection.html#gac0cecbd3eb9478a8ac62ad056b4e65e8">More...</a><br /></td></tr>
+<tr class="separator:gac0cecbd3eb9478a8ac62ad056b4e65e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga330419a7bcf2aea460cbb8341d0cc7a1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tattackdetection.html#ga330419a7bcf2aea460cbb8341d0cc7a1">tAttackDetection_setBlocksize</a> (tAttackDetection *const, int size)</td></tr>
+<tr class="memdesc:ga330419a7bcf2aea460cbb8341d0cc7a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set expected input blocksize.  <a href="group__tattackdetection.html#ga330419a7bcf2aea460cbb8341d0cc7a1">More...</a><br /></td></tr>
+<tr class="separator:ga330419a7bcf2aea460cbb8341d0cc7a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafc1088d0fc65cb8c9ca3e219dc6ee23e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tattackdetection.html#gafc1088d0fc65cb8c9ca3e219dc6ee23e">tAttackDetection_setSamplerate</a> (tAttackDetection *const, int inRate)</td></tr>
+<tr class="memdesc:gafc1088d0fc65cb8c9ca3e219dc6ee23e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set attack detection sample rate.  <a href="group__tattackdetection.html#gafc1088d0fc65cb8c9ca3e219dc6ee23e">More...</a><br /></td></tr>
+<tr class="separator:gafc1088d0fc65cb8c9ca3e219dc6ee23e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae1258e29699c07368168a5a06e847c1c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tattackdetection.html#gae1258e29699c07368168a5a06e847c1c">tAttackDetection_setAttack</a> (tAttackDetection *const, int inAtk)</td></tr>
+<tr class="memdesc:gae1258e29699c07368168a5a06e847c1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set attack time and coeff.  <a href="group__tattackdetection.html#gae1258e29699c07368168a5a06e847c1c">More...</a><br /></td></tr>
+<tr class="separator:gae1258e29699c07368168a5a06e847c1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga849d76be546d42e00dcfaee4ca326adb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tattackdetection.html#ga849d76be546d42e00dcfaee4ca326adb">tAttackDetection_setRelease</a> (tAttackDetection *const, int inRel)</td></tr>
+<tr class="memdesc:ga849d76be546d42e00dcfaee4ca326adb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set release time and coeff.  <a href="group__tattackdetection.html#ga849d76be546d42e00dcfaee4ca326adb">More...</a><br /></td></tr>
+<tr class="separator:ga849d76be546d42e00dcfaee4ca326adb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafc46d23c20523048eaf45a68e146dbcf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tattackdetection.html#gafc46d23c20523048eaf45a68e146dbcf">tAttackDetection_setThreshold</a> (tAttackDetection *const, float thres)</td></tr>
+<tr class="memdesc:gafc46d23c20523048eaf45a68e146dbcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set level above which values are identified as attacks.  <a href="group__tattackdetection.html#gafc46d23c20523048eaf45a68e146dbcf">More...</a><br /></td></tr>
+<tr class="separator:gafc46d23c20523048eaf45a68e146dbcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga628b4e4305fb135f7f363b94a209cb37"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tattackdetection.html#ga628b4e4305fb135f7f363b94a209cb37">tAttackDetection_detect</a> (tAttackDetection *const, float *in)</td></tr>
+<tr class="memdesc:ga628b4e4305fb135f7f363b94a209cb37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the largest transient in input block, return index of attack.  <a href="group__tattackdetection.html#ga628b4e4305fb135f7f363b94a209cb37">More...</a><br /></td></tr>
+<tr class="separator:ga628b4e4305fb135f7f363b94a209cb37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Detect attacks in an input signal. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gaa7cf7c473a720eb6e034661a92a9164a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa7cf7c473a720eb6e034661a92a9164a">&#9670;&nbsp;</a></span>tAttackDetection_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAttackDetection_init </td>
+          <td>(</td>
+          <td class="paramtype">tAttackDetection * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>blocksize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>atk</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>rel</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tAttackDetection to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the tAttackDetection to initialize. </td></tr>
+    <tr><td class="paramname">blockSize</td><td></td></tr>
+    <tr><td class="paramname">attack</td><td></td></tr>
+    <tr><td class="paramname">release</td><td></td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga159b77e3617708f63d34705f66891eca"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga159b77e3617708f63d34705f66891eca">&#9670;&nbsp;</a></span>tAttackDetection_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAttackDetection_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tAttackDetection * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>blocksize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>atk</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>rel</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tAttackDetection to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the tAttackDetection to initialize. </td></tr>
+    <tr><td class="paramname">blockSize</td><td></td></tr>
+    <tr><td class="paramname">attack</td><td></td></tr>
+    <tr><td class="paramname">release</td><td></td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac0cecbd3eb9478a8ac62ad056b4e65e8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac0cecbd3eb9478a8ac62ad056b4e65e8">&#9670;&nbsp;</a></span>tAttackDetection_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAttackDetection_free </td>
+          <td>(</td>
+          <td class="paramtype">tAttackDetection * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tAttackDetection from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the tAttackDetection to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga330419a7bcf2aea460cbb8341d0cc7a1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga330419a7bcf2aea460cbb8341d0cc7a1">&#9670;&nbsp;</a></span>tAttackDetection_setBlocksize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAttackDetection_setBlocksize </td>
+          <td>(</td>
+          <td class="paramtype">tAttackDetection * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>size</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set expected input blocksize. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the relevant tAttackDetection. </td></tr>
+    <tr><td class="paramname">blockSize</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gafc1088d0fc65cb8c9ca3e219dc6ee23e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafc1088d0fc65cb8c9ca3e219dc6ee23e">&#9670;&nbsp;</a></span>tAttackDetection_setSamplerate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAttackDetection_setSamplerate </td>
+          <td>(</td>
+          <td class="paramtype">tAttackDetection * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>inRate</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set attack detection sample rate. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the relevant tAttackDetection. </td></tr>
+    <tr><td class="paramname">sampleRate</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae1258e29699c07368168a5a06e847c1c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae1258e29699c07368168a5a06e847c1c">&#9670;&nbsp;</a></span>tAttackDetection_setAttack()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAttackDetection_setAttack </td>
+          <td>(</td>
+          <td class="paramtype">tAttackDetection * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>inAtk</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set attack time and coeff. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the relevant tAttackDetection. </td></tr>
+    <tr><td class="paramname">attack</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga849d76be546d42e00dcfaee4ca326adb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga849d76be546d42e00dcfaee4ca326adb">&#9670;&nbsp;</a></span>tAttackDetection_setRelease()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAttackDetection_setRelease </td>
+          <td>(</td>
+          <td class="paramtype">tAttackDetection * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>inRel</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set release time and coeff. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the relevant tAttackDetection. </td></tr>
+    <tr><td class="paramname">release</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gafc46d23c20523048eaf45a68e146dbcf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafc46d23c20523048eaf45a68e146dbcf">&#9670;&nbsp;</a></span>tAttackDetection_setThreshold()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAttackDetection_setThreshold </td>
+          <td>(</td>
+          <td class="paramtype">tAttackDetection * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>thres</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set level above which values are identified as attacks. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the relevant tAttackDetection. </td></tr>
+    <tr><td class="paramname">threshold</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga628b4e4305fb135f7f363b94a209cb37"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga628b4e4305fb135f7f363b94a209cb37">&#9670;&nbsp;</a></span>tAttackDetection_detect()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tAttackDetection_detect </td>
+          <td>(</td>
+          <td class="paramtype">tAttackDetection * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>in</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Find the largest transient in input block, return index of attack. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the relevant tAttackDetection. </td></tr>
+    <tr><td class="paramname">inputBlock</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Index of the largest transient in the input.  </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tautosampler.html
@@ -1,0 +1,489 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tAutoSampler</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tAutoSampler<div class="ingroups"><a class="el" href="group__sampling.html">Sampling</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Automatic sampler based on power of input.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gafbc477a175f7abfd083b150e7fb425eb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautosampler.html#gafbc477a175f7abfd083b150e7fb425eb">tAutoSampler_init</a> (tAutoSampler *const, tBuffer *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gafbc477a175f7abfd083b150e7fb425eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tAutoSampler to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tautosampler.html#gafbc477a175f7abfd083b150e7fb425eb">More...</a><br /></td></tr>
+<tr class="separator:gafbc477a175f7abfd083b150e7fb425eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1317602e4195ebc58d6df3f0263c4bb8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautosampler.html#ga1317602e4195ebc58d6df3f0263c4bb8">tAutoSampler_free</a> (tAutoSampler *const)</td></tr>
+<tr class="memdesc:ga1317602e4195ebc58d6df3f0263c4bb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tAutoSampler from its mempool.  <a href="group__tautosampler.html#ga1317602e4195ebc58d6df3f0263c4bb8">More...</a><br /></td></tr>
+<tr class="separator:ga1317602e4195ebc58d6df3f0263c4bb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga201113e0c5d4a209bc98719162d256c0"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautosampler.html#ga201113e0c5d4a209bc98719162d256c0">tAutoSampler_tick</a> (tAutoSampler *const, float input)</td></tr>
+<tr class="separator:ga201113e0c5d4a209bc98719162d256c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae3740600b81b2d3ecc2f76b354996873"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautosampler.html#gae3740600b81b2d3ecc2f76b354996873">tAutoSampler_setBuffer</a> (tAutoSampler *const, tBuffer *const)</td></tr>
+<tr class="separator:gae3740600b81b2d3ecc2f76b354996873"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2310af54d4e60debedd10003d6ec8113"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautosampler.html#ga2310af54d4e60debedd10003d6ec8113">tAutoSampler_setMode</a> (tAutoSampler *const, PlayMode mode)</td></tr>
+<tr class="separator:ga2310af54d4e60debedd10003d6ec8113"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga49675d40778b000fce44454eca05f476"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautosampler.html#ga49675d40778b000fce44454eca05f476">tAutoSampler_play</a> (tAutoSampler *const)</td></tr>
+<tr class="separator:ga49675d40778b000fce44454eca05f476"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa267e6bad2805ca746b9189ea38cf040"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautosampler.html#gaa267e6bad2805ca746b9189ea38cf040">tAutoSampler_stop</a> (tAutoSampler *const)</td></tr>
+<tr class="separator:gaa267e6bad2805ca746b9189ea38cf040"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa163a4ea5f76285fdb51de157185740e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautosampler.html#gaa163a4ea5f76285fdb51de157185740e">tAutoSampler_setThreshold</a> (tAutoSampler *const, float thresh)</td></tr>
+<tr class="separator:gaa163a4ea5f76285fdb51de157185740e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabe80e37e28f7b454acf1621ab703506f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautosampler.html#gabe80e37e28f7b454acf1621ab703506f">tAutoSampler_setWindowSize</a> (tAutoSampler *const, uint32_t size)</td></tr>
+<tr class="separator:gabe80e37e28f7b454acf1621ab703506f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga45d69e59ff3924446ff833940adba2db"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautosampler.html#ga45d69e59ff3924446ff833940adba2db">tAutoSampler_setCrossfadeLength</a> (tAutoSampler *const, uint32_t length)</td></tr>
+<tr class="separator:ga45d69e59ff3924446ff833940adba2db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8abfe84e7aaf00dc70b5b6e96d99af63"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautosampler.html#ga8abfe84e7aaf00dc70b5b6e96d99af63">tAutoSampler_setRate</a> (tAutoSampler *const, float rate)</td></tr>
+<tr class="separator:ga8abfe84e7aaf00dc70b5b6e96d99af63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Automatic sampler based on power of input. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gafbc477a175f7abfd083b150e7fb425eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafbc477a175f7abfd083b150e7fb425eb">&#9670;&nbsp;</a></span>tAutoSampler_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutoSampler_init </td>
+          <td>(</td>
+          <td class="paramtype">tAutoSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tAutoSampler to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the tAutoSampler to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1317602e4195ebc58d6df3f0263c4bb8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1317602e4195ebc58d6df3f0263c4bb8">&#9670;&nbsp;</a></span>tAutoSampler_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutoSampler_free </td>
+          <td>(</td>
+          <td class="paramtype">tAutoSampler * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tAutoSampler from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the tAutoSampler to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga201113e0c5d4a209bc98719162d256c0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga201113e0c5d4a209bc98719162d256c0">&#9670;&nbsp;</a></span>tAutoSampler_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tAutoSampler_tick </td>
+          <td>(</td>
+          <td class="paramtype">tAutoSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tAutoSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae3740600b81b2d3ecc2f76b354996873"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae3740600b81b2d3ecc2f76b354996873">&#9670;&nbsp;</a></span>tAutoSampler_setBuffer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutoSampler_setBuffer </td>
+          <td>(</td>
+          <td class="paramtype">tAutoSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tAutoSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2310af54d4e60debedd10003d6ec8113"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2310af54d4e60debedd10003d6ec8113">&#9670;&nbsp;</a></span>tAutoSampler_setMode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutoSampler_setMode </td>
+          <td>(</td>
+          <td class="paramtype">tAutoSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">PlayMode&#160;</td>
+          <td class="paramname"><em>mode</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tAutoSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga49675d40778b000fce44454eca05f476"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga49675d40778b000fce44454eca05f476">&#9670;&nbsp;</a></span>tAutoSampler_play()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutoSampler_play </td>
+          <td>(</td>
+          <td class="paramtype">tAutoSampler * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tAutoSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa267e6bad2805ca746b9189ea38cf040"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa267e6bad2805ca746b9189ea38cf040">&#9670;&nbsp;</a></span>tAutoSampler_stop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutoSampler_stop </td>
+          <td>(</td>
+          <td class="paramtype">tAutoSampler * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tAutoSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa163a4ea5f76285fdb51de157185740e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa163a4ea5f76285fdb51de157185740e">&#9670;&nbsp;</a></span>tAutoSampler_setThreshold()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutoSampler_setThreshold </td>
+          <td>(</td>
+          <td class="paramtype">tAutoSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>thresh</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tAutoSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabe80e37e28f7b454acf1621ab703506f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabe80e37e28f7b454acf1621ab703506f">&#9670;&nbsp;</a></span>tAutoSampler_setWindowSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutoSampler_setWindowSize </td>
+          <td>(</td>
+          <td class="paramtype">tAutoSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>size</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tAutoSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga45d69e59ff3924446ff833940adba2db"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga45d69e59ff3924446ff833940adba2db">&#9670;&nbsp;</a></span>tAutoSampler_setCrossfadeLength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutoSampler_setCrossfadeLength </td>
+          <td>(</td>
+          <td class="paramtype">tAutoSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tAutoSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8abfe84e7aaf00dc70b5b6e96d99af63"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8abfe84e7aaf00dc70b5b6e96d99af63">&#9670;&nbsp;</a></span>tAutoSampler_setRate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutoSampler_setRate </td>
+          <td>(</td>
+          <td class="paramtype">tAutoSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>rate</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tAutoSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tautotune.html
@@ -1,0 +1,663 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>LEAF: tAutotune</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script src="/js/template.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+<link rel="stylesheet" href="/css/tachyons.css" type="text/css">
+</head>
+<body class="bg-washed-green black-70 ph0 sans-serif">
+<header class="fl bg-deep-green w-100 pt4-ns pb3-ns pl5">
+  <div class="bg-dark-green pv0">
+    <h1 class="black-70 pv3 ph4 f-headline-m">
+      <a class="link hover-gold white dib mr3" href="/" title="NIRL">NIRL &#8212; New Instrument Research Lab
+        <div class="fw4 f4">at Princeton University</div>
+      </a>
+    </h1>
+  </div>
+  <nav class="pv0 ph4 f5 fw5 ttu tracked">
+    <a class="link hover-gold white dib mr6" href="/" title="Home">&#187;Home&#171;</a>
+    <a class="link hover-gold white dib mr6" href="/tabs/projects.html" title="Projects">&#187;Projects&#171;</a>
+    <a class="link hover-gold white dib mr6" href="/tabs/papers.html" title="Papers">&#187;Papers&#171;</a>
+<!--    <a class="link hover-gold white dib mr6" href="/tabs/people.html" title="People">People</a> -->
+<!--    <a class="link hover-gold white dib" href="/tabs/contact.html" title="Contact">Contact</a> -->
+  </nav>
+</header>
+<div><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tAutotune<div class="ingroups"><a class="el" href="group__effects.html">Effects</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaf98c92df2312518b1d0069e76dd6c724"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautotune.html#gaf98c92df2312518b1d0069e76dd6c724">tAutotune_init</a> (tAutotune *const, int numVoices, int bufSize, int frameSize)</td></tr>
+<tr class="separator:gaf98c92df2312518b1d0069e76dd6c724"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b306f7b3f6abc6a2e48ce932d74e720"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautotune.html#ga6b306f7b3f6abc6a2e48ce932d74e720">tAutotune_initToPool</a> (tAutotune *const, int numVoices, int bufSize, int frameSize, tMempool *const)</td></tr>
+<tr class="separator:ga6b306f7b3f6abc6a2e48ce932d74e720"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8ed1845d8de81a427d4ea23881588ed0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautotune.html#ga8ed1845d8de81a427d4ea23881588ed0">tAutotune_free</a> (tAutotune *const)</td></tr>
+<tr class="separator:ga8ed1845d8de81a427d4ea23881588ed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6197f6afcadbd023e1036c030c175fb1"><td class="memItemLeft" align="right" valign="top">float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautotune.html#ga6197f6afcadbd023e1036c030c175fb1">tAutotune_tick</a> (tAutotune *const, float sample)</td></tr>
+<tr class="separator:ga6197f6afcadbd023e1036c030c175fb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7e94d16d57e24df5fd16a812101d2f4c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautotune.html#ga7e94d16d57e24df5fd16a812101d2f4c">tAutotune_setNumVoices</a> (tAutotune *const, int numVoices)</td></tr>
+<tr class="separator:ga7e94d16d57e24df5fd16a812101d2f4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gace8c9bc009963933acd5817b8bab7ac8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautotune.html#gace8c9bc009963933acd5817b8bab7ac8">tAutotune_setFreqs</a> (tAutotune *const, float f)</td></tr>
+<tr class="separator:gace8c9bc009963933acd5817b8bab7ac8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4a9d62be45b3f85144efb5f6bb5d1d73"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautotune.html#ga4a9d62be45b3f85144efb5f6bb5d1d73">tAutotune_setFreq</a> (tAutotune *const, float f, int voice)</td></tr>
+<tr class="separator:ga4a9d62be45b3f85144efb5f6bb5d1d73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac157ad740e040242b7ccd75680653501"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautotune.html#gac157ad740e040242b7ccd75680653501">tAutotune_setTimeConstant</a> (tAutotune *const, float tc)</td></tr>
+<tr class="separator:gac157ad740e040242b7ccd75680653501"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga37ce5ae24b2262dcf2ae676d78cc7bb7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautotune.html#ga37ce5ae24b2262dcf2ae676d78cc7bb7">tAutotune_setHopSize</a> (tAutotune *const, int hs)</td></tr>
+<tr class="separator:ga37ce5ae24b2262dcf2ae676d78cc7bb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafa9741473b8bd0e90d3f9ef2df04bbe3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautotune.html#gafa9741473b8bd0e90d3f9ef2df04bbe3">tAutotune_setWindowSize</a> (tAutotune *const, int ws)</td></tr>
+<tr class="separator:gafa9741473b8bd0e90d3f9ef2df04bbe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf151ba40269001a3518cd3d591e1d4b3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautotune.html#gaf151ba40269001a3518cd3d591e1d4b3">tAutotune_setFidelityThreshold</a> (tAutotune *const, float threshold)</td></tr>
+<tr class="separator:gaf151ba40269001a3518cd3d591e1d4b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7435d0f32dbeaeb3e1483fad156ad104"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautotune.html#ga7435d0f32dbeaeb3e1483fad156ad104">tAutotune_setAlpha</a> (tAutotune *const, float alpha)</td></tr>
+<tr class="separator:ga7435d0f32dbeaeb3e1483fad156ad104"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf23dfecfff0ae55ece6af4b396ebbdeb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautotune.html#gaf23dfecfff0ae55ece6af4b396ebbdeb">tAutotune_setTolerance</a> (tAutotune *const, float tolerance)</td></tr>
+<tr class="separator:gaf23dfecfff0ae55ece6af4b396ebbdeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga074c2670dc08cf1c4a8f27737a96c3a6"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautotune.html#ga074c2670dc08cf1c4a8f27737a96c3a6">tAutotune_getInputPeriod</a> (tAutotune *const)</td></tr>
+<tr class="separator:ga074c2670dc08cf1c4a8f27737a96c3a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga95658493f0095108e79de5c1ee685a22"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tautotune.html#ga95658493f0095108e79de5c1ee685a22">tAutotune_getInputFreq</a> (tAutotune *const)</td></tr>
+<tr class="separator:ga95658493f0095108e79de5c1ee685a22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gaf98c92df2312518b1d0069e76dd6c724"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf98c92df2312518b1d0069e76dd6c724">&#9670;&nbsp;</a></span>tAutotune_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutotune_init </td>
+          <td>(</td>
+          <td class="paramtype">tAutotune * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>numVoices</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>bufSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>frameSize</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6b306f7b3f6abc6a2e48ce932d74e720"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6b306f7b3f6abc6a2e48ce932d74e720">&#9670;&nbsp;</a></span>tAutotune_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutotune_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tAutotune * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>numVoices</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>bufSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>frameSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8ed1845d8de81a427d4ea23881588ed0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8ed1845d8de81a427d4ea23881588ed0">&#9670;&nbsp;</a></span>tAutotune_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutotune_free </td>
+          <td>(</td>
+          <td class="paramtype">tAutotune * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6197f6afcadbd023e1036c030c175fb1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6197f6afcadbd023e1036c030c175fb1">&#9670;&nbsp;</a></span>tAutotune_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float * tAutotune_tick </td>
+          <td>(</td>
+          <td class="paramtype">tAutotune * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sample</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7e94d16d57e24df5fd16a812101d2f4c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7e94d16d57e24df5fd16a812101d2f4c">&#9670;&nbsp;</a></span>tAutotune_setNumVoices()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutotune_setNumVoices </td>
+          <td>(</td>
+          <td class="paramtype">tAutotune * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>numVoices</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gace8c9bc009963933acd5817b8bab7ac8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gace8c9bc009963933acd5817b8bab7ac8">&#9670;&nbsp;</a></span>tAutotune_setFreqs()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutotune_setFreqs </td>
+          <td>(</td>
+          <td class="paramtype">tAutotune * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>f</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga4a9d62be45b3f85144efb5f6bb5d1d73"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4a9d62be45b3f85144efb5f6bb5d1d73">&#9670;&nbsp;</a></span>tAutotune_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutotune_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tAutotune * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>f</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>voice</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac157ad740e040242b7ccd75680653501"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac157ad740e040242b7ccd75680653501">&#9670;&nbsp;</a></span>tAutotune_setTimeConstant()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutotune_setTimeConstant </td>
+          <td>(</td>
+          <td class="paramtype">tAutotune * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>tc</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga37ce5ae24b2262dcf2ae676d78cc7bb7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga37ce5ae24b2262dcf2ae676d78cc7bb7">&#9670;&nbsp;</a></span>tAutotune_setHopSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutotune_setHopSize </td>
+          <td>(</td>
+          <td class="paramtype">tAutotune * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>hs</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gafa9741473b8bd0e90d3f9ef2df04bbe3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafa9741473b8bd0e90d3f9ef2df04bbe3">&#9670;&nbsp;</a></span>tAutotune_setWindowSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutotune_setWindowSize </td>
+          <td>(</td>
+          <td class="paramtype">tAutotune * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>ws</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf151ba40269001a3518cd3d591e1d4b3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf151ba40269001a3518cd3d591e1d4b3">&#9670;&nbsp;</a></span>tAutotune_setFidelityThreshold()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutotune_setFidelityThreshold </td>
+          <td>(</td>
+          <td class="paramtype">tAutotune * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>threshold</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7435d0f32dbeaeb3e1483fad156ad104"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7435d0f32dbeaeb3e1483fad156ad104">&#9670;&nbsp;</a></span>tAutotune_setAlpha()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutotune_setAlpha </td>
+          <td>(</td>
+          <td class="paramtype">tAutotune * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>alpha</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf23dfecfff0ae55ece6af4b396ebbdeb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf23dfecfff0ae55ece6af4b396ebbdeb">&#9670;&nbsp;</a></span>tAutotune_setTolerance()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tAutotune_setTolerance </td>
+          <td>(</td>
+          <td class="paramtype">tAutotune * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>tolerance</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga074c2670dc08cf1c4a8f27737a96c3a6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga074c2670dc08cf1c4a8f27737a96c3a6">&#9670;&nbsp;</a></span>tAutotune_getInputPeriod()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tAutotune_getInputPeriod </td>
+          <td>(</td>
+          <td class="paramtype">tAutotune * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga95658493f0095108e79de5c1ee685a22"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga95658493f0095108e79de5c1ee685a22">&#9670;&nbsp;</a></span>tAutotune_getInputFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tAutotune_getInputFreq </td>
+          <td>(</td>
+          <td class="paramtype">tAutotune * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tbiquad.html
@@ -1,0 +1,622 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tBiQuad</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tBiQuad<div class="ingroups"><a class="el" href="group__filters.html">Filters</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>BiQuad filter, reimplemented from STK (Cook and Scavone).  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga7a8d9261b37e588479b6a9548a28a2ae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbiquad.html#ga7a8d9261b37e588479b6a9548a28a2ae">tBiQuad_init</a> (tBiQuad *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga7a8d9261b37e588479b6a9548a28a2ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tBiQuad to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tbiquad.html#ga7a8d9261b37e588479b6a9548a28a2ae">More...</a><br /></td></tr>
+<tr class="separator:ga7a8d9261b37e588479b6a9548a28a2ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab56ac6460715286ab98439dd8e7e346c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbiquad.html#gab56ac6460715286ab98439dd8e7e346c">tBiQuad_initToPool</a> (tBiQuad *const, tMempool *const)</td></tr>
+<tr class="memdesc:gab56ac6460715286ab98439dd8e7e346c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tBiQuad to a specified mempool.  <a href="group__tbiquad.html#gab56ac6460715286ab98439dd8e7e346c">More...</a><br /></td></tr>
+<tr class="separator:gab56ac6460715286ab98439dd8e7e346c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa73dd0d8efd4d147184a3af3243f50db"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbiquad.html#gaa73dd0d8efd4d147184a3af3243f50db">tBiQuad_free</a> (tBiQuad *const)</td></tr>
+<tr class="memdesc:gaa73dd0d8efd4d147184a3af3243f50db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tBiQuad from its mempool.  <a href="group__tbiquad.html#gaa73dd0d8efd4d147184a3af3243f50db">More...</a><br /></td></tr>
+<tr class="separator:gaa73dd0d8efd4d147184a3af3243f50db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2acfc9097aa260ff141d79199f64fc88"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbiquad.html#ga2acfc9097aa260ff141d79199f64fc88">tBiQuad_tick</a> (tBiQuad *const, float input)</td></tr>
+<tr class="separator:ga2acfc9097aa260ff141d79199f64fc88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2f804ac8c8ccea56bbb3dae661b82692"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbiquad.html#ga2f804ac8c8ccea56bbb3dae661b82692">tBiQuad_setB0</a> (tBiQuad *const, float b0)</td></tr>
+<tr class="separator:ga2f804ac8c8ccea56bbb3dae661b82692"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6a2d07723a0652c959c529274b1ca783"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbiquad.html#ga6a2d07723a0652c959c529274b1ca783">tBiQuad_setB1</a> (tBiQuad *const, float b1)</td></tr>
+<tr class="separator:ga6a2d07723a0652c959c529274b1ca783"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab3602dd88664599839ea67c6797cc4c2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbiquad.html#gab3602dd88664599839ea67c6797cc4c2">tBiQuad_setB2</a> (tBiQuad *const, float b2)</td></tr>
+<tr class="separator:gab3602dd88664599839ea67c6797cc4c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga18eef101bdb03775d51acec6c6eebdaa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbiquad.html#ga18eef101bdb03775d51acec6c6eebdaa">tBiQuad_setA1</a> (tBiQuad *const, float a1)</td></tr>
+<tr class="separator:ga18eef101bdb03775d51acec6c6eebdaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1583768209208a3f9d9135636fb505e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbiquad.html#ga1583768209208a3f9d9135636fb505e6">tBiQuad_setA2</a> (tBiQuad *const, float a2)</td></tr>
+<tr class="separator:ga1583768209208a3f9d9135636fb505e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad74e2504b0128119213eceba36f92879"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbiquad.html#gad74e2504b0128119213eceba36f92879">tBiQuad_setNotch</a> (tBiQuad *const, float freq, float radius)</td></tr>
+<tr class="separator:gad74e2504b0128119213eceba36f92879"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaab73d7a7a79dccd112ec4d130b8e6d64"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbiquad.html#gaab73d7a7a79dccd112ec4d130b8e6d64">tBiQuad_setResonance</a> (tBiQuad *const, float freq, float radius, int normalize)</td></tr>
+<tr class="separator:gaab73d7a7a79dccd112ec4d130b8e6d64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac0b42b1f3660dd1827b0e0a4150aadcd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbiquad.html#gac0b42b1f3660dd1827b0e0a4150aadcd">tBiQuad_setCoefficients</a> (tBiQuad *const, float b0, float b1, float b2, float a1, float a2)</td></tr>
+<tr class="separator:gac0b42b1f3660dd1827b0e0a4150aadcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga181c340eed069d92eacaadc8466f3218"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbiquad.html#ga181c340eed069d92eacaadc8466f3218">tBiQuad_setGain</a> (tBiQuad *const, float gain)</td></tr>
+<tr class="separator:ga181c340eed069d92eacaadc8466f3218"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>BiQuad filter, reimplemented from STK (Cook and Scavone). </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga7a8d9261b37e588479b6a9548a28a2ae"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7a8d9261b37e588479b6a9548a28a2ae">&#9670;&nbsp;</a></span>tBiQuad_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBiQuad_init </td>
+          <td>(</td>
+          <td class="paramtype">tBiQuad * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tBiQuad to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tBiQuad to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab56ac6460715286ab98439dd8e7e346c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab56ac6460715286ab98439dd8e7e346c">&#9670;&nbsp;</a></span>tBiQuad_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBiQuad_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tBiQuad * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tBiQuad to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tBiQuad to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa73dd0d8efd4d147184a3af3243f50db"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa73dd0d8efd4d147184a3af3243f50db">&#9670;&nbsp;</a></span>tBiQuad_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBiQuad_free </td>
+          <td>(</td>
+          <td class="paramtype">tBiQuad * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tBiQuad from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tBiQuad to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2acfc9097aa260ff141d79199f64fc88"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2acfc9097aa260ff141d79199f64fc88">&#9670;&nbsp;</a></span>tBiQuad_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tBiQuad_tick </td>
+          <td>(</td>
+          <td class="paramtype">tBiQuad * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tBiQuad. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2f804ac8c8ccea56bbb3dae661b82692"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2f804ac8c8ccea56bbb3dae661b82692">&#9670;&nbsp;</a></span>tBiQuad_setB0()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBiQuad_setB0 </td>
+          <td>(</td>
+          <td class="paramtype">tBiQuad * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b0</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tBiQuad. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6a2d07723a0652c959c529274b1ca783"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6a2d07723a0652c959c529274b1ca783">&#9670;&nbsp;</a></span>tBiQuad_setB1()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBiQuad_setB1 </td>
+          <td>(</td>
+          <td class="paramtype">tBiQuad * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b1</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tBiQuad. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab3602dd88664599839ea67c6797cc4c2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab3602dd88664599839ea67c6797cc4c2">&#9670;&nbsp;</a></span>tBiQuad_setB2()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBiQuad_setB2 </td>
+          <td>(</td>
+          <td class="paramtype">tBiQuad * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b2</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tBiQuad. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga18eef101bdb03775d51acec6c6eebdaa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga18eef101bdb03775d51acec6c6eebdaa">&#9670;&nbsp;</a></span>tBiQuad_setA1()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBiQuad_setA1 </td>
+          <td>(</td>
+          <td class="paramtype">tBiQuad * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>a1</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tBiQuad. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1583768209208a3f9d9135636fb505e6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1583768209208a3f9d9135636fb505e6">&#9670;&nbsp;</a></span>tBiQuad_setA2()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBiQuad_setA2 </td>
+          <td>(</td>
+          <td class="paramtype">tBiQuad * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>a2</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tBiQuad. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad74e2504b0128119213eceba36f92879"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad74e2504b0128119213eceba36f92879">&#9670;&nbsp;</a></span>tBiQuad_setNotch()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBiQuad_setNotch </td>
+          <td>(</td>
+          <td class="paramtype">tBiQuad * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>radius</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tBiQuad. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaab73d7a7a79dccd112ec4d130b8e6d64"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaab73d7a7a79dccd112ec4d130b8e6d64">&#9670;&nbsp;</a></span>tBiQuad_setResonance()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBiQuad_setResonance </td>
+          <td>(</td>
+          <td class="paramtype">tBiQuad * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>radius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>normalize</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tBiQuad. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac0b42b1f3660dd1827b0e0a4150aadcd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac0b42b1f3660dd1827b0e0a4150aadcd">&#9670;&nbsp;</a></span>tBiQuad_setCoefficients()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBiQuad_setCoefficients </td>
+          <td>(</td>
+          <td class="paramtype">tBiQuad * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b0</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>a1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>a2</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tBiQuad. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga181c340eed069d92eacaadc8466f3218"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga181c340eed069d92eacaadc8466f3218">&#9670;&nbsp;</a></span>tBiQuad_setGain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBiQuad_setGain </td>
+          <td>(</td>
+          <td class="paramtype">tBiQuad * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>gain</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tBiQuad.</td></tr>
+  </table>
+  </dd>
+</dl>
+<p> </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tbuffer.html
@@ -1,0 +1,689 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tBuffer</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tBuffer<div class="ingroups"><a class="el" href="group__sampling.html">Sampling</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Buffer for use in Sampler objects.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga91d93789b64c9306b30933c5e8d001fd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html#ga91d93789b64c9306b30933c5e8d001fd">tBuffer_init</a> (tBuffer *const, uint32_t length, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga91d93789b64c9306b30933c5e8d001fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tBuffer to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tbuffer.html#ga91d93789b64c9306b30933c5e8d001fd">More...</a><br /></td></tr>
+<tr class="separator:ga91d93789b64c9306b30933c5e8d001fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad24562bae9e5411aa917bee6f27d4153"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html#gad24562bae9e5411aa917bee6f27d4153">tBuffer_initToPool</a> (tBuffer *const sb, uint32_t length, tMempool *const mp)</td></tr>
+<tr class="memdesc:gad24562bae9e5411aa917bee6f27d4153"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tBuffer to a specified mempool.  <a href="group__tbuffer.html#gad24562bae9e5411aa917bee6f27d4153">More...</a><br /></td></tr>
+<tr class="separator:gad24562bae9e5411aa917bee6f27d4153"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7addef34b26a9464a59f023d690ec04"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html#gaa7addef34b26a9464a59f023d690ec04">tBuffer_free</a> (tBuffer *const)</td></tr>
+<tr class="memdesc:gaa7addef34b26a9464a59f023d690ec04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tBuffer from its mempool.  <a href="group__tbuffer.html#gaa7addef34b26a9464a59f023d690ec04">More...</a><br /></td></tr>
+<tr class="separator:gaa7addef34b26a9464a59f023d690ec04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadad3503c475071c5240b37c768f64be2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html#gadad3503c475071c5240b37c768f64be2">tBuffer_tick</a> (tBuffer *const, float sample)</td></tr>
+<tr class="memdesc:gadad3503c475071c5240b37c768f64be2"><td class="mdescLeft">&#160;</td><td class="mdescRight">If recording, add a sample to the buffer. Otherwise do nothing.  <a href="group__tbuffer.html#gadad3503c475071c5240b37c768f64be2">More...</a><br /></td></tr>
+<tr class="separator:gadad3503c475071c5240b37c768f64be2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga73438e2159fac7b67563b1009ca9c7f6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html#ga73438e2159fac7b67563b1009ca9c7f6">tBuffer_read</a> (tBuffer *const, float *buff, uint32_t len)</td></tr>
+<tr class="memdesc:ga73438e2159fac7b67563b1009ca9c7f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read an input buffer into the buffer.  <a href="group__tbuffer.html#ga73438e2159fac7b67563b1009ca9c7f6">More...</a><br /></td></tr>
+<tr class="separator:ga73438e2159fac7b67563b1009ca9c7f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga69d5397829f174b81a621170367a8550"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html#ga69d5397829f174b81a621170367a8550">tBuffer_get</a> (tBuffer *const, int idx)</td></tr>
+<tr class="memdesc:ga69d5397829f174b81a621170367a8550"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the sample recorded at a given position in the buffer.  <a href="group__tbuffer.html#ga69d5397829f174b81a621170367a8550">More...</a><br /></td></tr>
+<tr class="separator:ga69d5397829f174b81a621170367a8550"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga55baf7685651fd7f9926dc0ed5b2d73b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html#ga55baf7685651fd7f9926dc0ed5b2d73b">tBuffer_record</a> (tBuffer *const)</td></tr>
+<tr class="memdesc:ga55baf7685651fd7f9926dc0ed5b2d73b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start recording samples into the buffer.  <a href="group__tbuffer.html#ga55baf7685651fd7f9926dc0ed5b2d73b">More...</a><br /></td></tr>
+<tr class="separator:ga55baf7685651fd7f9926dc0ed5b2d73b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9fcb0f6e0fb037edf1146a3983d8424d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html#ga9fcb0f6e0fb037edf1146a3983d8424d">tBuffer_stop</a> (tBuffer *const)</td></tr>
+<tr class="memdesc:ga9fcb0f6e0fb037edf1146a3983d8424d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop recordings samples into the buffer.  <a href="group__tbuffer.html#ga9fcb0f6e0fb037edf1146a3983d8424d">More...</a><br /></td></tr>
+<tr class="separator:ga9fcb0f6e0fb037edf1146a3983d8424d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7ff30c7c2c6de87ed61c8025620429f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html#gaa7ff30c7c2c6de87ed61c8025620429f">tBuffer_getRecordPosition</a> (tBuffer *const)</td></tr>
+<tr class="memdesc:gaa7ff30c7c2c6de87ed61c8025620429f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the recording position, from where the buffer will next add samples.  <a href="group__tbuffer.html#gaa7ff30c7c2c6de87ed61c8025620429f">More...</a><br /></td></tr>
+<tr class="separator:gaa7ff30c7c2c6de87ed61c8025620429f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga893981a1b088cb6cd43359f869069689"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html#ga893981a1b088cb6cd43359f869069689">tBuffer_setRecordPosition</a> (tBuffer *const, int pos)</td></tr>
+<tr class="memdesc:ga893981a1b088cb6cd43359f869069689"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the recording position, from where the buffer will next add samples.  <a href="group__tbuffer.html#ga893981a1b088cb6cd43359f869069689">More...</a><br /></td></tr>
+<tr class="separator:ga893981a1b088cb6cd43359f869069689"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22b4855b2f2e94a7f870de419b3c3c84"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html#ga22b4855b2f2e94a7f870de419b3c3c84">tBuffer_setRecordMode</a> (tBuffer *const, RecordMode mode)</td></tr>
+<tr class="memdesc:ga22b4855b2f2e94a7f870de419b3c3c84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the recording mode.  <a href="group__tbuffer.html#ga22b4855b2f2e94a7f870de419b3c3c84">More...</a><br /></td></tr>
+<tr class="separator:ga22b4855b2f2e94a7f870de419b3c3c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga39fb5d9d5ed963390e45322a2a97a1f1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html#ga39fb5d9d5ed963390e45322a2a97a1f1">tBuffer_clear</a> (tBuffer *const)</td></tr>
+<tr class="memdesc:ga39fb5d9d5ed963390e45322a2a97a1f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the buffer.  <a href="group__tbuffer.html#ga39fb5d9d5ed963390e45322a2a97a1f1">More...</a><br /></td></tr>
+<tr class="separator:ga39fb5d9d5ed963390e45322a2a97a1f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga79955880600cfd3ec722b7110a4aab33"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html#ga79955880600cfd3ec722b7110a4aab33">tBuffer_getBufferLength</a> (tBuffer *const)</td></tr>
+<tr class="memdesc:ga79955880600cfd3ec722b7110a4aab33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the length of the buffer.  <a href="group__tbuffer.html#ga79955880600cfd3ec722b7110a4aab33">More...</a><br /></td></tr>
+<tr class="separator:ga79955880600cfd3ec722b7110a4aab33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa68440f784cd947e6bb4eb00cd6473b5"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html#gaa68440f784cd947e6bb4eb00cd6473b5">tBuffer_getRecordedLength</a> (tBuffer *const sb)</td></tr>
+<tr class="memdesc:gaa68440f784cd947e6bb4eb00cd6473b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the length of recorded audio in the buffer.  <a href="group__tbuffer.html#gaa68440f784cd947e6bb4eb00cd6473b5">More...</a><br /></td></tr>
+<tr class="separator:gaa68440f784cd947e6bb4eb00cd6473b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga28a6063f2d763e4ba9414c797c1884b4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html#ga28a6063f2d763e4ba9414c797c1884b4">tBuffer_setRecordedLength</a> (tBuffer *const sb, int length)</td></tr>
+<tr class="memdesc:ga28a6063f2d763e4ba9414c797c1884b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the length of what is considered recorded audio in the buffer.  <a href="group__tbuffer.html#ga28a6063f2d763e4ba9414c797c1884b4">More...</a><br /></td></tr>
+<tr class="separator:ga28a6063f2d763e4ba9414c797c1884b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga37ffab4845668d588eac944f4adb1f65"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbuffer.html#ga37ffab4845668d588eac944f4adb1f65">tBuffer_isActive</a> (tBuffer *const sb)</td></tr>
+<tr class="memdesc:ga37ffab4845668d588eac944f4adb1f65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the buffer is recording.  <a href="group__tbuffer.html#ga37ffab4845668d588eac944f4adb1f65">More...</a><br /></td></tr>
+<tr class="separator:ga37ffab4845668d588eac944f4adb1f65"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Buffer for use in Sampler objects. </p>
+<p>Buffer for use in Sampler objects. Can selectively record audio and keeps track of the length of recorded audio. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga91d93789b64c9306b30933c5e8d001fd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga91d93789b64c9306b30933c5e8d001fd">&#9670;&nbsp;</a></span>tBuffer_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBuffer_init </td>
+          <td>(</td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>length</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tBuffer to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the tBuffer to initialize. </td></tr>
+    <tr><td class="paramname">length</td><td>The length of the buffer in samples. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad24562bae9e5411aa917bee6f27d4153"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad24562bae9e5411aa917bee6f27d4153">&#9670;&nbsp;</a></span>tBuffer_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBuffer_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tBuffer *const&#160;</td>
+          <td class="paramname"><em>sb</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>length</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tBuffer to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the tBuffer to initialize. </td></tr>
+    <tr><td class="paramname">length</td><td>The length of the buffer in samples. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa7addef34b26a9464a59f023d690ec04"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa7addef34b26a9464a59f023d690ec04">&#9670;&nbsp;</a></span>tBuffer_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBuffer_free </td>
+          <td>(</td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tBuffer from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the tBuffer to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gadad3503c475071c5240b37c768f64be2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gadad3503c475071c5240b37c768f64be2">&#9670;&nbsp;</a></span>tBuffer_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBuffer_tick </td>
+          <td>(</td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sample</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>If recording, add a sample to the buffer. Otherwise do nothing. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tBuffer. </td></tr>
+    <tr><td class="paramname">input</td><td>The input sample. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga73438e2159fac7b67563b1009ca9c7f6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga73438e2159fac7b67563b1009ca9c7f6">&#9670;&nbsp;</a></span>tBuffer_read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBuffer_read </td>
+          <td>(</td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>buff</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>len</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Read an input buffer into the buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tBuffer. </td></tr>
+    <tr><td class="paramname">inputBuffer</td><td>The input buffer. </td></tr>
+    <tr><td class="paramname">length</td><td>The length of the input buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga69d5397829f174b81a621170367a8550"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga69d5397829f174b81a621170367a8550">&#9670;&nbsp;</a></span>tBuffer_get()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tBuffer_get </td>
+          <td>(</td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>idx</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the sample recorded at a given position in the buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tBuffer. </td></tr>
+    <tr><td class="paramname">position</td><td>The position to get a sample from. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The recorded sample. </dd></dl>
+
+</div>
+</div>
+<a id="ga55baf7685651fd7f9926dc0ed5b2d73b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga55baf7685651fd7f9926dc0ed5b2d73b">&#9670;&nbsp;</a></span>tBuffer_record()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBuffer_record </td>
+          <td>(</td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Start recording samples into the buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tBuffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9fcb0f6e0fb037edf1146a3983d8424d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9fcb0f6e0fb037edf1146a3983d8424d">&#9670;&nbsp;</a></span>tBuffer_stop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBuffer_stop </td>
+          <td>(</td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Stop recordings samples into the buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tBuffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa7ff30c7c2c6de87ed61c8025620429f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa7ff30c7c2c6de87ed61c8025620429f">&#9670;&nbsp;</a></span>tBuffer_getRecordPosition()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tBuffer_getRecordPosition </td>
+          <td>(</td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the recording position, from where the buffer will next add samples. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tBuffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The recording position. </dd></dl>
+
+</div>
+</div>
+<a id="ga893981a1b088cb6cd43359f869069689"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga893981a1b088cb6cd43359f869069689">&#9670;&nbsp;</a></span>tBuffer_setRecordPosition()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBuffer_setRecordPosition </td>
+          <td>(</td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>pos</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the recording position, from where the buffer will next add samples. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tBuffer. </td></tr>
+    <tr><td class="paramname">index</td><td>The new recording position. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga22b4855b2f2e94a7f870de419b3c3c84"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga22b4855b2f2e94a7f870de419b3c3c84">&#9670;&nbsp;</a></span>tBuffer_setRecordMode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBuffer_setRecordMode </td>
+          <td>(</td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">RecordMode&#160;</td>
+          <td class="paramname"><em>mode</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the recording mode. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tBuffer. </td></tr>
+    <tr><td class="paramname">mode</td><td>The new mode, either RecordOneShot to record one buffer length or RecordLoop to record on loop, overwriting old samples. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga39fb5d9d5ed963390e45322a2a97a1f1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga39fb5d9d5ed963390e45322a2a97a1f1">&#9670;&nbsp;</a></span>tBuffer_clear()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBuffer_clear </td>
+          <td>(</td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Clear the buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tBuffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga79955880600cfd3ec722b7110a4aab33"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga79955880600cfd3ec722b7110a4aab33">&#9670;&nbsp;</a></span>tBuffer_getBufferLength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t tBuffer_getBufferLength </td>
+          <td>(</td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the length of the buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tBuffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The length of the buffer. </dd></dl>
+
+</div>
+</div>
+<a id="gaa68440f784cd947e6bb4eb00cd6473b5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa68440f784cd947e6bb4eb00cd6473b5">&#9670;&nbsp;</a></span>tBuffer_getRecordedLength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t tBuffer_getRecordedLength </td>
+          <td>(</td>
+          <td class="paramtype">tBuffer *const&#160;</td>
+          <td class="paramname"><em>sb</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the length of recorded audio in the buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tBuffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The length in samples of recorded audio. </dd></dl>
+
+</div>
+</div>
+<a id="ga28a6063f2d763e4ba9414c797c1884b4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga28a6063f2d763e4ba9414c797c1884b4">&#9670;&nbsp;</a></span>tBuffer_setRecordedLength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tBuffer_setRecordedLength </td>
+          <td>(</td>
+          <td class="paramtype">tBuffer *const&#160;</td>
+          <td class="paramname"><em>sb</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the length of what is considered recorded audio in the buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tBuffer. </td></tr>
+    <tr><td class="paramname">length</td><td>The new recorded length. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga37ffab4845668d588eac944f4adb1f65"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga37ffab4845668d588eac944f4adb1f65">&#9670;&nbsp;</a></span>tBuffer_isActive()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tBuffer_isActive </td>
+          <td>(</td>
+          <td class="paramtype">tBuffer *const&#160;</td>
+          <td class="paramname"><em>sb</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Check if the buffer is recording. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tBuffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>1 if recording, 0 if not. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tbutterworth.html
@@ -1,0 +1,350 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tButterworth</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tButterworth<div class="ingroups"><a class="el" href="group__filters.html">Filters</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Butterworth filter.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga567582dd961193c6a49ebcb5f78db211"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbutterworth.html#ga567582dd961193c6a49ebcb5f78db211">tButterworth_initToPool</a> (tButterworth *const, int N, float f1, float f2, tMempool *const)</td></tr>
+<tr class="memdesc:ga567582dd961193c6a49ebcb5f78db211"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tButterworth to a specified mempool.  <a href="group__tbutterworth.html#ga567582dd961193c6a49ebcb5f78db211">More...</a><br /></td></tr>
+<tr class="separator:ga567582dd961193c6a49ebcb5f78db211"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga340f64a2f39d6a75dddbff0664c6a0c2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbutterworth.html#ga340f64a2f39d6a75dddbff0664c6a0c2">tButterworth_free</a> (tButterworth *const)</td></tr>
+<tr class="memdesc:ga340f64a2f39d6a75dddbff0664c6a0c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tButterworth from its mempool.  <a href="group__tbutterworth.html#ga340f64a2f39d6a75dddbff0664c6a0c2">More...</a><br /></td></tr>
+<tr class="separator:ga340f64a2f39d6a75dddbff0664c6a0c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac4729b8e622da0d570efe80ac1c54707"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbutterworth.html#gac4729b8e622da0d570efe80ac1c54707">tButterworth_tick</a> (tButterworth *const, float input)</td></tr>
+<tr class="separator:gac4729b8e622da0d570efe80ac1c54707"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga12a4c927d24d1664d0beb425cf64e284"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbutterworth.html#ga12a4c927d24d1664d0beb425cf64e284">tButterworth_setF1</a> (tButterworth *const, float in)</td></tr>
+<tr class="separator:ga12a4c927d24d1664d0beb425cf64e284"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga86218245c60fb73eec98edcdce565a1c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbutterworth.html#ga86218245c60fb73eec98edcdce565a1c">tButterworth_setF2</a> (tButterworth *const, float in)</td></tr>
+<tr class="separator:ga86218245c60fb73eec98edcdce565a1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5cde91a986d40a6764d07ffde532a1a7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tbutterworth.html#ga5cde91a986d40a6764d07ffde532a1a7">tButterworth_setFreqs</a> (tButterworth *const, float f1, float f2)</td></tr>
+<tr class="separator:ga5cde91a986d40a6764d07ffde532a1a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Butterworth filter. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga567582dd961193c6a49ebcb5f78db211"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga567582dd961193c6a49ebcb5f78db211">&#9670;&nbsp;</a></span>tButterworth_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tButterworth_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tButterworth * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>N</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>f1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>f2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tButterworth to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tButterworth to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+    <tr><td class="paramname">order</td><td>Order of the filter. </td></tr>
+    <tr><td class="paramname">lowCutoff</td><td>Lower cutoff frequency. </td></tr>
+    <tr><td class="paramname">upperCutoff</td><td>Upper cutoff frequency. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga340f64a2f39d6a75dddbff0664c6a0c2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga340f64a2f39d6a75dddbff0664c6a0c2">&#9670;&nbsp;</a></span>tButterworth_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tButterworth_free </td>
+          <td>(</td>
+          <td class="paramtype">tButterworth * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tButterworth from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tButterworth to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac4729b8e622da0d570efe80ac1c54707"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac4729b8e622da0d570efe80ac1c54707">&#9670;&nbsp;</a></span>tButterworth_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tButterworth_tick </td>
+          <td>(</td>
+          <td class="paramtype">tButterworth * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tButterworth. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga12a4c927d24d1664d0beb425cf64e284"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga12a4c927d24d1664d0beb425cf64e284">&#9670;&nbsp;</a></span>tButterworth_setF1()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tButterworth_setF1 </td>
+          <td>(</td>
+          <td class="paramtype">tButterworth * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>in</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tButterworth. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga86218245c60fb73eec98edcdce565a1c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga86218245c60fb73eec98edcdce565a1c">&#9670;&nbsp;</a></span>tButterworth_setF2()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tButterworth_setF2 </td>
+          <td>(</td>
+          <td class="paramtype">tButterworth * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>in</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tButterworth. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5cde91a986d40a6764d07ffde532a1a7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5cde91a986d40a6764d07ffde532a1a7">&#9670;&nbsp;</a></span>tButterworth_setFreqs()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tButterworth_setFreqs </td>
+          <td>(</td>
+          <td class="paramtype">tButterworth * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>f1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>f2</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tButterworth.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tcompactwavetable.html
@@ -1,0 +1,209 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tCompactWavetable</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tCompactWavetable<div class="ingroups"><a class="el" href="group__oscillators.html">Oscillators</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A more space-efficient anti-aliased wavetable oscillator than tWavetable but with slightly worse fidelity.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga31c71e150c921c9c2a6b99b47ed995f5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcompactwavetable.html#ga31c71e150c921c9c2a6b99b47ed995f5">tCompactWavetable_free</a> (tCompactWavetable *const osc)</td></tr>
+<tr class="memdesc:ga31c71e150c921c9c2a6b99b47ed995f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tCompactWavetable from its mempool.  <a href="group__tcompactwavetable.html#ga31c71e150c921c9c2a6b99b47ed995f5">More...</a><br /></td></tr>
+<tr class="separator:ga31c71e150c921c9c2a6b99b47ed995f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3057038710e1b064968f8d290e753e5f"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcompactwavetable.html#ga3057038710e1b064968f8d290e753e5f">tCompactWavetable_tick</a> (tCompactWavetable *const osc)</td></tr>
+<tr class="memdesc:ga3057038710e1b064968f8d290e753e5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tick a tCompactWavetable oscillator.  <a href="group__tcompactwavetable.html#ga3057038710e1b064968f8d290e753e5f">More...</a><br /></td></tr>
+<tr class="separator:ga3057038710e1b064968f8d290e753e5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga49955d040284b3e1a40f2288cb89c54d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcompactwavetable.html#ga49955d040284b3e1a40f2288cb89c54d">tCompactWavetable_setFreq</a> (tCompactWavetable *const osc, float freq)</td></tr>
+<tr class="memdesc:ga49955d040284b3e1a40f2288cb89c54d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the frequency of a tCompactWavetable oscillator.  <a href="group__tcompactwavetable.html#ga49955d040284b3e1a40f2288cb89c54d">More...</a><br /></td></tr>
+<tr class="separator:ga49955d040284b3e1a40f2288cb89c54d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>A more space-efficient anti-aliased wavetable oscillator than tWavetable but with slightly worse fidelity. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga31c71e150c921c9c2a6b99b47ed995f5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga31c71e150c921c9c2a6b99b47ed995f5">&#9670;&nbsp;</a></span>tCompactWavetable_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tCompactWavetable_free </td>
+          <td>(</td>
+          <td class="paramtype">tCompactWavetable *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tCompactWavetable from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tCompactWavetable to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3057038710e1b064968f8d290e753e5f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3057038710e1b064968f8d290e753e5f">&#9670;&nbsp;</a></span>tCompactWavetable_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tCompactWavetable_tick </td>
+          <td>(</td>
+          <td class="paramtype">tCompactWavetable *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Tick a tCompactWavetable oscillator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tCompactWavetable. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The ticked sample as a float from -1 to 1. </dd></dl>
+
+</div>
+</div>
+<a id="ga49955d040284b3e1a40f2288cb89c54d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga49955d040284b3e1a40f2288cb89c54d">&#9670;&nbsp;</a></span>tCompactWavetable_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tCompactWavetable_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tCompactWavetable *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the frequency of a tCompactWavetable oscillator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tCompactWavetable. </td></tr>
+    <tr><td class="paramname">freq</td><td>The frequency to set the oscillator to. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tcomplexlivingstring.html
@@ -1,0 +1,797 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tComplexLivingString</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tComplexLivingString<div class="ingroups"><a class="el" href="group__physical.html">Physical Models</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Complex string model.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gabdc7c63658712975d512e17a82f96b26"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html#gabdc7c63658712975d512e17a82f96b26">tComplexLivingString_init</a> (tComplexLivingString *const, float freq, float pickPos, float prepPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gabdc7c63658712975d512e17a82f96b26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tComplexLivingString to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tcomplexlivingstring.html#gabdc7c63658712975d512e17a82f96b26">More...</a><br /></td></tr>
+<tr class="separator:gabdc7c63658712975d512e17a82f96b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf8d2d61f57a0b916002dafc427a8b092"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html#gaf8d2d61f57a0b916002dafc427a8b092">tComplexLivingString_initToPool</a> (tComplexLivingString *const, float freq, float pickPos, float prepPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const)</td></tr>
+<tr class="memdesc:gaf8d2d61f57a0b916002dafc427a8b092"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tComplexLivingString to a specified mempool.  <a href="group__tcomplexlivingstring.html#gaf8d2d61f57a0b916002dafc427a8b092">More...</a><br /></td></tr>
+<tr class="separator:gaf8d2d61f57a0b916002dafc427a8b092"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3a7b657a97195d44907de707485d25cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html#ga3a7b657a97195d44907de707485d25cb">tComplexLivingString_free</a> (tComplexLivingString *const)</td></tr>
+<tr class="memdesc:ga3a7b657a97195d44907de707485d25cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tComplexLivingString from its mempool.  <a href="group__tcomplexlivingstring.html#ga3a7b657a97195d44907de707485d25cb">More...</a><br /></td></tr>
+<tr class="separator:ga3a7b657a97195d44907de707485d25cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf65d7ea89eff0c65bd81573f83506808"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html#gaf65d7ea89eff0c65bd81573f83506808">tComplexLivingString_tick</a> (tComplexLivingString *const, float input)</td></tr>
+<tr class="separator:gaf65d7ea89eff0c65bd81573f83506808"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga87ae54f64d1dacee2ba06639cfd30ba6"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html#ga87ae54f64d1dacee2ba06639cfd30ba6">tComplexLivingString_sample</a> (tComplexLivingString *const)</td></tr>
+<tr class="separator:ga87ae54f64d1dacee2ba06639cfd30ba6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabb770494f478d48ab52e44bd3c4f2ecc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html#gabb770494f478d48ab52e44bd3c4f2ecc">tComplexLivingString_setFreq</a> (tComplexLivingString *const, float freq)</td></tr>
+<tr class="separator:gabb770494f478d48ab52e44bd3c4f2ecc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga567590c59dcaee1bfe8261fdef6bf6a3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html#ga567590c59dcaee1bfe8261fdef6bf6a3">tComplexLivingString_setWaveLength</a> (tComplexLivingString *const, float waveLength)</td></tr>
+<tr class="separator:ga567590c59dcaee1bfe8261fdef6bf6a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga845a6f0ff9a7ee28bd8bfc72c31fd847"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html#ga845a6f0ff9a7ee28bd8bfc72c31fd847">tComplexLivingString_setPickPos</a> (tComplexLivingString *const, float pickPos)</td></tr>
+<tr class="separator:ga845a6f0ff9a7ee28bd8bfc72c31fd847"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga59d258180890d388614b8e9d55e6dc91"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html#ga59d258180890d388614b8e9d55e6dc91">tComplexLivingString_setPrepPos</a> (tComplexLivingString *const, float prepPos)</td></tr>
+<tr class="separator:ga59d258180890d388614b8e9d55e6dc91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga520c912a5c42bfb9a6d8b25bdcbbcf7a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html#ga520c912a5c42bfb9a6d8b25bdcbbcf7a">tComplexLivingString_setPrepIndex</a> (tComplexLivingString *const, float prepIndex)</td></tr>
+<tr class="separator:ga520c912a5c42bfb9a6d8b25bdcbbcf7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga08b249830479e2981d3653728f8a138b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html#ga08b249830479e2981d3653728f8a138b">tComplexLivingString_setDampFreq</a> (tComplexLivingString *const, float dampFreq)</td></tr>
+<tr class="separator:ga08b249830479e2981d3653728f8a138b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga130cac764eb32901429fe3225e1a7094"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html#ga130cac764eb32901429fe3225e1a7094">tComplexLivingString_setDecay</a> (tComplexLivingString *const, float decay)</td></tr>
+<tr class="separator:ga130cac764eb32901429fe3225e1a7094"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga92d9f6282c0bed639d853f61e19bca83"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html#ga92d9f6282c0bed639d853f61e19bca83">tComplexLivingString_setTargetLev</a> (tComplexLivingString *const, float targetLev)</td></tr>
+<tr class="separator:ga92d9f6282c0bed639d853f61e19bca83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabc0a4196ec94ca64c223560ddadf17c6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html#gabc0a4196ec94ca64c223560ddadf17c6">tComplexLivingString_setLevSmoothFactor</a> (tComplexLivingString *const, float levSmoothFactor)</td></tr>
+<tr class="separator:gabc0a4196ec94ca64c223560ddadf17c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa2798083851981b869ad0439bfcbcab2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html#gaa2798083851981b869ad0439bfcbcab2">tComplexLivingString_setLevStrength</a> (tComplexLivingString *const, float levStrength)</td></tr>
+<tr class="separator:gaa2798083851981b869ad0439bfcbcab2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2883cb67acc06cc1580702b3635e9780"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcomplexlivingstring.html#ga2883cb67acc06cc1580702b3635e9780">tComplexLivingString_setLevMode</a> (tComplexLivingString *const, int levMode)</td></tr>
+<tr class="separator:ga2883cb67acc06cc1580702b3635e9780"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Complex string model. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gabdc7c63658712975d512e17a82f96b26"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabdc7c63658712975d512e17a82f96b26">&#9670;&nbsp;</a></span>tComplexLivingString_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tComplexLivingString_init </td>
+          <td>(</td>
+          <td class="paramtype">tComplexLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>pickPos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>prepPos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>prepIndex</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>dampFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>targetLev</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levSmoothFactor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levStrength</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>levMode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tComplexLivingString to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the tComplexLivingString to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf8d2d61f57a0b916002dafc427a8b092"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf8d2d61f57a0b916002dafc427a8b092">&#9670;&nbsp;</a></span>tComplexLivingString_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tComplexLivingString_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tComplexLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>pickPos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>prepPos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>prepIndex</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>dampFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>targetLev</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levSmoothFactor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levStrength</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>levMode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tComplexLivingString to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the tComplexLivingString to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3a7b657a97195d44907de707485d25cb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3a7b657a97195d44907de707485d25cb">&#9670;&nbsp;</a></span>tComplexLivingString_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tComplexLivingString_free </td>
+          <td>(</td>
+          <td class="paramtype">tComplexLivingString * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tComplexLivingString from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the tComplexLivingString to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf65d7ea89eff0c65bd81573f83506808"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf65d7ea89eff0c65bd81573f83506808">&#9670;&nbsp;</a></span>tComplexLivingString_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tComplexLivingString_tick </td>
+          <td>(</td>
+          <td class="paramtype">tComplexLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tComplexLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga87ae54f64d1dacee2ba06639cfd30ba6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga87ae54f64d1dacee2ba06639cfd30ba6">&#9670;&nbsp;</a></span>tComplexLivingString_sample()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tComplexLivingString_sample </td>
+          <td>(</td>
+          <td class="paramtype">tComplexLivingString * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tComplexLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabb770494f478d48ab52e44bd3c4f2ecc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabb770494f478d48ab52e44bd3c4f2ecc">&#9670;&nbsp;</a></span>tComplexLivingString_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tComplexLivingString_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tComplexLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tComplexLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga567590c59dcaee1bfe8261fdef6bf6a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga567590c59dcaee1bfe8261fdef6bf6a3">&#9670;&nbsp;</a></span>tComplexLivingString_setWaveLength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tComplexLivingString_setWaveLength </td>
+          <td>(</td>
+          <td class="paramtype">tComplexLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>waveLength</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tComplexLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga845a6f0ff9a7ee28bd8bfc72c31fd847"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga845a6f0ff9a7ee28bd8bfc72c31fd847">&#9670;&nbsp;</a></span>tComplexLivingString_setPickPos()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tComplexLivingString_setPickPos </td>
+          <td>(</td>
+          <td class="paramtype">tComplexLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>pickPos</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tComplexLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga59d258180890d388614b8e9d55e6dc91"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga59d258180890d388614b8e9d55e6dc91">&#9670;&nbsp;</a></span>tComplexLivingString_setPrepPos()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tComplexLivingString_setPrepPos </td>
+          <td>(</td>
+          <td class="paramtype">tComplexLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>prepPos</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tComplexLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga520c912a5c42bfb9a6d8b25bdcbbcf7a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga520c912a5c42bfb9a6d8b25bdcbbcf7a">&#9670;&nbsp;</a></span>tComplexLivingString_setPrepIndex()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tComplexLivingString_setPrepIndex </td>
+          <td>(</td>
+          <td class="paramtype">tComplexLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>prepIndex</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tComplexLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga08b249830479e2981d3653728f8a138b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga08b249830479e2981d3653728f8a138b">&#9670;&nbsp;</a></span>tComplexLivingString_setDampFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tComplexLivingString_setDampFreq </td>
+          <td>(</td>
+          <td class="paramtype">tComplexLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>dampFreq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tComplexLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga130cac764eb32901429fe3225e1a7094"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga130cac764eb32901429fe3225e1a7094">&#9670;&nbsp;</a></span>tComplexLivingString_setDecay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tComplexLivingString_setDecay </td>
+          <td>(</td>
+          <td class="paramtype">tComplexLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tComplexLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga92d9f6282c0bed639d853f61e19bca83"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga92d9f6282c0bed639d853f61e19bca83">&#9670;&nbsp;</a></span>tComplexLivingString_setTargetLev()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tComplexLivingString_setTargetLev </td>
+          <td>(</td>
+          <td class="paramtype">tComplexLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>targetLev</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tComplexLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabc0a4196ec94ca64c223560ddadf17c6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabc0a4196ec94ca64c223560ddadf17c6">&#9670;&nbsp;</a></span>tComplexLivingString_setLevSmoothFactor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tComplexLivingString_setLevSmoothFactor </td>
+          <td>(</td>
+          <td class="paramtype">tComplexLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levSmoothFactor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tComplexLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa2798083851981b869ad0439bfcbcab2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa2798083851981b869ad0439bfcbcab2">&#9670;&nbsp;</a></span>tComplexLivingString_setLevStrength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tComplexLivingString_setLevStrength </td>
+          <td>(</td>
+          <td class="paramtype">tComplexLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levStrength</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tComplexLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2883cb67acc06cc1580702b3635e9780"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2883cb67acc06cc1580702b3635e9780">&#9670;&nbsp;</a></span>tComplexLivingString_setLevMode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tComplexLivingString_setLevMode </td>
+          <td>(</td>
+          <td class="paramtype">tComplexLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>levMode</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tComplexLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tcompressor.html
@@ -1,0 +1,255 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tCompressor</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tCompressor<div class="ingroups"><a class="el" href="group__dynamics.html">Dynamics</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Standard compressor.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga831af7fdc81866f746f3ec5552589e05"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcompressor.html#ga831af7fdc81866f746f3ec5552589e05">tCompressor_init</a> (tCompressor *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga831af7fdc81866f746f3ec5552589e05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tCompressor to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tcompressor.html#ga831af7fdc81866f746f3ec5552589e05">More...</a><br /></td></tr>
+<tr class="separator:ga831af7fdc81866f746f3ec5552589e05"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga305d1f036bb4844429687afdc1a8053c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcompressor.html#ga305d1f036bb4844429687afdc1a8053c">tCompressor_initToPool</a> (tCompressor *const, tMempool *const)</td></tr>
+<tr class="memdesc:ga305d1f036bb4844429687afdc1a8053c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tCompressor to a specified mempool.  <a href="group__tcompressor.html#ga305d1f036bb4844429687afdc1a8053c">More...</a><br /></td></tr>
+<tr class="separator:ga305d1f036bb4844429687afdc1a8053c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa3369bf1a4eef5d5bce64db6bf962618"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcompressor.html#gaa3369bf1a4eef5d5bce64db6bf962618">tCompressor_free</a> (tCompressor *const)</td></tr>
+<tr class="memdesc:gaa3369bf1a4eef5d5bce64db6bf962618"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tCompressor from its mempool.  <a href="group__tcompressor.html#gaa3369bf1a4eef5d5bce64db6bf962618">More...</a><br /></td></tr>
+<tr class="separator:gaa3369bf1a4eef5d5bce64db6bf962618"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga129d5624d13d79f9ad7bb29c84ee0c42"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcompressor.html#ga129d5624d13d79f9ad7bb29c84ee0c42">tCompressor_tick</a> (tCompressor *const, float input)</td></tr>
+<tr class="separator:ga129d5624d13d79f9ad7bb29c84ee0c42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Standard compressor. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga831af7fdc81866f746f3ec5552589e05"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga831af7fdc81866f746f3ec5552589e05">&#9670;&nbsp;</a></span>tCompressor_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tCompressor_init </td>
+          <td>(</td>
+          <td class="paramtype">tCompressor * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tCompressor to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">compressor</td><td>A pointer to the tCompressor to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga305d1f036bb4844429687afdc1a8053c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga305d1f036bb4844429687afdc1a8053c">&#9670;&nbsp;</a></span>tCompressor_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tCompressor_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tCompressor * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tCompressor to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">compressor</td><td>A pointer to the tCompressor to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa3369bf1a4eef5d5bce64db6bf962618"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa3369bf1a4eef5d5bce64db6bf962618">&#9670;&nbsp;</a></span>tCompressor_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tCompressor_free </td>
+          <td>(</td>
+          <td class="paramtype">tCompressor * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tCompressor from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">compressor</td><td>A pointer to the tCompressor to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga129d5624d13d79f9ad7bb29c84ee0c42"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga129d5624d13d79f9ad7bb29c84ee0c42">&#9670;&nbsp;</a></span>tCompressor_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tCompressor_tick </td>
+          <td>(</td>
+          <td class="paramtype">tCompressor * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">compressor</td><td>A pointer to the relevant tCompressor.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tcrusher.html
@@ -1,0 +1,403 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tCrusher</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tCrusher<div class="ingroups"><a class="el" href="group__distortion.html">Distortion</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Bit depth and sampler rate degrader.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gafd391e483eb15ab1e220867b2bc37537"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcrusher.html#gafd391e483eb15ab1e220867b2bc37537">tCrusher_init</a> (tCrusher *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gafd391e483eb15ab1e220867b2bc37537"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tCrusher to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tcrusher.html#gafd391e483eb15ab1e220867b2bc37537">More...</a><br /></td></tr>
+<tr class="separator:gafd391e483eb15ab1e220867b2bc37537"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ee1052fbd8183d322cc6513e563c0af"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcrusher.html#ga7ee1052fbd8183d322cc6513e563c0af">tCrusher_initToPool</a> (tCrusher *const, tMempool *const)</td></tr>
+<tr class="memdesc:ga7ee1052fbd8183d322cc6513e563c0af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tCrusher to a specified mempool.  <a href="group__tcrusher.html#ga7ee1052fbd8183d322cc6513e563c0af">More...</a><br /></td></tr>
+<tr class="separator:ga7ee1052fbd8183d322cc6513e563c0af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa9dbb4f12f21f015b4f322be6de511c6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcrusher.html#gaa9dbb4f12f21f015b4f322be6de511c6">tCrusher_free</a> (tCrusher *const)</td></tr>
+<tr class="memdesc:gaa9dbb4f12f21f015b4f322be6de511c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tCrusher from its mempool.  <a href="group__tcrusher.html#gaa9dbb4f12f21f015b4f322be6de511c6">More...</a><br /></td></tr>
+<tr class="separator:gaa9dbb4f12f21f015b4f322be6de511c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabc887b903fc48ac650174402a8c74533"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcrusher.html#gabc887b903fc48ac650174402a8c74533">tCrusher_tick</a> (tCrusher *const, float input)</td></tr>
+<tr class="separator:gabc887b903fc48ac650174402a8c74533"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaf3aba23313797b2e72384d9bd26bc4f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcrusher.html#gaaf3aba23313797b2e72384d9bd26bc4f">tCrusher_setOperation</a> (tCrusher *const, float op)</td></tr>
+<tr class="separator:gaaf3aba23313797b2e72384d9bd26bc4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaef65521d221f1bd3654793ae9441cd45"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcrusher.html#gaef65521d221f1bd3654793ae9441cd45">tCrusher_setQuality</a> (tCrusher *const, float val)</td></tr>
+<tr class="separator:gaef65521d221f1bd3654793ae9441cd45"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0e5c86da40325cd15ef654c4558d663b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcrusher.html#ga0e5c86da40325cd15ef654c4558d663b">tCrusher_setRound</a> (tCrusher *const, float rnd)</td></tr>
+<tr class="separator:ga0e5c86da40325cd15ef654c4558d663b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga34c59ae78019c8d903b051fc61b4d019"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcrusher.html#ga34c59ae78019c8d903b051fc61b4d019">tCrusher_setSamplingRatio</a> (tCrusher *const, float ratio)</td></tr>
+<tr class="separator:ga34c59ae78019c8d903b051fc61b4d019"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Bit depth and sampler rate degrader. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gafd391e483eb15ab1e220867b2bc37537"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafd391e483eb15ab1e220867b2bc37537">&#9670;&nbsp;</a></span>tCrusher_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tCrusher_init </td>
+          <td>(</td>
+          <td class="paramtype">tCrusher * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tCrusher to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">crusher</td><td>A pointer to the tCrusher to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance.f </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7ee1052fbd8183d322cc6513e563c0af"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7ee1052fbd8183d322cc6513e563c0af">&#9670;&nbsp;</a></span>tCrusher_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tCrusher_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tCrusher * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tCrusher to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">crusher</td><td>A pointer to the tCrusher to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa9dbb4f12f21f015b4f322be6de511c6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa9dbb4f12f21f015b4f322be6de511c6">&#9670;&nbsp;</a></span>tCrusher_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tCrusher_free </td>
+          <td>(</td>
+          <td class="paramtype">tCrusher * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tCrusher from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">crusher</td><td>A pointer to the tCrusher to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabc887b903fc48ac650174402a8c74533"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabc887b903fc48ac650174402a8c74533">&#9670;&nbsp;</a></span>tCrusher_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tCrusher_tick </td>
+          <td>(</td>
+          <td class="paramtype">tCrusher * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">crusher</td><td>A pointer to the relevant tCrusher. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaaf3aba23313797b2e72384d9bd26bc4f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaaf3aba23313797b2e72384d9bd26bc4f">&#9670;&nbsp;</a></span>tCrusher_setOperation()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tCrusher_setOperation </td>
+          <td>(</td>
+          <td class="paramtype">tCrusher * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>op</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">crusher</td><td>A pointer to the relevant tCrusher. </td></tr>
+    <tr><td class="paramname">operation</td><td>0.0 - 1.0 </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaef65521d221f1bd3654793ae9441cd45"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaef65521d221f1bd3654793ae9441cd45">&#9670;&nbsp;</a></span>tCrusher_setQuality()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tCrusher_setQuality </td>
+          <td>(</td>
+          <td class="paramtype">tCrusher * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>val</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">crusher</td><td>A pointer to the relevant tCrusher. </td></tr>
+    <tr><td class="paramname">quality</td><td>0.0 - 1.0 </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0e5c86da40325cd15ef654c4558d663b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0e5c86da40325cd15ef654c4558d663b">&#9670;&nbsp;</a></span>tCrusher_setRound()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tCrusher_setRound </td>
+          <td>(</td>
+          <td class="paramtype">tCrusher * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>rnd</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">crusher</td><td>A pointer to the relevant tCrusher. </td></tr>
+    <tr><td class="paramname">what</td><td>division to round to </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga34c59ae78019c8d903b051fc61b4d019"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga34c59ae78019c8d903b051fc61b4d019">&#9670;&nbsp;</a></span>tCrusher_setSamplingRatio()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tCrusher_setSamplingRatio </td>
+          <td>(</td>
+          <td class="paramtype">tCrusher * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>ratio</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">crusher</td><td>A pointer to the relevant tCrusher. </td></tr>
+    <tr><td class="paramname">sampling</td><td>ratio  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tcycle.html
@@ -1,0 +1,296 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tCycle</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tCycle<div class="ingroups"><a class="el" href="group__oscillators.html">Oscillators</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Wavetable cycle/sine wave oscillator.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga3ae2b653f390bdacdfe952e22a7aa5c4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcycle.html#ga3ae2b653f390bdacdfe952e22a7aa5c4">tCycle_init</a> (tCycle *const osc, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga3ae2b653f390bdacdfe952e22a7aa5c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tCycle to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tcycle.html#ga3ae2b653f390bdacdfe952e22a7aa5c4">More...</a><br /></td></tr>
+<tr class="separator:ga3ae2b653f390bdacdfe952e22a7aa5c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacbd4afb6c3307d92e19a8e308ba7540b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcycle.html#gacbd4afb6c3307d92e19a8e308ba7540b">tCycle_initToPool</a> (tCycle *const osc, tMempool *const mempool)</td></tr>
+<tr class="memdesc:gacbd4afb6c3307d92e19a8e308ba7540b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tCycle to a specified mempool.  <a href="group__tcycle.html#gacbd4afb6c3307d92e19a8e308ba7540b">More...</a><br /></td></tr>
+<tr class="separator:gacbd4afb6c3307d92e19a8e308ba7540b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacb267508910aefc3686366ba7f296938"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcycle.html#gacb267508910aefc3686366ba7f296938">tCycle_free</a> (tCycle *const osc)</td></tr>
+<tr class="memdesc:gacb267508910aefc3686366ba7f296938"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tCycle from its mempool.  <a href="group__tcycle.html#gacb267508910aefc3686366ba7f296938">More...</a><br /></td></tr>
+<tr class="separator:gacb267508910aefc3686366ba7f296938"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4fd599981f6caf87720db3a9811716cf"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcycle.html#ga4fd599981f6caf87720db3a9811716cf">tCycle_tick</a> (tCycle *const osc)</td></tr>
+<tr class="memdesc:ga4fd599981f6caf87720db3a9811716cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tick a tCycle oscillator.  <a href="group__tcycle.html#ga4fd599981f6caf87720db3a9811716cf">More...</a><br /></td></tr>
+<tr class="separator:ga4fd599981f6caf87720db3a9811716cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7eeb58e2292483416474bf83bf313deb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tcycle.html#ga7eeb58e2292483416474bf83bf313deb">tCycle_setFreq</a> (tCycle *const osc, float freq)</td></tr>
+<tr class="memdesc:ga7eeb58e2292483416474bf83bf313deb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the frequency of a tCycle oscillator.  <a href="group__tcycle.html#ga7eeb58e2292483416474bf83bf313deb">More...</a><br /></td></tr>
+<tr class="separator:ga7eeb58e2292483416474bf83bf313deb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Wavetable cycle/sine wave oscillator. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga3ae2b653f390bdacdfe952e22a7aa5c4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3ae2b653f390bdacdfe952e22a7aa5c4">&#9670;&nbsp;</a></span>tCycle_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tCycle_init </td>
+          <td>(</td>
+          <td class="paramtype">tCycle *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tCycle to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tCycle to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="basic-oscillators_8c-example.html#a2">basic-oscillators.c</a>.</dd>
+</dl>
+
+</div>
+</div>
+<a id="gacbd4afb6c3307d92e19a8e308ba7540b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacbd4afb6c3307d92e19a8e308ba7540b">&#9670;&nbsp;</a></span>tCycle_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tCycle_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tCycle *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tCycle to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tCycle to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gacb267508910aefc3686366ba7f296938"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacb267508910aefc3686366ba7f296938">&#9670;&nbsp;</a></span>tCycle_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tCycle_free </td>
+          <td>(</td>
+          <td class="paramtype">tCycle *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tCycle from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tCycle to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga4fd599981f6caf87720db3a9811716cf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4fd599981f6caf87720db3a9811716cf">&#9670;&nbsp;</a></span>tCycle_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tCycle_tick </td>
+          <td>(</td>
+          <td class="paramtype">tCycle *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Tick a tCycle oscillator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tCycle. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The ticked sample as a float from -1 to 1. </dd></dl>
+<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="basic-oscillators_8c-example.html#a4">basic-oscillators.c</a>.</dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7eeb58e2292483416474bf83bf313deb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7eeb58e2292483416474bf83bf313deb">&#9670;&nbsp;</a></span>tCycle_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tCycle_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tCycle *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the frequency of a tCycle oscillator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tCycle. </td></tr>
+    <tr><td class="paramname">freq</td><td>The frequency to set the oscillator to.</td></tr>
+  </table>
+  </dd>
+</dl>
+<p> </p>
+<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="basic-oscillators_8c-example.html#a3">basic-oscillators.c</a>.</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tdattorroreverb.html
@@ -1,0 +1,611 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tDattorroReverb</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tDattorroReverb<div class="ingroups"><a class="el" href="group__reverb.html">Reverb</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Dattorro plate reverb.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga1fbf4d2737ea1b0b97a01178e4d1877d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdattorroreverb.html#ga1fbf4d2737ea1b0b97a01178e4d1877d">tDattorroReverb_init</a> (tDattorroReverb *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga1fbf4d2737ea1b0b97a01178e4d1877d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tDattorroReverb to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tdattorroreverb.html#ga1fbf4d2737ea1b0b97a01178e4d1877d">More...</a><br /></td></tr>
+<tr class="separator:ga1fbf4d2737ea1b0b97a01178e4d1877d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae51b1343ff796699056c38c8b0284457"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdattorroreverb.html#gae51b1343ff796699056c38c8b0284457">tDattorroReverb_initToPool</a> (tDattorroReverb *const, tMempool *const)</td></tr>
+<tr class="memdesc:gae51b1343ff796699056c38c8b0284457"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tDattorroReverb to a specified mempool.  <a href="group__tdattorroreverb.html#gae51b1343ff796699056c38c8b0284457">More...</a><br /></td></tr>
+<tr class="separator:gae51b1343ff796699056c38c8b0284457"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9615f3139fd6575f1195357498cf2ed7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdattorroreverb.html#ga9615f3139fd6575f1195357498cf2ed7">tDattorroReverb_free</a> (tDattorroReverb *const)</td></tr>
+<tr class="memdesc:ga9615f3139fd6575f1195357498cf2ed7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tDattorroReverb from its mempool.  <a href="group__tdattorroreverb.html#ga9615f3139fd6575f1195357498cf2ed7">More...</a><br /></td></tr>
+<tr class="separator:ga9615f3139fd6575f1195357498cf2ed7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f6787dc77153fe5445aa4b463d52806"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdattorroreverb.html#ga7f6787dc77153fe5445aa4b463d52806">tDattorroReverb_clear</a> (tDattorroReverb *const)</td></tr>
+<tr class="separator:ga7f6787dc77153fe5445aa4b463d52806"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad857360fa2a7ec20d27256a13b3483e7"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdattorroreverb.html#gad857360fa2a7ec20d27256a13b3483e7">tDattorroReverb_tick</a> (tDattorroReverb *const, float input)</td></tr>
+<tr class="separator:gad857360fa2a7ec20d27256a13b3483e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae9da039d8745027c1c477e4a2192ca49"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdattorroreverb.html#gae9da039d8745027c1c477e4a2192ca49">tDattorroReverb_tickStereo</a> (tDattorroReverb *const rev, float input, float *output)</td></tr>
+<tr class="separator:gae9da039d8745027c1c477e4a2192ca49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaab4b58c9edecbd36f8fed4676074cf4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdattorroreverb.html#gaaab4b58c9edecbd36f8fed4676074cf4">tDattorroReverb_setMix</a> (tDattorroReverb *const, float mix)</td></tr>
+<tr class="separator:gaaab4b58c9edecbd36f8fed4676074cf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61767ff6ff79c978ccd31533ab528b5e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdattorroreverb.html#ga61767ff6ff79c978ccd31533ab528b5e">tDattorroReverb_setFreeze</a> (tDattorroReverb *const rev, uint32_t freeze)</td></tr>
+<tr class="separator:ga61767ff6ff79c978ccd31533ab528b5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab035568f53e3afa55e7ca24770ece876"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdattorroreverb.html#gab035568f53e3afa55e7ca24770ece876">tDattorroReverb_setHP</a> (tDattorroReverb *const, float freq)</td></tr>
+<tr class="separator:gab035568f53e3afa55e7ca24770ece876"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8286f438259920862757bac42c208ec4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdattorroreverb.html#ga8286f438259920862757bac42c208ec4">tDattorroReverb_setSize</a> (tDattorroReverb *const, float size)</td></tr>
+<tr class="separator:ga8286f438259920862757bac42c208ec4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3ea62bc97dde4dfb099373a19b699024"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdattorroreverb.html#ga3ea62bc97dde4dfb099373a19b699024">tDattorroReverb_setInputDelay</a> (tDattorroReverb *const, float preDelay)</td></tr>
+<tr class="separator:ga3ea62bc97dde4dfb099373a19b699024"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga58a92c0ece1d13df4b6e860c76d5bc4e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdattorroreverb.html#ga58a92c0ece1d13df4b6e860c76d5bc4e">tDattorroReverb_setInputFilter</a> (tDattorroReverb *const, float freq)</td></tr>
+<tr class="separator:ga58a92c0ece1d13df4b6e860c76d5bc4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6bdaee9a877fb5258242b38c7129e87f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdattorroreverb.html#ga6bdaee9a877fb5258242b38c7129e87f">tDattorroReverb_setFeedbackFilter</a> (tDattorroReverb *const, float freq)</td></tr>
+<tr class="separator:ga6bdaee9a877fb5258242b38c7129e87f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga397ca662f24dc8850d68fb2d9f134e75"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdattorroreverb.html#ga397ca662f24dc8850d68fb2d9f134e75">tDattorroReverb_setFeedbackGain</a> (tDattorroReverb *const, float gain)</td></tr>
+<tr class="separator:ga397ca662f24dc8850d68fb2d9f134e75"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Dattorro plate reverb. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga1fbf4d2737ea1b0b97a01178e4d1877d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1fbf4d2737ea1b0b97a01178e4d1877d">&#9670;&nbsp;</a></span>tDattorroReverb_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDattorroReverb_init </td>
+          <td>(</td>
+          <td class="paramtype">tDattorroReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tDattorroReverb to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the tDattorroReverb to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae51b1343ff796699056c38c8b0284457"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae51b1343ff796699056c38c8b0284457">&#9670;&nbsp;</a></span>tDattorroReverb_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDattorroReverb_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tDattorroReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tDattorroReverb to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the tDattorroReverb to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9615f3139fd6575f1195357498cf2ed7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9615f3139fd6575f1195357498cf2ed7">&#9670;&nbsp;</a></span>tDattorroReverb_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDattorroReverb_free </td>
+          <td>(</td>
+          <td class="paramtype">tDattorroReverb * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tDattorroReverb from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the tDattorroReverb to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7f6787dc77153fe5445aa4b463d52806"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7f6787dc77153fe5445aa4b463d52806">&#9670;&nbsp;</a></span>tDattorroReverb_clear()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDattorroReverb_clear </td>
+          <td>(</td>
+          <td class="paramtype">tDattorroReverb * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tDattorroReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad857360fa2a7ec20d27256a13b3483e7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad857360fa2a7ec20d27256a13b3483e7">&#9670;&nbsp;</a></span>tDattorroReverb_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tDattorroReverb_tick </td>
+          <td>(</td>
+          <td class="paramtype">tDattorroReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tDattorroReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae9da039d8745027c1c477e4a2192ca49"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae9da039d8745027c1c477e4a2192ca49">&#9670;&nbsp;</a></span>tDattorroReverb_tickStereo()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDattorroReverb_tickStereo </td>
+          <td>(</td>
+          <td class="paramtype">tDattorroReverb *const&#160;</td>
+          <td class="paramname"><em>rev</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>output</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tDattorroReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaaab4b58c9edecbd36f8fed4676074cf4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaaab4b58c9edecbd36f8fed4676074cf4">&#9670;&nbsp;</a></span>tDattorroReverb_setMix()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDattorroReverb_setMix </td>
+          <td>(</td>
+          <td class="paramtype">tDattorroReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>mix</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tDattorroReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga61767ff6ff79c978ccd31533ab528b5e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga61767ff6ff79c978ccd31533ab528b5e">&#9670;&nbsp;</a></span>tDattorroReverb_setFreeze()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDattorroReverb_setFreeze </td>
+          <td>(</td>
+          <td class="paramtype">tDattorroReverb *const&#160;</td>
+          <td class="paramname"><em>rev</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>freeze</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tDattorroReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab035568f53e3afa55e7ca24770ece876"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab035568f53e3afa55e7ca24770ece876">&#9670;&nbsp;</a></span>tDattorroReverb_setHP()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDattorroReverb_setHP </td>
+          <td>(</td>
+          <td class="paramtype">tDattorroReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tDattorroReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8286f438259920862757bac42c208ec4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8286f438259920862757bac42c208ec4">&#9670;&nbsp;</a></span>tDattorroReverb_setSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDattorroReverb_setSize </td>
+          <td>(</td>
+          <td class="paramtype">tDattorroReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>size</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tDattorroReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3ea62bc97dde4dfb099373a19b699024"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3ea62bc97dde4dfb099373a19b699024">&#9670;&nbsp;</a></span>tDattorroReverb_setInputDelay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDattorroReverb_setInputDelay </td>
+          <td>(</td>
+          <td class="paramtype">tDattorroReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>preDelay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tDattorroReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga58a92c0ece1d13df4b6e860c76d5bc4e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga58a92c0ece1d13df4b6e860c76d5bc4e">&#9670;&nbsp;</a></span>tDattorroReverb_setInputFilter()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDattorroReverb_setInputFilter </td>
+          <td>(</td>
+          <td class="paramtype">tDattorroReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tDattorroReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6bdaee9a877fb5258242b38c7129e87f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6bdaee9a877fb5258242b38c7129e87f">&#9670;&nbsp;</a></span>tDattorroReverb_setFeedbackFilter()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDattorroReverb_setFeedbackFilter </td>
+          <td>(</td>
+          <td class="paramtype">tDattorroReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tDattorroReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga397ca662f24dc8850d68fb2d9f134e75"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga397ca662f24dc8850d68fb2d9f134e75">&#9670;&nbsp;</a></span>tDattorroReverb_setFeedbackGain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDattorroReverb_setFeedbackGain </td>
+          <td>(</td>
+          <td class="paramtype">tDattorroReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>gain</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tDattorroReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tdelay.html
@@ -1,0 +1,556 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tDelay</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tDelay<div class="ingroups"><a class="el" href="group__delay.html">Delay</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Non-interpolating delay, reimplemented from STK (Cook and Scavone).  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga22597de02abb939743a18ec38ff08a0f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdelay.html#ga22597de02abb939743a18ec38ff08a0f">tDelay_init</a> (tDelay *const, uint32_t delay, uint32_t maxDelay, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga22597de02abb939743a18ec38ff08a0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tDelay to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tdelay.html#ga22597de02abb939743a18ec38ff08a0f">More...</a><br /></td></tr>
+<tr class="separator:ga22597de02abb939743a18ec38ff08a0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacaaaaabc7ddb4259f05481f10ba5c403"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdelay.html#gacaaaaabc7ddb4259f05481f10ba5c403">tDelay_initToPool</a> (tDelay *const, uint32_t delay, uint32_t maxDelay, tMempool *const)</td></tr>
+<tr class="memdesc:gacaaaaabc7ddb4259f05481f10ba5c403"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tDelay to a specified mempool.  <a href="group__tdelay.html#gacaaaaabc7ddb4259f05481f10ba5c403">More...</a><br /></td></tr>
+<tr class="separator:gacaaaaabc7ddb4259f05481f10ba5c403"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac96fb1d4b4997a3137f211b6f22e14ba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdelay.html#gac96fb1d4b4997a3137f211b6f22e14ba">tDelay_free</a> (tDelay *const)</td></tr>
+<tr class="memdesc:gac96fb1d4b4997a3137f211b6f22e14ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tDelay from its mempool.  <a href="group__tdelay.html#gac96fb1d4b4997a3137f211b6f22e14ba">More...</a><br /></td></tr>
+<tr class="separator:gac96fb1d4b4997a3137f211b6f22e14ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga10738582699eb8e6ff892b4ba662c4ef"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdelay.html#ga10738582699eb8e6ff892b4ba662c4ef">tDelay_clear</a> (tDelay *const)</td></tr>
+<tr class="separator:ga10738582699eb8e6ff892b4ba662c4ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga364a63687af1a63b7daa8a8431527a6a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdelay.html#ga364a63687af1a63b7daa8a8431527a6a">tDelay_setDelay</a> (tDelay *const, uint32_t delay)</td></tr>
+<tr class="separator:ga364a63687af1a63b7daa8a8431527a6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5686cf386894dcee3c9241bef0ca4c41"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdelay.html#ga5686cf386894dcee3c9241bef0ca4c41">tDelay_getDelay</a> (tDelay *const)</td></tr>
+<tr class="separator:ga5686cf386894dcee3c9241bef0ca4c41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadc5709febff70f7cbca38c2508103ac0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdelay.html#gadc5709febff70f7cbca38c2508103ac0">tDelay_tapIn</a> (tDelay *const, float in, uint32_t tapDelay)</td></tr>
+<tr class="separator:gadc5709febff70f7cbca38c2508103ac0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga94c07f9e8bfdaf402ebfbcd38d0150b5"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdelay.html#ga94c07f9e8bfdaf402ebfbcd38d0150b5">tDelay_tapOut</a> (tDelay *const, uint32_t tapDelay)</td></tr>
+<tr class="separator:ga94c07f9e8bfdaf402ebfbcd38d0150b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac4014573da91d0da9c8b7d48d515de5a"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdelay.html#gac4014573da91d0da9c8b7d48d515de5a">tDelay_addTo</a> (tDelay *const, float value, uint32_t tapDelay)</td></tr>
+<tr class="separator:gac4014573da91d0da9c8b7d48d515de5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2f3b8939018fd6972756a9137cab3567"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdelay.html#ga2f3b8939018fd6972756a9137cab3567">tDelay_tick</a> (tDelay *const, float sample)</td></tr>
+<tr class="separator:ga2f3b8939018fd6972756a9137cab3567"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3e00ec62933b69e09d9eed5b7608e094"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdelay.html#ga3e00ec62933b69e09d9eed5b7608e094">tDelay_getLastOut</a> (tDelay *const)</td></tr>
+<tr class="separator:ga3e00ec62933b69e09d9eed5b7608e094"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab23b7051f02d2f7108939bdb034fe308"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdelay.html#gab23b7051f02d2f7108939bdb034fe308">tDelay_getLastIn</a> (tDelay *const)</td></tr>
+<tr class="separator:gab23b7051f02d2f7108939bdb034fe308"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Non-interpolating delay, reimplemented from STK (Cook and Scavone). </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga22597de02abb939743a18ec38ff08a0f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga22597de02abb939743a18ec38ff08a0f">&#9670;&nbsp;</a></span>tDelay_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDelay_init </td>
+          <td>(</td>
+          <td class="paramtype">tDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>delay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>maxDelay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tDelay to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the tDelay to initialize. </td></tr>
+    <tr><td class="paramname">initalLength</td><td></td></tr>
+    <tr><td class="paramname">maxLength</td><td></td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gacaaaaabc7ddb4259f05481f10ba5c403"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacaaaaabc7ddb4259f05481f10ba5c403">&#9670;&nbsp;</a></span>tDelay_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDelay_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>delay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>maxDelay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tDelay to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the tDelay to initialize. </td></tr>
+    <tr><td class="paramname">initalLength</td><td></td></tr>
+    <tr><td class="paramname">maxLength</td><td></td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac96fb1d4b4997a3137f211b6f22e14ba"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac96fb1d4b4997a3137f211b6f22e14ba">&#9670;&nbsp;</a></span>tDelay_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDelay_free </td>
+          <td>(</td>
+          <td class="paramtype">tDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tDelay from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the tDelay to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga10738582699eb8e6ff892b4ba662c4ef"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga10738582699eb8e6ff892b4ba662c4ef">&#9670;&nbsp;</a></span>tDelay_clear()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDelay_clear </td>
+          <td>(</td>
+          <td class="paramtype">tDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga364a63687af1a63b7daa8a8431527a6a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga364a63687af1a63b7daa8a8431527a6a">&#9670;&nbsp;</a></span>tDelay_setDelay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDelay_setDelay </td>
+          <td>(</td>
+          <td class="paramtype">tDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>delay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tDelay. </td></tr>
+    <tr><td class="paramname">delayLength</td><td>The new delay length in samples. Cannot be greater than the max delay length given on initialization. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5686cf386894dcee3c9241bef0ca4c41"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5686cf386894dcee3c9241bef0ca4c41">&#9670;&nbsp;</a></span>tDelay_getDelay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t tDelay_getDelay </td>
+          <td>(</td>
+          <td class="paramtype">tDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The current delay length. </dd></dl>
+
+</div>
+</div>
+<a id="gadc5709febff70f7cbca38c2508103ac0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gadc5709febff70f7cbca38c2508103ac0">&#9670;&nbsp;</a></span>tDelay_tapIn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDelay_tapIn </td>
+          <td>(</td>
+          <td class="paramtype">tDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>tapDelay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tDelay. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+    <tr><td class="paramname">position</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga94c07f9e8bfdaf402ebfbcd38d0150b5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga94c07f9e8bfdaf402ebfbcd38d0150b5">&#9670;&nbsp;</a></span>tDelay_tapOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tDelay_tapOut </td>
+          <td>(</td>
+          <td class="paramtype">tDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>tapDelay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tDelay. </td></tr>
+    <tr><td class="paramname">position</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="gac4014573da91d0da9c8b7d48d515de5a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac4014573da91d0da9c8b7d48d515de5a">&#9670;&nbsp;</a></span>tDelay_addTo()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tDelay_addTo </td>
+          <td>(</td>
+          <td class="paramtype">tDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>value</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>tapDelay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tDelay. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+    <tr><td class="paramname">position</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga2f3b8939018fd6972756a9137cab3567"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2f3b8939018fd6972756a9137cab3567">&#9670;&nbsp;</a></span>tDelay_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tDelay_tick </td>
+          <td>(</td>
+          <td class="paramtype">tDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sample</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tDelay. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga3e00ec62933b69e09d9eed5b7608e094"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3e00ec62933b69e09d9eed5b7608e094">&#9670;&nbsp;</a></span>tDelay_getLastOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tDelay_getLastOut </td>
+          <td>(</td>
+          <td class="paramtype">tDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="gab23b7051f02d2f7108939bdb034fe308"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab23b7051f02d2f7108939bdb034fe308">&#9670;&nbsp;</a></span>tDelay_getLastIn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tDelay_getLastIn </td>
+          <td>(</td>
+          <td class="paramtype">tDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd> </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tdiodefilter.html
@@ -1,0 +1,351 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tDiodeFilter</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tDiodeFilter<div class="ingroups"><a class="el" href="group__filters.html">Filters</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Diode filter.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga279cd7e6bbaf37ee42a679680e13ff3b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdiodefilter.html#ga279cd7e6bbaf37ee42a679680e13ff3b">tDiodeFilter_init</a> (tDiodeFilter *const, float freq, float Q, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga279cd7e6bbaf37ee42a679680e13ff3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tDiodeFilter to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tdiodefilter.html#ga279cd7e6bbaf37ee42a679680e13ff3b">More...</a><br /></td></tr>
+<tr class="separator:ga279cd7e6bbaf37ee42a679680e13ff3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf485c66d9505471775fecc3405321b7b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdiodefilter.html#gaf485c66d9505471775fecc3405321b7b">tDiodeFilter_initToPool</a> (tDiodeFilter *const, float freq, float Q, tMempool *const)</td></tr>
+<tr class="memdesc:gaf485c66d9505471775fecc3405321b7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tDiodeFilter to a specified mempool.  <a href="group__tdiodefilter.html#gaf485c66d9505471775fecc3405321b7b">More...</a><br /></td></tr>
+<tr class="separator:gaf485c66d9505471775fecc3405321b7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa945fd56abedc7829784cc76e5876b84"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdiodefilter.html#gaa945fd56abedc7829784cc76e5876b84">tDiodeFilter_free</a> (tDiodeFilter *const)</td></tr>
+<tr class="memdesc:gaa945fd56abedc7829784cc76e5876b84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tDiodeFilter from its mempool.  <a href="group__tdiodefilter.html#gaa945fd56abedc7829784cc76e5876b84">More...</a><br /></td></tr>
+<tr class="separator:gaa945fd56abedc7829784cc76e5876b84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabbb00b79ceaf9b1b3b028d01218a738b"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdiodefilter.html#gabbb00b79ceaf9b1b3b028d01218a738b">tDiodeFilter_tick</a> (tDiodeFilter *const, float input)</td></tr>
+<tr class="separator:gabbb00b79ceaf9b1b3b028d01218a738b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2854b7be078fb842f6e9c3c2a0f22151"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdiodefilter.html#ga2854b7be078fb842f6e9c3c2a0f22151">tDiodeFilter_setFreq</a> (tDiodeFilter *const vf, float cutoff)</td></tr>
+<tr class="separator:ga2854b7be078fb842f6e9c3c2a0f22151"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga386a8e90939c6bd22d467e33317e0e04"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdiodefilter.html#ga386a8e90939c6bd22d467e33317e0e04">tDiodeFilter_setQ</a> (tDiodeFilter *const vf, float resonance)</td></tr>
+<tr class="separator:ga386a8e90939c6bd22d467e33317e0e04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Diode filter. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga279cd7e6bbaf37ee42a679680e13ff3b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga279cd7e6bbaf37ee42a679680e13ff3b">&#9670;&nbsp;</a></span>tDiodeFilter_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDiodeFilter_init </td>
+          <td>(</td>
+          <td class="paramtype">tDiodeFilter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>Q</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tDiodeFilter to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tDiodeFilter to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf485c66d9505471775fecc3405321b7b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf485c66d9505471775fecc3405321b7b">&#9670;&nbsp;</a></span>tDiodeFilter_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDiodeFilter_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tDiodeFilter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>Q</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tDiodeFilter to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tDiodeFilter to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa945fd56abedc7829784cc76e5876b84"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa945fd56abedc7829784cc76e5876b84">&#9670;&nbsp;</a></span>tDiodeFilter_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDiodeFilter_free </td>
+          <td>(</td>
+          <td class="paramtype">tDiodeFilter * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tDiodeFilter from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tDiodeFilter to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabbb00b79ceaf9b1b3b028d01218a738b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabbb00b79ceaf9b1b3b028d01218a738b">&#9670;&nbsp;</a></span>tDiodeFilter_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tDiodeFilter_tick </td>
+          <td>(</td>
+          <td class="paramtype">tDiodeFilter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tDiodeFilter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2854b7be078fb842f6e9c3c2a0f22151"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2854b7be078fb842f6e9c3c2a0f22151">&#9670;&nbsp;</a></span>tDiodeFilter_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDiodeFilter_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tDiodeFilter *const&#160;</td>
+          <td class="paramname"><em>vf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>cutoff</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tDiodeFilter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga386a8e90939c6bd22d467e33317e0e04"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga386a8e90939c6bd22d467e33317e0e04">&#9670;&nbsp;</a></span>tDiodeFilter_setQ()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDiodeFilter_setQ </td>
+          <td>(</td>
+          <td class="paramtype">tDiodeFilter *const&#160;</td>
+          <td class="paramname"><em>vf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>resonance</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tDiodeFilter.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tdualpitchdetector.html
@@ -1,0 +1,511 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tDualPitchDetector</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tDualPitchDetector<div class="ingroups"><a class="el" href="group__analysis.html">Analysis</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Combined pitch detection algorithm using both Joel de Guzman's Q Audio DSP Library and Katya Vetters algorithms.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gae41a404e3b1463d626423aa6f4ac56a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdualpitchdetector.html#gae41a404e3b1463d626423aa6f4ac56a6">tDualPitchDetector_init</a> (tDualPitchDetector *const detector, float lowestFreq, float highestFreq, float *inBuffer, int bufSize, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gae41a404e3b1463d626423aa6f4ac56a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tDualPitchDetector to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tdualpitchdetector.html#gae41a404e3b1463d626423aa6f4ac56a6">More...</a><br /></td></tr>
+<tr class="separator:gae41a404e3b1463d626423aa6f4ac56a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf9fbf5ecd92f356af0572600ec796556"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdualpitchdetector.html#gaf9fbf5ecd92f356af0572600ec796556">tDualPitchDetector_initToPool</a> (tDualPitchDetector *const detector, float lowestFreq, float highestFreq, float *inBuffer, int bufSize, tMempool *const mempool)</td></tr>
+<tr class="memdesc:gaf9fbf5ecd92f356af0572600ec796556"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tDualPitchDetector to a specified mempool.  <a href="group__tdualpitchdetector.html#gaf9fbf5ecd92f356af0572600ec796556">More...</a><br /></td></tr>
+<tr class="separator:gaf9fbf5ecd92f356af0572600ec796556"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0f104dc5171d8cf3cf5e01d3d52f20e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdualpitchdetector.html#ga0f104dc5171d8cf3cf5e01d3d52f20e4">tDualPitchDetector_free</a> (tDualPitchDetector *const detector)</td></tr>
+<tr class="memdesc:ga0f104dc5171d8cf3cf5e01d3d52f20e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tDualPitchDetector from its mempool.  <a href="group__tdualpitchdetector.html#ga0f104dc5171d8cf3cf5e01d3d52f20e4">More...</a><br /></td></tr>
+<tr class="separator:ga0f104dc5171d8cf3cf5e01d3d52f20e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga25d99f2df26169355fda4810802f7b87"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdualpitchdetector.html#ga25d99f2df26169355fda4810802f7b87">tDualPitchDetector_tick</a> (tDualPitchDetector *const detector, float sample)</td></tr>
+<tr class="separator:ga25d99f2df26169355fda4810802f7b87"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae647948c3fad09263e02625d52a0f9f0"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdualpitchdetector.html#gae647948c3fad09263e02625d52a0f9f0">tDualPitchDetector_getFrequency</a> (tDualPitchDetector *const detector)</td></tr>
+<tr class="separator:gae647948c3fad09263e02625d52a0f9f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga013b0b209ac1fe9268f88ed4925c7905"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdualpitchdetector.html#ga013b0b209ac1fe9268f88ed4925c7905">tDualPitchDetector_getPeriodicity</a> (tDualPitchDetector *const detector)</td></tr>
+<tr class="separator:ga013b0b209ac1fe9268f88ed4925c7905"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa80b5da1c459f61396d95066cf8fdbfe"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdualpitchdetector.html#gaa80b5da1c459f61396d95066cf8fdbfe">tDualPitchDetector_harmonic</a> (tDualPitchDetector *const detector, int harmonicIndex)</td></tr>
+<tr class="separator:gaa80b5da1c459f61396d95066cf8fdbfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab5e594fb81c3c6e5c3f3d58a5f98c504"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdualpitchdetector.html#gab5e594fb81c3c6e5c3f3d58a5f98c504">tDualPitchDetector_predictFrequency</a> (tDualPitchDetector *const detector)</td></tr>
+<tr class="separator:gab5e594fb81c3c6e5c3f3d58a5f98c504"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0a511f71335134377f4db13f9b6c311e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdualpitchdetector.html#ga0a511f71335134377f4db13f9b6c311e">tDualPitchDetector_setHysteresis</a> (tDualPitchDetector *const detector, float hysteresis)</td></tr>
+<tr class="memdesc:ga0a511f71335134377f4db13f9b6c311e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the hysteresis used in zero crossing detection.  <a href="group__tdualpitchdetector.html#ga0a511f71335134377f4db13f9b6c311e">More...</a><br /></td></tr>
+<tr class="separator:ga0a511f71335134377f4db13f9b6c311e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf1a678d94ea5579c8847e8672541fecd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tdualpitchdetector.html#gaf1a678d94ea5579c8847e8672541fecd">tDualPitchDetector_setPeriodicityThreshold</a> (tDualPitchDetector *const detector, float thresh)</td></tr>
+<tr class="memdesc:gaf1a678d94ea5579c8847e8672541fecd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the threshold for periodicity of a signal to be considered as pitched.  <a href="group__tdualpitchdetector.html#gaf1a678d94ea5579c8847e8672541fecd">More...</a><br /></td></tr>
+<tr class="separator:gaf1a678d94ea5579c8847e8672541fecd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Combined pitch detection algorithm using both Joel de Guzman's Q Audio DSP Library and Katya Vetters algorithms. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gae41a404e3b1463d626423aa6f4ac56a6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae41a404e3b1463d626423aa6f4ac56a6">&#9670;&nbsp;</a></span>tDualPitchDetector_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDualPitchDetector_init </td>
+          <td>(</td>
+          <td class="paramtype">tDualPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>lowestFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>highestFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>inBuffer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>bufSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tDualPitchDetector to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tDualPitchDetector. </td></tr>
+    <tr><td class="paramname">lowestFreq</td><td></td></tr>
+    <tr><td class="paramname">highestFreq</td><td></td></tr>
+    <tr><td class="paramname">inputBuffer</td><td>A buffer of float to store input to the pitch detector. </td></tr>
+    <tr><td class="paramname">bufferSize</td><td>Size of the input buffer. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf9fbf5ecd92f356af0572600ec796556"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf9fbf5ecd92f356af0572600ec796556">&#9670;&nbsp;</a></span>tDualPitchDetector_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDualPitchDetector_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tDualPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>lowestFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>highestFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>inBuffer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>bufSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tDualPitchDetector to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tPitchDualDetector. </td></tr>
+    <tr><td class="paramname">lowestFreq</td><td></td></tr>
+    <tr><td class="paramname">highestFreq</td><td></td></tr>
+    <tr><td class="paramname">inputBuffer</td><td>A buffer of float to store input to the pitch detector. </td></tr>
+    <tr><td class="paramname">bufferSize</td><td>Size of the input buffer. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0f104dc5171d8cf3cf5e01d3d52f20e4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0f104dc5171d8cf3cf5e01d3d52f20e4">&#9670;&nbsp;</a></span>tDualPitchDetector_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDualPitchDetector_free </td>
+          <td>(</td>
+          <td class="paramtype">tDualPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tDualPitchDetector from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tDualPitchDetector. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga25d99f2df26169355fda4810802f7b87"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga25d99f2df26169355fda4810802f7b87">&#9670;&nbsp;</a></span>tDualPitchDetector_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tDualPitchDetector_tick </td>
+          <td>(</td>
+          <td class="paramtype">tDualPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sample</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tDualPitchDetector. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae647948c3fad09263e02625d52a0f9f0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae647948c3fad09263e02625d52a0f9f0">&#9670;&nbsp;</a></span>tDualPitchDetector_getFrequency()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tDualPitchDetector_getFrequency </td>
+          <td>(</td>
+          <td class="paramtype">tDualPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tDualPitchDetector. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The detected frequency. </dd></dl>
+
+</div>
+</div>
+<a id="ga013b0b209ac1fe9268f88ed4925c7905"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga013b0b209ac1fe9268f88ed4925c7905">&#9670;&nbsp;</a></span>tDualPitchDetector_getPeriodicity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tDualPitchDetector_getPeriodicity </td>
+          <td>(</td>
+          <td class="paramtype">tDualPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tDualPitchDetector. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The periodicity of the input. </dd></dl>
+
+</div>
+</div>
+<a id="gaa80b5da1c459f61396d95066cf8fdbfe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa80b5da1c459f61396d95066cf8fdbfe">&#9670;&nbsp;</a></span>tDualPitchDetector_harmonic()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tDualPitchDetector_harmonic </td>
+          <td>(</td>
+          <td class="paramtype">tDualPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>harmonicIndex</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tDualPitchDetector. </td></tr>
+    <tr><td class="paramname">harmonicIndex</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="gab5e594fb81c3c6e5c3f3d58a5f98c504"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab5e594fb81c3c6e5c3f3d58a5f98c504">&#9670;&nbsp;</a></span>tDualPitchDetector_predictFrequency()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tDualPitchDetector_predictFrequency </td>
+          <td>(</td>
+          <td class="paramtype">tDualPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tDualPitchDetector. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The predicted frequency in Hz. </dd></dl>
+
+</div>
+</div>
+<a id="ga0a511f71335134377f4db13f9b6c311e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0a511f71335134377f4db13f9b6c311e">&#9670;&nbsp;</a></span>tDualPitchDetector_setHysteresis()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDualPitchDetector_setHysteresis </td>
+          <td>(</td>
+          <td class="paramtype">tDualPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>hysteresis</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the hysteresis used in zero crossing detection. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tDualPitchDetector. </td></tr>
+    <tr><td class="paramname">hysteresis</td><td>The hysteresis in decibels. Defaults to -40db. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf1a678d94ea5579c8847e8672541fecd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf1a678d94ea5579c8847e8672541fecd">&#9670;&nbsp;</a></span>tDualPitchDetector_setPeriodicityThreshold()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tDualPitchDetector_setPeriodicityThreshold </td>
+          <td>(</td>
+          <td class="paramtype">tDualPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>thresh</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the threshold for periodicity of a signal to be considered as pitched. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tDualPitchDetector. </td></tr>
+    <tr><td class="paramname">threshold</td><td>The periodicity threshold from 0.0 to 1.0 with 1.0 being perfectly periodic.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tefficientsvf.html
@@ -1,0 +1,363 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tEfficientSVF</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tEfficientSVF<div class="ingroups"><a class="el" href="group__filters.html">Filters</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Efficient State Variable Filter for 14-bit control input, [0, 4096).  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaac44c74387fbeb20dff0c9f72e5a94ae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tefficientsvf.html#gaac44c74387fbeb20dff0c9f72e5a94ae">tEfficientSVF_init</a> (tEfficientSVF *const, SVFType type, uint16_t input, float Q, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gaac44c74387fbeb20dff0c9f72e5a94ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tEfficientSVF to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tefficientsvf.html#gaac44c74387fbeb20dff0c9f72e5a94ae">More...</a><br /></td></tr>
+<tr class="separator:gaac44c74387fbeb20dff0c9f72e5a94ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga467f74b33e51b8a1dd4e87d0ee71b11a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tefficientsvf.html#ga467f74b33e51b8a1dd4e87d0ee71b11a">tEfficientSVF_initToPool</a> (tEfficientSVF *const, SVFType type, uint16_t input, float Q, tMempool *const)</td></tr>
+<tr class="memdesc:ga467f74b33e51b8a1dd4e87d0ee71b11a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tEfficientSVF to a specified mempool.  <a href="group__tefficientsvf.html#ga467f74b33e51b8a1dd4e87d0ee71b11a">More...</a><br /></td></tr>
+<tr class="separator:ga467f74b33e51b8a1dd4e87d0ee71b11a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa5bc149b9e60cb47235a2e0dc68e2c89"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tefficientsvf.html#gaa5bc149b9e60cb47235a2e0dc68e2c89">tEfficientSVF_free</a> (tEfficientSVF *const)</td></tr>
+<tr class="memdesc:gaa5bc149b9e60cb47235a2e0dc68e2c89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tEfficientSVF from its mempool.  <a href="group__tefficientsvf.html#gaa5bc149b9e60cb47235a2e0dc68e2c89">More...</a><br /></td></tr>
+<tr class="separator:gaa5bc149b9e60cb47235a2e0dc68e2c89"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e00079f0b5094972741342dfdc0e7bf"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tefficientsvf.html#ga6e00079f0b5094972741342dfdc0e7bf">tEfficientSVF_tick</a> (tEfficientSVF *const, float v0)</td></tr>
+<tr class="separator:ga6e00079f0b5094972741342dfdc0e7bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad9da8495e569aa12165d804b2368147e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tefficientsvf.html#gad9da8495e569aa12165d804b2368147e">tEfficientSVF_setFreq</a> (tEfficientSVF *const, uint16_t controlFreq)</td></tr>
+<tr class="separator:gad9da8495e569aa12165d804b2368147e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga441c8da00fed2cb9397cbfe6e39f6ed0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tefficientsvf.html#ga441c8da00fed2cb9397cbfe6e39f6ed0">tEfficientSVF_setQ</a> (tEfficientSVF *const, float Q)</td></tr>
+<tr class="separator:ga441c8da00fed2cb9397cbfe6e39f6ed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Efficient State Variable Filter for 14-bit control input, [0, 4096). </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gaac44c74387fbeb20dff0c9f72e5a94ae"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaac44c74387fbeb20dff0c9f72e5a94ae">&#9670;&nbsp;</a></span>tEfficientSVF_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEfficientSVF_init </td>
+          <td>(</td>
+          <td class="paramtype">tEfficientSVF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">SVFType&#160;</td>
+          <td class="paramname"><em>type</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint16_t&#160;</td>
+          <td class="paramname"><em>input</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>Q</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tEfficientSVF to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tEfficientSVF to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga467f74b33e51b8a1dd4e87d0ee71b11a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga467f74b33e51b8a1dd4e87d0ee71b11a">&#9670;&nbsp;</a></span>tEfficientSVF_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEfficientSVF_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tEfficientSVF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">SVFType&#160;</td>
+          <td class="paramname"><em>type</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint16_t&#160;</td>
+          <td class="paramname"><em>input</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>Q</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tEfficientSVF to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tEfficientSVF to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa5bc149b9e60cb47235a2e0dc68e2c89"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa5bc149b9e60cb47235a2e0dc68e2c89">&#9670;&nbsp;</a></span>tEfficientSVF_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEfficientSVF_free </td>
+          <td>(</td>
+          <td class="paramtype">tEfficientSVF * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tEfficientSVF from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tEfficientSVF to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6e00079f0b5094972741342dfdc0e7bf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6e00079f0b5094972741342dfdc0e7bf">&#9670;&nbsp;</a></span>tEfficientSVF_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tEfficientSVF_tick </td>
+          <td>(</td>
+          <td class="paramtype">tEfficientSVF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>v0</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tEfficientSVF. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad9da8495e569aa12165d804b2368147e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad9da8495e569aa12165d804b2368147e">&#9670;&nbsp;</a></span>tEfficientSVF_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEfficientSVF_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tEfficientSVF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint16_t&#160;</td>
+          <td class="paramname"><em>controlFreq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tEfficientSVF. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga441c8da00fed2cb9397cbfe6e39f6ed0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga441c8da00fed2cb9397cbfe6e39f6ed0">&#9670;&nbsp;</a></span>tEfficientSVF_setQ()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEfficientSVF_setQ </td>
+          <td>(</td>
+          <td class="paramtype">tEfficientSVF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>Q</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tEfficientSVF.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tenvelope.html
@@ -1,0 +1,425 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tEnvelope</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tEnvelope<div class="ingroups"><a class="el" href="group__envelopes.html">Envelopes</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Basic attack-decay envelope.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga750a7c8d37cbe768f2392e93f71f926a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvelope.html#ga750a7c8d37cbe768f2392e93f71f926a">tEnvelope_init</a> (tEnvelope *const, float attack, float decay, int loop, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga750a7c8d37cbe768f2392e93f71f926a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tEnvelope to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tenvelope.html#ga750a7c8d37cbe768f2392e93f71f926a">More...</a><br /></td></tr>
+<tr class="separator:ga750a7c8d37cbe768f2392e93f71f926a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafb5292f686b84efd0d445a353bf4a37a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvelope.html#gafb5292f686b84efd0d445a353bf4a37a">tEnvelope_initToPool</a> (tEnvelope *const, float attack, float decay, int loop, tMempool *const)</td></tr>
+<tr class="memdesc:gafb5292f686b84efd0d445a353bf4a37a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tEnvelope to a specified mempool.  <a href="group__tenvelope.html#gafb5292f686b84efd0d445a353bf4a37a">More...</a><br /></td></tr>
+<tr class="separator:gafb5292f686b84efd0d445a353bf4a37a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac9babd2be1211097f9beee044ec4cdd9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvelope.html#gac9babd2be1211097f9beee044ec4cdd9">tEnvelope_free</a> (tEnvelope *const)</td></tr>
+<tr class="memdesc:gac9babd2be1211097f9beee044ec4cdd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tEnvelope from its mempool.  <a href="group__tenvelope.html#gac9babd2be1211097f9beee044ec4cdd9">More...</a><br /></td></tr>
+<tr class="separator:gac9babd2be1211097f9beee044ec4cdd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga40beb9faaf417398361fe2c4699318f5"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvelope.html#ga40beb9faaf417398361fe2c4699318f5">tEnvelope_tick</a> (tEnvelope *const)</td></tr>
+<tr class="separator:ga40beb9faaf417398361fe2c4699318f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad7cb0c772ac308884c50ce88eac76350"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvelope.html#gad7cb0c772ac308884c50ce88eac76350">tEnvelope_setAttack</a> (tEnvelope *const, float attack)</td></tr>
+<tr class="separator:gad7cb0c772ac308884c50ce88eac76350"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadadffd39e47ede9b25e1a9faad8c0bbc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvelope.html#gadadffd39e47ede9b25e1a9faad8c0bbc">tEnvelope_setDecay</a> (tEnvelope *const, float decay)</td></tr>
+<tr class="separator:gadadffd39e47ede9b25e1a9faad8c0bbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafd5088139edc7b5630a7738efa7bac38"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvelope.html#gafd5088139edc7b5630a7738efa7bac38">tEnvelope_loop</a> (tEnvelope *const, int loop)</td></tr>
+<tr class="separator:gafd5088139edc7b5630a7738efa7bac38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27ea23e65d88dee4361325bcb8cd7e23"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvelope.html#ga27ea23e65d88dee4361325bcb8cd7e23">tEnvelope_on</a> (tEnvelope *const, float velocity)</td></tr>
+<tr class="separator:ga27ea23e65d88dee4361325bcb8cd7e23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Basic attack-decay envelope. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga750a7c8d37cbe768f2392e93f71f926a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga750a7c8d37cbe768f2392e93f71f926a">&#9670;&nbsp;</a></span>tEnvelope_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEnvelope_init </td>
+          <td>(</td>
+          <td class="paramtype">tEnvelope * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>loop</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tEnvelope to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">envelope</td><td>A pointer to the tEnvelope to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gafb5292f686b84efd0d445a353bf4a37a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafb5292f686b84efd0d445a353bf4a37a">&#9670;&nbsp;</a></span>tEnvelope_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEnvelope_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tEnvelope * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>loop</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tEnvelope to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">envelope</td><td>A pointer to the tEnvelope to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac9babd2be1211097f9beee044ec4cdd9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac9babd2be1211097f9beee044ec4cdd9">&#9670;&nbsp;</a></span>tEnvelope_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEnvelope_free </td>
+          <td>(</td>
+          <td class="paramtype">tEnvelope * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tEnvelope from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">envelope</td><td>A pointer to the tEnvelope to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga40beb9faaf417398361fe2c4699318f5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga40beb9faaf417398361fe2c4699318f5">&#9670;&nbsp;</a></span>tEnvelope_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tEnvelope_tick </td>
+          <td>(</td>
+          <td class="paramtype">tEnvelope * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">envelope</td><td>A pointer to the relevant tEnvelope. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad7cb0c772ac308884c50ce88eac76350"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad7cb0c772ac308884c50ce88eac76350">&#9670;&nbsp;</a></span>tEnvelope_setAttack()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEnvelope_setAttack </td>
+          <td>(</td>
+          <td class="paramtype">tEnvelope * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attack</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">envelope</td><td>A pointer to the relevant tEnvelope. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gadadffd39e47ede9b25e1a9faad8c0bbc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gadadffd39e47ede9b25e1a9faad8c0bbc">&#9670;&nbsp;</a></span>tEnvelope_setDecay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEnvelope_setDecay </td>
+          <td>(</td>
+          <td class="paramtype">tEnvelope * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">envelope</td><td>A pointer to the relevant tEnvelope. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gafd5088139edc7b5630a7738efa7bac38"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafd5088139edc7b5630a7738efa7bac38">&#9670;&nbsp;</a></span>tEnvelope_loop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEnvelope_loop </td>
+          <td>(</td>
+          <td class="paramtype">tEnvelope * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>loop</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">envelope</td><td>A pointer to the relevant tEnvelope. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga27ea23e65d88dee4361325bcb8cd7e23"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga27ea23e65d88dee4361325bcb8cd7e23">&#9670;&nbsp;</a></span>tEnvelope_on()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEnvelope_on </td>
+          <td>(</td>
+          <td class="paramtype">tEnvelope * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>velocity</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">envelope</td><td>A pointer to the relevant tEnvelope. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tenvelopefollower.html
@@ -1,0 +1,368 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tEnvelopeFollower</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tEnvelopeFollower<div class="ingroups"><a class="el" href="group__analysis.html">Analysis</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Detects and returns the basic envelope of incoming audio data.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga5a7749052924bc7ed03051043b5e42bb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvelopefollower.html#ga5a7749052924bc7ed03051043b5e42bb">tEnvelopeFollower_init</a> (tEnvelopeFollower *const follower, float attackThreshold, float decayCoefficient, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga5a7749052924bc7ed03051043b5e42bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tEnvelopeFollower to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tenvelopefollower.html#ga5a7749052924bc7ed03051043b5e42bb">More...</a><br /></td></tr>
+<tr class="separator:ga5a7749052924bc7ed03051043b5e42bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacd6a2310494413b550ededdaed214d2a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvelopefollower.html#gacd6a2310494413b550ededdaed214d2a">tEnvelopeFollower_initToPool</a> (tEnvelopeFollower *const follower, float attackThreshold, float decayCoefficient, tMempool *const mempool)</td></tr>
+<tr class="memdesc:gacd6a2310494413b550ededdaed214d2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tEnvelopeFollower to a specified mempool.  <a href="group__tenvelopefollower.html#gacd6a2310494413b550ededdaed214d2a">More...</a><br /></td></tr>
+<tr class="separator:gacd6a2310494413b550ededdaed214d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9ff136abec8842d17d25205787370239"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvelopefollower.html#ga9ff136abec8842d17d25205787370239">tEnvelopeFollower_free</a> (tEnvelopeFollower *const follower)</td></tr>
+<tr class="memdesc:ga9ff136abec8842d17d25205787370239"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tEnvelopeFollower from its mempool.  <a href="group__tenvelopefollower.html#ga9ff136abec8842d17d25205787370239">More...</a><br /></td></tr>
+<tr class="separator:ga9ff136abec8842d17d25205787370239"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadd57dad9c08b2ada6e8c720077256d5a"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvelopefollower.html#gadd57dad9c08b2ada6e8c720077256d5a">tEnvelopeFollower_tick</a> (tEnvelopeFollower *const follower, float sample)</td></tr>
+<tr class="memdesc:gadd57dad9c08b2ada6e8c720077256d5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tick the tEnvelopeFollower.  <a href="group__tenvelopefollower.html#gadd57dad9c08b2ada6e8c720077256d5a">More...</a><br /></td></tr>
+<tr class="separator:gadd57dad9c08b2ada6e8c720077256d5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga746d0a9698c22b21091cc6fad79faf85"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvelopefollower.html#ga746d0a9698c22b21091cc6fad79faf85">tEnvelopeFollower_setDecayCoefficient</a> (tEnvelopeFollower *const follower, float decayCoefficient)</td></tr>
+<tr class="memdesc:ga746d0a9698c22b21091cc6fad79faf85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the envelope decay coefficient.  <a href="group__tenvelopefollower.html#ga746d0a9698c22b21091cc6fad79faf85">More...</a><br /></td></tr>
+<tr class="separator:ga746d0a9698c22b21091cc6fad79faf85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9d8d4762b016fa57939e5d733e164cb9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvelopefollower.html#ga9d8d4762b016fa57939e5d733e164cb9">tEnvelopeFollower_setAttackThreshold</a> (tEnvelopeFollower *const follower, float attackThreshold)</td></tr>
+<tr class="memdesc:ga9d8d4762b016fa57939e5d733e164cb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the envelope attack threshold.  <a href="group__tenvelopefollower.html#ga9d8d4762b016fa57939e5d733e164cb9">More...</a><br /></td></tr>
+<tr class="separator:ga9d8d4762b016fa57939e5d733e164cb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Detects and returns the basic envelope of incoming audio data. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga5a7749052924bc7ed03051043b5e42bb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5a7749052924bc7ed03051043b5e42bb">&#9670;&nbsp;</a></span>tEnvelopeFollower_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEnvelopeFollower_init </td>
+          <td>(</td>
+          <td class="paramtype">tEnvelopeFollower *const&#160;</td>
+          <td class="paramname"><em>follower</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attackThreshold</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decayCoeff</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tEnvelopeFollower to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">follower</td><td>A pointer to the tEnvelopeFollower to initialize. </td></tr>
+    <tr><td class="paramname">attackThreshold</td><td>Amplitude threshold for determining an envelope onset. 0.0 to 1.0 </td></tr>
+    <tr><td class="paramname">decayCoefficient</td><td>Multiplier to determine the envelope rate of decay. 0.0 to 1.0, above 0.95 recommended. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gacd6a2310494413b550ededdaed214d2a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacd6a2310494413b550ededdaed214d2a">&#9670;&nbsp;</a></span>tEnvelopeFollower_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEnvelopeFollower_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tEnvelopeFollower *const&#160;</td>
+          <td class="paramname"><em>follower</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attackThreshold</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decayCoeff</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tEnvelopeFollower to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">follower</td><td>A pointer to the tEnvelopeFollower to initialize. </td></tr>
+    <tr><td class="paramname">attackThreshold</td><td>Amplitude threshold for determining an envelope onset. 0.0 to 1.0 </td></tr>
+    <tr><td class="paramname">decayCoefficient</td><td>Multiplier to determine the envelope rate of decay. 0.0 to 1.0, above 0.95 recommended. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9ff136abec8842d17d25205787370239"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9ff136abec8842d17d25205787370239">&#9670;&nbsp;</a></span>tEnvelopeFollower_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEnvelopeFollower_free </td>
+          <td>(</td>
+          <td class="paramtype">tEnvelopeFollower *const&#160;</td>
+          <td class="paramname"><em>follower</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tEnvelopeFollower from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">follower</td><td>A pointer to the tEnvelopeFollower to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gadd57dad9c08b2ada6e8c720077256d5a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gadd57dad9c08b2ada6e8c720077256d5a">&#9670;&nbsp;</a></span>tEnvelopeFollower_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tEnvelopeFollower_tick </td>
+          <td>(</td>
+          <td class="paramtype">tEnvelopeFollower *const&#160;</td>
+          <td class="paramname"><em>follower</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Tick the tEnvelopeFollower. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">follower</td><td>A pointer to the relevant tEnvelopeFollower. </td></tr>
+    <tr><td class="paramname">input</td><td>The input sample. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The envelope value. </dd></dl>
+
+</div>
+</div>
+<a id="ga746d0a9698c22b21091cc6fad79faf85"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga746d0a9698c22b21091cc6fad79faf85">&#9670;&nbsp;</a></span>tEnvelopeFollower_setDecayCoefficient()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEnvelopeFollower_setDecayCoefficient </td>
+          <td>(</td>
+          <td class="paramtype">tEnvelopeFollower *const&#160;</td>
+          <td class="paramname"><em>follower</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decayCoeff</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the envelope decay coefficient. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">follower</td><td>A pointer to the relevant tEnvelopeFollower. </td></tr>
+    <tr><td class="paramname">decayCoefficient</td><td>Multiplier to determine the envelope rate of decay. 0.0 to 1.0, above 0.95 recommended. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9d8d4762b016fa57939e5d733e164cb9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9d8d4762b016fa57939e5d733e164cb9">&#9670;&nbsp;</a></span>tEnvelopeFollower_setAttackThreshold()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEnvelopeFollower_setAttackThreshold </td>
+          <td>(</td>
+          <td class="paramtype">tEnvelopeFollower *const&#160;</td>
+          <td class="paramname"><em>follower</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>attackThresh</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the envelope attack threshold. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">follower</td><td>A pointer to the relevant tEnvelopeFollower. </td></tr>
+    <tr><td class="paramname">attackThreshold</td><td>The new threshold to determine envelope onset as an amplitude from 0.0 to 1.0  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tenvpd.html
@@ -1,0 +1,324 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tEnvPD</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tEnvPD<div class="ingroups"><a class="el" href="group__analysis.html">Analysis</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>ENV~ from PD, modified for <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a>.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga49c2752feb9890d139e296e75ea74b9b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvpd.html#ga49c2752feb9890d139e296e75ea74b9b">tEnvPD_init</a> (tEnvPD *const, int windowSize, int hopSize, int blockSize, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga49c2752feb9890d139e296e75ea74b9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tEnvPD to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tenvpd.html#ga49c2752feb9890d139e296e75ea74b9b">More...</a><br /></td></tr>
+<tr class="separator:ga49c2752feb9890d139e296e75ea74b9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga31446fa14ee57bd0f19d260f4c748e2e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvpd.html#ga31446fa14ee57bd0f19d260f4c748e2e">tEnvPD_initToPool</a> (tEnvPD *const, int windowSize, int hopSize, int blockSize, tMempool *const)</td></tr>
+<tr class="memdesc:ga31446fa14ee57bd0f19d260f4c748e2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tEnvPD to a specified mempool.  <a href="group__tenvpd.html#ga31446fa14ee57bd0f19d260f4c748e2e">More...</a><br /></td></tr>
+<tr class="separator:ga31446fa14ee57bd0f19d260f4c748e2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga28ade0e2893d6e94bca4dfa6cdd0f0ea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvpd.html#ga28ade0e2893d6e94bca4dfa6cdd0f0ea">tEnvPD_free</a> (tEnvPD *const)</td></tr>
+<tr class="memdesc:ga28ade0e2893d6e94bca4dfa6cdd0f0ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tEnvPD from its mempool.  <a href="group__tenvpd.html#ga28ade0e2893d6e94bca4dfa6cdd0f0ea">More...</a><br /></td></tr>
+<tr class="separator:ga28ade0e2893d6e94bca4dfa6cdd0f0ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga73ca443b1b36dc5995bf1659fdb242ab"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvpd.html#ga73ca443b1b36dc5995bf1659fdb242ab">tEnvPD_tick</a> (tEnvPD *const)</td></tr>
+<tr class="separator:ga73ca443b1b36dc5995bf1659fdb242ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga15bd0b8018ca2c67120053eb8cd1fc9a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tenvpd.html#ga15bd0b8018ca2c67120053eb8cd1fc9a">tEnvPD_processBlock</a> (tEnvPD *const, float *in)</td></tr>
+<tr class="separator:ga15bd0b8018ca2c67120053eb8cd1fc9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>ENV~ from PD, modified for <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a>. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga49c2752feb9890d139e296e75ea74b9b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga49c2752feb9890d139e296e75ea74b9b">&#9670;&nbsp;</a></span>tEnvPD_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEnvPD_init </td>
+          <td>(</td>
+          <td class="paramtype">tEnvPD * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>windowSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>hopSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>blockSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tEnvPD to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">env</td><td>A pointer to the tEnvPD to initialize. </td></tr>
+    <tr><td class="paramname">windowSize</td><td></td></tr>
+    <tr><td class="paramname">hopSize</td><td></td></tr>
+    <tr><td class="paramname">blockSize</td><td></td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga31446fa14ee57bd0f19d260f4c748e2e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga31446fa14ee57bd0f19d260f4c748e2e">&#9670;&nbsp;</a></span>tEnvPD_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEnvPD_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tEnvPD * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>windowSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>hopSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>blockSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tEnvPD to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">env</td><td>A pointer to the tEnvPD to initialize. </td></tr>
+    <tr><td class="paramname">windowSize</td><td></td></tr>
+    <tr><td class="paramname">hopSize</td><td></td></tr>
+    <tr><td class="paramname">blockSize</td><td></td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga28ade0e2893d6e94bca4dfa6cdd0f0ea"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga28ade0e2893d6e94bca4dfa6cdd0f0ea">&#9670;&nbsp;</a></span>tEnvPD_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEnvPD_free </td>
+          <td>(</td>
+          <td class="paramtype">tEnvPD * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tEnvPD from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">env</td><td>A pointer to the tEnvPD to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga73ca443b1b36dc5995bf1659fdb242ab"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga73ca443b1b36dc5995bf1659fdb242ab">&#9670;&nbsp;</a></span>tEnvPD_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tEnvPD_tick </td>
+          <td>(</td>
+          <td class="paramtype">tEnvPD * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">env</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga15bd0b8018ca2c67120053eb8cd1fc9a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga15bd0b8018ca2c67120053eb8cd1fc9a">&#9670;&nbsp;</a></span>tEnvPD_processBlock()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tEnvPD_processBlock </td>
+          <td>(</td>
+          <td class="paramtype">tEnvPD * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>in</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">env</td><td></td></tr>
+    <tr><td class="paramname">inputBlock</td><td> </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__texpsmooth.html
@@ -1,0 +1,439 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tExpSmooth</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tExpSmooth<div class="ingroups"><a class="el" href="group__envelopes.html">Envelopes</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Exponential curve smoother.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga9074f846bd87a7e9071ff7a0fc77412a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__texpsmooth.html#ga9074f846bd87a7e9071ff7a0fc77412a">tExpSmooth_init</a> (tExpSmooth *const, float val, float factor, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga9074f846bd87a7e9071ff7a0fc77412a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tExpSmooth to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__texpsmooth.html#ga9074f846bd87a7e9071ff7a0fc77412a">More...</a><br /></td></tr>
+<tr class="separator:ga9074f846bd87a7e9071ff7a0fc77412a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8b8656a6b3b3f824a3a4b1ad06fc5e9e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__texpsmooth.html#ga8b8656a6b3b3f824a3a4b1ad06fc5e9e">tExpSmooth_initToPool</a> (tExpSmooth *const, float val, float factor, tMempool *const)</td></tr>
+<tr class="memdesc:ga8b8656a6b3b3f824a3a4b1ad06fc5e9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tExpSmooth to a specified mempool.  <a href="group__texpsmooth.html#ga8b8656a6b3b3f824a3a4b1ad06fc5e9e">More...</a><br /></td></tr>
+<tr class="separator:ga8b8656a6b3b3f824a3a4b1ad06fc5e9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf49340184c2380c43fd0cb990d9a6ea3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__texpsmooth.html#gaf49340184c2380c43fd0cb990d9a6ea3">tExpSmooth_free</a> (tExpSmooth *const)</td></tr>
+<tr class="memdesc:gaf49340184c2380c43fd0cb990d9a6ea3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tExpSmooth from its mempool.  <a href="group__texpsmooth.html#gaf49340184c2380c43fd0cb990d9a6ea3">More...</a><br /></td></tr>
+<tr class="separator:gaf49340184c2380c43fd0cb990d9a6ea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9c772d0874085e260027716a6850c066"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__texpsmooth.html#ga9c772d0874085e260027716a6850c066">tExpSmooth_tick</a> (tExpSmooth *const)</td></tr>
+<tr class="separator:ga9c772d0874085e260027716a6850c066"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f96e9a582c3bf85dd600f98eac11243"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__texpsmooth.html#ga1f96e9a582c3bf85dd600f98eac11243">tExpSmooth_sample</a> (tExpSmooth *const)</td></tr>
+<tr class="separator:ga1f96e9a582c3bf85dd600f98eac11243"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea5297fd207b49cecb42c583fe6549cc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__texpsmooth.html#gaea5297fd207b49cecb42c583fe6549cc">tExpSmooth_setFactor</a> (tExpSmooth *const, float factor)</td></tr>
+<tr class="separator:gaea5297fd207b49cecb42c583fe6549cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga67d45ea3ba251bc651b06733bdd65e60"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__texpsmooth.html#ga67d45ea3ba251bc651b06733bdd65e60">tExpSmooth_setDest</a> (tExpSmooth *const, float dest)</td></tr>
+<tr class="separator:ga67d45ea3ba251bc651b06733bdd65e60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e215e2d8a7e43e16d009f8eb805330e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__texpsmooth.html#ga6e215e2d8a7e43e16d009f8eb805330e">tExpSmooth_setVal</a> (tExpSmooth *const, float val)</td></tr>
+<tr class="separator:ga6e215e2d8a7e43e16d009f8eb805330e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga19fc6917c2d049c72b55f432ea24cfe5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__texpsmooth.html#ga19fc6917c2d049c72b55f432ea24cfe5">tExpSmooth_setValAndDest</a> (tExpSmooth *const expsmooth, float val)</td></tr>
+<tr class="separator:ga19fc6917c2d049c72b55f432ea24cfe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Exponential curve smoother. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga9074f846bd87a7e9071ff7a0fc77412a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9074f846bd87a7e9071ff7a0fc77412a">&#9670;&nbsp;</a></span>tExpSmooth_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tExpSmooth_init </td>
+          <td>(</td>
+          <td class="paramtype">tExpSmooth * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>val</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>factor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tExpSmooth to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">smooth</td><td>A pointer to the tExpSmooth to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8b8656a6b3b3f824a3a4b1ad06fc5e9e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8b8656a6b3b3f824a3a4b1ad06fc5e9e">&#9670;&nbsp;</a></span>tExpSmooth_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tExpSmooth_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tExpSmooth * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>val</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>factor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tExpSmooth to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">smooth</td><td>A pointer to the tExpSmooth to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf49340184c2380c43fd0cb990d9a6ea3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf49340184c2380c43fd0cb990d9a6ea3">&#9670;&nbsp;</a></span>tExpSmooth_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tExpSmooth_free </td>
+          <td>(</td>
+          <td class="paramtype">tExpSmooth * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tExpSmooth from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">smooth</td><td>A pointer to the tExpSmooth to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9c772d0874085e260027716a6850c066"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9c772d0874085e260027716a6850c066">&#9670;&nbsp;</a></span>tExpSmooth_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tExpSmooth_tick </td>
+          <td>(</td>
+          <td class="paramtype">tExpSmooth * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">smooth</td><td>A pointer to the relevant tExpSmooth. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1f96e9a582c3bf85dd600f98eac11243"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1f96e9a582c3bf85dd600f98eac11243">&#9670;&nbsp;</a></span>tExpSmooth_sample()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tExpSmooth_sample </td>
+          <td>(</td>
+          <td class="paramtype">tExpSmooth * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">smooth</td><td>A pointer to the relevant tExpSmooth. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaea5297fd207b49cecb42c583fe6549cc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaea5297fd207b49cecb42c583fe6549cc">&#9670;&nbsp;</a></span>tExpSmooth_setFactor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tExpSmooth_setFactor </td>
+          <td>(</td>
+          <td class="paramtype">tExpSmooth * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>factor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">smooth</td><td>A pointer to the relevant tExpSmooth. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga67d45ea3ba251bc651b06733bdd65e60"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga67d45ea3ba251bc651b06733bdd65e60">&#9670;&nbsp;</a></span>tExpSmooth_setDest()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tExpSmooth_setDest </td>
+          <td>(</td>
+          <td class="paramtype">tExpSmooth * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>dest</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">smooth</td><td>A pointer to the relevant tExpSmooth. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6e215e2d8a7e43e16d009f8eb805330e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6e215e2d8a7e43e16d009f8eb805330e">&#9670;&nbsp;</a></span>tExpSmooth_setVal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tExpSmooth_setVal </td>
+          <td>(</td>
+          <td class="paramtype">tExpSmooth * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>val</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">smooth</td><td>A pointer to the relevant tExpSmooth. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga19fc6917c2d049c72b55f432ea24cfe5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga19fc6917c2d049c72b55f432ea24cfe5">&#9670;&nbsp;</a></span>tExpSmooth_setValAndDest()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tExpSmooth_setValAndDest </td>
+          <td>(</td>
+          <td class="paramtype">tExpSmooth *const&#160;</td>
+          <td class="paramname"><em>expsmooth</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>val</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">smooth</td><td>A pointer to the relevant tExpSmooth. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tfeedbackleveler.html
@@ -1,0 +1,475 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tFeedbackLeveler</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tFeedbackLeveler<div class="ingroups"><a class="el" href="group__dynamics.html">Dynamics</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>An auto VCA that you put into a feedback circuit to make it stay at the same level.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gad47edde6cb4edcbb2c7b987169fa3894"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#gad47edde6cb4edcbb2c7b987169fa3894">tFeedbackLeveler_init</a> (tFeedbackLeveler *const, float targetLevel, float factor, float strength, int mode, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gad47edde6cb4edcbb2c7b987169fa3894"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tFeedbackLeveler to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tfeedbackleveler.html#gad47edde6cb4edcbb2c7b987169fa3894">More...</a><br /></td></tr>
+<tr class="separator:gad47edde6cb4edcbb2c7b987169fa3894"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae7b25faea2961dcf8fc010073f27da01"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#gae7b25faea2961dcf8fc010073f27da01">tFeedbackLeveler_initToPool</a> (tFeedbackLeveler *const, float targetLevel, float factor, float strength, int mode, tMempool *const)</td></tr>
+<tr class="memdesc:gae7b25faea2961dcf8fc010073f27da01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tFeedbackLeveler to a specified mempool.  <a href="group__tfeedbackleveler.html#gae7b25faea2961dcf8fc010073f27da01">More...</a><br /></td></tr>
+<tr class="separator:gae7b25faea2961dcf8fc010073f27da01"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga821078d9cde9ae2f2c4e78ff3c3b78e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#ga821078d9cde9ae2f2c4e78ff3c3b78e6">tFeedbackLeveler_free</a> (tFeedbackLeveler *const)</td></tr>
+<tr class="memdesc:ga821078d9cde9ae2f2c4e78ff3c3b78e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tFeedbackLeveler from its mempool.  <a href="group__tfeedbackleveler.html#ga821078d9cde9ae2f2c4e78ff3c3b78e6">More...</a><br /></td></tr>
+<tr class="separator:ga821078d9cde9ae2f2c4e78ff3c3b78e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5c882adb387363a1aaf9ab89856f22a2"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#ga5c882adb387363a1aaf9ab89856f22a2">tFeedbackLeveler_tick</a> (tFeedbackLeveler *const, float input)</td></tr>
+<tr class="separator:ga5c882adb387363a1aaf9ab89856f22a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab451b93e5c3676fae53e44d19f8d949b"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#gab451b93e5c3676fae53e44d19f8d949b">tFeedbackLeveler_sample</a> (tFeedbackLeveler *const)</td></tr>
+<tr class="separator:gab451b93e5c3676fae53e44d19f8d949b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4668b5d237be33237f8e4bf0870301f7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#ga4668b5d237be33237f8e4bf0870301f7">tFeedbackLeveler_setTargetLevel</a> (tFeedbackLeveler *const, float TargetLevel)</td></tr>
+<tr class="separator:ga4668b5d237be33237f8e4bf0870301f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad1a82f7a3dbd65e3310a7d345b2e4243"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#gad1a82f7a3dbd65e3310a7d345b2e4243">tFeedbackLeveler_setFactor</a> (tFeedbackLeveler *const, float factor)</td></tr>
+<tr class="separator:gad1a82f7a3dbd65e3310a7d345b2e4243"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga08681640f1442f016e6bcf4d05542aa9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#ga08681640f1442f016e6bcf4d05542aa9">tFeedbackLeveler_setMode</a> (tFeedbackLeveler *const, int mode)</td></tr>
+<tr class="separator:ga08681640f1442f016e6bcf4d05542aa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad7bf90dd14e80f6683859aeac2e62e80"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#gad7bf90dd14e80f6683859aeac2e62e80">tFeedbackLeveler_setStrength</a> (tFeedbackLeveler *const, float strength)</td></tr>
+<tr class="separator:gad7bf90dd14e80f6683859aeac2e62e80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>An auto VCA that you put into a feedback circuit to make it stay at the same level. </p>
+<p>An auto VCA that you put into a feedback circuit to make it stay at the same level. It can enforce level bidirectionally (amplifying and attenuating as needed) or just attenutating. The former option allows for infinite sustain strings, for example, while the latter option allows for decaying strings, which can never exceed a specific level. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gad47edde6cb4edcbb2c7b987169fa3894"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad47edde6cb4edcbb2c7b987169fa3894">&#9670;&nbsp;</a></span>tFeedbackLeveler_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tFeedbackLeveler_init </td>
+          <td>(</td>
+          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>targetLevel</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>factor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>strength</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tFeedbackLeveler to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">leveler</td><td>A pointer to the tFeedbackLeveler to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae7b25faea2961dcf8fc010073f27da01"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae7b25faea2961dcf8fc010073f27da01">&#9670;&nbsp;</a></span>tFeedbackLeveler_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tFeedbackLeveler_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>targetLevel</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>factor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>strength</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tFeedbackLeveler to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">leveler</td><td>A pointer to the tFeedbackLeveler to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga821078d9cde9ae2f2c4e78ff3c3b78e6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga821078d9cde9ae2f2c4e78ff3c3b78e6">&#9670;&nbsp;</a></span>tFeedbackLeveler_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tFeedbackLeveler_free </td>
+          <td>(</td>
+          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tFeedbackLeveler from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">leveler</td><td>A pointer to the tFeedbackLeveler to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5c882adb387363a1aaf9ab89856f22a2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5c882adb387363a1aaf9ab89856f22a2">&#9670;&nbsp;</a></span>tFeedbackLeveler_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tFeedbackLeveler_tick </td>
+          <td>(</td>
+          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">leveler</td><td>A pointer to the relevant tFeedbackLeveler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab451b93e5c3676fae53e44d19f8d949b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab451b93e5c3676fae53e44d19f8d949b">&#9670;&nbsp;</a></span>tFeedbackLeveler_sample()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tFeedbackLeveler_sample </td>
+          <td>(</td>
+          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">leveler</td><td>A pointer to the relevant tFeedbackLeveler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga4668b5d237be33237f8e4bf0870301f7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4668b5d237be33237f8e4bf0870301f7">&#9670;&nbsp;</a></span>tFeedbackLeveler_setTargetLevel()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tFeedbackLeveler_setTargetLevel </td>
+          <td>(</td>
+          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>TargetLevel</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">leveler</td><td>A pointer to the relevant tFeedbackLeveler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad1a82f7a3dbd65e3310a7d345b2e4243"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad1a82f7a3dbd65e3310a7d345b2e4243">&#9670;&nbsp;</a></span>tFeedbackLeveler_setFactor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tFeedbackLeveler_setFactor </td>
+          <td>(</td>
+          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>factor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">leveler</td><td>A pointer to the relevant tFeedbackLeveler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga08681640f1442f016e6bcf4d05542aa9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga08681640f1442f016e6bcf4d05542aa9">&#9670;&nbsp;</a></span>tFeedbackLeveler_setMode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tFeedbackLeveler_setMode </td>
+          <td>(</td>
+          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>mode</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">leveler</td><td>A pointer to the relevant tFeedbackLeveler. </td></tr>
+    <tr><td class="paramname">mode</td><td>0 for upwards limiting only, 1 for biderctional limiting </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad7bf90dd14e80f6683859aeac2e62e80"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad7bf90dd14e80f6683859aeac2e62e80">&#9670;&nbsp;</a></span>tFeedbackLeveler_setStrength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tFeedbackLeveler_setStrength </td>
+          <td>(</td>
+          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>strength</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">leveler</td><td>A pointer to the relevant tFeedbackLeveler.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tfir.html
@@ -1,0 +1,279 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tFIR</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tFIR<div class="ingroups"><a class="el" href="group__filters.html">Filters</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Finite impulse response filter.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga333f1b826e10b14d932f1282ff72d7fe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfir.html#ga333f1b826e10b14d932f1282ff72d7fe">tFIR_init</a> (tFIR *const, float *coeffs, int numTaps, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga333f1b826e10b14d932f1282ff72d7fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tFIR to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tfir.html#ga333f1b826e10b14d932f1282ff72d7fe">More...</a><br /></td></tr>
+<tr class="separator:ga333f1b826e10b14d932f1282ff72d7fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga814a59f7c1179b717ce5985ed545004f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfir.html#ga814a59f7c1179b717ce5985ed545004f">tFIR_initToPool</a> (tFIR *const, float *coeffs, int numTaps, tMempool *const)</td></tr>
+<tr class="memdesc:ga814a59f7c1179b717ce5985ed545004f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tFIR to a specified mempool.  <a href="group__tfir.html#ga814a59f7c1179b717ce5985ed545004f">More...</a><br /></td></tr>
+<tr class="separator:ga814a59f7c1179b717ce5985ed545004f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac45d2e019b45dcd2a62ebe0b4bc1ec50"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfir.html#gac45d2e019b45dcd2a62ebe0b4bc1ec50">tFIR_free</a> (tFIR *const)</td></tr>
+<tr class="memdesc:gac45d2e019b45dcd2a62ebe0b4bc1ec50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tFIR from its mempool.  <a href="group__tfir.html#gac45d2e019b45dcd2a62ebe0b4bc1ec50">More...</a><br /></td></tr>
+<tr class="separator:gac45d2e019b45dcd2a62ebe0b4bc1ec50"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6ed11191124b872639e12cbe9dcc76e9"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfir.html#ga6ed11191124b872639e12cbe9dcc76e9">tFIR_tick</a> (tFIR *const, float input)</td></tr>
+<tr class="separator:ga6ed11191124b872639e12cbe9dcc76e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Finite impulse response filter. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga333f1b826e10b14d932f1282ff72d7fe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga333f1b826e10b14d932f1282ff72d7fe">&#9670;&nbsp;</a></span>tFIR_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tFIR_init </td>
+          <td>(</td>
+          <td class="paramtype">tFIR * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>coeffs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>numTaps</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tFIR to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tFIR to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga814a59f7c1179b717ce5985ed545004f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga814a59f7c1179b717ce5985ed545004f">&#9670;&nbsp;</a></span>tFIR_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tFIR_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tFIR * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>coeffs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>numTaps</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tFIR to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tFIR to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac45d2e019b45dcd2a62ebe0b4bc1ec50"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac45d2e019b45dcd2a62ebe0b4bc1ec50">&#9670;&nbsp;</a></span>tFIR_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tFIR_free </td>
+          <td>(</td>
+          <td class="paramtype">tFIR * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tFIR from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tFIR to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6ed11191124b872639e12cbe9dcc76e9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6ed11191124b872639e12cbe9dcc76e9">&#9670;&nbsp;</a></span>tFIR_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tFIR_tick </td>
+          <td>(</td>
+          <td class="paramtype">tFIR * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tFIR.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tformantshifter.html
@@ -1,0 +1,465 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tFormantShifter</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tFormantShifter<div class="ingroups"><a class="el" href="group__effects.html">Effects</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Formant remover and adder, allowing for formant shifting.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga42890ba9ac29c3f200d617647fcd321b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tformantshifter.html#ga42890ba9ac29c3f200d617647fcd321b">tFormantShifter_init</a> (tFormantShifter *const, int order, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga42890ba9ac29c3f200d617647fcd321b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tFormantShifter to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tformantshifter.html#ga42890ba9ac29c3f200d617647fcd321b">More...</a><br /></td></tr>
+<tr class="separator:ga42890ba9ac29c3f200d617647fcd321b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad79a5e074c0f99ac7c7af3d530fdd214"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tformantshifter.html#gad79a5e074c0f99ac7c7af3d530fdd214">tFormantShifter_initToPool</a> (tFormantShifter *const, int order, tMempool *const)</td></tr>
+<tr class="memdesc:gad79a5e074c0f99ac7c7af3d530fdd214"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tFormantShifter to a specified mempool.  <a href="group__tformantshifter.html#gad79a5e074c0f99ac7c7af3d530fdd214">More...</a><br /></td></tr>
+<tr class="separator:gad79a5e074c0f99ac7c7af3d530fdd214"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab4d9198bc06d81125663dd3da00fbf47"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tformantshifter.html#gab4d9198bc06d81125663dd3da00fbf47">tFormantShifter_free</a> (tFormantShifter *const)</td></tr>
+<tr class="memdesc:gab4d9198bc06d81125663dd3da00fbf47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tFormantShifter from its mempool.  <a href="group__tformantshifter.html#gab4d9198bc06d81125663dd3da00fbf47">More...</a><br /></td></tr>
+<tr class="separator:gab4d9198bc06d81125663dd3da00fbf47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e02d685feef8233a0949e19718b2884"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tformantshifter.html#ga6e02d685feef8233a0949e19718b2884">tFormantShifter_tick</a> (tFormantShifter *const, float input)</td></tr>
+<tr class="separator:ga6e02d685feef8233a0949e19718b2884"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga20c5dcc163a256e5b7792b1cd4788d59"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tformantshifter.html#ga20c5dcc163a256e5b7792b1cd4788d59">tFormantShifter_remove</a> (tFormantShifter *const, float input)</td></tr>
+<tr class="separator:ga20c5dcc163a256e5b7792b1cd4788d59"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa1697aa8f5614be25546943c7a3c6f46"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tformantshifter.html#gaa1697aa8f5614be25546943c7a3c6f46">tFormantShifter_add</a> (tFormantShifter *const, float input)</td></tr>
+<tr class="separator:gaa1697aa8f5614be25546943c7a3c6f46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadf13d01a3ed6e8941d93e521769f5447"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tformantshifter.html#gadf13d01a3ed6e8941d93e521769f5447">tFormantShifter_ioSamples</a> (tFormantShifter *const, float *in, float *out, int size, float fwarp)</td></tr>
+<tr class="separator:gadf13d01a3ed6e8941d93e521769f5447"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3f5493a4bce93a71124aed52d374cfdc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tformantshifter.html#ga3f5493a4bce93a71124aed52d374cfdc">tFormantShifter_setShiftFactor</a> (tFormantShifter *const, float shiftFactor)</td></tr>
+<tr class="separator:ga3f5493a4bce93a71124aed52d374cfdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf975f968b7428a7d744b2493c68267d4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tformantshifter.html#gaf975f968b7428a7d744b2493c68267d4">tFormantShifter_setIntensity</a> (tFormantShifter *const, float intensity)</td></tr>
+<tr class="separator:gaf975f968b7428a7d744b2493c68267d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Formant remover and adder, allowing for formant shifting. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga42890ba9ac29c3f200d617647fcd321b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga42890ba9ac29c3f200d617647fcd321b">&#9670;&nbsp;</a></span>tFormantShifter_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tFormantShifter_init </td>
+          <td>(</td>
+          <td class="paramtype">tFormantShifter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>order</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tFormantShifter to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">formant</td><td>A pointer to the tFormantShifter to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad79a5e074c0f99ac7c7af3d530fdd214"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad79a5e074c0f99ac7c7af3d530fdd214">&#9670;&nbsp;</a></span>tFormantShifter_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tFormantShifter_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tFormantShifter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>order</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tFormantShifter to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">formant</td><td>A pointer to the tFormantShifter to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab4d9198bc06d81125663dd3da00fbf47"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab4d9198bc06d81125663dd3da00fbf47">&#9670;&nbsp;</a></span>tFormantShifter_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tFormantShifter_free </td>
+          <td>(</td>
+          <td class="paramtype">tFormantShifter * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tFormantShifter from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">formant</td><td>A pointer to the tFormantShifter to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6e02d685feef8233a0949e19718b2884"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6e02d685feef8233a0949e19718b2884">&#9670;&nbsp;</a></span>tFormantShifter_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tFormantShifter_tick </td>
+          <td>(</td>
+          <td class="paramtype">tFormantShifter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">formant</td><td>A pointer to the relevant tFormantShifter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga20c5dcc163a256e5b7792b1cd4788d59"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga20c5dcc163a256e5b7792b1cd4788d59">&#9670;&nbsp;</a></span>tFormantShifter_remove()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tFormantShifter_remove </td>
+          <td>(</td>
+          <td class="paramtype">tFormantShifter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">formant</td><td>A pointer to the relevant tFormantShifter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa1697aa8f5614be25546943c7a3c6f46"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa1697aa8f5614be25546943c7a3c6f46">&#9670;&nbsp;</a></span>tFormantShifter_add()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tFormantShifter_add </td>
+          <td>(</td>
+          <td class="paramtype">tFormantShifter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">formant</td><td>A pointer to the relevant tFormantShifter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gadf13d01a3ed6e8941d93e521769f5447"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gadf13d01a3ed6e8941d93e521769f5447">&#9670;&nbsp;</a></span>tFormantShifter_ioSamples()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tFormantShifter_ioSamples </td>
+          <td>(</td>
+          <td class="paramtype">tFormantShifter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>out</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>fwarp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">formant</td><td>A pointer to the relevant tFormantShifter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3f5493a4bce93a71124aed52d374cfdc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3f5493a4bce93a71124aed52d374cfdc">&#9670;&nbsp;</a></span>tFormantShifter_setShiftFactor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tFormantShifter_setShiftFactor </td>
+          <td>(</td>
+          <td class="paramtype">tFormantShifter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>shiftFactor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">formant</td><td>A pointer to the relevant tFormantShifter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf975f968b7428a7d744b2493c68267d4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf975f968b7428a7d744b2493c68267d4">&#9670;&nbsp;</a></span>tFormantShifter_setIntensity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tFormantShifter_setIntensity </td>
+          <td>(</td>
+          <td class="paramtype">tFormantShifter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>intensity</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">formant</td><td>A pointer to the relevant tFormantShifter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__thermitedelay.html
@@ -1,0 +1,685 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tHermiteDelay</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tHermiteDelay<div class="ingroups"><a class="el" href="group__delay.html">Delay</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Hermite-interpolating delay, created by adapting STK linear delay with Hermite interpolation.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga09adaf3acdcd2ad63ba36f97083ca633"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html#ga09adaf3acdcd2ad63ba36f97083ca633">tHermiteDelay_init</a> (tHermiteDelay *const dl, float delay, uint32_t maxDelay, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga09adaf3acdcd2ad63ba36f97083ca633"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tHermiteDelay to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__thermitedelay.html#ga09adaf3acdcd2ad63ba36f97083ca633">More...</a><br /></td></tr>
+<tr class="separator:ga09adaf3acdcd2ad63ba36f97083ca633"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d3b413c7a3ac6addae36895e47ae3f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html#ga6d3b413c7a3ac6addae36895e47ae3f4">tHermiteDelay_initToPool</a> (tHermiteDelay *const dl, float delay, uint32_t maxDelay, tMempool *const mp)</td></tr>
+<tr class="memdesc:ga6d3b413c7a3ac6addae36895e47ae3f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tHermiteDelay to a specified mempool.  <a href="group__thermitedelay.html#ga6d3b413c7a3ac6addae36895e47ae3f4">More...</a><br /></td></tr>
+<tr class="separator:ga6d3b413c7a3ac6addae36895e47ae3f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf3e5014213692ec0574c67713d562b83"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html#gaf3e5014213692ec0574c67713d562b83">tHermiteDelay_free</a> (tHermiteDelay *const dl)</td></tr>
+<tr class="memdesc:gaf3e5014213692ec0574c67713d562b83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tHermiteDelay from its mempool.  <a href="group__thermitedelay.html#gaf3e5014213692ec0574c67713d562b83">More...</a><br /></td></tr>
+<tr class="separator:gaf3e5014213692ec0574c67713d562b83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac47ba1719955d115217ce09c1dcd8aa3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html#gac47ba1719955d115217ce09c1dcd8aa3">tHermiteDelay_clear</a> (tHermiteDelay *const dl)</td></tr>
+<tr class="separator:gac47ba1719955d115217ce09c1dcd8aa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabf6a43f6358e9fcfdb544bf6d93401d5"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html#gabf6a43f6358e9fcfdb544bf6d93401d5">tHermiteDelay_tick</a> (tHermiteDelay *const dl, float input)</td></tr>
+<tr class="separator:gabf6a43f6358e9fcfdb544bf6d93401d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9d4b6554bac1a01fcbe1deaf04b02a15"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html#ga9d4b6554bac1a01fcbe1deaf04b02a15">tHermiteDelay_tickIn</a> (tHermiteDelay *const dl, float input)</td></tr>
+<tr class="separator:ga9d4b6554bac1a01fcbe1deaf04b02a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga758ba680ae090cc70bc5d9be12332bb9"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html#ga758ba680ae090cc70bc5d9be12332bb9">tHermiteDelay_tickOut</a> (tHermiteDelay *const dl)</td></tr>
+<tr class="separator:ga758ba680ae090cc70bc5d9be12332bb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga76357c59563894699c6d89f958476151"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html#ga76357c59563894699c6d89f958476151">tHermiteDelay_setDelay</a> (tHermiteDelay *const dl, float delay)</td></tr>
+<tr class="separator:ga76357c59563894699c6d89f958476151"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6aba8a52c0d7a9349fca81e0b7ae05c0"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html#ga6aba8a52c0d7a9349fca81e0b7ae05c0">tHermiteDelay_tapOut</a> (tHermiteDelay *const dl, uint32_t tapDelay)</td></tr>
+<tr class="separator:ga6aba8a52c0d7a9349fca81e0b7ae05c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac650bbef7f3f47f75160e7b90e65bab5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html#gac650bbef7f3f47f75160e7b90e65bab5">tHermiteDelay_tapIn</a> (tHermiteDelay *const dl, float value, uint32_t tapDelay)</td></tr>
+<tr class="separator:gac650bbef7f3f47f75160e7b90e65bab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3b94d0644da904535f9f44481a9d2acd"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html#ga3b94d0644da904535f9f44481a9d2acd">tHermiteDelay_addTo</a> (tHermiteDelay *const dl, float value, uint32_t tapDelay)</td></tr>
+<tr class="separator:ga3b94d0644da904535f9f44481a9d2acd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0965274c7d2b3b3af2ad88117476321f"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html#ga0965274c7d2b3b3af2ad88117476321f">tHermiteDelay_getDelay</a> (tHermiteDelay *const dl)</td></tr>
+<tr class="separator:ga0965274c7d2b3b3af2ad88117476321f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab80cc6ce9c6b3909fd3427c4a75e42cb"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html#gab80cc6ce9c6b3909fd3427c4a75e42cb">tHermiteDelay_getLastOut</a> (tHermiteDelay *const dl)</td></tr>
+<tr class="separator:gab80cc6ce9c6b3909fd3427c4a75e42cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga81d270041108d9af64f97c83cb096955"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html#ga81d270041108d9af64f97c83cb096955">tHermiteDelay_getLastIn</a> (tHermiteDelay *const dl)</td></tr>
+<tr class="separator:ga81d270041108d9af64f97c83cb096955"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8ff412ae2db6aa41afcf812db7c92057"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html#ga8ff412ae2db6aa41afcf812db7c92057">tHermiteDelay_setGain</a> (tHermiteDelay *const dl, float gain)</td></tr>
+<tr class="separator:ga8ff412ae2db6aa41afcf812db7c92057"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5e23e3b036fc9a98494b853794cd8421"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thermitedelay.html#ga5e23e3b036fc9a98494b853794cd8421">tHermiteDelay_getGain</a> (tHermiteDelay *const dl)</td></tr>
+<tr class="separator:ga5e23e3b036fc9a98494b853794cd8421"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Hermite-interpolating delay, created by adapting STK linear delay with Hermite interpolation. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga09adaf3acdcd2ad63ba36f97083ca633"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga09adaf3acdcd2ad63ba36f97083ca633">&#9670;&nbsp;</a></span>tHermiteDelay_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tHermiteDelay_init </td>
+          <td>(</td>
+          <td class="paramtype">tHermiteDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>delay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>maxDelay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tHermiteDelay to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the tHermiteDelay to initialize. </td></tr>
+    <tr><td class="paramname">initialLength</td><td></td></tr>
+    <tr><td class="paramname">maxLength</td><td></td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance.</td></tr>
+  </table>
+  </dd>
+</dl>
+<p>Initialize a tHermiteDelay to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+
+</div>
+</div>
+<a id="ga6d3b413c7a3ac6addae36895e47ae3f4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6d3b413c7a3ac6addae36895e47ae3f4">&#9670;&nbsp;</a></span>tHermiteDelay_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tHermiteDelay_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tHermiteDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>delay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>maxDelay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tHermiteDelay to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the tHermiteDelay to initialize. </td></tr>
+    <tr><td class="paramname">initialLength</td><td></td></tr>
+    <tr><td class="paramname">maxLength</td><td></td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf3e5014213692ec0574c67713d562b83"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf3e5014213692ec0574c67713d562b83">&#9670;&nbsp;</a></span>tHermiteDelay_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tHermiteDelay_free </td>
+          <td>(</td>
+          <td class="paramtype">tHermiteDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tHermiteDelay from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the tHermiteDelay to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac47ba1719955d115217ce09c1dcd8aa3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac47ba1719955d115217ce09c1dcd8aa3">&#9670;&nbsp;</a></span>tHermiteDelay_clear()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tHermiteDelay_clear </td>
+          <td>(</td>
+          <td class="paramtype">tHermiteDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tHermiteDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabf6a43f6358e9fcfdb544bf6d93401d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabf6a43f6358e9fcfdb544bf6d93401d5">&#9670;&nbsp;</a></span>tHermiteDelay_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tHermiteDelay_tick </td>
+          <td>(</td>
+          <td class="paramtype">tHermiteDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tHermiteDelay. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga9d4b6554bac1a01fcbe1deaf04b02a15"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9d4b6554bac1a01fcbe1deaf04b02a15">&#9670;&nbsp;</a></span>tHermiteDelay_tickIn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tHermiteDelay_tickIn </td>
+          <td>(</td>
+          <td class="paramtype">tHermiteDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tHermiteDelay. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga758ba680ae090cc70bc5d9be12332bb9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga758ba680ae090cc70bc5d9be12332bb9">&#9670;&nbsp;</a></span>tHermiteDelay_tickOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tHermiteDelay_tickOut </td>
+          <td>(</td>
+          <td class="paramtype">tHermiteDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tHermiteDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga76357c59563894699c6d89f958476151"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga76357c59563894699c6d89f958476151">&#9670;&nbsp;</a></span>tHermiteDelay_setDelay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tHermiteDelay_setDelay </td>
+          <td>(</td>
+          <td class="paramtype">tHermiteDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>delay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tHermiteDelay. </td></tr>
+    <tr><td class="paramname">delayLength</td><td>The new delay length in samples. Cannot be greater than the max delay length given on initialization. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6aba8a52c0d7a9349fca81e0b7ae05c0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6aba8a52c0d7a9349fca81e0b7ae05c0">&#9670;&nbsp;</a></span>tHermiteDelay_tapOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tHermiteDelay_tapOut </td>
+          <td>(</td>
+          <td class="paramtype">tHermiteDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>tapDelay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tHermiteDelay. </td></tr>
+    <tr><td class="paramname">position</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="gac650bbef7f3f47f75160e7b90e65bab5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac650bbef7f3f47f75160e7b90e65bab5">&#9670;&nbsp;</a></span>tHermiteDelay_tapIn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tHermiteDelay_tapIn </td>
+          <td>(</td>
+          <td class="paramtype">tHermiteDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>value</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>tapDelay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tHermiteDelay. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+    <tr><td class="paramname">position</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3b94d0644da904535f9f44481a9d2acd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3b94d0644da904535f9f44481a9d2acd">&#9670;&nbsp;</a></span>tHermiteDelay_addTo()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tHermiteDelay_addTo </td>
+          <td>(</td>
+          <td class="paramtype">tHermiteDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>value</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>tapDelay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tHermiteDelay. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+    <tr><td class="paramname">position</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga0965274c7d2b3b3af2ad88117476321f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0965274c7d2b3b3af2ad88117476321f">&#9670;&nbsp;</a></span>tHermiteDelay_getDelay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tHermiteDelay_getDelay </td>
+          <td>(</td>
+          <td class="paramtype">tHermiteDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tHermiteDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="gab80cc6ce9c6b3909fd3427c4a75e42cb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab80cc6ce9c6b3909fd3427c4a75e42cb">&#9670;&nbsp;</a></span>tHermiteDelay_getLastOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tHermiteDelay_getLastOut </td>
+          <td>(</td>
+          <td class="paramtype">tHermiteDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tHermiteDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga81d270041108d9af64f97c83cb096955"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga81d270041108d9af64f97c83cb096955">&#9670;&nbsp;</a></span>tHermiteDelay_getLastIn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tHermiteDelay_getLastIn </td>
+          <td>(</td>
+          <td class="paramtype">tHermiteDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tHermiteDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga8ff412ae2db6aa41afcf812db7c92057"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8ff412ae2db6aa41afcf812db7c92057">&#9670;&nbsp;</a></span>tHermiteDelay_setGain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tHermiteDelay_setGain </td>
+          <td>(</td>
+          <td class="paramtype">tHermiteDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>gain</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tHermiteDelay. </td></tr>
+    <tr><td class="paramname">gain</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5e23e3b036fc9a98494b853794cd8421"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5e23e3b036fc9a98494b853794cd8421">&#9670;&nbsp;</a></span>tHermiteDelay_getGain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tHermiteDelay_getGain </td>
+          <td>(</td>
+          <td class="paramtype">tHermiteDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tHermiteDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd> </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__thighpass.html
@@ -1,0 +1,329 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tHighpass</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tHighpass<div class="ingroups"><a class="el" href="group__filters.html">Filters</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Simple Highpass filter.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga02cc06dfedbbde5c3746b5238c6c80e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thighpass.html#ga02cc06dfedbbde5c3746b5238c6c80e7">tHighpass_init</a> (tHighpass *const, float freq, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga02cc06dfedbbde5c3746b5238c6c80e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tHighpass to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__thighpass.html#ga02cc06dfedbbde5c3746b5238c6c80e7">More...</a><br /></td></tr>
+<tr class="separator:ga02cc06dfedbbde5c3746b5238c6c80e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaff0f966ed6e69d21d62bc49d3cd7d0a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thighpass.html#gaaff0f966ed6e69d21d62bc49d3cd7d0a">tHighpass_initToPool</a> (tHighpass *const, float freq, tMempool *const)</td></tr>
+<tr class="memdesc:gaaff0f966ed6e69d21d62bc49d3cd7d0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tHighpass to a specified mempool.  <a href="group__thighpass.html#gaaff0f966ed6e69d21d62bc49d3cd7d0a">More...</a><br /></td></tr>
+<tr class="separator:gaaff0f966ed6e69d21d62bc49d3cd7d0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaf2a848e9c9f1aa0130cdc8a4de88c2a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thighpass.html#gaaf2a848e9c9f1aa0130cdc8a4de88c2a">tHighpass_free</a> (tHighpass *const)</td></tr>
+<tr class="memdesc:gaaf2a848e9c9f1aa0130cdc8a4de88c2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tHighpass from its mempool.  <a href="group__thighpass.html#gaaf2a848e9c9f1aa0130cdc8a4de88c2a">More...</a><br /></td></tr>
+<tr class="separator:gaaf2a848e9c9f1aa0130cdc8a4de88c2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaed6612747075529362ee1e5a984819a2"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thighpass.html#gaed6612747075529362ee1e5a984819a2">tHighpass_tick</a> (tHighpass *const, float x)</td></tr>
+<tr class="separator:gaed6612747075529362ee1e5a984819a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga94dddc9bae136df8933a82214ce2f1e3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thighpass.html#ga94dddc9bae136df8933a82214ce2f1e3">tHighpass_setFreq</a> (tHighpass *const, float freq)</td></tr>
+<tr class="separator:ga94dddc9bae136df8933a82214ce2f1e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga52802836559273d666031bd33b7ad254"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thighpass.html#ga52802836559273d666031bd33b7ad254">tHighpass_getFreq</a> (tHighpass *const)</td></tr>
+<tr class="separator:ga52802836559273d666031bd33b7ad254"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Simple Highpass filter. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga02cc06dfedbbde5c3746b5238c6c80e7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga02cc06dfedbbde5c3746b5238c6c80e7">&#9670;&nbsp;</a></span>tHighpass_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tHighpass_init </td>
+          <td>(</td>
+          <td class="paramtype">tHighpass * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tHighpass to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tHighpass to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaaff0f966ed6e69d21d62bc49d3cd7d0a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaaff0f966ed6e69d21d62bc49d3cd7d0a">&#9670;&nbsp;</a></span>tHighpass_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tHighpass_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tHighpass * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tHighpass to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tHighpass to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaaf2a848e9c9f1aa0130cdc8a4de88c2a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaaf2a848e9c9f1aa0130cdc8a4de88c2a">&#9670;&nbsp;</a></span>tHighpass_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tHighpass_free </td>
+          <td>(</td>
+          <td class="paramtype">tHighpass * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tHighpass from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tHighpass to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaed6612747075529362ee1e5a984819a2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaed6612747075529362ee1e5a984819a2">&#9670;&nbsp;</a></span>tHighpass_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tHighpass_tick </td>
+          <td>(</td>
+          <td class="paramtype">tHighpass * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tHighpass. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga94dddc9bae136df8933a82214ce2f1e3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga94dddc9bae136df8933a82214ce2f1e3">&#9670;&nbsp;</a></span>tHighpass_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tHighpass_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tHighpass * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tHighpass. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga52802836559273d666031bd33b7ad254"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga52802836559273d666031bd33b7ad254">&#9670;&nbsp;</a></span>tHighpass_getFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tHighpass_getFreq </td>
+          <td>(</td>
+          <td class="paramtype">tHighpass * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tHighpass.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tkarplusstrong.html
@@ -1,0 +1,607 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tKarplusStrong</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tKarplusStrong<div class="ingroups"><a class="el" href="group__physical.html">Physical Models</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stiff Karplus-Strong model.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga186d7205bac18c523abee2ebc076e341"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tkarplusstrong.html#ga186d7205bac18c523abee2ebc076e341">tKarplusStrong_init</a> (tKarplusStrong *const, float lowestFrequency, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga186d7205bac18c523abee2ebc076e341"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tKarplusStrong to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tkarplusstrong.html#ga186d7205bac18c523abee2ebc076e341">More...</a><br /></td></tr>
+<tr class="separator:ga186d7205bac18c523abee2ebc076e341"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga77d0a866dda8f75f5d587e8167d9c245"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tkarplusstrong.html#ga77d0a866dda8f75f5d587e8167d9c245">tKarplusStrong_initToPool</a> (tKarplusStrong *const, float lowestFrequency, tMempool *const)</td></tr>
+<tr class="memdesc:ga77d0a866dda8f75f5d587e8167d9c245"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tKarplusStrong to a specified mempool.  <a href="group__tkarplusstrong.html#ga77d0a866dda8f75f5d587e8167d9c245">More...</a><br /></td></tr>
+<tr class="separator:ga77d0a866dda8f75f5d587e8167d9c245"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0d98da9c7a0a458d0871399e3235bce5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tkarplusstrong.html#ga0d98da9c7a0a458d0871399e3235bce5">tKarplusStrong_free</a> (tKarplusStrong *const)</td></tr>
+<tr class="memdesc:ga0d98da9c7a0a458d0871399e3235bce5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tKarplusStrong from its mempool.  <a href="group__tkarplusstrong.html#ga0d98da9c7a0a458d0871399e3235bce5">More...</a><br /></td></tr>
+<tr class="separator:ga0d98da9c7a0a458d0871399e3235bce5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacda457f47786fdca8b06a30a01ffc135"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tkarplusstrong.html#gacda457f47786fdca8b06a30a01ffc135">tKarplusStrong_tick</a> (tKarplusStrong *const)</td></tr>
+<tr class="separator:gacda457f47786fdca8b06a30a01ffc135"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3fe232ca203991c000ad17ea41abc5b3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tkarplusstrong.html#ga3fe232ca203991c000ad17ea41abc5b3">tKarplusStrong_pluck</a> (tKarplusStrong *const, float amplitude)</td></tr>
+<tr class="memdesc:ga3fe232ca203991c000ad17ea41abc5b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pluck the string.  <a href="group__tkarplusstrong.html#ga3fe232ca203991c000ad17ea41abc5b3">More...</a><br /></td></tr>
+<tr class="separator:ga3fe232ca203991c000ad17ea41abc5b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5b29e0e05ad35914453d732b4978e572"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tkarplusstrong.html#ga5b29e0e05ad35914453d732b4978e572">tKarplusStrong_noteOn</a> (tKarplusStrong *const, float frequency, float amplitude)</td></tr>
+<tr class="memdesc:ga5b29e0e05ad35914453d732b4978e572"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start a note with the given frequency and amplitude.  <a href="group__tkarplusstrong.html#ga5b29e0e05ad35914453d732b4978e572">More...</a><br /></td></tr>
+<tr class="separator:ga5b29e0e05ad35914453d732b4978e572"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad1d984d1439ed44fa749bc6bb30d93a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tkarplusstrong.html#gad1d984d1439ed44fa749bc6bb30d93a4">tKarplusStrong_noteOff</a> (tKarplusStrong *const, float amplitude)</td></tr>
+<tr class="memdesc:gad1d984d1439ed44fa749bc6bb30d93a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop a note with the given amplitude (speed of decay).  <a href="group__tkarplusstrong.html#gad1d984d1439ed44fa749bc6bb30d93a4">More...</a><br /></td></tr>
+<tr class="separator:gad1d984d1439ed44fa749bc6bb30d93a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5082c474d8ec5885fde227cfa67f180b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tkarplusstrong.html#ga5082c474d8ec5885fde227cfa67f180b">tKarplusStrong_setFrequency</a> (tKarplusStrong *const, float frequency)</td></tr>
+<tr class="memdesc:ga5082c474d8ec5885fde227cfa67f180b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set instrument parameters for a particular frequency.  <a href="group__tkarplusstrong.html#ga5082c474d8ec5885fde227cfa67f180b">More...</a><br /></td></tr>
+<tr class="separator:ga5082c474d8ec5885fde227cfa67f180b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d0d8aaefcb4a3322aeee85ebcd6f19e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tkarplusstrong.html#ga6d0d8aaefcb4a3322aeee85ebcd6f19e">tKarplusStrong_controlChange</a> (tKarplusStrong *const, SKControlType type, float value)</td></tr>
+<tr class="memdesc:ga6d0d8aaefcb4a3322aeee85ebcd6f19e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform the control change specified by <em>number</em> and <em>value</em> (0.0 - 128.0). Use SKPickPosition, SKStringDamping, or SKDetune for type.  <a href="group__tkarplusstrong.html#ga6d0d8aaefcb4a3322aeee85ebcd6f19e">More...</a><br /></td></tr>
+<tr class="separator:ga6d0d8aaefcb4a3322aeee85ebcd6f19e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadade0b8de0fddb719156b9940d72f8ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tkarplusstrong.html#gadade0b8de0fddb719156b9940d72f8ff">tKarplusStrong_setStretch</a> (tKarplusStrong *const, float stretch)</td></tr>
+<tr class="memdesc:gadade0b8de0fddb719156b9940d72f8ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the stretch "factor" of the string (0.0 - 1.0).  <a href="group__tkarplusstrong.html#gadade0b8de0fddb719156b9940d72f8ff">More...</a><br /></td></tr>
+<tr class="separator:gadade0b8de0fddb719156b9940d72f8ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga59bc5175836ad9aaf59dd13eb8a23581"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tkarplusstrong.html#ga59bc5175836ad9aaf59dd13eb8a23581">tKarplusStrong_setPickupPosition</a> (tKarplusStrong *const, float position)</td></tr>
+<tr class="memdesc:ga59bc5175836ad9aaf59dd13eb8a23581"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the pluck or "excitation" position along the string (0.0 - 1.0).  <a href="group__tkarplusstrong.html#ga59bc5175836ad9aaf59dd13eb8a23581">More...</a><br /></td></tr>
+<tr class="separator:ga59bc5175836ad9aaf59dd13eb8a23581"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab0d9395a53c6df4699f7cb1b242abf04"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tkarplusstrong.html#gab0d9395a53c6df4699f7cb1b242abf04">tKarplusStrong_setBaseLoopGain</a> (tKarplusStrong *const, float aGain)</td></tr>
+<tr class="memdesc:gab0d9395a53c6df4699f7cb1b242abf04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the base loop gain.  <a href="group__tkarplusstrong.html#gab0d9395a53c6df4699f7cb1b242abf04">More...</a><br /></td></tr>
+<tr class="separator:gab0d9395a53c6df4699f7cb1b242abf04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga32e83815fd063966411e48eaff2a23b8"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tkarplusstrong.html#ga32e83815fd063966411e48eaff2a23b8">tKarplusStrong_getLastOut</a> (tKarplusStrong *const)</td></tr>
+<tr class="separator:ga32e83815fd063966411e48eaff2a23b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Stiff Karplus-Strong model. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga186d7205bac18c523abee2ebc076e341"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga186d7205bac18c523abee2ebc076e341">&#9670;&nbsp;</a></span>tKarplusStrong_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tKarplusStrong_init </td>
+          <td>(</td>
+          <td class="paramtype">tKarplusStrong * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>lowestFrequency</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tKarplusStrong to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the tKarplusStrong to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga77d0a866dda8f75f5d587e8167d9c245"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga77d0a866dda8f75f5d587e8167d9c245">&#9670;&nbsp;</a></span>tKarplusStrong_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tKarplusStrong_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tKarplusStrong * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>lowestFrequency</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tKarplusStrong to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the tKarplusStrong to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0d98da9c7a0a458d0871399e3235bce5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0d98da9c7a0a458d0871399e3235bce5">&#9670;&nbsp;</a></span>tKarplusStrong_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tKarplusStrong_free </td>
+          <td>(</td>
+          <td class="paramtype">tKarplusStrong * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tKarplusStrong from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the tKarplusStrong to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gacda457f47786fdca8b06a30a01ffc135"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacda457f47786fdca8b06a30a01ffc135">&#9670;&nbsp;</a></span>tKarplusStrong_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tKarplusStrong_tick </td>
+          <td>(</td>
+          <td class="paramtype">tKarplusStrong * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tKarplusStrong. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3fe232ca203991c000ad17ea41abc5b3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3fe232ca203991c000ad17ea41abc5b3">&#9670;&nbsp;</a></span>tKarplusStrong_pluck()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tKarplusStrong_pluck </td>
+          <td>(</td>
+          <td class="paramtype">tKarplusStrong * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>amplitude</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Pluck the string. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tKarplusStrong. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5b29e0e05ad35914453d732b4978e572"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5b29e0e05ad35914453d732b4978e572">&#9670;&nbsp;</a></span>tKarplusStrong_noteOn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tKarplusStrong_noteOn </td>
+          <td>(</td>
+          <td class="paramtype">tKarplusStrong * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>frequency</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>amplitude</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Start a note with the given frequency and amplitude. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tKarplusStrong. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad1d984d1439ed44fa749bc6bb30d93a4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad1d984d1439ed44fa749bc6bb30d93a4">&#9670;&nbsp;</a></span>tKarplusStrong_noteOff()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tKarplusStrong_noteOff </td>
+          <td>(</td>
+          <td class="paramtype">tKarplusStrong * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>amplitude</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Stop a note with the given amplitude (speed of decay). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tKarplusStrong. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5082c474d8ec5885fde227cfa67f180b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5082c474d8ec5885fde227cfa67f180b">&#9670;&nbsp;</a></span>tKarplusStrong_setFrequency()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tKarplusStrong_setFrequency </td>
+          <td>(</td>
+          <td class="paramtype">tKarplusStrong * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>frequency</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set instrument parameters for a particular frequency. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tKarplusStrong. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6d0d8aaefcb4a3322aeee85ebcd6f19e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6d0d8aaefcb4a3322aeee85ebcd6f19e">&#9670;&nbsp;</a></span>tKarplusStrong_controlChange()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tKarplusStrong_controlChange </td>
+          <td>(</td>
+          <td class="paramtype">tKarplusStrong * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">SKControlType&#160;</td>
+          <td class="paramname"><em>type</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Perform the control change specified by <em>number</em> and <em>value</em> (0.0 - 128.0). Use SKPickPosition, SKStringDamping, or SKDetune for type. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tKarplusStrong. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gadade0b8de0fddb719156b9940d72f8ff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gadade0b8de0fddb719156b9940d72f8ff">&#9670;&nbsp;</a></span>tKarplusStrong_setStretch()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tKarplusStrong_setStretch </td>
+          <td>(</td>
+          <td class="paramtype">tKarplusStrong * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>stretch</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the stretch "factor" of the string (0.0 - 1.0). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tKarplusStrong. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga59bc5175836ad9aaf59dd13eb8a23581"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga59bc5175836ad9aaf59dd13eb8a23581">&#9670;&nbsp;</a></span>tKarplusStrong_setPickupPosition()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tKarplusStrong_setPickupPosition </td>
+          <td>(</td>
+          <td class="paramtype">tKarplusStrong * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>position</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the pluck or "excitation" position along the string (0.0 - 1.0). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tKarplusStrong. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab0d9395a53c6df4699f7cb1b242abf04"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab0d9395a53c6df4699f7cb1b242abf04">&#9670;&nbsp;</a></span>tKarplusStrong_setBaseLoopGain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tKarplusStrong_setBaseLoopGain </td>
+          <td>(</td>
+          <td class="paramtype">tKarplusStrong * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>aGain</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the base loop gain. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tKarplusStrong. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga32e83815fd063966411e48eaff2a23b8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga32e83815fd063966411e48eaff2a23b8">&#9670;&nbsp;</a></span>tKarplusStrong_getLastOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tKarplusStrong_getLastOut </td>
+          <td>(</td>
+          <td class="paramtype">tKarplusStrong * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tKarplusStrong. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tlineardelay.html
@@ -1,0 +1,620 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tLinearDelay</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tLinearDelay<div class="ingroups"><a class="el" href="group__delay.html">Delay</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Linearly-interpolating delay, reimplemented from STK (Cook and Scavone).  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaffbe3ac134a45c164eded9d4dc3304f7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlineardelay.html#gaffbe3ac134a45c164eded9d4dc3304f7">tLinearDelay_init</a> (tLinearDelay *const, float delay, uint32_t maxDelay, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gaffbe3ac134a45c164eded9d4dc3304f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tLinearDelay to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tlineardelay.html#gaffbe3ac134a45c164eded9d4dc3304f7">More...</a><br /></td></tr>
+<tr class="separator:gaffbe3ac134a45c164eded9d4dc3304f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6cb9f12ba9262386d8ecbf0dd8151b69"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlineardelay.html#ga6cb9f12ba9262386d8ecbf0dd8151b69">tLinearDelay_initToPool</a> (tLinearDelay *const, float delay, uint32_t maxDelay, tMempool *const)</td></tr>
+<tr class="memdesc:ga6cb9f12ba9262386d8ecbf0dd8151b69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tLinearDelay to a specified mempool.  <a href="group__tlineardelay.html#ga6cb9f12ba9262386d8ecbf0dd8151b69">More...</a><br /></td></tr>
+<tr class="separator:ga6cb9f12ba9262386d8ecbf0dd8151b69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeb62896b4392a7f9ca1c557ccc859f4f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlineardelay.html#gaeb62896b4392a7f9ca1c557ccc859f4f">tLinearDelay_free</a> (tLinearDelay *const)</td></tr>
+<tr class="memdesc:gaeb62896b4392a7f9ca1c557ccc859f4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tLinearDelay from its mempool.  <a href="group__tlineardelay.html#gaeb62896b4392a7f9ca1c557ccc859f4f">More...</a><br /></td></tr>
+<tr class="separator:gaeb62896b4392a7f9ca1c557ccc859f4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga890124d89744b9621ce802ad9e0e0759"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlineardelay.html#ga890124d89744b9621ce802ad9e0e0759">tLinearDelay_clear</a> (tLinearDelay *const dl)</td></tr>
+<tr class="separator:ga890124d89744b9621ce802ad9e0e0759"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga02ae58cb385f4d598bd4c57903dd365a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlineardelay.html#ga02ae58cb385f4d598bd4c57903dd365a">tLinearDelay_setDelay</a> (tLinearDelay *const, float delay)</td></tr>
+<tr class="separator:ga02ae58cb385f4d598bd4c57903dd365a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac57ca1a251b96ec2aad7550049864b8c"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlineardelay.html#gac57ca1a251b96ec2aad7550049864b8c">tLinearDelay_getDelay</a> (tLinearDelay *const)</td></tr>
+<tr class="separator:gac57ca1a251b96ec2aad7550049864b8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga16350a1576f9662c7ef8dade853c8f93"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlineardelay.html#ga16350a1576f9662c7ef8dade853c8f93">tLinearDelay_tapIn</a> (tLinearDelay *const, float in, uint32_t tapDelay)</td></tr>
+<tr class="separator:ga16350a1576f9662c7ef8dade853c8f93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8b5a87f1a03b6456cac6334085bf8be6"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlineardelay.html#ga8b5a87f1a03b6456cac6334085bf8be6">tLinearDelay_tapOut</a> (tLinearDelay *const, uint32_t tapDelay)</td></tr>
+<tr class="separator:ga8b5a87f1a03b6456cac6334085bf8be6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga39f3f7376b5f38123678fea82c245368"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlineardelay.html#ga39f3f7376b5f38123678fea82c245368">tLinearDelay_addTo</a> (tLinearDelay *const, float value, uint32_t tapDelay)</td></tr>
+<tr class="separator:ga39f3f7376b5f38123678fea82c245368"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2f4a6a73eea16bb9ce3408b945ddb8f7"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlineardelay.html#ga2f4a6a73eea16bb9ce3408b945ddb8f7">tLinearDelay_tick</a> (tLinearDelay *const, float sample)</td></tr>
+<tr class="separator:ga2f4a6a73eea16bb9ce3408b945ddb8f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8f9c2a86422204321dbd56ba317a5662"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlineardelay.html#ga8f9c2a86422204321dbd56ba317a5662">tLinearDelay_tickIn</a> (tLinearDelay *const, float input)</td></tr>
+<tr class="separator:ga8f9c2a86422204321dbd56ba317a5662"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad7f62bcf8446ee6a3987ffa3c01bf31c"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlineardelay.html#gad7f62bcf8446ee6a3987ffa3c01bf31c">tLinearDelay_tickOut</a> (tLinearDelay *const)</td></tr>
+<tr class="separator:gad7f62bcf8446ee6a3987ffa3c01bf31c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga97b8b25f279b974a969dc0bd46b7547b"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlineardelay.html#ga97b8b25f279b974a969dc0bd46b7547b">tLinearDelay_getLastOut</a> (tLinearDelay *const)</td></tr>
+<tr class="separator:ga97b8b25f279b974a969dc0bd46b7547b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga710bf54a2fec7f40dcd1c5b99a7b44fd"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlineardelay.html#ga710bf54a2fec7f40dcd1c5b99a7b44fd">tLinearDelay_getLastIn</a> (tLinearDelay *const)</td></tr>
+<tr class="separator:ga710bf54a2fec7f40dcd1c5b99a7b44fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Linearly-interpolating delay, reimplemented from STK (Cook and Scavone). </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gaffbe3ac134a45c164eded9d4dc3304f7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaffbe3ac134a45c164eded9d4dc3304f7">&#9670;&nbsp;</a></span>tLinearDelay_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLinearDelay_init </td>
+          <td>(</td>
+          <td class="paramtype">tLinearDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>delay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>maxDelay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tLinearDelay to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the tLinearDelay to initialize. </td></tr>
+    <tr><td class="paramname">initialLength</td><td></td></tr>
+    <tr><td class="paramname">maxLength</td><td></td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6cb9f12ba9262386d8ecbf0dd8151b69"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6cb9f12ba9262386d8ecbf0dd8151b69">&#9670;&nbsp;</a></span>tLinearDelay_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLinearDelay_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tLinearDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>delay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>maxDelay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tLinearDelay to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the tLinearDelay to initialize. </td></tr>
+    <tr><td class="paramname">initialLength</td><td></td></tr>
+    <tr><td class="paramname">maxLength</td><td></td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaeb62896b4392a7f9ca1c557ccc859f4f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaeb62896b4392a7f9ca1c557ccc859f4f">&#9670;&nbsp;</a></span>tLinearDelay_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLinearDelay_free </td>
+          <td>(</td>
+          <td class="paramtype">tLinearDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tLinearDelay from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the tLinearDelay to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga890124d89744b9621ce802ad9e0e0759"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga890124d89744b9621ce802ad9e0e0759">&#9670;&nbsp;</a></span>tLinearDelay_clear()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLinearDelay_clear </td>
+          <td>(</td>
+          <td class="paramtype">tLinearDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tLinearDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga02ae58cb385f4d598bd4c57903dd365a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga02ae58cb385f4d598bd4c57903dd365a">&#9670;&nbsp;</a></span>tLinearDelay_setDelay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLinearDelay_setDelay </td>
+          <td>(</td>
+          <td class="paramtype">tLinearDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>delay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tLinearDelay. </td></tr>
+    <tr><td class="paramname">delayLength</td><td>The new delay length in samples. Cannot be greater than the max delay length given on initialization. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac57ca1a251b96ec2aad7550049864b8c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac57ca1a251b96ec2aad7550049864b8c">&#9670;&nbsp;</a></span>tLinearDelay_getDelay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tLinearDelay_getDelay </td>
+          <td>(</td>
+          <td class="paramtype">tLinearDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tLinearDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga16350a1576f9662c7ef8dade853c8f93"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga16350a1576f9662c7ef8dade853c8f93">&#9670;&nbsp;</a></span>tLinearDelay_tapIn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLinearDelay_tapIn </td>
+          <td>(</td>
+          <td class="paramtype">tLinearDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>tapDelay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tLinearDelay. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+    <tr><td class="paramname">position</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8b5a87f1a03b6456cac6334085bf8be6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8b5a87f1a03b6456cac6334085bf8be6">&#9670;&nbsp;</a></span>tLinearDelay_tapOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tLinearDelay_tapOut </td>
+          <td>(</td>
+          <td class="paramtype">tLinearDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>tapDelay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tLinearDelay. </td></tr>
+    <tr><td class="paramname">position</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga39f3f7376b5f38123678fea82c245368"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga39f3f7376b5f38123678fea82c245368">&#9670;&nbsp;</a></span>tLinearDelay_addTo()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tLinearDelay_addTo </td>
+          <td>(</td>
+          <td class="paramtype">tLinearDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>value</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>tapDelay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tLinearDelay. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+    <tr><td class="paramname">position</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga2f4a6a73eea16bb9ce3408b945ddb8f7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2f4a6a73eea16bb9ce3408b945ddb8f7">&#9670;&nbsp;</a></span>tLinearDelay_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tLinearDelay_tick </td>
+          <td>(</td>
+          <td class="paramtype">tLinearDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sample</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tLinearDelay. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga8f9c2a86422204321dbd56ba317a5662"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8f9c2a86422204321dbd56ba317a5662">&#9670;&nbsp;</a></span>tLinearDelay_tickIn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLinearDelay_tickIn </td>
+          <td>(</td>
+          <td class="paramtype">tLinearDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tLinearDelay. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad7f62bcf8446ee6a3987ffa3c01bf31c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad7f62bcf8446ee6a3987ffa3c01bf31c">&#9670;&nbsp;</a></span>tLinearDelay_tickOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tLinearDelay_tickOut </td>
+          <td>(</td>
+          <td class="paramtype">tLinearDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tLinearDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga97b8b25f279b974a969dc0bd46b7547b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga97b8b25f279b974a969dc0bd46b7547b">&#9670;&nbsp;</a></span>tLinearDelay_getLastOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tLinearDelay_getLastOut </td>
+          <td>(</td>
+          <td class="paramtype">tLinearDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tLinearDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga710bf54a2fec7f40dcd1c5b99a7b44fd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga710bf54a2fec7f40dcd1c5b99a7b44fd">&#9670;&nbsp;</a></span>tLinearDelay_getLastIn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tLinearDelay_getLastIn </td>
+          <td>(</td>
+          <td class="paramtype">tLinearDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tLinearDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd> </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tlivingstring.html
@@ -1,0 +1,749 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tLivingString</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tLivingString<div class="ingroups"><a class="el" href="group__physical.html">Physical Models</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>String model.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga7f29c68e9b01878aa3e0bf1d2029e617"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlivingstring.html#ga7f29c68e9b01878aa3e0bf1d2029e617">tLivingString_init</a> (tLivingString *const, float freq, float pickPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga7f29c68e9b01878aa3e0bf1d2029e617"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tLivingString to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tlivingstring.html#ga7f29c68e9b01878aa3e0bf1d2029e617">More...</a><br /></td></tr>
+<tr class="separator:ga7f29c68e9b01878aa3e0bf1d2029e617"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1d4d5b8511cbd1242e63b9eb1310a27c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlivingstring.html#ga1d4d5b8511cbd1242e63b9eb1310a27c">tLivingString_initToPool</a> (tLivingString *const, float freq, float pickPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const)</td></tr>
+<tr class="memdesc:ga1d4d5b8511cbd1242e63b9eb1310a27c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tLivingString to a specified mempool.  <a href="group__tlivingstring.html#ga1d4d5b8511cbd1242e63b9eb1310a27c">More...</a><br /></td></tr>
+<tr class="separator:ga1d4d5b8511cbd1242e63b9eb1310a27c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga218b97b43f8b5183be6f64bd48c33363"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlivingstring.html#ga218b97b43f8b5183be6f64bd48c33363">tLivingString_free</a> (tLivingString *const)</td></tr>
+<tr class="memdesc:ga218b97b43f8b5183be6f64bd48c33363"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tLivingString from its mempool.  <a href="group__tlivingstring.html#ga218b97b43f8b5183be6f64bd48c33363">More...</a><br /></td></tr>
+<tr class="separator:ga218b97b43f8b5183be6f64bd48c33363"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab97180cbfaebe42696eaa6e4d60f18a8"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlivingstring.html#gab97180cbfaebe42696eaa6e4d60f18a8">tLivingString_tick</a> (tLivingString *const, float input)</td></tr>
+<tr class="separator:gab97180cbfaebe42696eaa6e4d60f18a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac1740a1f1c9c8f319d0317b21343bfa2"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlivingstring.html#gac1740a1f1c9c8f319d0317b21343bfa2">tLivingString_sample</a> (tLivingString *const)</td></tr>
+<tr class="separator:gac1740a1f1c9c8f319d0317b21343bfa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27d918a9c2031fb6e08a3ceb1cd40be8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlivingstring.html#ga27d918a9c2031fb6e08a3ceb1cd40be8">tLivingString_setFreq</a> (tLivingString *const, float freq)</td></tr>
+<tr class="separator:ga27d918a9c2031fb6e08a3ceb1cd40be8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga58b626a71daeec65a9ddf3f6925a767e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlivingstring.html#ga58b626a71daeec65a9ddf3f6925a767e">tLivingString_setWaveLength</a> (tLivingString *const, float waveLength)</td></tr>
+<tr class="separator:ga58b626a71daeec65a9ddf3f6925a767e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga894b268e4c994e87ecfa92ebc6098453"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlivingstring.html#ga894b268e4c994e87ecfa92ebc6098453">tLivingString_setPickPos</a> (tLivingString *const, float pickPos)</td></tr>
+<tr class="separator:ga894b268e4c994e87ecfa92ebc6098453"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga60dff1ade447e15dfb3d4f07dc04020e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlivingstring.html#ga60dff1ade447e15dfb3d4f07dc04020e">tLivingString_setPrepIndex</a> (tLivingString *const, float prepIndex)</td></tr>
+<tr class="separator:ga60dff1ade447e15dfb3d4f07dc04020e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4bb7183baf3014d12ca553b2238ba4da"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlivingstring.html#ga4bb7183baf3014d12ca553b2238ba4da">tLivingString_setDampFreq</a> (tLivingString *const, float dampFreq)</td></tr>
+<tr class="separator:ga4bb7183baf3014d12ca553b2238ba4da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf0bd03d4756f67c29bedfed6ae8a2462"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlivingstring.html#gaf0bd03d4756f67c29bedfed6ae8a2462">tLivingString_setDecay</a> (tLivingString *const, float decay)</td></tr>
+<tr class="separator:gaf0bd03d4756f67c29bedfed6ae8a2462"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga53912452a30d9bcf1a7981487b98e7b9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlivingstring.html#ga53912452a30d9bcf1a7981487b98e7b9">tLivingString_setTargetLev</a> (tLivingString *const, float targetLev)</td></tr>
+<tr class="separator:ga53912452a30d9bcf1a7981487b98e7b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac5e7d1412dd4ffa46fae5e77f64437aa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlivingstring.html#gac5e7d1412dd4ffa46fae5e77f64437aa">tLivingString_setLevSmoothFactor</a> (tLivingString *const, float levSmoothFactor)</td></tr>
+<tr class="separator:gac5e7d1412dd4ffa46fae5e77f64437aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0be415268ce535555db9b48c7a6c3bbb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlivingstring.html#ga0be415268ce535555db9b48c7a6c3bbb">tLivingString_setLevStrength</a> (tLivingString *const, float levStrength)</td></tr>
+<tr class="separator:ga0be415268ce535555db9b48c7a6c3bbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab589985207a6de71c6ef03b7fe8aa5cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlivingstring.html#gab589985207a6de71c6ef03b7fe8aa5cb">tLivingString_setLevMode</a> (tLivingString *const, int levMode)</td></tr>
+<tr class="separator:gab589985207a6de71c6ef03b7fe8aa5cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>String model. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga7f29c68e9b01878aa3e0bf1d2029e617"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7f29c68e9b01878aa3e0bf1d2029e617">&#9670;&nbsp;</a></span>tLivingString_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLivingString_init </td>
+          <td>(</td>
+          <td class="paramtype">tLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>pickPos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>prepIndex</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>dampFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>targetLev</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levSmoothFactor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levStrength</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>levMode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tLivingString to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the tLivingString to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1d4d5b8511cbd1242e63b9eb1310a27c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1d4d5b8511cbd1242e63b9eb1310a27c">&#9670;&nbsp;</a></span>tLivingString_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLivingString_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>pickPos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>prepIndex</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>dampFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>targetLev</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levSmoothFactor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levStrength</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>levMode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tLivingString to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the tLivingString to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga218b97b43f8b5183be6f64bd48c33363"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga218b97b43f8b5183be6f64bd48c33363">&#9670;&nbsp;</a></span>tLivingString_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLivingString_free </td>
+          <td>(</td>
+          <td class="paramtype">tLivingString * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tLivingString from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the tLivingString to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab97180cbfaebe42696eaa6e4d60f18a8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab97180cbfaebe42696eaa6e4d60f18a8">&#9670;&nbsp;</a></span>tLivingString_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tLivingString_tick </td>
+          <td>(</td>
+          <td class="paramtype">tLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac1740a1f1c9c8f319d0317b21343bfa2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac1740a1f1c9c8f319d0317b21343bfa2">&#9670;&nbsp;</a></span>tLivingString_sample()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tLivingString_sample </td>
+          <td>(</td>
+          <td class="paramtype">tLivingString * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga27d918a9c2031fb6e08a3ceb1cd40be8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga27d918a9c2031fb6e08a3ceb1cd40be8">&#9670;&nbsp;</a></span>tLivingString_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLivingString_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga58b626a71daeec65a9ddf3f6925a767e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga58b626a71daeec65a9ddf3f6925a767e">&#9670;&nbsp;</a></span>tLivingString_setWaveLength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLivingString_setWaveLength </td>
+          <td>(</td>
+          <td class="paramtype">tLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>waveLength</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga894b268e4c994e87ecfa92ebc6098453"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga894b268e4c994e87ecfa92ebc6098453">&#9670;&nbsp;</a></span>tLivingString_setPickPos()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLivingString_setPickPos </td>
+          <td>(</td>
+          <td class="paramtype">tLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>pickPos</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga60dff1ade447e15dfb3d4f07dc04020e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga60dff1ade447e15dfb3d4f07dc04020e">&#9670;&nbsp;</a></span>tLivingString_setPrepIndex()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLivingString_setPrepIndex </td>
+          <td>(</td>
+          <td class="paramtype">tLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>prepIndex</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga4bb7183baf3014d12ca553b2238ba4da"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4bb7183baf3014d12ca553b2238ba4da">&#9670;&nbsp;</a></span>tLivingString_setDampFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLivingString_setDampFreq </td>
+          <td>(</td>
+          <td class="paramtype">tLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>dampFreq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf0bd03d4756f67c29bedfed6ae8a2462"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf0bd03d4756f67c29bedfed6ae8a2462">&#9670;&nbsp;</a></span>tLivingString_setDecay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLivingString_setDecay </td>
+          <td>(</td>
+          <td class="paramtype">tLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga53912452a30d9bcf1a7981487b98e7b9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga53912452a30d9bcf1a7981487b98e7b9">&#9670;&nbsp;</a></span>tLivingString_setTargetLev()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLivingString_setTargetLev </td>
+          <td>(</td>
+          <td class="paramtype">tLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>targetLev</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac5e7d1412dd4ffa46fae5e77f64437aa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac5e7d1412dd4ffa46fae5e77f64437aa">&#9670;&nbsp;</a></span>tLivingString_setLevSmoothFactor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLivingString_setLevSmoothFactor </td>
+          <td>(</td>
+          <td class="paramtype">tLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levSmoothFactor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0be415268ce535555db9b48c7a6c3bbb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0be415268ce535555db9b48c7a6c3bbb">&#9670;&nbsp;</a></span>tLivingString_setLevStrength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLivingString_setLevStrength </td>
+          <td>(</td>
+          <td class="paramtype">tLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levStrength</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab589985207a6de71c6ef03b7fe8aa5cb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab589985207a6de71c6ef03b7fe8aa5cb">&#9670;&nbsp;</a></span>tLivingString_setLevMode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLivingString_setLevMode </td>
+          <td>(</td>
+          <td class="paramtype">tLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>levMode</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tlockhartwavefolder.html
@@ -1,0 +1,255 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tLockhartWavefolder</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tLockhartWavefolder<div class="ingroups"><a class="el" href="group__distortion.html">Distortion</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Analog model wavefolder.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaaaccced3a742e99031ec5aa09604e376"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlockhartwavefolder.html#gaaaccced3a742e99031ec5aa09604e376">tLockhartWavefolder_init</a> (tLockhartWavefolder *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gaaaccced3a742e99031ec5aa09604e376"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tLockhartWavefolder to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tlockhartwavefolder.html#gaaaccced3a742e99031ec5aa09604e376">More...</a><br /></td></tr>
+<tr class="separator:gaaaccced3a742e99031ec5aa09604e376"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab130d6243f2c51fe55f1e23e2a7f65ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlockhartwavefolder.html#gab130d6243f2c51fe55f1e23e2a7f65ff">tLockhartWavefolder_initToPool</a> (tLockhartWavefolder *const, tMempool *const)</td></tr>
+<tr class="memdesc:gab130d6243f2c51fe55f1e23e2a7f65ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tLockhartWavefolder to a specified mempool.  <a href="group__tlockhartwavefolder.html#gab130d6243f2c51fe55f1e23e2a7f65ff">More...</a><br /></td></tr>
+<tr class="separator:gab130d6243f2c51fe55f1e23e2a7f65ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1d6c822538b7fd10b36d137aec039e58"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlockhartwavefolder.html#ga1d6c822538b7fd10b36d137aec039e58">tLockhartWavefolder_free</a> (tLockhartWavefolder *const)</td></tr>
+<tr class="memdesc:ga1d6c822538b7fd10b36d137aec039e58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tLockhartWavefolder from its mempool.  <a href="group__tlockhartwavefolder.html#ga1d6c822538b7fd10b36d137aec039e58">More...</a><br /></td></tr>
+<tr class="separator:ga1d6c822538b7fd10b36d137aec039e58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaa9ddfb64262aa97804144c96d2d400f"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tlockhartwavefolder.html#gaaa9ddfb64262aa97804144c96d2d400f">tLockhartWavefolder_tick</a> (tLockhartWavefolder *const, float samp)</td></tr>
+<tr class="separator:gaaa9ddfb64262aa97804144c96d2d400f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Analog model wavefolder. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gaaaccced3a742e99031ec5aa09604e376"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaaaccced3a742e99031ec5aa09604e376">&#9670;&nbsp;</a></span>tLockhartWavefolder_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLockhartWavefolder_init </td>
+          <td>(</td>
+          <td class="paramtype">tLockhartWavefolder * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tLockhartWavefolder to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wavefolder</td><td>A pointer to the tLockhartWavefolder to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab130d6243f2c51fe55f1e23e2a7f65ff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab130d6243f2c51fe55f1e23e2a7f65ff">&#9670;&nbsp;</a></span>tLockhartWavefolder_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLockhartWavefolder_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tLockhartWavefolder * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tLockhartWavefolder to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wavefolder</td><td>A pointer to the tLockhartWavefolder to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1d6c822538b7fd10b36d137aec039e58"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1d6c822538b7fd10b36d137aec039e58">&#9670;&nbsp;</a></span>tLockhartWavefolder_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tLockhartWavefolder_free </td>
+          <td>(</td>
+          <td class="paramtype">tLockhartWavefolder * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tLockhartWavefolder from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wavefolder</td><td>A pointer to the tLockhartWavefolder to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaaa9ddfb64262aa97804144c96d2d400f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaaa9ddfb64262aa97804144c96d2d400f">&#9670;&nbsp;</a></span>tLockhartWavefolder_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tLockhartWavefolder_tick </td>
+          <td>(</td>
+          <td class="paramtype">tLockhartWavefolder * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>samp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wavefolder</td><td>A pointer to the relevant tLockhartWavefolder.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tmbpulse.html
@@ -1,0 +1,377 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tMBPulse</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tMBPulse<div class="ingroups"><a class="el" href="group__oscillators.html">Oscillators</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Pulse wave oscillator with minBLEP anti-aliasing.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gabd7bb2639349323c56d8e49e1e242a4c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbpulse.html#gabd7bb2639349323c56d8e49e1e242a4c">tMBPulse_init</a> (tMBPulse *const osc, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gabd7bb2639349323c56d8e49e1e242a4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tMBPulse to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tmbpulse.html#gabd7bb2639349323c56d8e49e1e242a4c">More...</a><br /></td></tr>
+<tr class="separator:gabd7bb2639349323c56d8e49e1e242a4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa36a0b547fef520a9ba55df50b7bbb70"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbpulse.html#gaa36a0b547fef520a9ba55df50b7bbb70">tMBPulse_initToPool</a> (tMBPulse *const osc, tMempool *const mempool)</td></tr>
+<tr class="memdesc:gaa36a0b547fef520a9ba55df50b7bbb70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tMBPulse to a specified mempool.  <a href="group__tmbpulse.html#gaa36a0b547fef520a9ba55df50b7bbb70">More...</a><br /></td></tr>
+<tr class="separator:gaa36a0b547fef520a9ba55df50b7bbb70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac07d7bffe4cc28fb90825b2b1692bd85"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbpulse.html#gac07d7bffe4cc28fb90825b2b1692bd85">tMBPulse_free</a> (tMBPulse *const osc)</td></tr>
+<tr class="memdesc:gac07d7bffe4cc28fb90825b2b1692bd85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tMBPulse from its mempool.  <a href="group__tmbpulse.html#gac07d7bffe4cc28fb90825b2b1692bd85">More...</a><br /></td></tr>
+<tr class="separator:gac07d7bffe4cc28fb90825b2b1692bd85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga710dd6a7764807029c193cf44c923737"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbpulse.html#ga710dd6a7764807029c193cf44c923737">tMBPulse_tick</a> (tMBPulse *const osc)</td></tr>
+<tr class="separator:ga710dd6a7764807029c193cf44c923737"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacda622592ebee8942e11209e62ee33bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbpulse.html#gacda622592ebee8942e11209e62ee33bc">tMBPulse_setFreq</a> (tMBPulse *const osc, float f)</td></tr>
+<tr class="separator:gacda622592ebee8942e11209e62ee33bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga071f98a4a4981b2d9c2e917c5c5fdb40"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbpulse.html#ga071f98a4a4981b2d9c2e917c5c5fdb40">tMBPulse_setWidth</a> (tMBPulse *const osc, float w)</td></tr>
+<tr class="separator:ga071f98a4a4981b2d9c2e917c5c5fdb40"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad963722a79ea1c5b240e97405f3a8451"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbpulse.html#gad963722a79ea1c5b240e97405f3a8451">tMBPulse_syncIn</a> (tMBPulse *const osc, float sync)</td></tr>
+<tr class="separator:gad963722a79ea1c5b240e97405f3a8451"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga199661893e765676a0c53c6d3661711b"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbpulse.html#ga199661893e765676a0c53c6d3661711b">tMBPulse_syncOut</a> (tMBPulse *const osc)</td></tr>
+<tr class="separator:ga199661893e765676a0c53c6d3661711b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Pulse wave oscillator with minBLEP anti-aliasing. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gabd7bb2639349323c56d8e49e1e242a4c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabd7bb2639349323c56d8e49e1e242a4c">&#9670;&nbsp;</a></span>tMBPulse_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBPulse_init </td>
+          <td>(</td>
+          <td class="paramtype">tMBPulse *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tMBPulse to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tMBPulse to initialize. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa36a0b547fef520a9ba55df50b7bbb70"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa36a0b547fef520a9ba55df50b7bbb70">&#9670;&nbsp;</a></span>tMBPulse_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBPulse_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tMBPulse *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tMBPulse to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tMBPulse to initialize. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac07d7bffe4cc28fb90825b2b1692bd85"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac07d7bffe4cc28fb90825b2b1692bd85">&#9670;&nbsp;</a></span>tMBPulse_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBPulse_free </td>
+          <td>(</td>
+          <td class="paramtype">tMBPulse *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tMBPulse from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tMBPulse to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga710dd6a7764807029c193cf44c923737"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga710dd6a7764807029c193cf44c923737">&#9670;&nbsp;</a></span>tMBPulse_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tMBPulse_tick </td>
+          <td>(</td>
+          <td class="paramtype">tMBPulse *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tMBPulse. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gacda622592ebee8942e11209e62ee33bc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacda622592ebee8942e11209e62ee33bc">&#9670;&nbsp;</a></span>tMBPulse_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBPulse_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tMBPulse *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>f</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tMBPulse. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga071f98a4a4981b2d9c2e917c5c5fdb40"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga071f98a4a4981b2d9c2e917c5c5fdb40">&#9670;&nbsp;</a></span>tMBPulse_setWidth()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBPulse_setWidth </td>
+          <td>(</td>
+          <td class="paramtype">tMBPulse *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>w</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tMBPulse. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad963722a79ea1c5b240e97405f3a8451"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad963722a79ea1c5b240e97405f3a8451">&#9670;&nbsp;</a></span>tMBPulse_syncIn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBPulse_syncIn </td>
+          <td>(</td>
+          <td class="paramtype">tMBPulse *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sync</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tMBPulse. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga199661893e765676a0c53c6d3661711b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga199661893e765676a0c53c6d3661711b">&#9670;&nbsp;</a></span>tMBPulse_syncOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tMBPulse_syncOut </td>
+          <td>(</td>
+          <td class="paramtype">tMBPulse *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tMBPulse.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tmbsaw.html
@@ -1,0 +1,341 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tMBSaw</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tMBSaw<div class="ingroups"><a class="el" href="group__oscillators.html">Oscillators</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Saw wave oscillator with minBLEP anti-aliasing.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga4792d509595b94f20e515b077b476884"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbsaw.html#ga4792d509595b94f20e515b077b476884">tMBSaw_init</a> (tMBSaw *const osc, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga4792d509595b94f20e515b077b476884"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tMBSaw to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tmbsaw.html#ga4792d509595b94f20e515b077b476884">More...</a><br /></td></tr>
+<tr class="separator:ga4792d509595b94f20e515b077b476884"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9405dbc7af1c8687690e7d31f8e105b5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbsaw.html#ga9405dbc7af1c8687690e7d31f8e105b5">tMBSaw_initToPool</a> (tMBSaw *const osc, tMempool *const mempool)</td></tr>
+<tr class="memdesc:ga9405dbc7af1c8687690e7d31f8e105b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tMBSaw to a specified mempool.  <a href="group__tmbsaw.html#ga9405dbc7af1c8687690e7d31f8e105b5">More...</a><br /></td></tr>
+<tr class="separator:ga9405dbc7af1c8687690e7d31f8e105b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabf4312918312e89cc6cf9f116ec48a94"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbsaw.html#gabf4312918312e89cc6cf9f116ec48a94">tMBSaw_free</a> (tMBSaw *const osc)</td></tr>
+<tr class="memdesc:gabf4312918312e89cc6cf9f116ec48a94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tMBSaw from its mempool.  <a href="group__tmbsaw.html#gabf4312918312e89cc6cf9f116ec48a94">More...</a><br /></td></tr>
+<tr class="separator:gabf4312918312e89cc6cf9f116ec48a94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga200361c3174c419e413a2b8b4e988fc4"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbsaw.html#ga200361c3174c419e413a2b8b4e988fc4">tMBSaw_tick</a> (tMBSaw *const osc)</td></tr>
+<tr class="separator:ga200361c3174c419e413a2b8b4e988fc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7e8996e6780f64c5530600d13e68dfa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbsaw.html#gaa7e8996e6780f64c5530600d13e68dfa">tMBSaw_setFreq</a> (tMBSaw *const osc, float f)</td></tr>
+<tr class="separator:gaa7e8996e6780f64c5530600d13e68dfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf8c1832d4612b09186f039dae141c55e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbsaw.html#gaf8c1832d4612b09186f039dae141c55e">tMBSaw_syncIn</a> (tMBSaw *const osc, float sync)</td></tr>
+<tr class="separator:gaf8c1832d4612b09186f039dae141c55e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a3f14f56043adf51d48b8a3c6aebf77"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbsaw.html#ga7a3f14f56043adf51d48b8a3c6aebf77">tMBSaw_syncOut</a> (tMBSaw *const osc)</td></tr>
+<tr class="separator:ga7a3f14f56043adf51d48b8a3c6aebf77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Saw wave oscillator with minBLEP anti-aliasing. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga4792d509595b94f20e515b077b476884"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4792d509595b94f20e515b077b476884">&#9670;&nbsp;</a></span>tMBSaw_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBSaw_init </td>
+          <td>(</td>
+          <td class="paramtype">tMBSaw *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tMBSaw to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tMBSaw to initialize. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9405dbc7af1c8687690e7d31f8e105b5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9405dbc7af1c8687690e7d31f8e105b5">&#9670;&nbsp;</a></span>tMBSaw_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBSaw_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tMBSaw *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tMBSaw to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tMBSaw to initialize. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabf4312918312e89cc6cf9f116ec48a94"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabf4312918312e89cc6cf9f116ec48a94">&#9670;&nbsp;</a></span>tMBSaw_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBSaw_free </td>
+          <td>(</td>
+          <td class="paramtype">tMBSaw *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tMBSaw from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tMBSaw to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga200361c3174c419e413a2b8b4e988fc4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga200361c3174c419e413a2b8b4e988fc4">&#9670;&nbsp;</a></span>tMBSaw_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tMBSaw_tick </td>
+          <td>(</td>
+          <td class="paramtype">tMBSaw *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tMBSaw. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa7e8996e6780f64c5530600d13e68dfa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa7e8996e6780f64c5530600d13e68dfa">&#9670;&nbsp;</a></span>tMBSaw_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBSaw_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tMBSaw *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>f</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tMBSaw. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf8c1832d4612b09186f039dae141c55e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf8c1832d4612b09186f039dae141c55e">&#9670;&nbsp;</a></span>tMBSaw_syncIn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBSaw_syncIn </td>
+          <td>(</td>
+          <td class="paramtype">tMBSaw *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sync</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tMBSaw. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7a3f14f56043adf51d48b8a3c6aebf77"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7a3f14f56043adf51d48b8a3c6aebf77">&#9670;&nbsp;</a></span>tMBSaw_syncOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tMBSaw_syncOut </td>
+          <td>(</td>
+          <td class="paramtype">tMBSaw *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tMBSaw.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tmbtriangle.html
@@ -1,0 +1,377 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tMBTriangle</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tMBTriangle<div class="ingroups"><a class="el" href="group__oscillators.html">Oscillators</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Triangle wave oscillator with minBLEP anti-aliasing.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaaa43deb9cb1263b048346ddced186ae1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbtriangle.html#gaaa43deb9cb1263b048346ddced186ae1">tMBTriangle_init</a> (tMBTriangle *const osc, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gaaa43deb9cb1263b048346ddced186ae1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tMBTriangle to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tmbtriangle.html#gaaa43deb9cb1263b048346ddced186ae1">More...</a><br /></td></tr>
+<tr class="separator:gaaa43deb9cb1263b048346ddced186ae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1059c905fff781ffc59ffed1fefc3733"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbtriangle.html#ga1059c905fff781ffc59ffed1fefc3733">tMBTriangle_initToPool</a> (tMBTriangle *const osc, tMempool *const mempool)</td></tr>
+<tr class="memdesc:ga1059c905fff781ffc59ffed1fefc3733"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tMBTriangle to a specified mempool.  <a href="group__tmbtriangle.html#ga1059c905fff781ffc59ffed1fefc3733">More...</a><br /></td></tr>
+<tr class="separator:ga1059c905fff781ffc59ffed1fefc3733"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4a398681a83d517465c1f1373ecdff58"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbtriangle.html#ga4a398681a83d517465c1f1373ecdff58">tMBTriangle_free</a> (tMBTriangle *const osc)</td></tr>
+<tr class="memdesc:ga4a398681a83d517465c1f1373ecdff58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tMBTriangle from its mempool.  <a href="group__tmbtriangle.html#ga4a398681a83d517465c1f1373ecdff58">More...</a><br /></td></tr>
+<tr class="separator:ga4a398681a83d517465c1f1373ecdff58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad01e9918a433aae65ec099301edc9e42"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbtriangle.html#gad01e9918a433aae65ec099301edc9e42">tMBTriangle_tick</a> (tMBTriangle *const osc)</td></tr>
+<tr class="separator:gad01e9918a433aae65ec099301edc9e42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2d5a172cbfc2df0d71e9c8732fbe949e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbtriangle.html#ga2d5a172cbfc2df0d71e9c8732fbe949e">tMBTriangle_setFreq</a> (tMBTriangle *const osc, float f)</td></tr>
+<tr class="separator:ga2d5a172cbfc2df0d71e9c8732fbe949e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3d1220d479ab00cfdf07eda2bacd6eb6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbtriangle.html#ga3d1220d479ab00cfdf07eda2bacd6eb6">tMBTriangle_setWidth</a> (tMBTriangle *const osc, float w)</td></tr>
+<tr class="separator:ga3d1220d479ab00cfdf07eda2bacd6eb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae3ebade6ea067daf671c06a45c7159ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbtriangle.html#gae3ebade6ea067daf671c06a45c7159ab">tMBTriangle_syncIn</a> (tMBTriangle *const osc, float sync)</td></tr>
+<tr class="separator:gae3ebade6ea067daf671c06a45c7159ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad0326131f43ef1a605faa75d2b1ff793"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmbtriangle.html#gad0326131f43ef1a605faa75d2b1ff793">tMBTriangle_syncOut</a> (tMBTriangle *const osc)</td></tr>
+<tr class="separator:gad0326131f43ef1a605faa75d2b1ff793"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Triangle wave oscillator with minBLEP anti-aliasing. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gaaa43deb9cb1263b048346ddced186ae1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaaa43deb9cb1263b048346ddced186ae1">&#9670;&nbsp;</a></span>tMBTriangle_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBTriangle_init </td>
+          <td>(</td>
+          <td class="paramtype">tMBTriangle *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tMBTriangle to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tMBTriangle to initialize. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1059c905fff781ffc59ffed1fefc3733"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1059c905fff781ffc59ffed1fefc3733">&#9670;&nbsp;</a></span>tMBTriangle_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBTriangle_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tMBTriangle *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tMBTriangle to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tMBTriangle to initialize. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga4a398681a83d517465c1f1373ecdff58"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4a398681a83d517465c1f1373ecdff58">&#9670;&nbsp;</a></span>tMBTriangle_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBTriangle_free </td>
+          <td>(</td>
+          <td class="paramtype">tMBTriangle *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tMBTriangle from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tMBTriangle to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad01e9918a433aae65ec099301edc9e42"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad01e9918a433aae65ec099301edc9e42">&#9670;&nbsp;</a></span>tMBTriangle_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tMBTriangle_tick </td>
+          <td>(</td>
+          <td class="paramtype">tMBTriangle *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tMBTriangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2d5a172cbfc2df0d71e9c8732fbe949e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2d5a172cbfc2df0d71e9c8732fbe949e">&#9670;&nbsp;</a></span>tMBTriangle_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBTriangle_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tMBTriangle *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>f</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tMBTriangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3d1220d479ab00cfdf07eda2bacd6eb6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3d1220d479ab00cfdf07eda2bacd6eb6">&#9670;&nbsp;</a></span>tMBTriangle_setWidth()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBTriangle_setWidth </td>
+          <td>(</td>
+          <td class="paramtype">tMBTriangle *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>w</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tMBTriangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae3ebade6ea067daf671c06a45c7159ab"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae3ebade6ea067daf671c06a45c7159ab">&#9670;&nbsp;</a></span>tMBTriangle_syncIn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMBTriangle_syncIn </td>
+          <td>(</td>
+          <td class="paramtype">tMBTriangle *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sync</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tMBTriangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad0326131f43ef1a605faa75d2b1ff793"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad0326131f43ef1a605faa75d2b1ff793">&#9670;&nbsp;</a></span>tMBTriangle_syncOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tMBTriangle_syncOut </td>
+          <td>(</td>
+          <td class="paramtype">tMBTriangle *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tMBTriangle.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tmedianfilter.html
@@ -1,0 +1,268 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tMedianFilter</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tMedianFilter<div class="ingroups"><a class="el" href="group__filters.html">Filters</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Median filter.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga681edc6f80e60403e48d6228010242c7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmedianfilter.html#ga681edc6f80e60403e48d6228010242c7">tMedianFilter_init</a> (tMedianFilter *const, int size, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga681edc6f80e60403e48d6228010242c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tMedianFilter to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tmedianfilter.html#ga681edc6f80e60403e48d6228010242c7">More...</a><br /></td></tr>
+<tr class="separator:ga681edc6f80e60403e48d6228010242c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga11aa8d228031cd4b493ea22cb56fc7fd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmedianfilter.html#ga11aa8d228031cd4b493ea22cb56fc7fd">tMedianFilter_initToPool</a> (tMedianFilter *const, int size, tMempool *const)</td></tr>
+<tr class="memdesc:ga11aa8d228031cd4b493ea22cb56fc7fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tMedianFilter to a specified mempool.  <a href="group__tmedianfilter.html#ga11aa8d228031cd4b493ea22cb56fc7fd">More...</a><br /></td></tr>
+<tr class="separator:ga11aa8d228031cd4b493ea22cb56fc7fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8f504c9799e7d7c782df97b8d104bca8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmedianfilter.html#ga8f504c9799e7d7c782df97b8d104bca8">tMedianFilter_free</a> (tMedianFilter *const)</td></tr>
+<tr class="memdesc:ga8f504c9799e7d7c782df97b8d104bca8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tMedianFilter from its mempool.  <a href="group__tmedianfilter.html#ga8f504c9799e7d7c782df97b8d104bca8">More...</a><br /></td></tr>
+<tr class="separator:ga8f504c9799e7d7c782df97b8d104bca8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga07f8bc00264d3e544a2172e5a9bd5420"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmedianfilter.html#ga07f8bc00264d3e544a2172e5a9bd5420">tMedianFilter_tick</a> (tMedianFilter *const, float input)</td></tr>
+<tr class="separator:ga07f8bc00264d3e544a2172e5a9bd5420"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Median filter. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga681edc6f80e60403e48d6228010242c7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga681edc6f80e60403e48d6228010242c7">&#9670;&nbsp;</a></span>tMedianFilter_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMedianFilter_init </td>
+          <td>(</td>
+          <td class="paramtype">tMedianFilter *const&#160;</td>
+          <td class="paramname"><em>f</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tMedianFilter to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tMedianFilter to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance.f</td></tr>
+  </table>
+  </dd>
+</dl>
+<p>Median filter implemented based on James McCartney's median filter in Supercollider, translated from a Gen~ port of the Supercollider code that I believe was made by Rodrigo Costanzo and which I got from PA Tremblay - JS </p>
+
+</div>
+</div>
+<a id="ga11aa8d228031cd4b493ea22cb56fc7fd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga11aa8d228031cd4b493ea22cb56fc7fd">&#9670;&nbsp;</a></span>tMedianFilter_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMedianFilter_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tMedianFilter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tMedianFilter to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tMedianFilter to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8f504c9799e7d7c782df97b8d104bca8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8f504c9799e7d7c782df97b8d104bca8">&#9670;&nbsp;</a></span>tMedianFilter_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMedianFilter_free </td>
+          <td>(</td>
+          <td class="paramtype">tMedianFilter * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tMedianFilter from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tMedianFilter to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga07f8bc00264d3e544a2172e5a9bd5420"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga07f8bc00264d3e544a2172e5a9bd5420">&#9670;&nbsp;</a></span>tMedianFilter_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tMedianFilter_tick </td>
+          <td>(</td>
+          <td class="paramtype">tMedianFilter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tMedianFilter.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tmempool.html
@@ -1,0 +1,247 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tMempool</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tMempool<div class="ingroups"><a class="el" href="group__mempool.html">Mempool</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Memory pool for the allocation of <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> objects.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga7d57d178dbc5f510e139a303ff82f950"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmempool.html#ga7d57d178dbc5f510e139a303ff82f950">tMempool_init</a> (tMempool *const pool, char *memory, size_t size, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga7d57d178dbc5f510e139a303ff82f950"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tMempool for a given memory location and size to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tmempool.html#ga7d57d178dbc5f510e139a303ff82f950">More...</a><br /></td></tr>
+<tr class="separator:ga7d57d178dbc5f510e139a303ff82f950"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga374f00b950bef471dce439c54de88c6b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmempool.html#ga374f00b950bef471dce439c54de88c6b">tMempool_free</a> (tMempool *const pool)</td></tr>
+<tr class="memdesc:ga374f00b950bef471dce439c54de88c6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tMempool from its mempool.  <a href="group__tmempool.html#ga374f00b950bef471dce439c54de88c6b">More...</a><br /></td></tr>
+<tr class="separator:ga374f00b950bef471dce439c54de88c6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga74e9d1987d7e4f680dfc091c96ffbcce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tmempool.html#ga74e9d1987d7e4f680dfc091c96ffbcce">tMempool_initToPool</a> (tMempool *const mp, char *memory, size_t size, tMempool *const mem)</td></tr>
+<tr class="memdesc:ga74e9d1987d7e4f680dfc091c96ffbcce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tMempool for a given memory location and size to a specified mempool.  <a href="group__tmempool.html#ga74e9d1987d7e4f680dfc091c96ffbcce">More...</a><br /></td></tr>
+<tr class="separator:ga74e9d1987d7e4f680dfc091c96ffbcce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Memory pool for the allocation of <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> objects. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga7d57d178dbc5f510e139a303ff82f950"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7d57d178dbc5f510e139a303ff82f950">&#9670;&nbsp;</a></span>tMempool_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMempool_init </td>
+          <td>(</td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>pool</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>memory</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tMempool for a given memory location and size to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pool</td><td>A pointer to the tMempool to initialize. </td></tr>
+    <tr><td class="paramname">memory</td><td>A pointer to the chunk of memory to be used as a mempool. </td></tr>
+    <tr><td class="paramname">size</td><td>The size of the chunk of memory to be used as a mempool. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga374f00b950bef471dce439c54de88c6b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga374f00b950bef471dce439c54de88c6b">&#9670;&nbsp;</a></span>tMempool_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMempool_free </td>
+          <td>(</td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>pool</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tMempool from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pool</td><td>A pointer to the tMempool to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga74e9d1987d7e4f680dfc091c96ffbcce"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga74e9d1987d7e4f680dfc091c96ffbcce">&#9670;&nbsp;</a></span>tMempool_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tMempool_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>memory</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mem</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tMempool for a given memory location and size to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pool</td><td>A pointer to the tMempool to initialize. </td></tr>
+    <tr><td class="paramname">memory</td><td>A pointer to the chunk of memory to be used as a mempool. </td></tr>
+    <tr><td class="paramname">size</td><td>The size of the chuck of memory to be used as a mempool. </td></tr>
+    <tr><td class="paramname">poolTo</td><td>A pointer to the tMempool to which this tMempool should be initialized. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tneuron.html
@@ -1,0 +1,711 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tNeuron</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tNeuron<div class="ingroups"><a class="el" href="group__oscillators.html">Oscillators</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Model of a neuron, adapted to act as an oscillator.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga39c8ad8b35bf050f69b21ca34b56cc01"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html#ga39c8ad8b35bf050f69b21ca34b56cc01">NeuronMode</a> { <a class="el" href="group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01acedc049c7a14e2b30b266d88d46b3f76">NeuronNormal</a>, 
+<a class="el" href="group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01a0f637d7316b91b66dfea6ef832b1d178">NeuronTanh</a>, 
+<a class="el" href="group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01acdbcb725e463ccad89f2384b1254ab0c">NeuronAaltoShaper</a>
+ }</td></tr>
+<tr class="separator:ga39c8ad8b35bf050f69b21ca34b56cc01"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaaf7fb0a50cde5d02085bae982f355d98"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html#gaaf7fb0a50cde5d02085bae982f355d98">tNeuron_init</a> (tNeuron *const neuron, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gaaf7fb0a50cde5d02085bae982f355d98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tNeuron to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tneuron.html#gaaf7fb0a50cde5d02085bae982f355d98">More...</a><br /></td></tr>
+<tr class="separator:gaaf7fb0a50cde5d02085bae982f355d98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga64ec0be41011ffc7fdea5c03359a032c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html#ga64ec0be41011ffc7fdea5c03359a032c">tNeuron_initToPool</a> (tNeuron *const neuron, tMempool *const mempool)</td></tr>
+<tr class="memdesc:ga64ec0be41011ffc7fdea5c03359a032c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tNeuron to a specified mempool.  <a href="group__tneuron.html#ga64ec0be41011ffc7fdea5c03359a032c">More...</a><br /></td></tr>
+<tr class="separator:ga64ec0be41011ffc7fdea5c03359a032c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8e7767ba34797b6e41cd47fee21a674b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html#ga8e7767ba34797b6e41cd47fee21a674b">tNeuron_free</a> (tNeuron *const neuron)</td></tr>
+<tr class="memdesc:ga8e7767ba34797b6e41cd47fee21a674b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tNeuron from its mempool.  <a href="group__tneuron.html#ga8e7767ba34797b6e41cd47fee21a674b">More...</a><br /></td></tr>
+<tr class="separator:ga8e7767ba34797b6e41cd47fee21a674b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3e37f3a7de15a04e697f52cb72a5b094"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html#ga3e37f3a7de15a04e697f52cb72a5b094">tNeuron_reset</a> (tNeuron *const neuron)</td></tr>
+<tr class="memdesc:ga3e37f3a7de15a04e697f52cb72a5b094"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset the neuron model.  <a href="group__tneuron.html#ga3e37f3a7de15a04e697f52cb72a5b094">More...</a><br /></td></tr>
+<tr class="separator:ga3e37f3a7de15a04e697f52cb72a5b094"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacbbb031eee9c36e21e24e54b43290bc0"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html#gacbbb031eee9c36e21e24e54b43290bc0">tNeuron_tick</a> (tNeuron *const neuron)</td></tr>
+<tr class="memdesc:gacbbb031eee9c36e21e24e54b43290bc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tick a tNeuron oscillator.  <a href="group__tneuron.html#gacbbb031eee9c36e21e24e54b43290bc0">More...</a><br /></td></tr>
+<tr class="separator:gacbbb031eee9c36e21e24e54b43290bc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad69adcd45e4dabc947fabbc9baf7d849"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html#gad69adcd45e4dabc947fabbc9baf7d849">tNeuron_setMode</a> (tNeuron *const neuron, <a class="el" href="group__tneuron.html#ga39c8ad8b35bf050f69b21ca34b56cc01">NeuronMode</a> mode)</td></tr>
+<tr class="memdesc:gad69adcd45e4dabc947fabbc9baf7d849"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the tNeuron shaping mode.  <a href="group__tneuron.html#gad69adcd45e4dabc947fabbc9baf7d849">More...</a><br /></td></tr>
+<tr class="separator:gad69adcd45e4dabc947fabbc9baf7d849"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad683dcc57adbc4e94baedae51005f5a9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html#gad683dcc57adbc4e94baedae51005f5a9">tNeuron_setCurrent</a> (tNeuron *const neuron, float current)</td></tr>
+<tr class="memdesc:gad683dcc57adbc4e94baedae51005f5a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the current.  <a href="group__tneuron.html#gad683dcc57adbc4e94baedae51005f5a9">More...</a><br /></td></tr>
+<tr class="separator:gad683dcc57adbc4e94baedae51005f5a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga933040791b44ff8d7ada7aa825c48935"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html#ga933040791b44ff8d7ada7aa825c48935">tNeuron_setK</a> (tNeuron *const neuron, float K)</td></tr>
+<tr class="memdesc:ga933040791b44ff8d7ada7aa825c48935"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the potassium value.  <a href="group__tneuron.html#ga933040791b44ff8d7ada7aa825c48935">More...</a><br /></td></tr>
+<tr class="separator:ga933040791b44ff8d7ada7aa825c48935"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0813977adaef8fa375c5b0f5e59908b6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html#ga0813977adaef8fa375c5b0f5e59908b6">tNeuron_setL</a> (tNeuron *const neuron, float L)</td></tr>
+<tr class="memdesc:ga0813977adaef8fa375c5b0f5e59908b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the chloride value.  <a href="group__tneuron.html#ga0813977adaef8fa375c5b0f5e59908b6">More...</a><br /></td></tr>
+<tr class="separator:ga0813977adaef8fa375c5b0f5e59908b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1969098711805e2b8a68bc115bb113d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html#ga1969098711805e2b8a68bc115bb113d5">tNeuron_setN</a> (tNeuron *const neuron, float N)</td></tr>
+<tr class="memdesc:ga1969098711805e2b8a68bc115bb113d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the sodium value.  <a href="group__tneuron.html#ga1969098711805e2b8a68bc115bb113d5">More...</a><br /></td></tr>
+<tr class="separator:ga1969098711805e2b8a68bc115bb113d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad67b6b0f22c03de1995e07bbf422c111"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html#gad67b6b0f22c03de1995e07bbf422c111">tNeuron_setC</a> (tNeuron *const neuron, float C)</td></tr>
+<tr class="memdesc:gad67b6b0f22c03de1995e07bbf422c111"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the calcium value.  <a href="group__tneuron.html#gad67b6b0f22c03de1995e07bbf422c111">More...</a><br /></td></tr>
+<tr class="separator:gad67b6b0f22c03de1995e07bbf422c111"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0f4241ab21570d8accef6cdb468f24c1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html#ga0f4241ab21570d8accef6cdb468f24c1">tNeuron_setV1</a> (tNeuron *const neuron, float V1)</td></tr>
+<tr class="memdesc:ga0f4241ab21570d8accef6cdb468f24c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the V1 value.  <a href="group__tneuron.html#ga0f4241ab21570d8accef6cdb468f24c1">More...</a><br /></td></tr>
+<tr class="separator:ga0f4241ab21570d8accef6cdb468f24c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7bc12acf05b0763e80945808cf76102d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html#ga7bc12acf05b0763e80945808cf76102d">tNeuron_setV2</a> (tNeuron *const neuron, float V2)</td></tr>
+<tr class="memdesc:ga7bc12acf05b0763e80945808cf76102d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the V2 value.  <a href="group__tneuron.html#ga7bc12acf05b0763e80945808cf76102d">More...</a><br /></td></tr>
+<tr class="separator:ga7bc12acf05b0763e80945808cf76102d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga49e7f07a28b9e12d1fd9ed9dda6fd88d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html#ga49e7f07a28b9e12d1fd9ed9dda6fd88d">tNeuron_setV3</a> (tNeuron *const neuron, float V3)</td></tr>
+<tr class="memdesc:ga49e7f07a28b9e12d1fd9ed9dda6fd88d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the V3 value.  <a href="group__tneuron.html#ga49e7f07a28b9e12d1fd9ed9dda6fd88d">More...</a><br /></td></tr>
+<tr class="separator:ga49e7f07a28b9e12d1fd9ed9dda6fd88d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga92c05fe0216beaf2a430bf45898c46d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tneuron.html#ga92c05fe0216beaf2a430bf45898c46d5">tNeuron_setTimeStep</a> (tNeuron *const neuron, float timestep)</td></tr>
+<tr class="memdesc:ga92c05fe0216beaf2a430bf45898c46d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the time step of the model.  <a href="group__tneuron.html#ga92c05fe0216beaf2a430bf45898c46d5">More...</a><br /></td></tr>
+<tr class="separator:ga92c05fe0216beaf2a430bf45898c46d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Model of a neuron, adapted to act as an oscillator. </p>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="ga39c8ad8b35bf050f69b21ca34b56cc01"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga39c8ad8b35bf050f69b21ca34b56cc01">&#9670;&nbsp;</a></span>NeuronMode</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__tneuron.html#ga39c8ad8b35bf050f69b21ca34b56cc01">NeuronMode</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga39c8ad8b35bf050f69b21ca34b56cc01acedc049c7a14e2b30b266d88d46b3f76"></a>NeuronNormal&#160;</td><td class="fielddoc"><p>Normal operation. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="gga39c8ad8b35bf050f69b21ca34b56cc01a0f637d7316b91b66dfea6ef832b1d178"></a>NeuronTanh&#160;</td><td class="fielddoc"><p>Tanh voltage shaping. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="gga39c8ad8b35bf050f69b21ca34b56cc01acdbcb725e463ccad89f2384b1254ab0c"></a>NeuronAaltoShaper&#160;</td><td class="fielddoc"><p>Aalto voltage shaping. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gaaf7fb0a50cde5d02085bae982f355d98"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaaf7fb0a50cde5d02085bae982f355d98">&#9670;&nbsp;</a></span>tNeuron_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNeuron_init </td>
+          <td>(</td>
+          <td class="paramtype">tNeuron *const&#160;</td>
+          <td class="paramname"><em>neuron</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tNeuron to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">neuron</td><td>A pointer to the tNeuron to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga64ec0be41011ffc7fdea5c03359a032c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga64ec0be41011ffc7fdea5c03359a032c">&#9670;&nbsp;</a></span>tNeuron_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNeuron_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tNeuron *const&#160;</td>
+          <td class="paramname"><em>neuron</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tNeuron to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">neuron</td><td>A pointer to the tNeuron to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8e7767ba34797b6e41cd47fee21a674b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8e7767ba34797b6e41cd47fee21a674b">&#9670;&nbsp;</a></span>tNeuron_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNeuron_free </td>
+          <td>(</td>
+          <td class="paramtype">tNeuron *const&#160;</td>
+          <td class="paramname"><em>neuron</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tNeuron from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">neuron</td><td>A pointer to the tNeuron to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3e37f3a7de15a04e697f52cb72a5b094"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3e37f3a7de15a04e697f52cb72a5b094">&#9670;&nbsp;</a></span>tNeuron_reset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNeuron_reset </td>
+          <td>(</td>
+          <td class="paramtype">tNeuron *const&#160;</td>
+          <td class="paramname"><em>neuron</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reset the neuron model. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">neuron</td><td>A pointer to the relevant tNeuron. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gacbbb031eee9c36e21e24e54b43290bc0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacbbb031eee9c36e21e24e54b43290bc0">&#9670;&nbsp;</a></span>tNeuron_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tNeuron_tick </td>
+          <td>(</td>
+          <td class="paramtype">tNeuron *const&#160;</td>
+          <td class="paramname"><em>neuron</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Tick a tNeuron oscillator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">neuron</td><td>A pointer to the relevant tNeuron. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The ticked sample as a float from -1 to 1. </dd></dl>
+
+</div>
+</div>
+<a id="gad69adcd45e4dabc947fabbc9baf7d849"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad69adcd45e4dabc947fabbc9baf7d849">&#9670;&nbsp;</a></span>tNeuron_setMode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNeuron_setMode </td>
+          <td>(</td>
+          <td class="paramtype">tNeuron *const&#160;</td>
+          <td class="paramname"><em>neuron</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group__tneuron.html#ga39c8ad8b35bf050f69b21ca34b56cc01">NeuronMode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the tNeuron shaping mode. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">neuron</td><td>A pointer to the relevant tNeuron. </td></tr>
+    <tr><td class="paramname">mode</td><td>The mode to set the tNeuron to. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad683dcc57adbc4e94baedae51005f5a9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad683dcc57adbc4e94baedae51005f5a9">&#9670;&nbsp;</a></span>tNeuron_setCurrent()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNeuron_setCurrent </td>
+          <td>(</td>
+          <td class="paramtype">tNeuron *const&#160;</td>
+          <td class="paramname"><em>neuron</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>current</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the current. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">neuron</td><td>A pointer to the relevant tNeuron. </td></tr>
+    <tr><td class="paramname">current</td><td>The new current. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga933040791b44ff8d7ada7aa825c48935"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga933040791b44ff8d7ada7aa825c48935">&#9670;&nbsp;</a></span>tNeuron_setK()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNeuron_setK </td>
+          <td>(</td>
+          <td class="paramtype">tNeuron *const&#160;</td>
+          <td class="paramname"><em>neuron</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>K</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the potassium value. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">neuron</td><td>A pointer to the relevant tNeuron. </td></tr>
+    <tr><td class="paramname">K</td><td>The new potassium. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0813977adaef8fa375c5b0f5e59908b6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0813977adaef8fa375c5b0f5e59908b6">&#9670;&nbsp;</a></span>tNeuron_setL()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNeuron_setL </td>
+          <td>(</td>
+          <td class="paramtype">tNeuron *const&#160;</td>
+          <td class="paramname"><em>neuron</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>L</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the chloride value. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">neuron</td><td>A pointer to the relevant tNeuron. </td></tr>
+    <tr><td class="paramname">L</td><td>The new chloride value. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1969098711805e2b8a68bc115bb113d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1969098711805e2b8a68bc115bb113d5">&#9670;&nbsp;</a></span>tNeuron_setN()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNeuron_setN </td>
+          <td>(</td>
+          <td class="paramtype">tNeuron *const&#160;</td>
+          <td class="paramname"><em>neuron</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>N</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the sodium value. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">neuron</td><td>A pointer to the relevant tNeuron. </td></tr>
+    <tr><td class="paramname">N</td><td>The new sodium value. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad67b6b0f22c03de1995e07bbf422c111"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad67b6b0f22c03de1995e07bbf422c111">&#9670;&nbsp;</a></span>tNeuron_setC()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNeuron_setC </td>
+          <td>(</td>
+          <td class="paramtype">tNeuron *const&#160;</td>
+          <td class="paramname"><em>neuron</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>C</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the calcium value. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">neuron</td><td>A pointer to the relevant tNeuron. </td></tr>
+    <tr><td class="paramname">C</td><td>The new calcium. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0f4241ab21570d8accef6cdb468f24c1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0f4241ab21570d8accef6cdb468f24c1">&#9670;&nbsp;</a></span>tNeuron_setV1()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNeuron_setV1 </td>
+          <td>(</td>
+          <td class="paramtype">tNeuron *const&#160;</td>
+          <td class="paramname"><em>neuron</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>V1</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the V1 value. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">neuron</td><td>A pointer to the relevant tNeuron. </td></tr>
+    <tr><td class="paramname">V1</td><td>The new V1. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7bc12acf05b0763e80945808cf76102d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7bc12acf05b0763e80945808cf76102d">&#9670;&nbsp;</a></span>tNeuron_setV2()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNeuron_setV2 </td>
+          <td>(</td>
+          <td class="paramtype">tNeuron *const&#160;</td>
+          <td class="paramname"><em>neuron</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>V2</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the V2 value. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">neuron</td><td>A pointer to the relevant tNeuron. </td></tr>
+    <tr><td class="paramname">V2</td><td>The new V2. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga49e7f07a28b9e12d1fd9ed9dda6fd88d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga49e7f07a28b9e12d1fd9ed9dda6fd88d">&#9670;&nbsp;</a></span>tNeuron_setV3()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNeuron_setV3 </td>
+          <td>(</td>
+          <td class="paramtype">tNeuron *const&#160;</td>
+          <td class="paramname"><em>neuron</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>V3</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the V3 value. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">neuron</td><td>A pointer to the relevant tNeuron. </td></tr>
+    <tr><td class="paramname">V3</td><td>The new V3. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga92c05fe0216beaf2a430bf45898c46d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga92c05fe0216beaf2a430bf45898c46d5">&#9670;&nbsp;</a></span>tNeuron_setTimeStep()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNeuron_setTimeStep </td>
+          <td>(</td>
+          <td class="paramtype">tNeuron *const&#160;</td>
+          <td class="paramname"><em>neuron</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>timestep</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the time step of the model. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">neuron</td><td>A pointer to the relevant tNeuron. </td></tr>
+    <tr><td class="paramname">timestep</td><td>The new time step.</td></tr>
+  </table>
+  </dd>
+</dl>
+<p>Shaping modes for tNeuron output. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tnoise.html
@@ -1,0 +1,287 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tNoise</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tNoise<div class="ingroups"><a class="el" href="group__oscillators.html">Oscillators</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Noise generator, capable of producing white or pink noise.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga9253d111035d4a83996ec5bbfd3d8963"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tnoise.html#ga9253d111035d4a83996ec5bbfd3d8963">NoiseType</a> { <a class="el" href="group__tnoise.html#gga9253d111035d4a83996ec5bbfd3d8963a7c87739bebf0e95f4e6b8d9e5432b8f1">WhiteNoise</a>, 
+<a class="el" href="group__tnoise.html#gga9253d111035d4a83996ec5bbfd3d8963a0793318314019dbf241d6de4e8fcf310">PinkNoise</a>
+ }</td></tr>
+<tr class="separator:ga9253d111035d4a83996ec5bbfd3d8963"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga4e30b8b212200e17e73b0fb96293c386"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tnoise.html#ga4e30b8b212200e17e73b0fb96293c386">tNoise_init</a> (tNoise *const noise, <a class="el" href="group__tnoise.html#ga9253d111035d4a83996ec5bbfd3d8963">NoiseType</a> type, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga4e30b8b212200e17e73b0fb96293c386"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tNoise to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tnoise.html#ga4e30b8b212200e17e73b0fb96293c386">More...</a><br /></td></tr>
+<tr class="separator:ga4e30b8b212200e17e73b0fb96293c386"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6eec0a5fbc79f448a89258d9b956dfa4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tnoise.html#ga6eec0a5fbc79f448a89258d9b956dfa4">tNoise_initToPool</a> (tNoise *const noise, <a class="el" href="group__tnoise.html#ga9253d111035d4a83996ec5bbfd3d8963">NoiseType</a> type, tMempool *const)</td></tr>
+<tr class="memdesc:ga6eec0a5fbc79f448a89258d9b956dfa4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tNoise to a specified mempool.  <a href="group__tnoise.html#ga6eec0a5fbc79f448a89258d9b956dfa4">More...</a><br /></td></tr>
+<tr class="separator:ga6eec0a5fbc79f448a89258d9b956dfa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab51a77f9ab3888d706ed0fb30cdf217d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tnoise.html#gab51a77f9ab3888d706ed0fb30cdf217d">tNoise_free</a> (tNoise *const noise)</td></tr>
+<tr class="memdesc:gab51a77f9ab3888d706ed0fb30cdf217d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tNoise from its mempool.  <a href="group__tnoise.html#gab51a77f9ab3888d706ed0fb30cdf217d">More...</a><br /></td></tr>
+<tr class="separator:gab51a77f9ab3888d706ed0fb30cdf217d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga867c2ace286c8fdd886f7f9357821330"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tnoise.html#ga867c2ace286c8fdd886f7f9357821330">tNoise_tick</a> (tNoise *const noise)</td></tr>
+<tr class="separator:ga867c2ace286c8fdd886f7f9357821330"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Noise generator, capable of producing white or pink noise. </p>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="ga9253d111035d4a83996ec5bbfd3d8963"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9253d111035d4a83996ec5bbfd3d8963">&#9670;&nbsp;</a></span>NoiseType</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__tnoise.html#ga9253d111035d4a83996ec5bbfd3d8963">NoiseType</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Noise types </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga9253d111035d4a83996ec5bbfd3d8963a7c87739bebf0e95f4e6b8d9e5432b8f1"></a>WhiteNoise&#160;</td><td class="fielddoc"><p>White noise. Full spectrum. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="gga9253d111035d4a83996ec5bbfd3d8963a0793318314019dbf241d6de4e8fcf310"></a>PinkNoise&#160;</td><td class="fielddoc"><p>Pink noise. Inverse frequency-proportional spectrum. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga4e30b8b212200e17e73b0fb96293c386"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4e30b8b212200e17e73b0fb96293c386">&#9670;&nbsp;</a></span>tNoise_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNoise_init </td>
+          <td>(</td>
+          <td class="paramtype">tNoise *const&#160;</td>
+          <td class="paramname"><em>noise</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group__tnoise.html#ga9253d111035d4a83996ec5bbfd3d8963">NoiseType</a>&#160;</td>
+          <td class="paramname"><em>type</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tNoise to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">noise</td><td>A pointer to the tNoise to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6eec0a5fbc79f448a89258d9b956dfa4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6eec0a5fbc79f448a89258d9b956dfa4">&#9670;&nbsp;</a></span>tNoise_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNoise_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tNoise *const&#160;</td>
+          <td class="paramname"><em>noise</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group__tnoise.html#ga9253d111035d4a83996ec5bbfd3d8963">NoiseType</a>&#160;</td>
+          <td class="paramname"><em>type</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tNoise to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">noise</td><td>A pointer to the tNoise to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab51a77f9ab3888d706ed0fb30cdf217d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab51a77f9ab3888d706ed0fb30cdf217d">&#9670;&nbsp;</a></span>tNoise_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNoise_free </td>
+          <td>(</td>
+          <td class="paramtype">tNoise *const&#160;</td>
+          <td class="paramname"><em>noise</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tNoise from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">noise</td><td>A pointer to the tNoise to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga867c2ace286c8fdd886f7f9357821330"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga867c2ace286c8fdd886f7f9357821330">&#9670;&nbsp;</a></span>tNoise_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tNoise_tick </td>
+          <td>(</td>
+          <td class="paramtype">tNoise *const&#160;</td>
+          <td class="paramname"><em>noise</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">noise</td><td>A pointer to the relevant tNoise. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tnreverb.html
@@ -1,0 +1,413 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tNReverb</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tNReverb<div class="ingroups"><a class="el" href="group__reverb.html">Reverb</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Reverb, reimplemented from STK (Cook and Scavone).  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga3f5f7bc51b7243b388b9efce99c4d409"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tnreverb.html#ga3f5f7bc51b7243b388b9efce99c4d409">tNReverb_init</a> (tNReverb *const, float t60, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga3f5f7bc51b7243b388b9efce99c4d409"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tNReverb to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tnreverb.html#ga3f5f7bc51b7243b388b9efce99c4d409">More...</a><br /></td></tr>
+<tr class="separator:ga3f5f7bc51b7243b388b9efce99c4d409"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7706f638cebfe55b14524e4a79889046"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tnreverb.html#ga7706f638cebfe55b14524e4a79889046">tNReverb_initToPool</a> (tNReverb *const, float t60, tMempool *const)</td></tr>
+<tr class="memdesc:ga7706f638cebfe55b14524e4a79889046"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tNReverb to a specified mempool.  <a href="group__tnreverb.html#ga7706f638cebfe55b14524e4a79889046">More...</a><br /></td></tr>
+<tr class="separator:ga7706f638cebfe55b14524e4a79889046"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5fd99fec8124a8874fd3ac460a24f670"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tnreverb.html#ga5fd99fec8124a8874fd3ac460a24f670">tNReverb_free</a> (tNReverb *const)</td></tr>
+<tr class="memdesc:ga5fd99fec8124a8874fd3ac460a24f670"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tNReverb from its mempool.  <a href="group__tnreverb.html#ga5fd99fec8124a8874fd3ac460a24f670">More...</a><br /></td></tr>
+<tr class="separator:ga5fd99fec8124a8874fd3ac460a24f670"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa349525bb82ec4c02de42d9571cc4bb3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tnreverb.html#gaa349525bb82ec4c02de42d9571cc4bb3">tNReverb_clear</a> (tNReverb *const)</td></tr>
+<tr class="separator:gaa349525bb82ec4c02de42d9571cc4bb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad13adebe50c0f7af789ee4866720ee41"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tnreverb.html#gad13adebe50c0f7af789ee4866720ee41">tNReverb_tick</a> (tNReverb *const, float input)</td></tr>
+<tr class="separator:gad13adebe50c0f7af789ee4866720ee41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac8ae2782156ef22133de8acd9f4fe6fa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tnreverb.html#gac8ae2782156ef22133de8acd9f4fe6fa">tNReverb_tickStereo</a> (tNReverb *const rev, float input, float *output)</td></tr>
+<tr class="separator:gac8ae2782156ef22133de8acd9f4fe6fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7355a61ee1185d19e9265e5e7797cf95"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tnreverb.html#ga7355a61ee1185d19e9265e5e7797cf95">tNReverb_setT60</a> (tNReverb *const, float t60)</td></tr>
+<tr class="memdesc:ga7355a61ee1185d19e9265e5e7797cf95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set reverb time in seconds.  <a href="group__tnreverb.html#ga7355a61ee1185d19e9265e5e7797cf95">More...</a><br /></td></tr>
+<tr class="separator:ga7355a61ee1185d19e9265e5e7797cf95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab915282eb337ebbf4ced8e20827d082b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tnreverb.html#gab915282eb337ebbf4ced8e20827d082b">tNReverb_setMix</a> (tNReverb *const, float mix)</td></tr>
+<tr class="memdesc:gab915282eb337ebbf4ced8e20827d082b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set mix between dry input and wet output signal.  <a href="group__tnreverb.html#gab915282eb337ebbf4ced8e20827d082b">More...</a><br /></td></tr>
+<tr class="separator:gab915282eb337ebbf4ced8e20827d082b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Reverb, reimplemented from STK (Cook and Scavone). </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga3f5f7bc51b7243b388b9efce99c4d409"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3f5f7bc51b7243b388b9efce99c4d409">&#9670;&nbsp;</a></span>tNReverb_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNReverb_init </td>
+          <td>(</td>
+          <td class="paramtype">tNReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>t60</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tNReverb to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the tNReverb to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7706f638cebfe55b14524e4a79889046"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7706f638cebfe55b14524e4a79889046">&#9670;&nbsp;</a></span>tNReverb_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNReverb_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tNReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>t60</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tNReverb to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the tNReverb to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5fd99fec8124a8874fd3ac460a24f670"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5fd99fec8124a8874fd3ac460a24f670">&#9670;&nbsp;</a></span>tNReverb_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNReverb_free </td>
+          <td>(</td>
+          <td class="paramtype">tNReverb * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tNReverb from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the tNReverb to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa349525bb82ec4c02de42d9571cc4bb3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa349525bb82ec4c02de42d9571cc4bb3">&#9670;&nbsp;</a></span>tNReverb_clear()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNReverb_clear </td>
+          <td>(</td>
+          <td class="paramtype">tNReverb * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tNReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad13adebe50c0f7af789ee4866720ee41"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad13adebe50c0f7af789ee4866720ee41">&#9670;&nbsp;</a></span>tNReverb_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tNReverb_tick </td>
+          <td>(</td>
+          <td class="paramtype">tNReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tNReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac8ae2782156ef22133de8acd9f4fe6fa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac8ae2782156ef22133de8acd9f4fe6fa">&#9670;&nbsp;</a></span>tNReverb_tickStereo()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNReverb_tickStereo </td>
+          <td>(</td>
+          <td class="paramtype">tNReverb *const&#160;</td>
+          <td class="paramname"><em>rev</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>output</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tNReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7355a61ee1185d19e9265e5e7797cf95"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7355a61ee1185d19e9265e5e7797cf95">&#9670;&nbsp;</a></span>tNReverb_setT60()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNReverb_setT60 </td>
+          <td>(</td>
+          <td class="paramtype">tNReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>t60</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set reverb time in seconds. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tNReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab915282eb337ebbf4ced8e20827d082b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab915282eb337ebbf4ced8e20827d082b">&#9670;&nbsp;</a></span>tNReverb_setMix()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tNReverb_setMix </td>
+          <td>(</td>
+          <td class="paramtype">tNReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>mix</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set mix between dry input and wet output signal. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tNReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tonepole.html
@@ -1,0 +1,489 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tOnePole</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tOnePole<div class="ingroups"><a class="el" href="group__filters.html">Filters</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>OnePole filter, reimplemented from STK (Cook and Scavone).  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gabcdda318381d2d2dd314c3ec4399944d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonepole.html#gabcdda318381d2d2dd314c3ec4399944d">tOnePole_init</a> (tOnePole *const, float thePole, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gabcdda318381d2d2dd314c3ec4399944d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tOnePole to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tonepole.html#gabcdda318381d2d2dd314c3ec4399944d">More...</a><br /></td></tr>
+<tr class="separator:gabcdda318381d2d2dd314c3ec4399944d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga08050cc38be920cf41bfdf4fc07fd81b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonepole.html#ga08050cc38be920cf41bfdf4fc07fd81b">tOnePole_initToPool</a> (tOnePole *const, float thePole, tMempool *const)</td></tr>
+<tr class="memdesc:ga08050cc38be920cf41bfdf4fc07fd81b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tOnePole to a specified mempool.  <a href="group__tonepole.html#ga08050cc38be920cf41bfdf4fc07fd81b">More...</a><br /></td></tr>
+<tr class="separator:ga08050cc38be920cf41bfdf4fc07fd81b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae62f76fc8009569f5dc89388d0598b62"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonepole.html#gae62f76fc8009569f5dc89388d0598b62">tOnePole_free</a> (tOnePole *const)</td></tr>
+<tr class="memdesc:gae62f76fc8009569f5dc89388d0598b62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tOnePole from its mempool.  <a href="group__tonepole.html#gae62f76fc8009569f5dc89388d0598b62">More...</a><br /></td></tr>
+<tr class="separator:gae62f76fc8009569f5dc89388d0598b62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf0f1f40fccb864cdf7310fffbdcfcf5f"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonepole.html#gaf0f1f40fccb864cdf7310fffbdcfcf5f">tOnePole_tick</a> (tOnePole *const, float input)</td></tr>
+<tr class="separator:gaf0f1f40fccb864cdf7310fffbdcfcf5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac83d1fd7167c1bd78cf4b44fa2d18562"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonepole.html#gac83d1fd7167c1bd78cf4b44fa2d18562">tOnePole_setB0</a> (tOnePole *const, float b0)</td></tr>
+<tr class="separator:gac83d1fd7167c1bd78cf4b44fa2d18562"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga255cd0e1e27c6dfced99c68ac352e57f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonepole.html#ga255cd0e1e27c6dfced99c68ac352e57f">tOnePole_setA1</a> (tOnePole *const, float a1)</td></tr>
+<tr class="separator:ga255cd0e1e27c6dfced99c68ac352e57f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac20aca828debbc4fae6b62ea6e085356"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonepole.html#gac20aca828debbc4fae6b62ea6e085356">tOnePole_setPole</a> (tOnePole *const, float thePole)</td></tr>
+<tr class="separator:gac20aca828debbc4fae6b62ea6e085356"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa2fe72283746cd156766fd07f6604430"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonepole.html#gaa2fe72283746cd156766fd07f6604430">tOnePole_setFreq</a> (tOnePole *const, float freq)</td></tr>
+<tr class="separator:gaa2fe72283746cd156766fd07f6604430"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad7a7e9061389b83a4efed8e9d30f9047"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonepole.html#gad7a7e9061389b83a4efed8e9d30f9047">tOnePole_setCoefficients</a> (tOnePole *const, float b0, float a1)</td></tr>
+<tr class="separator:gad7a7e9061389b83a4efed8e9d30f9047"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab5abc7f67dc57d2475e3880c864c3717"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonepole.html#gab5abc7f67dc57d2475e3880c864c3717">tOnePole_setGain</a> (tOnePole *const, float gain)</td></tr>
+<tr class="separator:gab5abc7f67dc57d2475e3880c864c3717"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>OnePole filter, reimplemented from STK (Cook and Scavone). </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gabcdda318381d2d2dd314c3ec4399944d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabcdda318381d2d2dd314c3ec4399944d">&#9670;&nbsp;</a></span>tOnePole_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOnePole_init </td>
+          <td>(</td>
+          <td class="paramtype">tOnePole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>thePole</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tOnePole to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tOnePole to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga08050cc38be920cf41bfdf4fc07fd81b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga08050cc38be920cf41bfdf4fc07fd81b">&#9670;&nbsp;</a></span>tOnePole_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOnePole_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tOnePole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>thePole</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tOnePole to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tOnePole to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae62f76fc8009569f5dc89388d0598b62"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae62f76fc8009569f5dc89388d0598b62">&#9670;&nbsp;</a></span>tOnePole_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOnePole_free </td>
+          <td>(</td>
+          <td class="paramtype">tOnePole * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tOnePole from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tOnePole to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf0f1f40fccb864cdf7310fffbdcfcf5f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf0f1f40fccb864cdf7310fffbdcfcf5f">&#9670;&nbsp;</a></span>tOnePole_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tOnePole_tick </td>
+          <td>(</td>
+          <td class="paramtype">tOnePole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tOnePole. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac83d1fd7167c1bd78cf4b44fa2d18562"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac83d1fd7167c1bd78cf4b44fa2d18562">&#9670;&nbsp;</a></span>tOnePole_setB0()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOnePole_setB0 </td>
+          <td>(</td>
+          <td class="paramtype">tOnePole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b0</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tOnePole. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga255cd0e1e27c6dfced99c68ac352e57f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga255cd0e1e27c6dfced99c68ac352e57f">&#9670;&nbsp;</a></span>tOnePole_setA1()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOnePole_setA1 </td>
+          <td>(</td>
+          <td class="paramtype">tOnePole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>a1</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tOnePole. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac20aca828debbc4fae6b62ea6e085356"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac20aca828debbc4fae6b62ea6e085356">&#9670;&nbsp;</a></span>tOnePole_setPole()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOnePole_setPole </td>
+          <td>(</td>
+          <td class="paramtype">tOnePole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>thePole</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tOnePole. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa2fe72283746cd156766fd07f6604430"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa2fe72283746cd156766fd07f6604430">&#9670;&nbsp;</a></span>tOnePole_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOnePole_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tOnePole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tOnePole. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad7a7e9061389b83a4efed8e9d30f9047"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad7a7e9061389b83a4efed8e9d30f9047">&#9670;&nbsp;</a></span>tOnePole_setCoefficients()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOnePole_setCoefficients </td>
+          <td>(</td>
+          <td class="paramtype">tOnePole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b0</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>a1</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tOnePole. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab5abc7f67dc57d2475e3880c864c3717"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab5abc7f67dc57d2475e3880c864c3717">&#9670;&nbsp;</a></span>tOnePole_setGain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOnePole_setGain </td>
+          <td>(</td>
+          <td class="paramtype">tOnePole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>gain</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tOnePole.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tonezero.html
@@ -1,0 +1,489 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tOneZero</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tOneZero<div class="ingroups"><a class="el" href="group__filters.html">Filters</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>OneZero filter, reimplemented from STK (Cook and Scavone).  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gabbd3ddafbab517a2c66e91d8e68f71f7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonezero.html#gabbd3ddafbab517a2c66e91d8e68f71f7">tOneZero_init</a> (tOneZero *const, float theZero, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gabbd3ddafbab517a2c66e91d8e68f71f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tOneZero to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tonezero.html#gabbd3ddafbab517a2c66e91d8e68f71f7">More...</a><br /></td></tr>
+<tr class="separator:gabbd3ddafbab517a2c66e91d8e68f71f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8148897bb39a76c5368f740d532c774b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonezero.html#ga8148897bb39a76c5368f740d532c774b">tOneZero_initToPool</a> (tOneZero *const, float theZero, tMempool *const)</td></tr>
+<tr class="memdesc:ga8148897bb39a76c5368f740d532c774b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tOneZero to a specified mempool.  <a href="group__tonezero.html#ga8148897bb39a76c5368f740d532c774b">More...</a><br /></td></tr>
+<tr class="separator:ga8148897bb39a76c5368f740d532c774b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga06bbbfdb22d7b291f73489981c311bc0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonezero.html#ga06bbbfdb22d7b291f73489981c311bc0">tOneZero_free</a> (tOneZero *const)</td></tr>
+<tr class="memdesc:ga06bbbfdb22d7b291f73489981c311bc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tOneZero from its mempool.  <a href="group__tonezero.html#ga06bbbfdb22d7b291f73489981c311bc0">More...</a><br /></td></tr>
+<tr class="separator:ga06bbbfdb22d7b291f73489981c311bc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5d49fd94313454e219b43e1fa3175d12"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonezero.html#ga5d49fd94313454e219b43e1fa3175d12">tOneZero_tick</a> (tOneZero *const, float input)</td></tr>
+<tr class="separator:ga5d49fd94313454e219b43e1fa3175d12"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga98cda6f603769e6ad842f869c751b5b8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonezero.html#ga98cda6f603769e6ad842f869c751b5b8">tOneZero_setB0</a> (tOneZero *const, float b0)</td></tr>
+<tr class="separator:ga98cda6f603769e6ad842f869c751b5b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga02db3ca6e4e8d321a4730e4ea2b58f6c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonezero.html#ga02db3ca6e4e8d321a4730e4ea2b58f6c">tOneZero_setB1</a> (tOneZero *const, float b1)</td></tr>
+<tr class="separator:ga02db3ca6e4e8d321a4730e4ea2b58f6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf0827232a84f1d39e418459d9d53c977"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonezero.html#gaf0827232a84f1d39e418459d9d53c977">tOneZero_setZero</a> (tOneZero *const, float theZero)</td></tr>
+<tr class="separator:gaf0827232a84f1d39e418459d9d53c977"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf460819e3f35c5759cc1f6707f2bda86"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonezero.html#gaf460819e3f35c5759cc1f6707f2bda86">tOneZero_setCoefficients</a> (tOneZero *const, float b0, float b1)</td></tr>
+<tr class="separator:gaf460819e3f35c5759cc1f6707f2bda86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6f7ad30df1a802a5db5b8b4f6465c993"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonezero.html#ga6f7ad30df1a802a5db5b8b4f6465c993">tOneZero_setGain</a> (tOneZero *const, float gain)</td></tr>
+<tr class="separator:ga6f7ad30df1a802a5db5b8b4f6465c993"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae93bd56798868c1022fa025c62126bfe"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tonezero.html#gae93bd56798868c1022fa025c62126bfe">tOneZero_getPhaseDelay</a> (tOneZero *f, float frequency)</td></tr>
+<tr class="separator:gae93bd56798868c1022fa025c62126bfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>OneZero filter, reimplemented from STK (Cook and Scavone). </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gabbd3ddafbab517a2c66e91d8e68f71f7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabbd3ddafbab517a2c66e91d8e68f71f7">&#9670;&nbsp;</a></span>tOneZero_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOneZero_init </td>
+          <td>(</td>
+          <td class="paramtype">tOneZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>theZero</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tOneZero to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tSlide to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8148897bb39a76c5368f740d532c774b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8148897bb39a76c5368f740d532c774b">&#9670;&nbsp;</a></span>tOneZero_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOneZero_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tOneZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>theZero</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tOneZero to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tOneZero to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga06bbbfdb22d7b291f73489981c311bc0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga06bbbfdb22d7b291f73489981c311bc0">&#9670;&nbsp;</a></span>tOneZero_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOneZero_free </td>
+          <td>(</td>
+          <td class="paramtype">tOneZero * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tOneZero from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tOneZero to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5d49fd94313454e219b43e1fa3175d12"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5d49fd94313454e219b43e1fa3175d12">&#9670;&nbsp;</a></span>tOneZero_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tOneZero_tick </td>
+          <td>(</td>
+          <td class="paramtype">tOneZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tOneZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga98cda6f603769e6ad842f869c751b5b8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga98cda6f603769e6ad842f869c751b5b8">&#9670;&nbsp;</a></span>tOneZero_setB0()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOneZero_setB0 </td>
+          <td>(</td>
+          <td class="paramtype">tOneZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b0</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tOneZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga02db3ca6e4e8d321a4730e4ea2b58f6c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga02db3ca6e4e8d321a4730e4ea2b58f6c">&#9670;&nbsp;</a></span>tOneZero_setB1()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOneZero_setB1 </td>
+          <td>(</td>
+          <td class="paramtype">tOneZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b1</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tOneZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf0827232a84f1d39e418459d9d53c977"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf0827232a84f1d39e418459d9d53c977">&#9670;&nbsp;</a></span>tOneZero_setZero()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOneZero_setZero </td>
+          <td>(</td>
+          <td class="paramtype">tOneZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>theZero</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tOneZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf460819e3f35c5759cc1f6707f2bda86"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf460819e3f35c5759cc1f6707f2bda86">&#9670;&nbsp;</a></span>tOneZero_setCoefficients()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOneZero_setCoefficients </td>
+          <td>(</td>
+          <td class="paramtype">tOneZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b0</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b1</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tOneZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6f7ad30df1a802a5db5b8b4f6465c993"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6f7ad30df1a802a5db5b8b4f6465c993">&#9670;&nbsp;</a></span>tOneZero_setGain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOneZero_setGain </td>
+          <td>(</td>
+          <td class="paramtype">tOneZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>gain</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tOneZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae93bd56798868c1022fa025c62126bfe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae93bd56798868c1022fa025c62126bfe">&#9670;&nbsp;</a></span>tOneZero_getPhaseDelay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tOneZero_getPhaseDelay </td>
+          <td>(</td>
+          <td class="paramtype">tOneZero *&#160;</td>
+          <td class="paramname"><em>f</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>frequency</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tOneZero.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__toversampler.html
@@ -1,0 +1,395 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tOversampler</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tOversampler<div class="ingroups"><a class="el" href="group__distortion.html">Distortion</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Oversampler.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga6c89c7875f0f5679ea59430d9a6c61e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__toversampler.html#ga6c89c7875f0f5679ea59430d9a6c61e8">tOversampler_init</a> (tOversampler *const, int order, int extraQuality, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga6c89c7875f0f5679ea59430d9a6c61e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tOversampler to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__toversampler.html#ga6c89c7875f0f5679ea59430d9a6c61e8">More...</a><br /></td></tr>
+<tr class="separator:ga6c89c7875f0f5679ea59430d9a6c61e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga65ae3bd40ead130ffc4a81d47bdc61fe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__toversampler.html#ga65ae3bd40ead130ffc4a81d47bdc61fe">tOversampler_initToPool</a> (tOversampler *const, int order, int extraQuality, tMempool *const)</td></tr>
+<tr class="memdesc:ga65ae3bd40ead130ffc4a81d47bdc61fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tOversampler to a specified mempool.  <a href="group__toversampler.html#ga65ae3bd40ead130ffc4a81d47bdc61fe">More...</a><br /></td></tr>
+<tr class="separator:ga65ae3bd40ead130ffc4a81d47bdc61fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga809c183c7443aa77ae6233e8c5276218"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__toversampler.html#ga809c183c7443aa77ae6233e8c5276218">tOversampler_free</a> (tOversampler *const)</td></tr>
+<tr class="memdesc:ga809c183c7443aa77ae6233e8c5276218"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tOversampler from its mempool.  <a href="group__toversampler.html#ga809c183c7443aa77ae6233e8c5276218">More...</a><br /></td></tr>
+<tr class="separator:ga809c183c7443aa77ae6233e8c5276218"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga274c2b3d123628c2ecbb3e77d0f9bd3b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__toversampler.html#ga274c2b3d123628c2ecbb3e77d0f9bd3b">tOversampler_upsample</a> (tOversampler *const, float input, float *output)</td></tr>
+<tr class="separator:ga274c2b3d123628c2ecbb3e77d0f9bd3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga36a0bca206cb86ac529495bf0f1e487d"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__toversampler.html#ga36a0bca206cb86ac529495bf0f1e487d">tOversampler_downsample</a> (tOversampler *const os, float *input)</td></tr>
+<tr class="separator:ga36a0bca206cb86ac529495bf0f1e487d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8be1bb7f1f763de87c6e02f02b5d977f"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__toversampler.html#ga8be1bb7f1f763de87c6e02f02b5d977f">tOversampler_tick</a> (tOversampler *const, float input, float *oversample, float(*effectTick)(float))</td></tr>
+<tr class="separator:ga8be1bb7f1f763de87c6e02f02b5d977f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa511cdb16fe967cf40000127319d9f0c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__toversampler.html#gaa511cdb16fe967cf40000127319d9f0c">tOversampler_getLatency</a> (tOversampler *const os)</td></tr>
+<tr class="separator:gaa511cdb16fe967cf40000127319d9f0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Oversampler. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga6c89c7875f0f5679ea59430d9a6c61e8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6c89c7875f0f5679ea59430d9a6c61e8">&#9670;&nbsp;</a></span>tOversampler_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOversampler_init </td>
+          <td>(</td>
+          <td class="paramtype">tOversampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>order</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>extraQuality</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tOversampler to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">oversampler</td><td>A pointer to the tOversampler to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga65ae3bd40ead130ffc4a81d47bdc61fe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga65ae3bd40ead130ffc4a81d47bdc61fe">&#9670;&nbsp;</a></span>tOversampler_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOversampler_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tOversampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>order</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>extraQuality</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tOversampler to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">oversampler</td><td>A pointer to the tOversampler to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga809c183c7443aa77ae6233e8c5276218"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga809c183c7443aa77ae6233e8c5276218">&#9670;&nbsp;</a></span>tOversampler_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOversampler_free </td>
+          <td>(</td>
+          <td class="paramtype">tOversampler * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tOversampler from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">oversampler</td><td>A pointer to the tOversampler to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga274c2b3d123628c2ecbb3e77d0f9bd3b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga274c2b3d123628c2ecbb3e77d0f9bd3b">&#9670;&nbsp;</a></span>tOversampler_upsample()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tOversampler_upsample </td>
+          <td>(</td>
+          <td class="paramtype">tOversampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>output</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">oversampler</td><td>A pointer to the relevant tOversampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga36a0bca206cb86ac529495bf0f1e487d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga36a0bca206cb86ac529495bf0f1e487d">&#9670;&nbsp;</a></span>tOversampler_downsample()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tOversampler_downsample </td>
+          <td>(</td>
+          <td class="paramtype">tOversampler *const&#160;</td>
+          <td class="paramname"><em>os</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">oversampler</td><td>A pointer to the relevant tOversampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8be1bb7f1f763de87c6e02f02b5d977f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8be1bb7f1f763de87c6e02f02b5d977f">&#9670;&nbsp;</a></span>tOversampler_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tOversampler_tick </td>
+          <td>(</td>
+          <td class="paramtype">tOversampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>oversample</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float(*)(float)&#160;</td>
+          <td class="paramname"><em>effectTick</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">oversampler</td><td>A pointer to the relevant tOversampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa511cdb16fe967cf40000127319d9f0c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa511cdb16fe967cf40000127319d9f0c">&#9670;&nbsp;</a></span>tOversampler_getLatency()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tOversampler_getLatency </td>
+          <td>(</td>
+          <td class="paramtype">tOversampler *const&#160;</td>
+          <td class="paramname"><em>os</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">oversampler</td><td>A pointer to the relevant tOversampler.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tperioddetection.html
@@ -1,0 +1,389 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tPeriodDetection</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tPeriodDetection<div class="ingroups"><a class="el" href="group__analysis.html">Analysis</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Period detection algorithm from Katja Vetters <a href="http://www.katjaas.nl/helmholtz/helmholtz.html">http://www.katjaas.nl/helmholtz/helmholtz.html</a>.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga94c9cff1d6cb0f0d6a70fdeb8764cdb0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetection.html#ga94c9cff1d6cb0f0d6a70fdeb8764cdb0">tPeriodDetection_free</a> (tPeriodDetection *const)</td></tr>
+<tr class="memdesc:ga94c9cff1d6cb0f0d6a70fdeb8764cdb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tPeriodDetection from its mempool.  <a href="group__tperioddetection.html#ga94c9cff1d6cb0f0d6a70fdeb8764cdb0">More...</a><br /></td></tr>
+<tr class="separator:ga94c9cff1d6cb0f0d6a70fdeb8764cdb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga18cf97615547a615aec4b183da82e8ee"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetection.html#ga18cf97615547a615aec4b183da82e8ee">tPeriodDetection_tick</a> (tPeriodDetection *const, float sample)</td></tr>
+<tr class="separator:ga18cf97615547a615aec4b183da82e8ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga04f0fa73e75e8fc128243515b039c474"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetection.html#ga04f0fa73e75e8fc128243515b039c474">tPeriodDetection_getPeriod</a> (tPeriodDetection *const)</td></tr>
+<tr class="separator:ga04f0fa73e75e8fc128243515b039c474"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga207a7ec884eebc58c9cd9f17518d5a1b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetection.html#ga207a7ec884eebc58c9cd9f17518d5a1b">tPeriodDetection_setHopSize</a> (tPeriodDetection *const, int hs)</td></tr>
+<tr class="separator:ga207a7ec884eebc58c9cd9f17518d5a1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9a3ed4fe9806b0ee691b56090cef4339"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetection.html#ga9a3ed4fe9806b0ee691b56090cef4339">tPeriodDetection_setWindowSize</a> (tPeriodDetection *const, int ws)</td></tr>
+<tr class="separator:ga9a3ed4fe9806b0ee691b56090cef4339"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2249345fb1cb419173b35ef258cf4248"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetection.html#ga2249345fb1cb419173b35ef258cf4248">tPeriodDetection_setFidelityThreshold</a> (tPeriodDetection *const, float threshold)</td></tr>
+<tr class="separator:ga2249345fb1cb419173b35ef258cf4248"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga95602fa326fda0ab685a626508166d15"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetection.html#ga95602fa326fda0ab685a626508166d15">tPeriodDetection_setAlpha</a> (tPeriodDetection *const, float alpha)</td></tr>
+<tr class="separator:ga95602fa326fda0ab685a626508166d15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga49b5e95b84c6e101abac2ab7ec0cdebd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetection.html#ga49b5e95b84c6e101abac2ab7ec0cdebd">tPeriodDetection_setTolerance</a> (tPeriodDetection *const, float tolerance)</td></tr>
+<tr class="separator:ga49b5e95b84c6e101abac2ab7ec0cdebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Period detection algorithm from Katja Vetters <a href="http://www.katjaas.nl/helmholtz/helmholtz.html">http://www.katjaas.nl/helmholtz/helmholtz.html</a>. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga94c9cff1d6cb0f0d6a70fdeb8764cdb0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga94c9cff1d6cb0f0d6a70fdeb8764cdb0">&#9670;&nbsp;</a></span>tPeriodDetection_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPeriodDetection_free </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetection * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tPeriodDetection from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the tPeriodDetection to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga18cf97615547a615aec4b183da82e8ee"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga18cf97615547a615aec4b183da82e8ee">&#9670;&nbsp;</a></span>tPeriodDetection_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPeriodDetection_tick </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetection * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sample</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the relevant tPeriodDetection. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga04f0fa73e75e8fc128243515b039c474"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga04f0fa73e75e8fc128243515b039c474">&#9670;&nbsp;</a></span>tPeriodDetection_getPeriod()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPeriodDetection_getPeriod </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetection * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the relevant tPeriodDetection. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The detected period. </dd></dl>
+
+</div>
+</div>
+<a id="ga207a7ec884eebc58c9cd9f17518d5a1b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga207a7ec884eebc58c9cd9f17518d5a1b">&#9670;&nbsp;</a></span>tPeriodDetection_setHopSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPeriodDetection_setHopSize </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetection * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>hs</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the relevant tPeriodDetection. </td></tr>
+    <tr><td class="paramname">hopSize</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9a3ed4fe9806b0ee691b56090cef4339"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9a3ed4fe9806b0ee691b56090cef4339">&#9670;&nbsp;</a></span>tPeriodDetection_setWindowSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPeriodDetection_setWindowSize </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetection * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>ws</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the relevant tPeriodDetection. </td></tr>
+    <tr><td class="paramname">windowSize</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2249345fb1cb419173b35ef258cf4248"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2249345fb1cb419173b35ef258cf4248">&#9670;&nbsp;</a></span>tPeriodDetection_setFidelityThreshold()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPeriodDetection_setFidelityThreshold </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetection * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>threshold</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the relevant tPeriodDetection. </td></tr>
+    <tr><td class="paramname">threshold</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga95602fa326fda0ab685a626508166d15"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga95602fa326fda0ab685a626508166d15">&#9670;&nbsp;</a></span>tPeriodDetection_setAlpha()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPeriodDetection_setAlpha </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetection * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>alpha</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the relevant tPeriodDetection. </td></tr>
+    <tr><td class="paramname">alpha</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga49b5e95b84c6e101abac2ab7ec0cdebd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga49b5e95b84c6e101abac2ab7ec0cdebd">&#9670;&nbsp;</a></span>tPeriodDetection_setTolerance()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPeriodDetection_setTolerance </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetection * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>tolerance</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detection</td><td>A pointer to the relevant tPeriodDetection. </td></tr>
+    <tr><td class="paramname">tolerance</td><td> </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tperioddetector.html
@@ -1,0 +1,498 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tPeriodDetector</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tPeriodDetector<div class="ingroups"><a class="el" href="group__analysis.html">Analysis</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Period detection algorithm from Joel de Guzman's Q Audio DSP Library.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaa0947f407eba0d205dfdb3f5221e8a68"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetector.html#gaa0947f407eba0d205dfdb3f5221e8a68">tPeriodDetector_init</a> (tPeriodDetector *const detector, float lowestFreq, float highestFreq, float hysteresis, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gaa0947f407eba0d205dfdb3f5221e8a68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPeriodDetector to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tperioddetector.html#gaa0947f407eba0d205dfdb3f5221e8a68">More...</a><br /></td></tr>
+<tr class="separator:gaa0947f407eba0d205dfdb3f5221e8a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga03431f353481718a4e573f4df4a0161f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetector.html#ga03431f353481718a4e573f4df4a0161f">tPeriodDetector_initToPool</a> (tPeriodDetector *const detector, float lowestFreq, float highestFreq, float hysteresis, tMempool *const mempool)</td></tr>
+<tr class="memdesc:ga03431f353481718a4e573f4df4a0161f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPeriodDetector to a specified mempool.  <a href="group__tperioddetector.html#ga03431f353481718a4e573f4df4a0161f">More...</a><br /></td></tr>
+<tr class="separator:ga03431f353481718a4e573f4df4a0161f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga55e2ad80c68f2fbf0cafceee206abf3f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetector.html#ga55e2ad80c68f2fbf0cafceee206abf3f">tPeriodDetector_free</a> (tPeriodDetector *const detector)</td></tr>
+<tr class="memdesc:ga55e2ad80c68f2fbf0cafceee206abf3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tPeriodDetector from its mempool.  <a href="group__tperioddetector.html#ga55e2ad80c68f2fbf0cafceee206abf3f">More...</a><br /></td></tr>
+<tr class="separator:ga55e2ad80c68f2fbf0cafceee206abf3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaed4bf4a51580ba6209dfe5d35a235644"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetector.html#gaed4bf4a51580ba6209dfe5d35a235644">tPeriodDetector_tick</a> (tPeriodDetector *const detector, float sample)</td></tr>
+<tr class="separator:gaed4bf4a51580ba6209dfe5d35a235644"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga025e1bc096ca88fc2f6e493513f0d6fb"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetector.html#ga025e1bc096ca88fc2f6e493513f0d6fb">tPeriodDetector_getPeriod</a> (tPeriodDetector *const detector)</td></tr>
+<tr class="memdesc:ga025e1bc096ca88fc2f6e493513f0d6fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the periodicity for a given harmonic of the detected pitch.  <a href="group__tperioddetector.html#ga025e1bc096ca88fc2f6e493513f0d6fb">More...</a><br /></td></tr>
+<tr class="separator:ga025e1bc096ca88fc2f6e493513f0d6fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9e836c21a0dcabe9f3438bc56e671f39"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetector.html#ga9e836c21a0dcabe9f3438bc56e671f39">tPeriodDetector_getPeriodicity</a> (tPeriodDetector *const detector)</td></tr>
+<tr class="separator:ga9e836c21a0dcabe9f3438bc56e671f39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4a66a46a4a6bea562bae63640e6855a5"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetector.html#ga4a66a46a4a6bea562bae63640e6855a5">tPeriodDetector_harmonic</a> (tPeriodDetector *const detector, int harmonicIndex)</td></tr>
+<tr class="separator:ga4a66a46a4a6bea562bae63640e6855a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6bea587938466ba988a6e716446975ed"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetector.html#ga6bea587938466ba988a6e716446975ed">tPeriodDetector_predictPeriod</a> (tPeriodDetector *const detector)</td></tr>
+<tr class="separator:ga6bea587938466ba988a6e716446975ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3d58e36fafa3e5b5102175e2c9062010"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetector.html#ga3d58e36fafa3e5b5102175e2c9062010">tPeriodDetector_isReady</a> (tPeriodDetector *const detector)</td></tr>
+<tr class="separator:ga3d58e36fafa3e5b5102175e2c9062010"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad7d111b4c8dc6e7428ff2facdf90092a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetector.html#gad7d111b4c8dc6e7428ff2facdf90092a">tPeriodDetector_isReset</a> (tPeriodDetector *const detector)</td></tr>
+<tr class="separator:gad7d111b4c8dc6e7428ff2facdf90092a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3157c7b7e210eafb0286aef6f1843f94"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tperioddetector.html#ga3157c7b7e210eafb0286aef6f1843f94">tPeriodDetector_setHysteresis</a> (tPeriodDetector *const detector, float hysteresis)</td></tr>
+<tr class="memdesc:ga3157c7b7e210eafb0286aef6f1843f94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the hysteresis used in zero crossing detection.  <a href="group__tperioddetector.html#ga3157c7b7e210eafb0286aef6f1843f94">More...</a><br /></td></tr>
+<tr class="separator:ga3157c7b7e210eafb0286aef6f1843f94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Period detection algorithm from Joel de Guzman's Q Audio DSP Library. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gaa0947f407eba0d205dfdb3f5221e8a68"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa0947f407eba0d205dfdb3f5221e8a68">&#9670;&nbsp;</a></span>tPeriodDetector_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPeriodDetector_init </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>lowestFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>highestFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>hysteresis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPeriodDetector to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga03431f353481718a4e573f4df4a0161f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga03431f353481718a4e573f4df4a0161f">&#9670;&nbsp;</a></span>tPeriodDetector_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPeriodDetector_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>lowestFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>highestFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>hysteresis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPeriodDetector to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga55e2ad80c68f2fbf0cafceee206abf3f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga55e2ad80c68f2fbf0cafceee206abf3f">&#9670;&nbsp;</a></span>tPeriodDetector_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPeriodDetector_free </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tPeriodDetector from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the tPeriodDetector to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaed4bf4a51580ba6209dfe5d35a235644"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaed4bf4a51580ba6209dfe5d35a235644">&#9670;&nbsp;</a></span>tPeriodDetector_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tPeriodDetector_tick </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sample</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga025e1bc096ca88fc2f6e493513f0d6fb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga025e1bc096ca88fc2f6e493513f0d6fb">&#9670;&nbsp;</a></span>tPeriodDetector_getPeriod()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPeriodDetector_getPeriod </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the periodicity for a given harmonic of the detected pitch. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9e836c21a0dcabe9f3438bc56e671f39"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9e836c21a0dcabe9f3438bc56e671f39">&#9670;&nbsp;</a></span>tPeriodDetector_getPeriodicity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPeriodDetector_getPeriodicity </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga4a66a46a4a6bea562bae63640e6855a5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4a66a46a4a6bea562bae63640e6855a5">&#9670;&nbsp;</a></span>tPeriodDetector_harmonic()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPeriodDetector_harmonic </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>harmonicIndex</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6bea587938466ba988a6e716446975ed"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6bea587938466ba988a6e716446975ed">&#9670;&nbsp;</a></span>tPeriodDetector_predictPeriod()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPeriodDetector_predictPeriod </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3d58e36fafa3e5b5102175e2c9062010"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3d58e36fafa3e5b5102175e2c9062010">&#9670;&nbsp;</a></span>tPeriodDetector_isReady()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tPeriodDetector_isReady </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad7d111b4c8dc6e7428ff2facdf90092a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad7d111b4c8dc6e7428ff2facdf90092a">&#9670;&nbsp;</a></span>tPeriodDetector_isReset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tPeriodDetector_isReset </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3157c7b7e210eafb0286aef6f1843f94"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3157c7b7e210eafb0286aef6f1843f94">&#9670;&nbsp;</a></span>tPeriodDetector_setHysteresis()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPeriodDetector_setHysteresis </td>
+          <td>(</td>
+          <td class="paramtype">tPeriodDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>hysteresis</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the hysteresis used in zero crossing detection. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tPeriodDetector. </td></tr>
+    <tr><td class="paramname">hysteresis</td><td>The hysteresis in decibels. Defaults to -40db. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tphasor.html
@@ -1,0 +1,281 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tPhasor</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tPhasor<div class="ingroups"><a class="el" href="group__oscillators.html">Oscillators</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Aliasing phasor.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaef54a192792ded6d1e53a0839b55bb4a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tphasor.html#gaef54a192792ded6d1e53a0839b55bb4a">tPhasor_init</a> (tPhasor *const osc, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gaef54a192792ded6d1e53a0839b55bb4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPhasor to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tphasor.html#gaef54a192792ded6d1e53a0839b55bb4a">More...</a><br /></td></tr>
+<tr class="separator:gaef54a192792ded6d1e53a0839b55bb4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b98ada7d63395e6796a9ddeb1dd69d2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tphasor.html#ga7b98ada7d63395e6796a9ddeb1dd69d2">tPhasor_initToPool</a> (tPhasor *const osc, tMempool *const)</td></tr>
+<tr class="memdesc:ga7b98ada7d63395e6796a9ddeb1dd69d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPhasor to a specified mempool.  <a href="group__tphasor.html#ga7b98ada7d63395e6796a9ddeb1dd69d2">More...</a><br /></td></tr>
+<tr class="separator:ga7b98ada7d63395e6796a9ddeb1dd69d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae86aae9fa656c303dc02fabacd4bf9a9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tphasor.html#gae86aae9fa656c303dc02fabacd4bf9a9">tPhasor_free</a> (tPhasor *const osc)</td></tr>
+<tr class="memdesc:gae86aae9fa656c303dc02fabacd4bf9a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tPhasor from its mempool.  <a href="group__tphasor.html#gae86aae9fa656c303dc02fabacd4bf9a9">More...</a><br /></td></tr>
+<tr class="separator:gae86aae9fa656c303dc02fabacd4bf9a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9a1e7b8a8f9bbcb74d52b95cf0ec1d6e"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tphasor.html#ga9a1e7b8a8f9bbcb74d52b95cf0ec1d6e">tPhasor_tick</a> (tPhasor *const osc)</td></tr>
+<tr class="separator:ga9a1e7b8a8f9bbcb74d52b95cf0ec1d6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab19f35f26a5de1353623ed2ecd8c92b7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tphasor.html#gab19f35f26a5de1353623ed2ecd8c92b7">tPhasor_setFreq</a> (tPhasor *const osc, float freq)</td></tr>
+<tr class="separator:gab19f35f26a5de1353623ed2ecd8c92b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Aliasing phasor. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gaef54a192792ded6d1e53a0839b55bb4a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaef54a192792ded6d1e53a0839b55bb4a">&#9670;&nbsp;</a></span>tPhasor_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPhasor_init </td>
+          <td>(</td>
+          <td class="paramtype">tPhasor *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPhasor to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tPhasor to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7b98ada7d63395e6796a9ddeb1dd69d2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7b98ada7d63395e6796a9ddeb1dd69d2">&#9670;&nbsp;</a></span>tPhasor_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPhasor_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tPhasor *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPhasor to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tPhasor to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae86aae9fa656c303dc02fabacd4bf9a9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae86aae9fa656c303dc02fabacd4bf9a9">&#9670;&nbsp;</a></span>tPhasor_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPhasor_free </td>
+          <td>(</td>
+          <td class="paramtype">tPhasor *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tPhasor from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tPhasor to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9a1e7b8a8f9bbcb74d52b95cf0ec1d6e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9a1e7b8a8f9bbcb74d52b95cf0ec1d6e">&#9670;&nbsp;</a></span>tPhasor_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPhasor_tick </td>
+          <td>(</td>
+          <td class="paramtype">tPhasor *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tPhasor. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab19f35f26a5de1353623ed2ecd8c92b7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab19f35f26a5de1353623ed2ecd8c92b7">&#9670;&nbsp;</a></span>tPhasor_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPhasor_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tPhasor *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tPhasor.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tpitchdetector.html
@@ -1,0 +1,439 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tPitchDetector</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tPitchDetector<div class="ingroups"><a class="el" href="group__analysis.html">Analysis</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Pitch detection algorithm from Joel de Guzman's Q Audio DSP Library.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga99e55d649e58523aa706c711082585f6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpitchdetector.html#ga99e55d649e58523aa706c711082585f6">tPitchDetector_init</a> (tPitchDetector *const detector, float lowestFreq, float highestFreq, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga99e55d649e58523aa706c711082585f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPitchDetector to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tpitchdetector.html#ga99e55d649e58523aa706c711082585f6">More...</a><br /></td></tr>
+<tr class="separator:ga99e55d649e58523aa706c711082585f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaa325f08c7c80ecace14fcd7f934d211"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpitchdetector.html#gaaa325f08c7c80ecace14fcd7f934d211">tPitchDetector_initToPool</a> (tPitchDetector *const detector, float lowestFreq, float highestFreq, tMempool *const mempool)</td></tr>
+<tr class="memdesc:gaaa325f08c7c80ecace14fcd7f934d211"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPitchDetector to a specified mempool.  <a href="group__tpitchdetector.html#gaaa325f08c7c80ecace14fcd7f934d211">More...</a><br /></td></tr>
+<tr class="separator:gaaa325f08c7c80ecace14fcd7f934d211"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga21a8caf85569fa4366e83aa776831273"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpitchdetector.html#ga21a8caf85569fa4366e83aa776831273">tPitchDetector_free</a> (tPitchDetector *const detector)</td></tr>
+<tr class="memdesc:ga21a8caf85569fa4366e83aa776831273"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tPitchDetector from its mempool.  <a href="group__tpitchdetector.html#ga21a8caf85569fa4366e83aa776831273">More...</a><br /></td></tr>
+<tr class="separator:ga21a8caf85569fa4366e83aa776831273"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ff9d62bb716a57fce8ffeb5558c4890"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpitchdetector.html#ga7ff9d62bb716a57fce8ffeb5558c4890">tPitchDetector_tick</a> (tPitchDetector *const detector, float sample)</td></tr>
+<tr class="separator:ga7ff9d62bb716a57fce8ffeb5558c4890"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5b4f011cdb1812ab29022e4851e81c7e"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpitchdetector.html#ga5b4f011cdb1812ab29022e4851e81c7e">tPitchDetector_getFrequency</a> (tPitchDetector *const detector)</td></tr>
+<tr class="separator:ga5b4f011cdb1812ab29022e4851e81c7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad99b1eb3569ac87a54a31ddc7ec78eea"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpitchdetector.html#gad99b1eb3569ac87a54a31ddc7ec78eea">tPitchDetector_getPeriodicity</a> (tPitchDetector *const detector)</td></tr>
+<tr class="separator:gad99b1eb3569ac87a54a31ddc7ec78eea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae830c20dc77369d3055f23cd0fc51435"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpitchdetector.html#gae830c20dc77369d3055f23cd0fc51435">tPitchDetector_harmonic</a> (tPitchDetector *const detector, int harmonicIndex)</td></tr>
+<tr class="separator:gae830c20dc77369d3055f23cd0fc51435"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab29d82d5391480c9310b9c5074576966"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpitchdetector.html#gab29d82d5391480c9310b9c5074576966">tPitchDetector_predictFrequency</a> (tPitchDetector *const detector)</td></tr>
+<tr class="separator:gab29d82d5391480c9310b9c5074576966"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga65ead0c2f0f3f30b2e64f5a6aa50d6f9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpitchdetector.html#ga65ead0c2f0f3f30b2e64f5a6aa50d6f9">tPitchDetector_setHysteresis</a> (tPitchDetector *const detector, float hysteresis)</td></tr>
+<tr class="memdesc:ga65ead0c2f0f3f30b2e64f5a6aa50d6f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the hysteresis used in zero crossing detection.  <a href="group__tpitchdetector.html#ga65ead0c2f0f3f30b2e64f5a6aa50d6f9">More...</a><br /></td></tr>
+<tr class="separator:ga65ead0c2f0f3f30b2e64f5a6aa50d6f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Pitch detection algorithm from Joel de Guzman's Q Audio DSP Library. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga99e55d649e58523aa706c711082585f6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga99e55d649e58523aa706c711082585f6">&#9670;&nbsp;</a></span>tPitchDetector_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPitchDetector_init </td>
+          <td>(</td>
+          <td class="paramtype">tPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>lowestFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>highestFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPitchDetector to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tPitchDetector. </td></tr>
+    <tr><td class="paramname">lowestFreq</td><td></td></tr>
+    <tr><td class="paramname">highestFreq</td><td></td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaaa325f08c7c80ecace14fcd7f934d211"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaaa325f08c7c80ecace14fcd7f934d211">&#9670;&nbsp;</a></span>tPitchDetector_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPitchDetector_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>lowestFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>highestFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPitchDetector to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tPitchDetector. </td></tr>
+    <tr><td class="paramname">lowestFreq</td><td></td></tr>
+    <tr><td class="paramname">highestFreq</td><td></td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga21a8caf85569fa4366e83aa776831273"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga21a8caf85569fa4366e83aa776831273">&#9670;&nbsp;</a></span>tPitchDetector_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPitchDetector_free </td>
+          <td>(</td>
+          <td class="paramtype">tPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tPitchDetector from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tPitchDetector. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7ff9d62bb716a57fce8ffeb5558c4890"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7ff9d62bb716a57fce8ffeb5558c4890">&#9670;&nbsp;</a></span>tPitchDetector_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tPitchDetector_tick </td>
+          <td>(</td>
+          <td class="paramtype">tPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sample</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tPitchDetector. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5b4f011cdb1812ab29022e4851e81c7e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5b4f011cdb1812ab29022e4851e81c7e">&#9670;&nbsp;</a></span>tPitchDetector_getFrequency()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPitchDetector_getFrequency </td>
+          <td>(</td>
+          <td class="paramtype">tPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tPitchDetector. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad99b1eb3569ac87a54a31ddc7ec78eea"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad99b1eb3569ac87a54a31ddc7ec78eea">&#9670;&nbsp;</a></span>tPitchDetector_getPeriodicity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPitchDetector_getPeriodicity </td>
+          <td>(</td>
+          <td class="paramtype">tPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tPitchDetector. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae830c20dc77369d3055f23cd0fc51435"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae830c20dc77369d3055f23cd0fc51435">&#9670;&nbsp;</a></span>tPitchDetector_harmonic()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPitchDetector_harmonic </td>
+          <td>(</td>
+          <td class="paramtype">tPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>harmonicIndex</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tPitchDetector. </td></tr>
+    <tr><td class="paramname">harmonicIndex</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab29d82d5391480c9310b9c5074576966"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab29d82d5391480c9310b9c5074576966">&#9670;&nbsp;</a></span>tPitchDetector_predictFrequency()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPitchDetector_predictFrequency </td>
+          <td>(</td>
+          <td class="paramtype">tPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tPitchDetector. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga65ead0c2f0f3f30b2e64f5a6aa50d6f9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga65ead0c2f0f3f30b2e64f5a6aa50d6f9">&#9670;&nbsp;</a></span>tPitchDetector_setHysteresis()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPitchDetector_setHysteresis </td>
+          <td>(</td>
+          <td class="paramtype">tPitchDetector *const&#160;</td>
+          <td class="paramname"><em>detector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>hysteresis</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the hysteresis used in zero crossing detection. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">detector</td><td>A pointer to the relevant tPitchDetector. </td></tr>
+    <tr><td class="paramname">hysteresis</td><td>The hysteresis in decibels. Defaults to -40db.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tpitchshift.html
@@ -1,0 +1,139 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tPitchShift</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tPitchShift<div class="ingroups"><a class="el" href="group__effects.html">Effects</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>SOLAD-based pitch shifter.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaa11d2bf41d69ed89fe86f5840fe1b612"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpitchshift.html#gaa11d2bf41d69ed89fe86f5840fe1b612">tPitchShift_free</a> (tPitchShift *const)</td></tr>
+<tr class="memdesc:gaa11d2bf41d69ed89fe86f5840fe1b612"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tPitchShift from its mempool.  <a href="group__tpitchshift.html#gaa11d2bf41d69ed89fe86f5840fe1b612">More...</a><br /></td></tr>
+<tr class="separator:gaa11d2bf41d69ed89fe86f5840fe1b612"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>SOLAD-based pitch shifter. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gaa11d2bf41d69ed89fe86f5840fe1b612"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa11d2bf41d69ed89fe86f5840fe1b612">&#9670;&nbsp;</a></span>tPitchShift_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPitchShift_free </td>
+          <td>(</td>
+          <td class="paramtype">tPitchShift * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tPitchShift from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pitchshift</td><td>A pointer to the tPitchShift to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tpluck.html
@@ -1,0 +1,490 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tPluck</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tPluck<div class="ingroups"><a class="el" href="group__physical.html">Physical Models</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Karplus-Strong model.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gac7b5e386d09e10b097545b7f9ee3d161"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpluck.html#gac7b5e386d09e10b097545b7f9ee3d161">tPluck_init</a> (tPluck *const, float lowestFrequency, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gac7b5e386d09e10b097545b7f9ee3d161"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPluck to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tpluck.html#gac7b5e386d09e10b097545b7f9ee3d161">More...</a><br /></td></tr>
+<tr class="separator:gac7b5e386d09e10b097545b7f9ee3d161"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6fce342b82d04d5b30ebeadc0ac2102d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpluck.html#ga6fce342b82d04d5b30ebeadc0ac2102d">tPluck_initToPool</a> (tPluck *const, float lowestFrequency, tMempool *const)</td></tr>
+<tr class="memdesc:ga6fce342b82d04d5b30ebeadc0ac2102d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPluck to a specified mempool.  <a href="group__tpluck.html#ga6fce342b82d04d5b30ebeadc0ac2102d">More...</a><br /></td></tr>
+<tr class="separator:ga6fce342b82d04d5b30ebeadc0ac2102d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab05fa8211c49e8e1301882ba0dfb4933"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpluck.html#gab05fa8211c49e8e1301882ba0dfb4933">tPluck_free</a> (tPluck *const)</td></tr>
+<tr class="memdesc:gab05fa8211c49e8e1301882ba0dfb4933"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tPluck from its mempool.  <a href="group__tpluck.html#gab05fa8211c49e8e1301882ba0dfb4933">More...</a><br /></td></tr>
+<tr class="separator:gab05fa8211c49e8e1301882ba0dfb4933"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5abd143bdbe1ff441491b4a09218e967"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpluck.html#ga5abd143bdbe1ff441491b4a09218e967">tPluck_tick</a> (tPluck *const)</td></tr>
+<tr class="separator:ga5abd143bdbe1ff441491b4a09218e967"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4e23f3d5ec42910130c176662e9d7e91"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpluck.html#ga4e23f3d5ec42910130c176662e9d7e91">tPluck_pluck</a> (tPluck *const, float amplitude)</td></tr>
+<tr class="memdesc:ga4e23f3d5ec42910130c176662e9d7e91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pluck the string.  <a href="group__tpluck.html#ga4e23f3d5ec42910130c176662e9d7e91">More...</a><br /></td></tr>
+<tr class="separator:ga4e23f3d5ec42910130c176662e9d7e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4aa769eb18600d5f777a2d33e18fb7cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpluck.html#ga4aa769eb18600d5f777a2d33e18fb7cb">tPluck_noteOn</a> (tPluck *const, float frequency, float amplitude)</td></tr>
+<tr class="memdesc:ga4aa769eb18600d5f777a2d33e18fb7cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start a note with the given frequency and amplitude.  <a href="group__tpluck.html#ga4aa769eb18600d5f777a2d33e18fb7cb">More...</a><br /></td></tr>
+<tr class="separator:ga4aa769eb18600d5f777a2d33e18fb7cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga215b593535f5bff5a6887ce905bc7602"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpluck.html#ga215b593535f5bff5a6887ce905bc7602">tPluck_noteOff</a> (tPluck *const, float amplitude)</td></tr>
+<tr class="memdesc:ga215b593535f5bff5a6887ce905bc7602"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop a note with the given amplitude (speed of decay)  <a href="group__tpluck.html#ga215b593535f5bff5a6887ce905bc7602">More...</a><br /></td></tr>
+<tr class="separator:ga215b593535f5bff5a6887ce905bc7602"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9f20651baa36041ba43836dbe7c1de5b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpluck.html#ga9f20651baa36041ba43836dbe7c1de5b">tPluck_setFrequency</a> (tPluck *const, float frequency)</td></tr>
+<tr class="memdesc:ga9f20651baa36041ba43836dbe7c1de5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set instrument parameters for a particular frequency.  <a href="group__tpluck.html#ga9f20651baa36041ba43836dbe7c1de5b">More...</a><br /></td></tr>
+<tr class="separator:ga9f20651baa36041ba43836dbe7c1de5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga371e8ab225a043b3415979766647d155"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpluck.html#ga371e8ab225a043b3415979766647d155">tPluck_controlChange</a> (tPluck *const, int number, float value)</td></tr>
+<tr class="memdesc:ga371e8ab225a043b3415979766647d155"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform the control change specified by <em>number</em> and <em>value</em> (0.0 - 128.0).  <a href="group__tpluck.html#ga371e8ab225a043b3415979766647d155">More...</a><br /></td></tr>
+<tr class="separator:ga371e8ab225a043b3415979766647d155"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8a2365d67f4b17a4f578fbb14f280e74"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpluck.html#ga8a2365d67f4b17a4f578fbb14f280e74">tPluck_getLastOut</a> (tPluck *const)</td></tr>
+<tr class="separator:ga8a2365d67f4b17a4f578fbb14f280e74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Karplus-Strong model. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gac7b5e386d09e10b097545b7f9ee3d161"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac7b5e386d09e10b097545b7f9ee3d161">&#9670;&nbsp;</a></span>tPluck_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPluck_init </td>
+          <td>(</td>
+          <td class="paramtype">tPluck * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>lowestFrequency</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPluck to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the tPluck to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6fce342b82d04d5b30ebeadc0ac2102d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6fce342b82d04d5b30ebeadc0ac2102d">&#9670;&nbsp;</a></span>tPluck_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPluck_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tPluck * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>lowestFrequency</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPluck to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the tPluck to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab05fa8211c49e8e1301882ba0dfb4933"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab05fa8211c49e8e1301882ba0dfb4933">&#9670;&nbsp;</a></span>tPluck_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPluck_free </td>
+          <td>(</td>
+          <td class="paramtype">tPluck * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tPluck from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the tPluck to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5abd143bdbe1ff441491b4a09218e967"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5abd143bdbe1ff441491b4a09218e967">&#9670;&nbsp;</a></span>tPluck_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPluck_tick </td>
+          <td>(</td>
+          <td class="paramtype">tPluck * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tPluck. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga4e23f3d5ec42910130c176662e9d7e91"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4e23f3d5ec42910130c176662e9d7e91">&#9670;&nbsp;</a></span>tPluck_pluck()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPluck_pluck </td>
+          <td>(</td>
+          <td class="paramtype">tPluck * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>amplitude</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Pluck the string. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tPluck. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga4aa769eb18600d5f777a2d33e18fb7cb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4aa769eb18600d5f777a2d33e18fb7cb">&#9670;&nbsp;</a></span>tPluck_noteOn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPluck_noteOn </td>
+          <td>(</td>
+          <td class="paramtype">tPluck * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>frequency</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>amplitude</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Start a note with the given frequency and amplitude. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tPluck. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga215b593535f5bff5a6887ce905bc7602"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga215b593535f5bff5a6887ce905bc7602">&#9670;&nbsp;</a></span>tPluck_noteOff()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPluck_noteOff </td>
+          <td>(</td>
+          <td class="paramtype">tPluck * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>amplitude</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Stop a note with the given amplitude (speed of decay) </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tPluck. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9f20651baa36041ba43836dbe7c1de5b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9f20651baa36041ba43836dbe7c1de5b">&#9670;&nbsp;</a></span>tPluck_setFrequency()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPluck_setFrequency </td>
+          <td>(</td>
+          <td class="paramtype">tPluck * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>frequency</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set instrument parameters for a particular frequency. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tPluck. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga371e8ab225a043b3415979766647d155"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga371e8ab225a043b3415979766647d155">&#9670;&nbsp;</a></span>tPluck_controlChange()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPluck_controlChange </td>
+          <td>(</td>
+          <td class="paramtype">tPluck * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>number</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Perform the control change specified by <em>number</em> and <em>value</em> (0.0 - 128.0). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tPluck. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8a2365d67f4b17a4f578fbb14f280e74"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8a2365d67f4b17a4f578fbb14f280e74">&#9670;&nbsp;</a></span>tPluck_getLastOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPluck_getLastOut </td>
+          <td>(</td>
+          <td class="paramtype">tPluck * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tPluck. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tpolezero.html
@@ -1,0 +1,520 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tPoleZero</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tPoleZero<div class="ingroups"><a class="el" href="group__filters.html">Filters</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>PoleZero filter, reimplemented from STK (Cook and Scavone).  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga6b6829aefeb5180022ae0b7e8d5b9b1c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpolezero.html#ga6b6829aefeb5180022ae0b7e8d5b9b1c">tPoleZero_init</a> (tPoleZero *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga6b6829aefeb5180022ae0b7e8d5b9b1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPoleZero to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tpolezero.html#ga6b6829aefeb5180022ae0b7e8d5b9b1c">More...</a><br /></td></tr>
+<tr class="separator:ga6b6829aefeb5180022ae0b7e8d5b9b1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadb9f2207e2217190013543ce210c5dda"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpolezero.html#gadb9f2207e2217190013543ce210c5dda">tPoleZero_initToPool</a> (tPoleZero *const, tMempool *const)</td></tr>
+<tr class="memdesc:gadb9f2207e2217190013543ce210c5dda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPoleZero to a specified mempool.  <a href="group__tpolezero.html#gadb9f2207e2217190013543ce210c5dda">More...</a><br /></td></tr>
+<tr class="separator:gadb9f2207e2217190013543ce210c5dda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf66d289f3a48e83eb6d77acedd7cea74"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpolezero.html#gaf66d289f3a48e83eb6d77acedd7cea74">tPoleZero_free</a> (tPoleZero *const)</td></tr>
+<tr class="memdesc:gaf66d289f3a48e83eb6d77acedd7cea74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tPoleZero from its mempool.  <a href="group__tpolezero.html#gaf66d289f3a48e83eb6d77acedd7cea74">More...</a><br /></td></tr>
+<tr class="separator:gaf66d289f3a48e83eb6d77acedd7cea74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4e024338fe577882f52494f525488d32"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpolezero.html#ga4e024338fe577882f52494f525488d32">tPoleZero_tick</a> (tPoleZero *const, float input)</td></tr>
+<tr class="separator:ga4e024338fe577882f52494f525488d32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga896a83342ee3ea486f171d872b9809b0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpolezero.html#ga896a83342ee3ea486f171d872b9809b0">tPoleZero_setB0</a> (tPoleZero *const, float b0)</td></tr>
+<tr class="separator:ga896a83342ee3ea486f171d872b9809b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4c6d29a676d98f4d57e0f8078ab61279"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpolezero.html#ga4c6d29a676d98f4d57e0f8078ab61279">tPoleZero_setB1</a> (tPoleZero *const, float b1)</td></tr>
+<tr class="separator:ga4c6d29a676d98f4d57e0f8078ab61279"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga118daf1002dcd0d5c24b2d86af9196fb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpolezero.html#ga118daf1002dcd0d5c24b2d86af9196fb">tPoleZero_setA1</a> (tPoleZero *const, float a1)</td></tr>
+<tr class="separator:ga118daf1002dcd0d5c24b2d86af9196fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9b72bcea9b5912e4ecd62c7ea7d99b86"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpolezero.html#ga9b72bcea9b5912e4ecd62c7ea7d99b86">tPoleZero_setCoefficients</a> (tPoleZero *const, float b0, float b1, float a1)</td></tr>
+<tr class="separator:ga9b72bcea9b5912e4ecd62c7ea7d99b86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab978639dd9badc640b1f3a8b6a945b06"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpolezero.html#gab978639dd9badc640b1f3a8b6a945b06">tPoleZero_setAllpass</a> (tPoleZero *const, float coeff)</td></tr>
+<tr class="separator:gab978639dd9badc640b1f3a8b6a945b06"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga863c1114d2a571d158fc74dd7f1ec06c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpolezero.html#ga863c1114d2a571d158fc74dd7f1ec06c">tPoleZero_setBlockZero</a> (tPoleZero *const, float thePole)</td></tr>
+<tr class="separator:ga863c1114d2a571d158fc74dd7f1ec06c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8bdd8dfb8e5c22c7ec820bea559e2fa7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpolezero.html#ga8bdd8dfb8e5c22c7ec820bea559e2fa7">tPoleZero_setGain</a> (tPoleZero *const, float gain)</td></tr>
+<tr class="separator:ga8bdd8dfb8e5c22c7ec820bea559e2fa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>PoleZero filter, reimplemented from STK (Cook and Scavone). </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga6b6829aefeb5180022ae0b7e8d5b9b1c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6b6829aefeb5180022ae0b7e8d5b9b1c">&#9670;&nbsp;</a></span>tPoleZero_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoleZero_init </td>
+          <td>(</td>
+          <td class="paramtype">tPoleZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPoleZero to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tPoleZero to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gadb9f2207e2217190013543ce210c5dda"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gadb9f2207e2217190013543ce210c5dda">&#9670;&nbsp;</a></span>tPoleZero_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoleZero_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tPoleZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPoleZero to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tPoleZero to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf66d289f3a48e83eb6d77acedd7cea74"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf66d289f3a48e83eb6d77acedd7cea74">&#9670;&nbsp;</a></span>tPoleZero_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoleZero_free </td>
+          <td>(</td>
+          <td class="paramtype">tPoleZero * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tPoleZero from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tPoleZero to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga4e024338fe577882f52494f525488d32"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4e024338fe577882f52494f525488d32">&#9670;&nbsp;</a></span>tPoleZero_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPoleZero_tick </td>
+          <td>(</td>
+          <td class="paramtype">tPoleZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tPoleZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga896a83342ee3ea486f171d872b9809b0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga896a83342ee3ea486f171d872b9809b0">&#9670;&nbsp;</a></span>tPoleZero_setB0()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoleZero_setB0 </td>
+          <td>(</td>
+          <td class="paramtype">tPoleZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b0</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tPoleZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga4c6d29a676d98f4d57e0f8078ab61279"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4c6d29a676d98f4d57e0f8078ab61279">&#9670;&nbsp;</a></span>tPoleZero_setB1()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoleZero_setB1 </td>
+          <td>(</td>
+          <td class="paramtype">tPoleZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b1</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tPoleZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga118daf1002dcd0d5c24b2d86af9196fb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga118daf1002dcd0d5c24b2d86af9196fb">&#9670;&nbsp;</a></span>tPoleZero_setA1()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoleZero_setA1 </td>
+          <td>(</td>
+          <td class="paramtype">tPoleZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>a1</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tPoleZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9b72bcea9b5912e4ecd62c7ea7d99b86"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9b72bcea9b5912e4ecd62c7ea7d99b86">&#9670;&nbsp;</a></span>tPoleZero_setCoefficients()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoleZero_setCoefficients </td>
+          <td>(</td>
+          <td class="paramtype">tPoleZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b0</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>a1</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tPoleZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab978639dd9badc640b1f3a8b6a945b06"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab978639dd9badc640b1f3a8b6a945b06">&#9670;&nbsp;</a></span>tPoleZero_setAllpass()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoleZero_setAllpass </td>
+          <td>(</td>
+          <td class="paramtype">tPoleZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>coeff</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tPoleZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga863c1114d2a571d158fc74dd7f1ec06c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga863c1114d2a571d158fc74dd7f1ec06c">&#9670;&nbsp;</a></span>tPoleZero_setBlockZero()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoleZero_setBlockZero </td>
+          <td>(</td>
+          <td class="paramtype">tPoleZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>thePole</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tPoleZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8bdd8dfb8e5c22c7ec820bea559e2fa7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8bdd8dfb8e5c22c7ec820bea559e2fa7">&#9670;&nbsp;</a></span>tPoleZero_setGain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoleZero_setGain </td>
+          <td>(</td>
+          <td class="paramtype">tPoleZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>gain</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tPoleZero.</td></tr>
+  </table>
+  </dd>
+</dl>
+<p> </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tpoly.html
@@ -1,0 +1,900 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tPoly</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tPoly<div class="ingroups"><a class="el" href="group__midi.html">MIDI</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Polyphony handler with glide and pitch bend options.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaf530a73c1d8d8d3e20403c9f33c0ab2e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#gaf530a73c1d8d8d3e20403c9f33c0ab2e">tPoly_init</a> (tPoly *const poly, int maxNumVoices, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gaf530a73c1d8d8d3e20403c9f33c0ab2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPoly to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tpoly.html#gaf530a73c1d8d8d3e20403c9f33c0ab2e">More...</a><br /></td></tr>
+<tr class="separator:gaf530a73c1d8d8d3e20403c9f33c0ab2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9a3b088e0d32366b6d5f675794becf15"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#ga9a3b088e0d32366b6d5f675794becf15">tPoly_initToPool</a> (tPoly *const poly, int maxNumVoices, tMempool *const pool)</td></tr>
+<tr class="memdesc:ga9a3b088e0d32366b6d5f675794becf15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPoly to a specified mempool.  <a href="group__tpoly.html#ga9a3b088e0d32366b6d5f675794becf15">More...</a><br /></td></tr>
+<tr class="separator:ga9a3b088e0d32366b6d5f675794becf15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga03c02b27b16f700b55d8536256d310b5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#ga03c02b27b16f700b55d8536256d310b5">tPoly_free</a> (tPoly *const poly)</td></tr>
+<tr class="memdesc:ga03c02b27b16f700b55d8536256d310b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tPoly from its mempool.  <a href="group__tpoly.html#ga03c02b27b16f700b55d8536256d310b5">More...</a><br /></td></tr>
+<tr class="separator:ga03c02b27b16f700b55d8536256d310b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0a52befe767ed6ea96b26d53952a37ea"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#ga0a52befe767ed6ea96b26d53952a37ea">tPoly_noteOn</a> (tPoly *const poly, int note, uint8_t vel)</td></tr>
+<tr class="memdesc:ga0a52befe767ed6ea96b26d53952a37ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a note with a given velocity to the poly handler.  <a href="group__tpoly.html#ga0a52befe767ed6ea96b26d53952a37ea">More...</a><br /></td></tr>
+<tr class="separator:ga0a52befe767ed6ea96b26d53952a37ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaad8376b6c55995e763ce26d084d23a67"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#gaad8376b6c55995e763ce26d084d23a67">tPoly_noteOff</a> (tPoly *const poly, uint8_t note)</td></tr>
+<tr class="memdesc:gaad8376b6c55995e763ce26d084d23a67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a note from the poly handler.  <a href="group__tpoly.html#gaad8376b6c55995e763ce26d084d23a67">More...</a><br /></td></tr>
+<tr class="separator:gaad8376b6c55995e763ce26d084d23a67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5abdfc6cd4b26b74647cb23a822b0f38"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#ga5abdfc6cd4b26b74647cb23a822b0f38">tPoly_orderedAddToStack</a> (tPoly *const poly, uint8_t note)</td></tr>
+<tr class="separator:ga5abdfc6cd4b26b74647cb23a822b0f38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf3aae31d4b20eb71be39351989bc06d1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#gaf3aae31d4b20eb71be39351989bc06d1">tPoly_setNumVoices</a> (tPoly *const poly, uint8_t numVoices)</td></tr>
+<tr class="memdesc:gaf3aae31d4b20eb71be39351989bc06d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the number of voices available to play notes.  <a href="group__tpoly.html#gaf3aae31d4b20eb71be39351989bc06d1">More...</a><br /></td></tr>
+<tr class="separator:gaf3aae31d4b20eb71be39351989bc06d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9ddfc026e440e208064ce48d655ee317"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#ga9ddfc026e440e208064ce48d655ee317">tPoly_setPitchGlideActive</a> (tPoly *const poly, int isActive)</td></tr>
+<tr class="memdesc:ga9ddfc026e440e208064ce48d655ee317"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set whether pitch glide over note changes in voices is active.  <a href="group__tpoly.html#ga9ddfc026e440e208064ce48d655ee317">More...</a><br /></td></tr>
+<tr class="separator:ga9ddfc026e440e208064ce48d655ee317"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga12e5fba9072b6e7d91d50a2e3c82bc87"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#ga12e5fba9072b6e7d91d50a2e3c82bc87">tPoly_setPitchGlideTime</a> (tPoly *const poly, float t)</td></tr>
+<tr class="memdesc:ga12e5fba9072b6e7d91d50a2e3c82bc87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set how long pitch glide over note changes in voices takes.  <a href="group__tpoly.html#ga12e5fba9072b6e7d91d50a2e3c82bc87">More...</a><br /></td></tr>
+<tr class="separator:ga12e5fba9072b6e7d91d50a2e3c82bc87"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8608941b79fe9ba1b8e92b5a8046a915"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#ga8608941b79fe9ba1b8e92b5a8046a915">tPoly_setPitchBend</a> (tPoly *const poly, float pitchBend)</td></tr>
+<tr class="memdesc:ga8608941b79fe9ba1b8e92b5a8046a915"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the amount of pitch bend.  <a href="group__tpoly.html#ga8608941b79fe9ba1b8e92b5a8046a915">More...</a><br /></td></tr>
+<tr class="separator:ga8608941b79fe9ba1b8e92b5a8046a915"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8dad5daee7f10d0bb59e96ad55ec0402"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#ga8dad5daee7f10d0bb59e96ad55ec0402">tPoly_setBendGlideTime</a> (tPoly *const poly, float t)</td></tr>
+<tr class="separator:ga8dad5daee7f10d0bb59e96ad55ec0402"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f6a93b108ac8654eaa860575d2f1cd5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#ga1f6a93b108ac8654eaa860575d2f1cd5">tPoly_setBendSamplesPerTick</a> (tPoly *const poly, float t)</td></tr>
+<tr class="separator:ga1f6a93b108ac8654eaa860575d2f1cd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf30b4a4aabd43c297d49258acf8e0cb3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#gaf30b4a4aabd43c297d49258acf8e0cb3">tPoly_tickPitch</a> (tPoly *const poly)</td></tr>
+<tr class="memdesc:gaf30b4a4aabd43c297d49258acf8e0cb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute all tick-rate changes in the poly handler's pitch, including glide and bend.  <a href="group__tpoly.html#gaf30b4a4aabd43c297d49258acf8e0cb3">More...</a><br /></td></tr>
+<tr class="separator:gaf30b4a4aabd43c297d49258acf8e0cb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4391da808d7e621ac86944f745a2f729"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#ga4391da808d7e621ac86944f745a2f729">tPoly_tickPitchGlide</a> (tPoly *const poly)</td></tr>
+<tr class="memdesc:ga4391da808d7e621ac86944f745a2f729"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the tick-rate change of the poly handler's pitch glide.  <a href="group__tpoly.html#ga4391da808d7e621ac86944f745a2f729">More...</a><br /></td></tr>
+<tr class="separator:ga4391da808d7e621ac86944f745a2f729"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf1bfa43e0337d0e090d3aa5b074b7825"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#gaf1bfa43e0337d0e090d3aa5b074b7825">tPoly_tickPitchBend</a> (tPoly *const poly)</td></tr>
+<tr class="memdesc:gaf1bfa43e0337d0e090d3aa5b074b7825"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the tick-rate change of the poly handler's pitch bend.  <a href="group__tpoly.html#gaf1bfa43e0337d0e090d3aa5b074b7825">More...</a><br /></td></tr>
+<tr class="separator:gaf1bfa43e0337d0e090d3aa5b074b7825"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad85e4d10bb7e8fa66797ad632186459b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#gad85e4d10bb7e8fa66797ad632186459b">tPoly_getNumVoices</a> (tPoly *const poly)</td></tr>
+<tr class="memdesc:gad85e4d10bb7e8fa66797ad632186459b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current number of voices available to play notes.  <a href="group__tpoly.html#gad85e4d10bb7e8fa66797ad632186459b">More...</a><br /></td></tr>
+<tr class="separator:gad85e4d10bb7e8fa66797ad632186459b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga45962abd5bf3321cedfdb64ab05fd0d7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#ga45962abd5bf3321cedfdb64ab05fd0d7">tPoly_getNumActiveVoices</a> (tPoly *const poly)</td></tr>
+<tr class="memdesc:ga45962abd5bf3321cedfdb64ab05fd0d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of voices currently playing notes.  <a href="group__tpoly.html#ga45962abd5bf3321cedfdb64ab05fd0d7">More...</a><br /></td></tr>
+<tr class="separator:ga45962abd5bf3321cedfdb64ab05fd0d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga39f47e13c92644d07852a7794fe896c4"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#ga39f47e13c92644d07852a7794fe896c4">tPoly_getPitch</a> (tPoly *const poly, uint8_t voice)</td></tr>
+<tr class="memdesc:ga39f47e13c92644d07852a7794fe896c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current pitch of a given voice.  <a href="group__tpoly.html#ga39f47e13c92644d07852a7794fe896c4">More...</a><br /></td></tr>
+<tr class="separator:ga39f47e13c92644d07852a7794fe896c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec4318990ce680cc96df942fd9bd5473"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#gaec4318990ce680cc96df942fd9bd5473">tPoly_getKey</a> (tPoly *const poly, uint8_t voice)</td></tr>
+<tr class="memdesc:gaec4318990ce680cc96df942fd9bd5473"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current MIDI note number of a given voice.  <a href="group__tpoly.html#gaec4318990ce680cc96df942fd9bd5473">More...</a><br /></td></tr>
+<tr class="separator:gaec4318990ce680cc96df942fd9bd5473"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f946c78feaa7db4f443bd105e4c7310"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#ga1f946c78feaa7db4f443bd105e4c7310">tPoly_getVelocity</a> (tPoly *const poly, uint8_t voice)</td></tr>
+<tr class="memdesc:ga1f946c78feaa7db4f443bd105e4c7310"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current MIDI velocity of a given voice.  <a href="group__tpoly.html#ga1f946c78feaa7db4f443bd105e4c7310">More...</a><br /></td></tr>
+<tr class="separator:ga1f946c78feaa7db4f443bd105e4c7310"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga328c5f9e8f8fb7f521298676ab6c5944"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpoly.html#ga328c5f9e8f8fb7f521298676ab6c5944">tPoly_isOn</a> (tPoly *const poly, uint8_t voice)</td></tr>
+<tr class="memdesc:ga328c5f9e8f8fb7f521298676ab6c5944"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current play state of a given voice.  <a href="group__tpoly.html#ga328c5f9e8f8fb7f521298676ab6c5944">More...</a><br /></td></tr>
+<tr class="separator:ga328c5f9e8f8fb7f521298676ab6c5944"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Polyphony handler with glide and pitch bend options. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gaf530a73c1d8d8d3e20403c9f33c0ab2e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf530a73c1d8d8d3e20403c9f33c0ab2e">&#9670;&nbsp;</a></span>tPoly_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoly_init </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>maxNumVoices</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPoly to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the tPoly to initialize. </td></tr>
+    <tr><td class="paramname">maxNumVoices</td><td>The maximum number of voices this tPoly can handle at once. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9a3b088e0d32366b6d5f675794becf15"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9a3b088e0d32366b6d5f675794becf15">&#9670;&nbsp;</a></span>tPoly_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoly_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>maxNumVoices</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>pool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPoly to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the tPoly to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga03c02b27b16f700b55d8536256d310b5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga03c02b27b16f700b55d8536256d310b5">&#9670;&nbsp;</a></span>tPoly_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoly_free </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tPoly from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the tPoly to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0a52befe767ed6ea96b26d53952a37ea"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0a52befe767ed6ea96b26d53952a37ea">&#9670;&nbsp;</a></span>tPoly_noteOn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tPoly_noteOn </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>note</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>vel</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Add a note with a given velocity to the poly handler. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tPoly. </td></tr>
+    <tr><td class="paramname">note</td><td>The MIDI note number to add. </td></tr>
+    <tr><td class="paramname">vel</td><td>The MIDI velocity of the note to add. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The voice that will play the note. </dd></dl>
+
+</div>
+</div>
+<a id="gaad8376b6c55995e763ce26d084d23a67"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaad8376b6c55995e763ce26d084d23a67">&#9670;&nbsp;</a></span>tPoly_noteOff()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tPoly_noteOff </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>note</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Remove a note from the poly handler. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tPoly. </td></tr>
+    <tr><td class="paramname">note</td><td>The MIDI note number to remove. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The voice that was playing the removed note. </dd></dl>
+
+</div>
+</div>
+<a id="ga5abdfc6cd4b26b74647cb23a822b0f38"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5abdfc6cd4b26b74647cb23a822b0f38">&#9670;&nbsp;</a></span>tPoly_orderedAddToStack()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoly_orderedAddToStack </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>note</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf3aae31d4b20eb71be39351989bc06d1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf3aae31d4b20eb71be39351989bc06d1">&#9670;&nbsp;</a></span>tPoly_setNumVoices()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoly_setNumVoices </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>numVoices</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the number of voices available to play notes. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tPoly. </td></tr>
+    <tr><td class="paramname">numVoices</td><td>The new number of available voices. Cannot be greater than the max number voices given in <a class="el" href="group__tpoly.html#gaf530a73c1d8d8d3e20403c9f33c0ab2e" title="Initialize a tPoly to the default mempool of a LEAF instance.">tPoly_init()</a>. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9ddfc026e440e208064ce48d655ee317"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9ddfc026e440e208064ce48d655ee317">&#9670;&nbsp;</a></span>tPoly_setPitchGlideActive()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoly_setPitchGlideActive </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>isActive</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set whether pitch glide over note changes in voices is active. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tPoly. </td></tr>
+    <tr><td class="paramname">isActive</td><td>Whether pitch glide should be active or not. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga12e5fba9072b6e7d91d50a2e3c82bc87"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga12e5fba9072b6e7d91d50a2e3c82bc87">&#9670;&nbsp;</a></span>tPoly_setPitchGlideTime()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoly_setPitchGlideTime </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>t</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set how long pitch glide over note changes in voices takes. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tPoly. </td></tr>
+    <tr><td class="paramname">t</td><td>The time to glide in milliseconds. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8608941b79fe9ba1b8e92b5a8046a915"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8608941b79fe9ba1b8e92b5a8046a915">&#9670;&nbsp;</a></span>tPoly_setPitchBend()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoly_setPitchBend </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>pitchBend</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the amount of pitch bend. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tPoly. </td></tr>
+    <tr><td class="paramname">pitchBend</td><td>The new amount of pitch bend. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8dad5daee7f10d0bb59e96ad55ec0402"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8dad5daee7f10d0bb59e96ad55ec0402">&#9670;&nbsp;</a></span>tPoly_setBendGlideTime()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoly_setBendGlideTime </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>t</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1f6a93b108ac8654eaa860575d2f1cd5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1f6a93b108ac8654eaa860575d2f1cd5">&#9670;&nbsp;</a></span>tPoly_setBendSamplesPerTick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoly_setBendSamplesPerTick </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>t</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf30b4a4aabd43c297d49258acf8e0cb3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf30b4a4aabd43c297d49258acf8e0cb3">&#9670;&nbsp;</a></span>tPoly_tickPitch()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoly_tickPitch </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Execute all tick-rate changes in the poly handler's pitch, including glide and bend. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tPoly. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga4391da808d7e621ac86944f745a2f729"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4391da808d7e621ac86944f745a2f729">&#9670;&nbsp;</a></span>tPoly_tickPitchGlide()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoly_tickPitchGlide </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Execute the tick-rate change of the poly handler's pitch glide. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tPoly. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf1bfa43e0337d0e090d3aa5b074b7825"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf1bfa43e0337d0e090d3aa5b074b7825">&#9670;&nbsp;</a></span>tPoly_tickPitchBend()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPoly_tickPitchBend </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Execute the tick-rate change of the poly handler's pitch bend. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tPoly. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad85e4d10bb7e8fa66797ad632186459b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad85e4d10bb7e8fa66797ad632186459b">&#9670;&nbsp;</a></span>tPoly_getNumVoices()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tPoly_getNumVoices </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the current number of voices available to play notes. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tPoly. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The current number of voices available to play notes. </dd></dl>
+
+</div>
+</div>
+<a id="ga45962abd5bf3321cedfdb64ab05fd0d7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga45962abd5bf3321cedfdb64ab05fd0d7">&#9670;&nbsp;</a></span>tPoly_getNumActiveVoices()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tPoly_getNumActiveVoices </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the number of voices currently playing notes. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tPoly. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of voices currently playing notes. </dd></dl>
+
+</div>
+</div>
+<a id="ga39f47e13c92644d07852a7794fe896c4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga39f47e13c92644d07852a7794fe896c4">&#9670;&nbsp;</a></span>tPoly_getPitch()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPoly_getPitch </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>voice</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the current pitch of a given voice. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tPoly. </td></tr>
+    <tr><td class="paramname">voice</td><td>The voice to get the pitch of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The current pitch of the given voice as a fractional MIDI note number. </dd></dl>
+
+</div>
+</div>
+<a id="gaec4318990ce680cc96df942fd9bd5473"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaec4318990ce680cc96df942fd9bd5473">&#9670;&nbsp;</a></span>tPoly_getKey()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tPoly_getKey </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>voice</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the current MIDI note number of a given voice. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tPoly. </td></tr>
+    <tr><td class="paramname">voice</td><td>The voice to get the MIDI note number of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The MIDI note number of the given voice. </dd></dl>
+
+</div>
+</div>
+<a id="ga1f946c78feaa7db4f443bd105e4c7310"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1f946c78feaa7db4f443bd105e4c7310">&#9670;&nbsp;</a></span>tPoly_getVelocity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tPoly_getVelocity </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>voice</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the current MIDI velocity of a given voice. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tPoly. </td></tr>
+    <tr><td class="paramname">voice</td><td>The voice to get the MIDI velocity of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The current MIDI velocity of the given voice. </dd></dl>
+
+</div>
+</div>
+<a id="ga328c5f9e8f8fb7f521298676ab6c5944"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga328c5f9e8f8fb7f521298676ab6c5944">&#9670;&nbsp;</a></span>tPoly_isOn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tPoly_isOn </td>
+          <td>(</td>
+          <td class="paramtype">tPoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>voice</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the current play state of a given voice. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tPoly. </td></tr>
+    <tr><td class="paramname">voice</td><td>The voice to get the state of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The current play state of the given voice. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tpowerfollower.html
@@ -1,0 +1,344 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tPowerFollower</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tPowerFollower<div class="ingroups"><a class="el" href="group__analysis.html">Analysis</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Measure and follow the power of an input signal using an exponential moving average for smoothing.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gab8b92e4b8a0819f2d0a779f3b20d3f25"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpowerfollower.html#gab8b92e4b8a0819f2d0a779f3b20d3f25">tPowerFollower_init</a> (tPowerFollower *const, float factor, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gab8b92e4b8a0819f2d0a779f3b20d3f25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPowerFollower to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tpowerfollower.html#gab8b92e4b8a0819f2d0a779f3b20d3f25">More...</a><br /></td></tr>
+<tr class="separator:gab8b92e4b8a0819f2d0a779f3b20d3f25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga726f0b8ec4ab97346fb8521934452a2e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpowerfollower.html#ga726f0b8ec4ab97346fb8521934452a2e">tPowerFollower_initToPool</a> (tPowerFollower *const, float factor, tMempool *const)</td></tr>
+<tr class="memdesc:ga726f0b8ec4ab97346fb8521934452a2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPowerFollower to a specified mempool.  <a href="group__tpowerfollower.html#ga726f0b8ec4ab97346fb8521934452a2e">More...</a><br /></td></tr>
+<tr class="separator:ga726f0b8ec4ab97346fb8521934452a2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga479317d7fd22a86a832ebec92eae4782"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpowerfollower.html#ga479317d7fd22a86a832ebec92eae4782">tPowerFollower_free</a> (tPowerFollower *const)</td></tr>
+<tr class="memdesc:ga479317d7fd22a86a832ebec92eae4782"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tPowerFollower from its mempool.  <a href="group__tpowerfollower.html#ga479317d7fd22a86a832ebec92eae4782">More...</a><br /></td></tr>
+<tr class="separator:ga479317d7fd22a86a832ebec92eae4782"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0b422a35ef8ccdd72b3db45fc53c1e96"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpowerfollower.html#ga0b422a35ef8ccdd72b3db45fc53c1e96">tPowerFollower_tick</a> (tPowerFollower *const, float input)</td></tr>
+<tr class="memdesc:ga0b422a35ef8ccdd72b3db45fc53c1e96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pass a sample into the power follower and return the current power.  <a href="group__tpowerfollower.html#ga0b422a35ef8ccdd72b3db45fc53c1e96">More...</a><br /></td></tr>
+<tr class="separator:ga0b422a35ef8ccdd72b3db45fc53c1e96"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0a423e1c15b581b4430112ed2897f6d2"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpowerfollower.html#ga0a423e1c15b581b4430112ed2897f6d2">tPowerFollower_getPower</a> (tPowerFollower *const)</td></tr>
+<tr class="memdesc:ga0a423e1c15b581b4430112ed2897f6d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current power.  <a href="group__tpowerfollower.html#ga0a423e1c15b581b4430112ed2897f6d2">More...</a><br /></td></tr>
+<tr class="separator:ga0a423e1c15b581b4430112ed2897f6d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac7ab521ba7345c90b2455acc66a7caf1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpowerfollower.html#gac7ab521ba7345c90b2455acc66a7caf1">tPowerFollower_setFactor</a> (tPowerFollower *const, float factor)</td></tr>
+<tr class="memdesc:gac7ab521ba7345c90b2455acc66a7caf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the smoothing factor for the moving average.  <a href="group__tpowerfollower.html#gac7ab521ba7345c90b2455acc66a7caf1">More...</a><br /></td></tr>
+<tr class="separator:gac7ab521ba7345c90b2455acc66a7caf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Measure and follow the power of an input signal using an exponential moving average for smoothing. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gab8b92e4b8a0819f2d0a779f3b20d3f25"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab8b92e4b8a0819f2d0a779f3b20d3f25">&#9670;&nbsp;</a></span>tPowerFollower_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPowerFollower_init </td>
+          <td>(</td>
+          <td class="paramtype">tPowerFollower * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>factor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPowerFollower to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">follower</td><td>A pointer to the tPowerFollower to initialize. </td></tr>
+    <tr><td class="paramname">factor</td><td>Smoothing factor of the moving average. 0.0-1.0, with a higher value discounting older inputs more quickly. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga726f0b8ec4ab97346fb8521934452a2e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga726f0b8ec4ab97346fb8521934452a2e">&#9670;&nbsp;</a></span>tPowerFollower_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPowerFollower_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tPowerFollower * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>factor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPowerFollower to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">follower</td><td>A pointer to the tPowerFollower to initialize. </td></tr>
+    <tr><td class="paramname">factor</td><td>Smoothing factor of the moving average. 0.0-1.0, with a higher value discounting older inputs more quickly. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga479317d7fd22a86a832ebec92eae4782"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga479317d7fd22a86a832ebec92eae4782">&#9670;&nbsp;</a></span>tPowerFollower_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPowerFollower_free </td>
+          <td>(</td>
+          <td class="paramtype">tPowerFollower * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tPowerFollower from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">follower</td><td>A pointer to the tPowerFollower to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0b422a35ef8ccdd72b3db45fc53c1e96"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0b422a35ef8ccdd72b3db45fc53c1e96">&#9670;&nbsp;</a></span>tPowerFollower_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPowerFollower_tick </td>
+          <td>(</td>
+          <td class="paramtype">tPowerFollower * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Pass a sample into the power follower and return the current power. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">follower</td><td>A pointer to the relevant tPowerFollower. </td></tr>
+    <tr><td class="paramname">input</td><td>The input sample </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The current power. </dd></dl>
+
+</div>
+</div>
+<a id="ga0a423e1c15b581b4430112ed2897f6d2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0a423e1c15b581b4430112ed2897f6d2">&#9670;&nbsp;</a></span>tPowerFollower_getPower()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPowerFollower_getPower </td>
+          <td>(</td>
+          <td class="paramtype">tPowerFollower * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the current power. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">follower</td><td>A pointer to the relevant tPowerFollower. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The current power. </dd></dl>
+
+</div>
+</div>
+<a id="gac7ab521ba7345c90b2455acc66a7caf1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac7ab521ba7345c90b2455acc66a7caf1">&#9670;&nbsp;</a></span>tPowerFollower_setFactor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tPowerFollower_setFactor </td>
+          <td>(</td>
+          <td class="paramtype">tPowerFollower * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>factor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the smoothing factor for the moving average. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">follower</td><td>A pointer to the relevant tPowerFollower. </td></tr>
+    <tr><td class="paramname">factor</td><td>Smoothing factor of the moving average. 0.0-1.0, with a higher value discounting older inputs more quickly.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tprcreverb.html
@@ -1,0 +1,371 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tPRCReverb</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tPRCReverb<div class="ingroups"><a class="el" href="group__reverb.html">Reverb</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Reverb, reimplemented from STK (Cook and Scavone).  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga1632574775fdc27565f7f938c86f0188"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tprcreverb.html#ga1632574775fdc27565f7f938c86f0188">tPRCReverb_init</a> (tPRCReverb *const, float t60, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga1632574775fdc27565f7f938c86f0188"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPRCReverb to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tprcreverb.html#ga1632574775fdc27565f7f938c86f0188">More...</a><br /></td></tr>
+<tr class="separator:ga1632574775fdc27565f7f938c86f0188"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad297a10c21ece9dbca81234144693ccb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tprcreverb.html#gad297a10c21ece9dbca81234144693ccb">tPRCReverb_initToPool</a> (tPRCReverb *const, float t60, tMempool *const)</td></tr>
+<tr class="memdesc:gad297a10c21ece9dbca81234144693ccb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPRCReverb to a specified mempool.  <a href="group__tprcreverb.html#gad297a10c21ece9dbca81234144693ccb">More...</a><br /></td></tr>
+<tr class="separator:gad297a10c21ece9dbca81234144693ccb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga38fca3e880e0c5876453d680aa4ed02f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tprcreverb.html#ga38fca3e880e0c5876453d680aa4ed02f">tPRCReverb_free</a> (tPRCReverb *const)</td></tr>
+<tr class="memdesc:ga38fca3e880e0c5876453d680aa4ed02f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tPRCReverb from its mempool.  <a href="group__tprcreverb.html#ga38fca3e880e0c5876453d680aa4ed02f">More...</a><br /></td></tr>
+<tr class="separator:ga38fca3e880e0c5876453d680aa4ed02f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac7f9a1553c85d1aefc722242a4d60df7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tprcreverb.html#gac7f9a1553c85d1aefc722242a4d60df7">tPRCReverb_clear</a> (tPRCReverb *const)</td></tr>
+<tr class="separator:gac7f9a1553c85d1aefc722242a4d60df7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga30441f2661cf646276a33b58ade60088"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tprcreverb.html#ga30441f2661cf646276a33b58ade60088">tPRCReverb_tick</a> (tPRCReverb *const, float input)</td></tr>
+<tr class="separator:ga30441f2661cf646276a33b58ade60088"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga778bb9ee511e3aa263b4b368fa898e05"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tprcreverb.html#ga778bb9ee511e3aa263b4b368fa898e05">tPRCReverb_setT60</a> (tPRCReverb *const, float t60)</td></tr>
+<tr class="memdesc:ga778bb9ee511e3aa263b4b368fa898e05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set reverb time in seconds.  <a href="group__tprcreverb.html#ga778bb9ee511e3aa263b4b368fa898e05">More...</a><br /></td></tr>
+<tr class="separator:ga778bb9ee511e3aa263b4b368fa898e05"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacb56b78580c95fd6fefbd7346bf6e6b0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tprcreverb.html#gacb56b78580c95fd6fefbd7346bf6e6b0">tPRCReverb_setMix</a> (tPRCReverb *const, float mix)</td></tr>
+<tr class="memdesc:gacb56b78580c95fd6fefbd7346bf6e6b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set mix between dry input and wet output signal.  <a href="group__tprcreverb.html#gacb56b78580c95fd6fefbd7346bf6e6b0">More...</a><br /></td></tr>
+<tr class="separator:gacb56b78580c95fd6fefbd7346bf6e6b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Reverb, reimplemented from STK (Cook and Scavone). </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga1632574775fdc27565f7f938c86f0188"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1632574775fdc27565f7f938c86f0188">&#9670;&nbsp;</a></span>tPRCReverb_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPRCReverb_init </td>
+          <td>(</td>
+          <td class="paramtype">tPRCReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>t60</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPRCReverb to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the tPRCReverb to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad297a10c21ece9dbca81234144693ccb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad297a10c21ece9dbca81234144693ccb">&#9670;&nbsp;</a></span>tPRCReverb_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPRCReverb_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tPRCReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>t60</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPRCReverb to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the tPRCReverb to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga38fca3e880e0c5876453d680aa4ed02f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga38fca3e880e0c5876453d680aa4ed02f">&#9670;&nbsp;</a></span>tPRCReverb_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPRCReverb_free </td>
+          <td>(</td>
+          <td class="paramtype">tPRCReverb * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tPRCReverb from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the tPRCReverb to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac7f9a1553c85d1aefc722242a4d60df7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac7f9a1553c85d1aefc722242a4d60df7">&#9670;&nbsp;</a></span>tPRCReverb_clear()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPRCReverb_clear </td>
+          <td>(</td>
+          <td class="paramtype">tPRCReverb * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tPRCReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga30441f2661cf646276a33b58ade60088"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga30441f2661cf646276a33b58ade60088">&#9670;&nbsp;</a></span>tPRCReverb_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPRCReverb_tick </td>
+          <td>(</td>
+          <td class="paramtype">tPRCReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tPRCReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga778bb9ee511e3aa263b4b368fa898e05"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga778bb9ee511e3aa263b4b368fa898e05">&#9670;&nbsp;</a></span>tPRCReverb_setT60()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPRCReverb_setT60 </td>
+          <td>(</td>
+          <td class="paramtype">tPRCReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>t60</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set reverb time in seconds. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tPRCReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gacb56b78580c95fd6fefbd7346bf6e6b0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacb56b78580c95fd6fefbd7346bf6e6b0">&#9670;&nbsp;</a></span>tPRCReverb_setMix()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPRCReverb_setMix </td>
+          <td>(</td>
+          <td class="paramtype">tPRCReverb * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>mix</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set mix between dry input and wet output signal. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reverb</td><td>A pointer to the relevant tPRCReverb. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tpulse.html
@@ -1,0 +1,317 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tPulse</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tPulse<div class="ingroups"><a class="el" href="group__oscillators.html">Oscillators</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Pulse wave oscillator with polyBLEP anti-aliasing.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga2a3b923294ee215553937f1446932eda"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpulse.html#ga2a3b923294ee215553937f1446932eda">tPulse_init</a> (tPulse *const osc, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga2a3b923294ee215553937f1446932eda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPulse to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tpulse.html#ga2a3b923294ee215553937f1446932eda">More...</a><br /></td></tr>
+<tr class="separator:ga2a3b923294ee215553937f1446932eda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gace53f4a8731bcbf6f7c265ba4ec375c7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpulse.html#gace53f4a8731bcbf6f7c265ba4ec375c7">tPulse_initToPool</a> (tPulse *const osc, tMempool *const)</td></tr>
+<tr class="memdesc:gace53f4a8731bcbf6f7c265ba4ec375c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tPulse to a specified mempool.  <a href="group__tpulse.html#gace53f4a8731bcbf6f7c265ba4ec375c7">More...</a><br /></td></tr>
+<tr class="separator:gace53f4a8731bcbf6f7c265ba4ec375c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad2c554f90ebb55227d28dd18f42be760"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpulse.html#gad2c554f90ebb55227d28dd18f42be760">tPulse_free</a> (tPulse *const osc)</td></tr>
+<tr class="memdesc:gad2c554f90ebb55227d28dd18f42be760"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tPulse from its mempool.  <a href="group__tpulse.html#gad2c554f90ebb55227d28dd18f42be760">More...</a><br /></td></tr>
+<tr class="separator:gad2c554f90ebb55227d28dd18f42be760"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4af3bc706a792a541d16cde22a335f7e"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpulse.html#ga4af3bc706a792a541d16cde22a335f7e">tPulse_tick</a> (tPulse *const osc)</td></tr>
+<tr class="separator:ga4af3bc706a792a541d16cde22a335f7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf553bb8ff573c7d503f4bcb01cfb3117"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpulse.html#gaf553bb8ff573c7d503f4bcb01cfb3117">tPulse_setFreq</a> (tPulse *const osc, float freq)</td></tr>
+<tr class="separator:gaf553bb8ff573c7d503f4bcb01cfb3117"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga554255385caeaaefddab51c258c45b74"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpulse.html#ga554255385caeaaefddab51c258c45b74">tPulse_setWidth</a> (tPulse *const osc, float width)</td></tr>
+<tr class="separator:ga554255385caeaaefddab51c258c45b74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Pulse wave oscillator with polyBLEP anti-aliasing. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga2a3b923294ee215553937f1446932eda"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2a3b923294ee215553937f1446932eda">&#9670;&nbsp;</a></span>tPulse_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPulse_init </td>
+          <td>(</td>
+          <td class="paramtype">tPulse *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPulse to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tPulse to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gace53f4a8731bcbf6f7c265ba4ec375c7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gace53f4a8731bcbf6f7c265ba4ec375c7">&#9670;&nbsp;</a></span>tPulse_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPulse_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tPulse *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tPulse to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tPulse to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad2c554f90ebb55227d28dd18f42be760"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad2c554f90ebb55227d28dd18f42be760">&#9670;&nbsp;</a></span>tPulse_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPulse_free </td>
+          <td>(</td>
+          <td class="paramtype">tPulse *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tPulse from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tPulse to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga4af3bc706a792a541d16cde22a335f7e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4af3bc706a792a541d16cde22a335f7e">&#9670;&nbsp;</a></span>tPulse_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tPulse_tick </td>
+          <td>(</td>
+          <td class="paramtype">tPulse *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tPulse. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf553bb8ff573c7d503f4bcb01cfb3117"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf553bb8ff573c7d503f4bcb01cfb3117">&#9670;&nbsp;</a></span>tPulse_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPulse_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tPulse *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tPulse. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga554255385caeaaefddab51c258c45b74"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga554255385caeaaefddab51c258c45b74">&#9670;&nbsp;</a></span>tPulse_setWidth()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tPulse_setWidth </td>
+          <td>(</td>
+          <td class="paramtype">tPulse *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>width</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tPulse.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tramp.html
@@ -1,0 +1,403 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tRamp</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tRamp<div class="ingroups"><a class="el" href="group__envelopes.html">Envelopes</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Value ramp.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga44d22f890ed04cd061cfba963b1f9729"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tramp.html#ga44d22f890ed04cd061cfba963b1f9729">tRamp_init</a> (tRamp *const, float time, int samplesPerTick, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga44d22f890ed04cd061cfba963b1f9729"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tRamp to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tramp.html#ga44d22f890ed04cd061cfba963b1f9729">More...</a><br /></td></tr>
+<tr class="separator:ga44d22f890ed04cd061cfba963b1f9729"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac4d46bba12df2569f57bbdb9b407fe24"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tramp.html#gac4d46bba12df2569f57bbdb9b407fe24">tRamp_initToPool</a> (tRamp *const, float time, int samplesPerTick, tMempool *const)</td></tr>
+<tr class="memdesc:gac4d46bba12df2569f57bbdb9b407fe24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tRamp to a specified mempool.  <a href="group__tramp.html#gac4d46bba12df2569f57bbdb9b407fe24">More...</a><br /></td></tr>
+<tr class="separator:gac4d46bba12df2569f57bbdb9b407fe24"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga155e473a79ce4b174fa468981bb13750"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tramp.html#ga155e473a79ce4b174fa468981bb13750">tRamp_free</a> (tRamp *const)</td></tr>
+<tr class="memdesc:ga155e473a79ce4b174fa468981bb13750"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tRamp from its mempool.  <a href="group__tramp.html#ga155e473a79ce4b174fa468981bb13750">More...</a><br /></td></tr>
+<tr class="separator:ga155e473a79ce4b174fa468981bb13750"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadd8abe3a4b8f0f082d1a7f2c752f7980"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tramp.html#gadd8abe3a4b8f0f082d1a7f2c752f7980">tRamp_tick</a> (tRamp *const)</td></tr>
+<tr class="separator:gadd8abe3a4b8f0f082d1a7f2c752f7980"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4a3488c43e978d905080773353ce40f4"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tramp.html#ga4a3488c43e978d905080773353ce40f4">tRamp_sample</a> (tRamp *const)</td></tr>
+<tr class="separator:ga4a3488c43e978d905080773353ce40f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada173eb52e34ee8fb16d79026014a4be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tramp.html#gada173eb52e34ee8fb16d79026014a4be">tRamp_setTime</a> (tRamp *const, float time)</td></tr>
+<tr class="separator:gada173eb52e34ee8fb16d79026014a4be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad348c3b0601d99326ce06ba017ef2508"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tramp.html#gad348c3b0601d99326ce06ba017ef2508">tRamp_setDest</a> (tRamp *const, float dest)</td></tr>
+<tr class="separator:gad348c3b0601d99326ce06ba017ef2508"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe5e687461cdb8b7cd0714b9fdca4223"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tramp.html#gafe5e687461cdb8b7cd0714b9fdca4223">tRamp_setVal</a> (tRamp *const, float val)</td></tr>
+<tr class="separator:gafe5e687461cdb8b7cd0714b9fdca4223"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Value ramp. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga44d22f890ed04cd061cfba963b1f9729"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga44d22f890ed04cd061cfba963b1f9729">&#9670;&nbsp;</a></span>tRamp_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRamp_init </td>
+          <td>(</td>
+          <td class="paramtype">tRamp * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>time</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>samplesPerTick</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tRamp to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the tRamp to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac4d46bba12df2569f57bbdb9b407fe24"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac4d46bba12df2569f57bbdb9b407fe24">&#9670;&nbsp;</a></span>tRamp_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRamp_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tRamp * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>time</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>samplesPerTick</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tRamp to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the tRamp to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga155e473a79ce4b174fa468981bb13750"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga155e473a79ce4b174fa468981bb13750">&#9670;&nbsp;</a></span>tRamp_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRamp_free </td>
+          <td>(</td>
+          <td class="paramtype">tRamp * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tRamp from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the tRamp to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gadd8abe3a4b8f0f082d1a7f2c752f7980"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gadd8abe3a4b8f0f082d1a7f2c752f7980">&#9670;&nbsp;</a></span>tRamp_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tRamp_tick </td>
+          <td>(</td>
+          <td class="paramtype">tRamp * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the relevant tRamp. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga4a3488c43e978d905080773353ce40f4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4a3488c43e978d905080773353ce40f4">&#9670;&nbsp;</a></span>tRamp_sample()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tRamp_sample </td>
+          <td>(</td>
+          <td class="paramtype">tRamp * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the relevant tRamp. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gada173eb52e34ee8fb16d79026014a4be"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gada173eb52e34ee8fb16d79026014a4be">&#9670;&nbsp;</a></span>tRamp_setTime()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRamp_setTime </td>
+          <td>(</td>
+          <td class="paramtype">tRamp * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>time</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the relevant tRamp. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad348c3b0601d99326ce06ba017ef2508"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad348c3b0601d99326ce06ba017ef2508">&#9670;&nbsp;</a></span>tRamp_setDest()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRamp_setDest </td>
+          <td>(</td>
+          <td class="paramtype">tRamp * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>dest</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the relevant tRamp. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gafe5e687461cdb8b7cd0714b9fdca4223"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafe5e687461cdb8b7cd0714b9fdca4223">&#9670;&nbsp;</a></span>tRamp_setVal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRamp_setVal </td>
+          <td>(</td>
+          <td class="paramtype">tRamp * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>val</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the relevant tRamp. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__trampupdown.html
@@ -1,0 +1,451 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tRampUpDown</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tRampUpDown<div class="ingroups"><a class="el" href="group__envelopes.html">Envelopes</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Value ramp with variable rate depending on direction.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga10049078d9afde547db5345067355741"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trampupdown.html#ga10049078d9afde547db5345067355741">tRampUpDown_init</a> (tRampUpDown *const, float upTime, float downTime, int samplesPerTick, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga10049078d9afde547db5345067355741"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tRampUpDown to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__trampupdown.html#ga10049078d9afde547db5345067355741">More...</a><br /></td></tr>
+<tr class="separator:ga10049078d9afde547db5345067355741"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga971e5d4b58631194769d9ff29b09bab0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trampupdown.html#ga971e5d4b58631194769d9ff29b09bab0">tRampUpDown_initToPool</a> (tRampUpDown *const, float upTime, float downTime, int samplesPerTick, tMempool *const)</td></tr>
+<tr class="memdesc:ga971e5d4b58631194769d9ff29b09bab0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tRampUpDown to a specified mempool.  <a href="group__trampupdown.html#ga971e5d4b58631194769d9ff29b09bab0">More...</a><br /></td></tr>
+<tr class="separator:ga971e5d4b58631194769d9ff29b09bab0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8eeaec61bbb73b00497dd5c62e43298e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trampupdown.html#ga8eeaec61bbb73b00497dd5c62e43298e">tRampUpDown_free</a> (tRampUpDown *const)</td></tr>
+<tr class="memdesc:ga8eeaec61bbb73b00497dd5c62e43298e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tRampUpDown from its mempool.  <a href="group__trampupdown.html#ga8eeaec61bbb73b00497dd5c62e43298e">More...</a><br /></td></tr>
+<tr class="separator:ga8eeaec61bbb73b00497dd5c62e43298e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae271d51d8270f50237f2b46b476930bf"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trampupdown.html#gae271d51d8270f50237f2b46b476930bf">tRampUpDown_tick</a> (tRampUpDown *const)</td></tr>
+<tr class="separator:gae271d51d8270f50237f2b46b476930bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacf9c6cad23c6fb79c002fdb60a132e69"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trampupdown.html#gacf9c6cad23c6fb79c002fdb60a132e69">tRampUpDown_sample</a> (tRampUpDown *const)</td></tr>
+<tr class="separator:gacf9c6cad23c6fb79c002fdb60a132e69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8d3a86e1a0937104788d63bafc34d37e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trampupdown.html#ga8d3a86e1a0937104788d63bafc34d37e">tRampUpDown_setUpTime</a> (tRampUpDown *const, float upTime)</td></tr>
+<tr class="separator:ga8d3a86e1a0937104788d63bafc34d37e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga15eca113d583ad81c71750cb13efb8f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trampupdown.html#ga15eca113d583ad81c71750cb13efb8f4">tRampUpDown_setDownTime</a> (tRampUpDown *const, float downTime)</td></tr>
+<tr class="separator:ga15eca113d583ad81c71750cb13efb8f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3902f92b1057f9bd37ea24afe6ee93a0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trampupdown.html#ga3902f92b1057f9bd37ea24afe6ee93a0">tRampUpDown_setDest</a> (tRampUpDown *const, float dest)</td></tr>
+<tr class="separator:ga3902f92b1057f9bd37ea24afe6ee93a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9c1bbd455bd922c8b51c1b5e8c50e885"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trampupdown.html#ga9c1bbd455bd922c8b51c1b5e8c50e885">tRampUpDown_setVal</a> (tRampUpDown *const, float val)</td></tr>
+<tr class="separator:ga9c1bbd455bd922c8b51c1b5e8c50e885"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Value ramp with variable rate depending on direction. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga10049078d9afde547db5345067355741"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga10049078d9afde547db5345067355741">&#9670;&nbsp;</a></span>tRampUpDown_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRampUpDown_init </td>
+          <td>(</td>
+          <td class="paramtype">tRampUpDown * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>upTime</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>downTime</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>samplesPerTick</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tRampUpDown to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the tRampUpDown to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga971e5d4b58631194769d9ff29b09bab0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga971e5d4b58631194769d9ff29b09bab0">&#9670;&nbsp;</a></span>tRampUpDown_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRampUpDown_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tRampUpDown * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>upTime</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>downTime</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>samplesPerTick</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tRampUpDown to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the tRampUpDown to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8eeaec61bbb73b00497dd5c62e43298e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8eeaec61bbb73b00497dd5c62e43298e">&#9670;&nbsp;</a></span>tRampUpDown_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRampUpDown_free </td>
+          <td>(</td>
+          <td class="paramtype">tRampUpDown * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tRampUpDown from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the tRampUpDown to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae271d51d8270f50237f2b46b476930bf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae271d51d8270f50237f2b46b476930bf">&#9670;&nbsp;</a></span>tRampUpDown_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tRampUpDown_tick </td>
+          <td>(</td>
+          <td class="paramtype">tRampUpDown * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the relevant tRampUpDown. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gacf9c6cad23c6fb79c002fdb60a132e69"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacf9c6cad23c6fb79c002fdb60a132e69">&#9670;&nbsp;</a></span>tRampUpDown_sample()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tRampUpDown_sample </td>
+          <td>(</td>
+          <td class="paramtype">tRampUpDown * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the relevant tRampUpDown. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8d3a86e1a0937104788d63bafc34d37e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8d3a86e1a0937104788d63bafc34d37e">&#9670;&nbsp;</a></span>tRampUpDown_setUpTime()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRampUpDown_setUpTime </td>
+          <td>(</td>
+          <td class="paramtype">tRampUpDown * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>upTime</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the relevant tRampUpDown. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga15eca113d583ad81c71750cb13efb8f4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga15eca113d583ad81c71750cb13efb8f4">&#9670;&nbsp;</a></span>tRampUpDown_setDownTime()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRampUpDown_setDownTime </td>
+          <td>(</td>
+          <td class="paramtype">tRampUpDown * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>downTime</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the relevant tRampUpDown. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3902f92b1057f9bd37ea24afe6ee93a0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3902f92b1057f9bd37ea24afe6ee93a0">&#9670;&nbsp;</a></span>tRampUpDown_setDest()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRampUpDown_setDest </td>
+          <td>(</td>
+          <td class="paramtype">tRampUpDown * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>dest</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the relevant tRampUpDown. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9c1bbd455bd922c8b51c1b5e8c50e885"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9c1bbd455bd922c8b51c1b5e8c50e885">&#9670;&nbsp;</a></span>tRampUpDown_setVal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRampUpDown_setVal </td>
+          <td>(</td>
+          <td class="paramtype">tRampUpDown * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>val</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ramp</td><td>A pointer to the relevant tRampUpDown. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__treedtable.html
@@ -1,0 +1,388 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tReedTable</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tReedTable<div class="ingroups"><a class="el" href="group__physical.html">Physical Models</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Reed Table - borrowed from STK.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga42424fceb88dd8a10b289ec1f1e2681b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__treedtable.html#ga42424fceb88dd8a10b289ec1f1e2681b">tReedTable_init</a> (tReedTable *const, float offset, float slope, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga42424fceb88dd8a10b289ec1f1e2681b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tReedTable to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__treedtable.html#ga42424fceb88dd8a10b289ec1f1e2681b">More...</a><br /></td></tr>
+<tr class="separator:ga42424fceb88dd8a10b289ec1f1e2681b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a3243fafaac0957fab59ab0fd105b87"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__treedtable.html#ga7a3243fafaac0957fab59ab0fd105b87">tReedTable_initToPool</a> (tReedTable *const, float offset, float slope, tMempool *const)</td></tr>
+<tr class="memdesc:ga7a3243fafaac0957fab59ab0fd105b87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tReedTable to a specified mempool.  <a href="group__treedtable.html#ga7a3243fafaac0957fab59ab0fd105b87">More...</a><br /></td></tr>
+<tr class="separator:ga7a3243fafaac0957fab59ab0fd105b87"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga255b99f7e6c9a17d0a35c001d5fcb0e3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__treedtable.html#ga255b99f7e6c9a17d0a35c001d5fcb0e3">tReedTable_free</a> (tReedTable *const)</td></tr>
+<tr class="memdesc:ga255b99f7e6c9a17d0a35c001d5fcb0e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tReedTable from its mempool.  <a href="group__treedtable.html#ga255b99f7e6c9a17d0a35c001d5fcb0e3">More...</a><br /></td></tr>
+<tr class="separator:ga255b99f7e6c9a17d0a35c001d5fcb0e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac698936fdfe9bc1948f9dbc8e08c0316"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__treedtable.html#gac698936fdfe9bc1948f9dbc8e08c0316">tReedTable_tick</a> (tReedTable *const, float input)</td></tr>
+<tr class="separator:gac698936fdfe9bc1948f9dbc8e08c0316"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga90644dc2bd0a5c4c828e57efa3e056c1"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__treedtable.html#ga90644dc2bd0a5c4c828e57efa3e056c1">tReedTable_tanh_tick</a> (tReedTable *const, float input)</td></tr>
+<tr class="separator:ga90644dc2bd0a5c4c828e57efa3e056c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8a79fd2691b668dc835d3c1a904ead98"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__treedtable.html#ga8a79fd2691b668dc835d3c1a904ead98">tReedTable_setOffset</a> (tReedTable *const, float offset)</td></tr>
+<tr class="separator:ga8a79fd2691b668dc835d3c1a904ead98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadce4a01b418b01d45f7fe8c59a72bd19"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__treedtable.html#gadce4a01b418b01d45f7fe8c59a72bd19">tReedTable_setSlope</a> (tReedTable *const, float slope)</td></tr>
+<tr class="separator:gadce4a01b418b01d45f7fe8c59a72bd19"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Reed Table - borrowed from STK. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga42424fceb88dd8a10b289ec1f1e2681b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga42424fceb88dd8a10b289ec1f1e2681b">&#9670;&nbsp;</a></span>tReedTable_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tReedTable_init </td>
+          <td>(</td>
+          <td class="paramtype">tReedTable *const&#160;</td>
+          <td class="paramname"><em>pm</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>offset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>slope</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tReedTable to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reed</td><td>A pointer to the tReedTable to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance.</td></tr>
+  </table>
+  </dd>
+</dl>
+<p>Initialize a tReedTable to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+
+</div>
+</div>
+<a id="ga7a3243fafaac0957fab59ab0fd105b87"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7a3243fafaac0957fab59ab0fd105b87">&#9670;&nbsp;</a></span>tReedTable_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tReedTable_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tReedTable * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>offset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>slope</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tReedTable to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reed</td><td>A pointer to the tReedTable to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga255b99f7e6c9a17d0a35c001d5fcb0e3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga255b99f7e6c9a17d0a35c001d5fcb0e3">&#9670;&nbsp;</a></span>tReedTable_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tReedTable_free </td>
+          <td>(</td>
+          <td class="paramtype">tReedTable * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tReedTable from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reed</td><td>A pointer to the tReedTable to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac698936fdfe9bc1948f9dbc8e08c0316"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac698936fdfe9bc1948f9dbc8e08c0316">&#9670;&nbsp;</a></span>tReedTable_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tReedTable_tick </td>
+          <td>(</td>
+          <td class="paramtype">tReedTable * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reed</td><td>A pointer to the relevant tReedTable. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga90644dc2bd0a5c4c828e57efa3e056c1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga90644dc2bd0a5c4c828e57efa3e056c1">&#9670;&nbsp;</a></span>tReedTable_tanh_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tReedTable_tanh_tick </td>
+          <td>(</td>
+          <td class="paramtype">tReedTable * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reed</td><td>A pointer to the relevant tReedTable. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8a79fd2691b668dc835d3c1a904ead98"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8a79fd2691b668dc835d3c1a904ead98">&#9670;&nbsp;</a></span>tReedTable_setOffset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tReedTable_setOffset </td>
+          <td>(</td>
+          <td class="paramtype">tReedTable * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>offset</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reed</td><td>A pointer to the relevant tReedTable. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gadce4a01b418b01d45f7fe8c59a72bd19"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gadce4a01b418b01d45f7fe8c59a72bd19">&#9670;&nbsp;</a></span>tReedTable_setSlope()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tReedTable_setSlope </td>
+          <td>(</td>
+          <td class="paramtype">tReedTable * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>slope</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reed</td><td>A pointer to the relevant tReedTable. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tretune.html
@@ -1,0 +1,211 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tRetune</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tRetune<div class="ingroups"><a class="el" href="group__effects.html">Effects</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Wrapper for multiple pitch shifters with multi-channel output.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga9054a73b7bb08d4721b109b7c2c94042"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tretune.html#ga9054a73b7bb08d4721b109b7c2c94042">tRetune_free</a> (tRetune *const)</td></tr>
+<tr class="memdesc:ga9054a73b7bb08d4721b109b7c2c94042"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tRetune from its mempool.  <a href="group__tretune.html#ga9054a73b7bb08d4721b109b7c2c94042">More...</a><br /></td></tr>
+<tr class="separator:ga9054a73b7bb08d4721b109b7c2c94042"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae5ed387f5a71deac43ab89b8f8986060"><td class="memItemLeft" align="right" valign="top">float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tretune.html#gae5ed387f5a71deac43ab89b8f8986060">tRetune_tick</a> (tRetune *const, float sample)</td></tr>
+<tr class="separator:gae5ed387f5a71deac43ab89b8f8986060"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga126c94026f5b022a4e50dec9a5b8e294"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tretune.html#ga126c94026f5b022a4e50dec9a5b8e294">tRetune_setNumVoices</a> (tRetune *const, int numVoices)</td></tr>
+<tr class="separator:ga126c94026f5b022a4e50dec9a5b8e294"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Wrapper for multiple pitch shifters with multi-channel output. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga9054a73b7bb08d4721b109b7c2c94042"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9054a73b7bb08d4721b109b7c2c94042">&#9670;&nbsp;</a></span>tRetune_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRetune_free </td>
+          <td>(</td>
+          <td class="paramtype">tRetune * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tRetune from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">retune</td><td>A pointer to the tRetune to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae5ed387f5a71deac43ab89b8f8986060"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae5ed387f5a71deac43ab89b8f8986060">&#9670;&nbsp;</a></span>tRetune_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float * tRetune_tick </td>
+          <td>(</td>
+          <td class="paramtype">tRetune * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sample</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">retune</td><td>A pointer to the relevant tRetune. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga126c94026f5b022a4e50dec9a5b8e294"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga126c94026f5b022a4e50dec9a5b8e294">&#9670;&nbsp;</a></span>tRetune_setNumVoices()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRetune_setNumVoices </td>
+          <td>(</td>
+          <td class="paramtype">tRetune * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>numVoices</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">retune</td><td>A pointer to the relevant tRetune. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tringbuffer.html
@@ -1,0 +1,404 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tRingBuffer</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tRingBuffer<div class="ingroups"><a class="el" href="group__delay.html">Delay</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Ring buffer.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaa6e10d8ad89469f9868d1c8bf61c3369"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tringbuffer.html#gaa6e10d8ad89469f9868d1c8bf61c3369">tRingBuffer_init</a> (tRingBuffer *const ring, int size, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gaa6e10d8ad89469f9868d1c8bf61c3369"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tRingBuffer to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tringbuffer.html#gaa6e10d8ad89469f9868d1c8bf61c3369">More...</a><br /></td></tr>
+<tr class="separator:gaa6e10d8ad89469f9868d1c8bf61c3369"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga42849a91b882ee8231fe494617f8e441"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tringbuffer.html#ga42849a91b882ee8231fe494617f8e441">tRingBuffer_initToPool</a> (tRingBuffer *const ring, int size, tMempool *const mempool)</td></tr>
+<tr class="memdesc:ga42849a91b882ee8231fe494617f8e441"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tRingBuffer to a specified mempool.  <a href="group__tringbuffer.html#ga42849a91b882ee8231fe494617f8e441">More...</a><br /></td></tr>
+<tr class="separator:ga42849a91b882ee8231fe494617f8e441"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafbf4874d2fa48aff8b15919cbf85df5b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tringbuffer.html#gafbf4874d2fa48aff8b15919cbf85df5b">tRingBuffer_free</a> (tRingBuffer *const ring)</td></tr>
+<tr class="memdesc:gafbf4874d2fa48aff8b15919cbf85df5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tRingBuffer from its mempool.  <a href="group__tringbuffer.html#gafbf4874d2fa48aff8b15919cbf85df5b">More...</a><br /></td></tr>
+<tr class="separator:gafbf4874d2fa48aff8b15919cbf85df5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9e95e5b6969ccde90391f5312f7cde69"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tringbuffer.html#ga9e95e5b6969ccde90391f5312f7cde69">tRingBuffer_push</a> (tRingBuffer *const ring, float val)</td></tr>
+<tr class="memdesc:ga9e95e5b6969ccde90391f5312f7cde69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Push a value to the ring buffer, overwriting the oldest value if the buffer is full.  <a href="group__tringbuffer.html#ga9e95e5b6969ccde90391f5312f7cde69">More...</a><br /></td></tr>
+<tr class="separator:ga9e95e5b6969ccde90391f5312f7cde69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaef38082fdfabb5abb11d1d8d55c99f2a"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tringbuffer.html#gaef38082fdfabb5abb11d1d8d55c99f2a">tRingBuffer_getNewest</a> (tRingBuffer *const ring)</td></tr>
+<tr class="memdesc:gaef38082fdfabb5abb11d1d8d55c99f2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the newest value in the ring buffer.  <a href="group__tringbuffer.html#gaef38082fdfabb5abb11d1d8d55c99f2a">More...</a><br /></td></tr>
+<tr class="separator:gaef38082fdfabb5abb11d1d8d55c99f2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea32020dea77c0f0c65c3ea04460f598"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tringbuffer.html#gaea32020dea77c0f0c65c3ea04460f598">tRingBuffer_getOldest</a> (tRingBuffer *const ring)</td></tr>
+<tr class="memdesc:gaea32020dea77c0f0c65c3ea04460f598"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the oldest value in the ring buffer.  <a href="group__tringbuffer.html#gaea32020dea77c0f0c65c3ea04460f598">More...</a><br /></td></tr>
+<tr class="separator:gaea32020dea77c0f0c65c3ea04460f598"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6925019a4a1418b61751da7240e489fd"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tringbuffer.html#ga6925019a4a1418b61751da7240e489fd">tRingBuffer_get</a> (tRingBuffer *const ring, int index)</td></tr>
+<tr class="memdesc:ga6925019a4a1418b61751da7240e489fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value at an index of the buffer.  <a href="group__tringbuffer.html#ga6925019a4a1418b61751da7240e489fd">More...</a><br /></td></tr>
+<tr class="separator:ga6925019a4a1418b61751da7240e489fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga33bf20b1a1a3f1bb3195f0735050d560"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tringbuffer.html#ga33bf20b1a1a3f1bb3195f0735050d560">tRingBuffer_getSize</a> (tRingBuffer *const ring)</td></tr>
+<tr class="memdesc:ga33bf20b1a1a3f1bb3195f0735050d560"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the ring buffer.  <a href="group__tringbuffer.html#ga33bf20b1a1a3f1bb3195f0735050d560">More...</a><br /></td></tr>
+<tr class="separator:ga33bf20b1a1a3f1bb3195f0735050d560"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Ring buffer. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gaa6e10d8ad89469f9868d1c8bf61c3369"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa6e10d8ad89469f9868d1c8bf61c3369">&#9670;&nbsp;</a></span>tRingBuffer_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRingBuffer_init </td>
+          <td>(</td>
+          <td class="paramtype">tRingBuffer *const&#160;</td>
+          <td class="paramname"><em>ring</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tRingBuffer to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">buffer</td><td>A pointer to the tRingbuffer to initialize. </td></tr>
+    <tr><td class="paramname">size</td><td>Size of the buffer. Should be a power of 2. Will otherwise be adjusted to the nearest greater power of 2. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga42849a91b882ee8231fe494617f8e441"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga42849a91b882ee8231fe494617f8e441">&#9670;&nbsp;</a></span>tRingBuffer_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRingBuffer_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tRingBuffer *const&#160;</td>
+          <td class="paramname"><em>ring</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tRingBuffer to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">buffer</td><td>A pointer to the tRingbuffer to initialize. </td></tr>
+    <tr><td class="paramname">size</td><td>Size of the buffer. Should be a power of 2. Will otherwise be adjusted to the nearest greater power of 2. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gafbf4874d2fa48aff8b15919cbf85df5b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafbf4874d2fa48aff8b15919cbf85df5b">&#9670;&nbsp;</a></span>tRingBuffer_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRingBuffer_free </td>
+          <td>(</td>
+          <td class="paramtype">tRingBuffer *const&#160;</td>
+          <td class="paramname"><em>ring</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tRingBuffer from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">buffer</td><td>A pointer to the tRingBuffer to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9e95e5b6969ccde90391f5312f7cde69"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9e95e5b6969ccde90391f5312f7cde69">&#9670;&nbsp;</a></span>tRingBuffer_push()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRingBuffer_push </td>
+          <td>(</td>
+          <td class="paramtype">tRingBuffer *const&#160;</td>
+          <td class="paramname"><em>ring</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>val</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Push a value to the ring buffer, overwriting the oldest value if the buffer is full. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">buffer</td><td>A pointer to the relevant tRingBuffer. </td></tr>
+    <tr><td class="paramname">input</td><td>The value to push to the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaef38082fdfabb5abb11d1d8d55c99f2a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaef38082fdfabb5abb11d1d8d55c99f2a">&#9670;&nbsp;</a></span>tRingBuffer_getNewest()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tRingBuffer_getNewest </td>
+          <td>(</td>
+          <td class="paramtype">tRingBuffer *const&#160;</td>
+          <td class="paramname"><em>ring</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the newest value in the ring buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">buffer</td><td>A pointer to the relevant tRingBuffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The newest value in the ring buffer. </dd></dl>
+
+</div>
+</div>
+<a id="gaea32020dea77c0f0c65c3ea04460f598"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaea32020dea77c0f0c65c3ea04460f598">&#9670;&nbsp;</a></span>tRingBuffer_getOldest()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tRingBuffer_getOldest </td>
+          <td>(</td>
+          <td class="paramtype">tRingBuffer *const&#160;</td>
+          <td class="paramname"><em>ring</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the oldest value in the ring buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">buffer</td><td>A pointer to the relevant tRingBuffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The oldest value in the ring buffer. </dd></dl>
+
+</div>
+</div>
+<a id="ga6925019a4a1418b61751da7240e489fd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6925019a4a1418b61751da7240e489fd">&#9670;&nbsp;</a></span>tRingBuffer_get()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tRingBuffer_get </td>
+          <td>(</td>
+          <td class="paramtype">tRingBuffer *const&#160;</td>
+          <td class="paramname"><em>ring</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the value at an index of the buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">buffer</td><td>A pointer to the relevant tRingBuffer. </td></tr>
+    <tr><td class="paramname">index</td><td>The index to access. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The value at the given index. </dd></dl>
+
+</div>
+</div>
+<a id="ga33bf20b1a1a3f1bb3195f0735050d560"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga33bf20b1a1a3f1bb3195f0735050d560">&#9670;&nbsp;</a></span>tRingBuffer_getSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tRingBuffer_getSize </td>
+          <td>(</td>
+          <td class="paramtype">tRingBuffer *const&#160;</td>
+          <td class="paramname"><em>ring</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the size of the ring buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">buffer</td><td>A pointer to the relevant tRingBuffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The size of the buffer.  </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__trosenbergglottalpulse.html
@@ -1,0 +1,422 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tRosenbergGlottalPulse</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tRosenbergGlottalPulse<div class="ingroups"><a class="el" href="group__effects.html">Effects</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Rosenberg glottal pulse approximator.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gabc9f965e57fb4f4d19078e735ceeef41"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trosenbergglottalpulse.html#gabc9f965e57fb4f4d19078e735ceeef41">tRosenbergGlottalPulse_init</a> (tRosenbergGlottalPulse *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gabc9f965e57fb4f4d19078e735ceeef41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tRosenbergGlottalPulse to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__trosenbergglottalpulse.html#gabc9f965e57fb4f4d19078e735ceeef41">More...</a><br /></td></tr>
+<tr class="separator:gabc9f965e57fb4f4d19078e735ceeef41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga337b99d9c13835ad7d44dc496de018d6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trosenbergglottalpulse.html#ga337b99d9c13835ad7d44dc496de018d6">tRosenbergGlottalPulse_initToPool</a> (tRosenbergGlottalPulse *const, tMempool *const)</td></tr>
+<tr class="memdesc:ga337b99d9c13835ad7d44dc496de018d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tRosenbergGlottalPulse to a specified mempool.  <a href="group__trosenbergglottalpulse.html#ga337b99d9c13835ad7d44dc496de018d6">More...</a><br /></td></tr>
+<tr class="separator:ga337b99d9c13835ad7d44dc496de018d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac23f160eacd6098f0be43ef2ad50adba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trosenbergglottalpulse.html#gac23f160eacd6098f0be43ef2ad50adba">tRosenbergGlottalPulse_free</a> (tRosenbergGlottalPulse *const)</td></tr>
+<tr class="memdesc:gac23f160eacd6098f0be43ef2ad50adba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tRosenbergGlottalPulse from its mempool.  <a href="group__trosenbergglottalpulse.html#gac23f160eacd6098f0be43ef2ad50adba">More...</a><br /></td></tr>
+<tr class="separator:gac23f160eacd6098f0be43ef2ad50adba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa13740e5d8e0cab56e61eb0cb242fabe"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trosenbergglottalpulse.html#gaa13740e5d8e0cab56e61eb0cb242fabe">tRosenbergGlottalPulse_tick</a> (tRosenbergGlottalPulse *const)</td></tr>
+<tr class="separator:gaa13740e5d8e0cab56e61eb0cb242fabe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadbf13772282402d02eb7623fda03d496"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trosenbergglottalpulse.html#gadbf13772282402d02eb7623fda03d496">tRosenbergGlottalPulse_tickHQ</a> (tRosenbergGlottalPulse *const gp)</td></tr>
+<tr class="separator:gadbf13772282402d02eb7623fda03d496"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga199fe228e20140018c943b72347ba434"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trosenbergglottalpulse.html#ga199fe228e20140018c943b72347ba434">tRosenbergGlottalPulse_setFreq</a> (tRosenbergGlottalPulse *const, float freq)</td></tr>
+<tr class="separator:ga199fe228e20140018c943b72347ba434"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga703d56589fa0121e978609f5315ea1e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trosenbergglottalpulse.html#ga703d56589fa0121e978609f5315ea1e7">tRosenbergGlottalPulse_setOpenLength</a> (tRosenbergGlottalPulse *const, float openLength)</td></tr>
+<tr class="separator:ga703d56589fa0121e978609f5315ea1e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7339007dec7bc4164d850e63d57a75ec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trosenbergglottalpulse.html#ga7339007dec7bc4164d850e63d57a75ec">tRosenbergGlottalPulse_setPulseLength</a> (tRosenbergGlottalPulse *const, float pulseLength)</td></tr>
+<tr class="separator:ga7339007dec7bc4164d850e63d57a75ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0ebbc0ca662434c8685cbca2e44f656a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__trosenbergglottalpulse.html#ga0ebbc0ca662434c8685cbca2e44f656a">tRosenbergGlottalPulse_setOpenLengthAndPulseLength</a> (tRosenbergGlottalPulse *const gp, float openLength, float pulseLength)</td></tr>
+<tr class="separator:ga0ebbc0ca662434c8685cbca2e44f656a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Rosenberg glottal pulse approximator. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gabc9f965e57fb4f4d19078e735ceeef41"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabc9f965e57fb4f4d19078e735ceeef41">&#9670;&nbsp;</a></span>tRosenbergGlottalPulse_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRosenbergGlottalPulse_init </td>
+          <td>(</td>
+          <td class="paramtype">tRosenbergGlottalPulse *const&#160;</td>
+          <td class="paramname"><em>gp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tRosenbergGlottalPulse to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pulse</td><td>A pointer to the tRosenbergGlottalPulse to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance.</td></tr>
+  </table>
+  </dd>
+</dl>
+<p>Initialize a tRosenbergGlottalPulse to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+
+</div>
+</div>
+<a id="ga337b99d9c13835ad7d44dc496de018d6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga337b99d9c13835ad7d44dc496de018d6">&#9670;&nbsp;</a></span>tRosenbergGlottalPulse_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRosenbergGlottalPulse_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tRosenbergGlottalPulse * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tRosenbergGlottalPulse to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pulse</td><td>A pointer to the tRosenbergGlottalPulse to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac23f160eacd6098f0be43ef2ad50adba"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac23f160eacd6098f0be43ef2ad50adba">&#9670;&nbsp;</a></span>tRosenbergGlottalPulse_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRosenbergGlottalPulse_free </td>
+          <td>(</td>
+          <td class="paramtype">tRosenbergGlottalPulse * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tRosenbergGlottalPulse from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pulse</td><td>A pointer to the tRosenbergGlottalPulse to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa13740e5d8e0cab56e61eb0cb242fabe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa13740e5d8e0cab56e61eb0cb242fabe">&#9670;&nbsp;</a></span>tRosenbergGlottalPulse_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tRosenbergGlottalPulse_tick </td>
+          <td>(</td>
+          <td class="paramtype">tRosenbergGlottalPulse * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pulse</td><td>A pointer to the relevant tRosenbergGlottalPulse. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gadbf13772282402d02eb7623fda03d496"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gadbf13772282402d02eb7623fda03d496">&#9670;&nbsp;</a></span>tRosenbergGlottalPulse_tickHQ()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tRosenbergGlottalPulse_tickHQ </td>
+          <td>(</td>
+          <td class="paramtype">tRosenbergGlottalPulse *const&#160;</td>
+          <td class="paramname"><em>gp</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pulse</td><td>A pointer to the relevant tRosenbergGlottalPulse. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga199fe228e20140018c943b72347ba434"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga199fe228e20140018c943b72347ba434">&#9670;&nbsp;</a></span>tRosenbergGlottalPulse_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRosenbergGlottalPulse_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tRosenbergGlottalPulse * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pulse</td><td>A pointer to the relevant tRosenbergGlottalPulse. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga703d56589fa0121e978609f5315ea1e7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga703d56589fa0121e978609f5315ea1e7">&#9670;&nbsp;</a></span>tRosenbergGlottalPulse_setOpenLength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRosenbergGlottalPulse_setOpenLength </td>
+          <td>(</td>
+          <td class="paramtype">tRosenbergGlottalPulse * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>openLength</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pulse</td><td>A pointer to the relevant tRosenbergGlottalPulse. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7339007dec7bc4164d850e63d57a75ec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7339007dec7bc4164d850e63d57a75ec">&#9670;&nbsp;</a></span>tRosenbergGlottalPulse_setPulseLength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRosenbergGlottalPulse_setPulseLength </td>
+          <td>(</td>
+          <td class="paramtype">tRosenbergGlottalPulse * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>pulseLength</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pulse</td><td>A pointer to the relevant tRosenbergGlottalPulse. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0ebbc0ca662434c8685cbca2e44f656a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0ebbc0ca662434c8685cbca2e44f656a">&#9670;&nbsp;</a></span>tRosenbergGlottalPulse_setOpenLengthAndPulseLength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tRosenbergGlottalPulse_setOpenLengthAndPulseLength </td>
+          <td>(</td>
+          <td class="paramtype">tRosenbergGlottalPulse *const&#160;</td>
+          <td class="paramname"><em>gp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>openLength</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>pulseLength</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pulse</td><td>A pointer to the relevant tRosenbergGlottalPulse. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tsampler.html
@@ -1,0 +1,516 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tSampler</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tSampler<div class="ingroups"><a class="el" href="group__sampling.html">Sampling</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Loopable input sampler with crossfading.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gabe6b68ce1ad3be371e341671e131d8d1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsampler.html#gabe6b68ce1ad3be371e341671e131d8d1">tSampler_init</a> (tSampler *const, tBuffer *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gabe6b68ce1ad3be371e341671e131d8d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSampler to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tsampler.html#gabe6b68ce1ad3be371e341671e131d8d1">More...</a><br /></td></tr>
+<tr class="separator:gabe6b68ce1ad3be371e341671e131d8d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8294d4396e241ff583d5a0208a262a6f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsampler.html#ga8294d4396e241ff583d5a0208a262a6f">tSampler_free</a> (tSampler *const)</td></tr>
+<tr class="memdesc:ga8294d4396e241ff583d5a0208a262a6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tSampler from its mempool.  <a href="group__tsampler.html#ga8294d4396e241ff583d5a0208a262a6f">More...</a><br /></td></tr>
+<tr class="separator:ga8294d4396e241ff583d5a0208a262a6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf22e3192bf74770101ecae67268ed465"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsampler.html#gaf22e3192bf74770101ecae67268ed465">tSampler_tick</a> (tSampler *const)</td></tr>
+<tr class="separator:gaf22e3192bf74770101ecae67268ed465"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf6e374c6d252d986b46415223980088e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsampler.html#gaf6e374c6d252d986b46415223980088e">tSampler_setSample</a> (tSampler *const, tBuffer *const)</td></tr>
+<tr class="separator:gaf6e374c6d252d986b46415223980088e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7790cb700416a22238238fea75f0c632"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsampler.html#ga7790cb700416a22238238fea75f0c632">tSampler_setMode</a> (tSampler *const, PlayMode mode)</td></tr>
+<tr class="separator:ga7790cb700416a22238238fea75f0c632"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaca8fd3a386f7b5c12584820b76be70b6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsampler.html#gaca8fd3a386f7b5c12584820b76be70b6">tSampler_play</a> (tSampler *const)</td></tr>
+<tr class="separator:gaca8fd3a386f7b5c12584820b76be70b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf3dd0f9013b69cf4c3a6199b674925c0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsampler.html#gaf3dd0f9013b69cf4c3a6199b674925c0">tSampler_stop</a> (tSampler *const)</td></tr>
+<tr class="separator:gaf3dd0f9013b69cf4c3a6199b674925c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac7dc95f6705399e73778c96904df2390"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsampler.html#gac7dc95f6705399e73778c96904df2390">tSampler_setStart</a> (tSampler *const, int32_t start)</td></tr>
+<tr class="separator:gac7dc95f6705399e73778c96904df2390"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga36696178ca3f0bc7b8eef6786fe81faa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsampler.html#ga36696178ca3f0bc7b8eef6786fe81faa">tSampler_setEnd</a> (tSampler *const, int32_t end)</td></tr>
+<tr class="separator:ga36696178ca3f0bc7b8eef6786fe81faa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga498ced8a867faef896eb7ed194f86040"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsampler.html#ga498ced8a867faef896eb7ed194f86040">tSampler_setLength</a> (tSampler *const, int32_t length)</td></tr>
+<tr class="separator:ga498ced8a867faef896eb7ed194f86040"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa3b3bdfaff5b05513c777a586ad7fac5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsampler.html#gaa3b3bdfaff5b05513c777a586ad7fac5">tSampler_setCrossfadeLength</a> (tSampler *const sp, uint32_t length)</td></tr>
+<tr class="separator:gaa3b3bdfaff5b05513c777a586ad7fac5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadaccb8d16c9870ba327b4ab51ebc3b7e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsampler.html#gadaccb8d16c9870ba327b4ab51ebc3b7e">tSampler_setRate</a> (tSampler *const, float rate)</td></tr>
+<tr class="separator:gadaccb8d16c9870ba327b4ab51ebc3b7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Loopable input sampler with crossfading. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gabe6b68ce1ad3be371e341671e131d8d1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabe6b68ce1ad3be371e341671e131d8d1">&#9670;&nbsp;</a></span>tSampler_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSampler_init </td>
+          <td>(</td>
+          <td class="paramtype">tSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSampler to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the tSampler to initialize. </td></tr>
+    <tr><td class="paramname">buffer</td><td>A pointer to a tBuffer to playback audio from. Multiple tSamplers can share one tBuffer. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8294d4396e241ff583d5a0208a262a6f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8294d4396e241ff583d5a0208a262a6f">&#9670;&nbsp;</a></span>tSampler_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSampler_free </td>
+          <td>(</td>
+          <td class="paramtype">tSampler * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tSampler from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the tSampler to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf22e3192bf74770101ecae67268ed465"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf22e3192bf74770101ecae67268ed465">&#9670;&nbsp;</a></span>tSampler_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tSampler_tick </td>
+          <td>(</td>
+          <td class="paramtype">tSampler * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf6e374c6d252d986b46415223980088e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf6e374c6d252d986b46415223980088e">&#9670;&nbsp;</a></span>tSampler_setSample()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSampler_setSample </td>
+          <td>(</td>
+          <td class="paramtype">tSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tBuffer * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7790cb700416a22238238fea75f0c632"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7790cb700416a22238238fea75f0c632">&#9670;&nbsp;</a></span>tSampler_setMode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSampler_setMode </td>
+          <td>(</td>
+          <td class="paramtype">tSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">PlayMode&#160;</td>
+          <td class="paramname"><em>mode</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaca8fd3a386f7b5c12584820b76be70b6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaca8fd3a386f7b5c12584820b76be70b6">&#9670;&nbsp;</a></span>tSampler_play()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSampler_play </td>
+          <td>(</td>
+          <td class="paramtype">tSampler * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf3dd0f9013b69cf4c3a6199b674925c0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf3dd0f9013b69cf4c3a6199b674925c0">&#9670;&nbsp;</a></span>tSampler_stop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSampler_stop </td>
+          <td>(</td>
+          <td class="paramtype">tSampler * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac7dc95f6705399e73778c96904df2390"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac7dc95f6705399e73778c96904df2390">&#9670;&nbsp;</a></span>tSampler_setStart()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSampler_setStart </td>
+          <td>(</td>
+          <td class="paramtype">tSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>start</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga36696178ca3f0bc7b8eef6786fe81faa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga36696178ca3f0bc7b8eef6786fe81faa">&#9670;&nbsp;</a></span>tSampler_setEnd()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSampler_setEnd </td>
+          <td>(</td>
+          <td class="paramtype">tSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>end</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga498ced8a867faef896eb7ed194f86040"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga498ced8a867faef896eb7ed194f86040">&#9670;&nbsp;</a></span>tSampler_setLength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSampler_setLength </td>
+          <td>(</td>
+          <td class="paramtype">tSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa3b3bdfaff5b05513c777a586ad7fac5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa3b3bdfaff5b05513c777a586ad7fac5">&#9670;&nbsp;</a></span>tSampler_setCrossfadeLength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSampler_setCrossfadeLength </td>
+          <td>(</td>
+          <td class="paramtype">tSampler *const&#160;</td>
+          <td class="paramname"><em>sp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gadaccb8d16c9870ba327b4ab51ebc3b7e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gadaccb8d16c9870ba327b4ab51ebc3b7e">&#9670;&nbsp;</a></span>tSampler_setRate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSampler_setRate </td>
+          <td>(</td>
+          <td class="paramtype">tSampler * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>rate</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sampler</td><td>A pointer to the relevant tSampler. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tsamplereducer.html
@@ -1,0 +1,291 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tSampleReducer</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tSampleReducer<div class="ingroups"><a class="el" href="group__distortion.html">Distortion</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Sample rate reducer.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga4e2aa28e349ce74e863302442581d2c2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsamplereducer.html#ga4e2aa28e349ce74e863302442581d2c2">tSampleReducer_init</a> (tSampleReducer *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga4e2aa28e349ce74e863302442581d2c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSampleReducer to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tsamplereducer.html#ga4e2aa28e349ce74e863302442581d2c2">More...</a><br /></td></tr>
+<tr class="separator:ga4e2aa28e349ce74e863302442581d2c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga26f7d760728158cfac165e34ba7ed57f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsamplereducer.html#ga26f7d760728158cfac165e34ba7ed57f">tSampleReducer_initToPool</a> (tSampleReducer *const, tMempool *const)</td></tr>
+<tr class="memdesc:ga26f7d760728158cfac165e34ba7ed57f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSampleReducer to a specified mempool.  <a href="group__tsamplereducer.html#ga26f7d760728158cfac165e34ba7ed57f">More...</a><br /></td></tr>
+<tr class="separator:ga26f7d760728158cfac165e34ba7ed57f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae63dd070a3dcf2c58e69f6ccb2e476c1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsamplereducer.html#gae63dd070a3dcf2c58e69f6ccb2e476c1">tSampleReducer_free</a> (tSampleReducer *const)</td></tr>
+<tr class="memdesc:gae63dd070a3dcf2c58e69f6ccb2e476c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tSampleReducer from its mempool.  <a href="group__tsamplereducer.html#gae63dd070a3dcf2c58e69f6ccb2e476c1">More...</a><br /></td></tr>
+<tr class="separator:gae63dd070a3dcf2c58e69f6ccb2e476c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad2c3b27d31b01f37e3926ae2b7024a71"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsamplereducer.html#gad2c3b27d31b01f37e3926ae2b7024a71">tSampleReducer_tick</a> (tSampleReducer *const, float input)</td></tr>
+<tr class="separator:gad2c3b27d31b01f37e3926ae2b7024a71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga21f7231417a132c6ec8c115c99582c68"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsamplereducer.html#ga21f7231417a132c6ec8c115c99582c68">tSampleReducer_setRatio</a> (tSampleReducer *const, float ratio)</td></tr>
+<tr class="separator:ga21f7231417a132c6ec8c115c99582c68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Sample rate reducer. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga4e2aa28e349ce74e863302442581d2c2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4e2aa28e349ce74e863302442581d2c2">&#9670;&nbsp;</a></span>tSampleReducer_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSampleReducer_init </td>
+          <td>(</td>
+          <td class="paramtype">tSampleReducer * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSampleReducer to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reducer</td><td>A pointer to the tSampleReducer to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga26f7d760728158cfac165e34ba7ed57f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga26f7d760728158cfac165e34ba7ed57f">&#9670;&nbsp;</a></span>tSampleReducer_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSampleReducer_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tSampleReducer * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSampleReducer to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reducer</td><td>A pointer to the tSampleReducer to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae63dd070a3dcf2c58e69f6ccb2e476c1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae63dd070a3dcf2c58e69f6ccb2e476c1">&#9670;&nbsp;</a></span>tSampleReducer_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSampleReducer_free </td>
+          <td>(</td>
+          <td class="paramtype">tSampleReducer * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tSampleReducer from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reducer</td><td>A pointer to the tSampleReducer to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad2c3b27d31b01f37e3926ae2b7024a71"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad2c3b27d31b01f37e3926ae2b7024a71">&#9670;&nbsp;</a></span>tSampleReducer_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tSampleReducer_tick </td>
+          <td>(</td>
+          <td class="paramtype">tSampleReducer * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reducer</td><td>A pointer to the relevant tSampleReducer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga21f7231417a132c6ec8c115c99582c68"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga21f7231417a132c6ec8c115c99582c68">&#9670;&nbsp;</a></span>tSampleReducer_setRatio()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSampleReducer_setRatio </td>
+          <td>(</td>
+          <td class="paramtype">tSampleReducer * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>ratio</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">reducer</td><td>A pointer to the relevant tSampleReducer.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tsaw.html
@@ -1,0 +1,281 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tSaw</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tSaw<div class="ingroups"><a class="el" href="group__oscillators.html">Oscillators</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Saw wave oscillator with polyBLEP anti-aliasing.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga47c944a22090ff9f8f810b0ec7c87523"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsaw.html#ga47c944a22090ff9f8f810b0ec7c87523">tSaw_init</a> (tSaw *const osc, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga47c944a22090ff9f8f810b0ec7c87523"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSaw to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tsaw.html#ga47c944a22090ff9f8f810b0ec7c87523">More...</a><br /></td></tr>
+<tr class="separator:ga47c944a22090ff9f8f810b0ec7c87523"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga67f8a442de376d042a98e300952f39f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsaw.html#ga67f8a442de376d042a98e300952f39f2">tSaw_initToPool</a> (tSaw *const osc, tMempool *const mempool)</td></tr>
+<tr class="memdesc:ga67f8a442de376d042a98e300952f39f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSaw to a specified mempool.  <a href="group__tsaw.html#ga67f8a442de376d042a98e300952f39f2">More...</a><br /></td></tr>
+<tr class="separator:ga67f8a442de376d042a98e300952f39f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8a0086ee2a90f4e62a0313de8fe485d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsaw.html#ga8a0086ee2a90f4e62a0313de8fe485d5">tSaw_free</a> (tSaw *const osc)</td></tr>
+<tr class="memdesc:ga8a0086ee2a90f4e62a0313de8fe485d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tSaw from its mempool.  <a href="group__tsaw.html#ga8a0086ee2a90f4e62a0313de8fe485d5">More...</a><br /></td></tr>
+<tr class="separator:ga8a0086ee2a90f4e62a0313de8fe485d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6aa69769acd51715899d60b0f581796d"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsaw.html#ga6aa69769acd51715899d60b0f581796d">tSaw_tick</a> (tSaw *const osc)</td></tr>
+<tr class="separator:ga6aa69769acd51715899d60b0f581796d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga665577c990c9112d70d42b859abc93dd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsaw.html#ga665577c990c9112d70d42b859abc93dd">tSaw_setFreq</a> (tSaw *const osc, float freq)</td></tr>
+<tr class="separator:ga665577c990c9112d70d42b859abc93dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Saw wave oscillator with polyBLEP anti-aliasing. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga47c944a22090ff9f8f810b0ec7c87523"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga47c944a22090ff9f8f810b0ec7c87523">&#9670;&nbsp;</a></span>tSaw_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSaw_init </td>
+          <td>(</td>
+          <td class="paramtype">tSaw *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSaw to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tSaw to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga67f8a442de376d042a98e300952f39f2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga67f8a442de376d042a98e300952f39f2">&#9670;&nbsp;</a></span>tSaw_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSaw_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tSaw *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSaw to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tSaw to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8a0086ee2a90f4e62a0313de8fe485d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8a0086ee2a90f4e62a0313de8fe485d5">&#9670;&nbsp;</a></span>tSaw_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSaw_free </td>
+          <td>(</td>
+          <td class="paramtype">tSaw *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tSaw from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tSaw to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6aa69769acd51715899d60b0f581796d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6aa69769acd51715899d60b0f581796d">&#9670;&nbsp;</a></span>tSaw_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tSaw_tick </td>
+          <td>(</td>
+          <td class="paramtype">tSaw *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tSaw. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga665577c990c9112d70d42b859abc93dd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga665577c990c9112d70d42b859abc93dd">&#9670;&nbsp;</a></span>tSaw_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSaw_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tSaw *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tSaw.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tsawtooth.html
@@ -1,0 +1,289 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tSawtooth</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tSawtooth<div class="ingroups"><a class="el" href="group__oscillators.html">Oscillators</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Anti-aliased wavetable saw wave oscillator.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaa052c9d8e62a198bbaeac892b0d11a7f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsawtooth.html#gaa052c9d8e62a198bbaeac892b0d11a7f">tSawtooth_init</a> (tSawtooth *const osc, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gaa052c9d8e62a198bbaeac892b0d11a7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSawtooth to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tsawtooth.html#gaa052c9d8e62a198bbaeac892b0d11a7f">More...</a><br /></td></tr>
+<tr class="separator:gaa052c9d8e62a198bbaeac892b0d11a7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga63ee3403c200358511ffb049a3a93bf2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsawtooth.html#ga63ee3403c200358511ffb049a3a93bf2">tSawtooth_initToPool</a> (tSawtooth *const osc, tMempool *const mempool)</td></tr>
+<tr class="memdesc:ga63ee3403c200358511ffb049a3a93bf2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSawtooth to a specified mempool.  <a href="group__tsawtooth.html#ga63ee3403c200358511ffb049a3a93bf2">More...</a><br /></td></tr>
+<tr class="separator:ga63ee3403c200358511ffb049a3a93bf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga32ba208b6c4745587d267598702aaf02"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsawtooth.html#ga32ba208b6c4745587d267598702aaf02">tSawtooth_free</a> (tSawtooth *const osc)</td></tr>
+<tr class="memdesc:ga32ba208b6c4745587d267598702aaf02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tSawtooth from its mempool.  <a href="group__tsawtooth.html#ga32ba208b6c4745587d267598702aaf02">More...</a><br /></td></tr>
+<tr class="separator:ga32ba208b6c4745587d267598702aaf02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga55fd2d0b1572fc8a67fffc7531fced69"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsawtooth.html#ga55fd2d0b1572fc8a67fffc7531fced69">tSawtooth_tick</a> (tSawtooth *const osc)</td></tr>
+<tr class="memdesc:ga55fd2d0b1572fc8a67fffc7531fced69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tick a tSawtooth oscillator.  <a href="group__tsawtooth.html#ga55fd2d0b1572fc8a67fffc7531fced69">More...</a><br /></td></tr>
+<tr class="separator:ga55fd2d0b1572fc8a67fffc7531fced69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab096cb0c5c0384b47959d0161d8432e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsawtooth.html#gab096cb0c5c0384b47959d0161d8432e4">tSawtooth_setFreq</a> (tSawtooth *const osc, float freq)</td></tr>
+<tr class="memdesc:gab096cb0c5c0384b47959d0161d8432e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the frequency of a tSawtooth oscillator.  <a href="group__tsawtooth.html#gab096cb0c5c0384b47959d0161d8432e4">More...</a><br /></td></tr>
+<tr class="separator:gab096cb0c5c0384b47959d0161d8432e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Anti-aliased wavetable saw wave oscillator. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gaa052c9d8e62a198bbaeac892b0d11a7f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa052c9d8e62a198bbaeac892b0d11a7f">&#9670;&nbsp;</a></span>tSawtooth_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSawtooth_init </td>
+          <td>(</td>
+          <td class="paramtype">tSawtooth *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSawtooth to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tSawtooth to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga63ee3403c200358511ffb049a3a93bf2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga63ee3403c200358511ffb049a3a93bf2">&#9670;&nbsp;</a></span>tSawtooth_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSawtooth_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tSawtooth *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSawtooth to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tSawtooth to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga32ba208b6c4745587d267598702aaf02"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga32ba208b6c4745587d267598702aaf02">&#9670;&nbsp;</a></span>tSawtooth_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSawtooth_free </td>
+          <td>(</td>
+          <td class="paramtype">tSawtooth *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tSawtooth from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tSawtooth to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga55fd2d0b1572fc8a67fffc7531fced69"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga55fd2d0b1572fc8a67fffc7531fced69">&#9670;&nbsp;</a></span>tSawtooth_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tSawtooth_tick </td>
+          <td>(</td>
+          <td class="paramtype">tSawtooth *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Tick a tSawtooth oscillator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tSawtooth. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The ticked sample as a float from -1 to 1. </dd></dl>
+
+</div>
+</div>
+<a id="gab096cb0c5c0384b47959d0161d8432e4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab096cb0c5c0384b47959d0161d8432e4">&#9670;&nbsp;</a></span>tSawtooth_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSawtooth_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tSawtooth *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the frequency of a tSawtooth oscillator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tSawtooth. </td></tr>
+    <tr><td class="paramname">freq</td><td>The frequency to set the oscillator to.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tsimplelivingstring.html
@@ -1,0 +1,653 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tSimpleLivingString</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tSimpleLivingString<div class="ingroups"><a class="el" href="group__physical.html">Physical Models</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Simplified string model.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga9c905b5e7e42d86fb1565fc7bebe7489"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplelivingstring.html#ga9c905b5e7e42d86fb1565fc7bebe7489">tSimpleLivingString_init</a> (tSimpleLivingString *const, float freq, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga9c905b5e7e42d86fb1565fc7bebe7489"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSimpleLivingString to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tsimplelivingstring.html#ga9c905b5e7e42d86fb1565fc7bebe7489">More...</a><br /></td></tr>
+<tr class="separator:ga9c905b5e7e42d86fb1565fc7bebe7489"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga87d9705a3cf73b73aecf42083eb3d921"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplelivingstring.html#ga87d9705a3cf73b73aecf42083eb3d921">tSimpleLivingString_initToPool</a> (tSimpleLivingString *const, float freq, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const)</td></tr>
+<tr class="memdesc:ga87d9705a3cf73b73aecf42083eb3d921"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSimpleLivingString to a specified mempool.  <a href="group__tsimplelivingstring.html#ga87d9705a3cf73b73aecf42083eb3d921">More...</a><br /></td></tr>
+<tr class="separator:ga87d9705a3cf73b73aecf42083eb3d921"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9d08fedb273f78dfe7dc468736faee1c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplelivingstring.html#ga9d08fedb273f78dfe7dc468736faee1c">tSimpleLivingString_free</a> (tSimpleLivingString *const)</td></tr>
+<tr class="memdesc:ga9d08fedb273f78dfe7dc468736faee1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tSimpleLivingString from its mempool.  <a href="group__tsimplelivingstring.html#ga9d08fedb273f78dfe7dc468736faee1c">More...</a><br /></td></tr>
+<tr class="separator:ga9d08fedb273f78dfe7dc468736faee1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae4a6c036a53365af66a92dac9d86f3c3"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplelivingstring.html#gae4a6c036a53365af66a92dac9d86f3c3">tSimpleLivingString_tick</a> (tSimpleLivingString *const, float input)</td></tr>
+<tr class="separator:gae4a6c036a53365af66a92dac9d86f3c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga86a53b69513ad23136a75ed338deca3d"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplelivingstring.html#ga86a53b69513ad23136a75ed338deca3d">tSimpleLivingString_sample</a> (tSimpleLivingString *const)</td></tr>
+<tr class="separator:ga86a53b69513ad23136a75ed338deca3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga474a710fddae2d86bf79b11384f3709b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplelivingstring.html#ga474a710fddae2d86bf79b11384f3709b">tSimpleLivingString_setFreq</a> (tSimpleLivingString *const, float freq)</td></tr>
+<tr class="separator:ga474a710fddae2d86bf79b11384f3709b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga84804ae6c66949069c185fbc8d8f2ae9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplelivingstring.html#ga84804ae6c66949069c185fbc8d8f2ae9">tSimpleLivingString_setWaveLength</a> (tSimpleLivingString *const, float waveLength)</td></tr>
+<tr class="separator:ga84804ae6c66949069c185fbc8d8f2ae9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafbeb5b41ab1d03c57bdc93e785a6adb7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplelivingstring.html#gafbeb5b41ab1d03c57bdc93e785a6adb7">tSimpleLivingString_setDampFreq</a> (tSimpleLivingString *const, float dampFreq)</td></tr>
+<tr class="separator:gafbeb5b41ab1d03c57bdc93e785a6adb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad66e79ac86857f2c5c9af831254dcf66"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplelivingstring.html#gad66e79ac86857f2c5c9af831254dcf66">tSimpleLivingString_setDecay</a> (tSimpleLivingString *const, float decay)</td></tr>
+<tr class="separator:gad66e79ac86857f2c5c9af831254dcf66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2d58bf73c0e7e92ddac30eece502e2be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplelivingstring.html#ga2d58bf73c0e7e92ddac30eece502e2be">tSimpleLivingString_setTargetLev</a> (tSimpleLivingString *const, float targetLev)</td></tr>
+<tr class="separator:ga2d58bf73c0e7e92ddac30eece502e2be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeb957c0478dc7181b074dd51505b6f0d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplelivingstring.html#gaeb957c0478dc7181b074dd51505b6f0d">tSimpleLivingString_setLevSmoothFactor</a> (tSimpleLivingString *const, float levSmoothFactor)</td></tr>
+<tr class="separator:gaeb957c0478dc7181b074dd51505b6f0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac76ca3acde529dcae1336fdbfccd498d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplelivingstring.html#gac76ca3acde529dcae1336fdbfccd498d">tSimpleLivingString_setLevStrength</a> (tSimpleLivingString *const, float levStrength)</td></tr>
+<tr class="separator:gac76ca3acde529dcae1336fdbfccd498d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga951524437c11b10c1023ea5bf922e50e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplelivingstring.html#ga951524437c11b10c1023ea5bf922e50e">tSimpleLivingString_setLevMode</a> (tSimpleLivingString *const, int levMode)</td></tr>
+<tr class="separator:ga951524437c11b10c1023ea5bf922e50e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Simplified string model. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga9c905b5e7e42d86fb1565fc7bebe7489"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9c905b5e7e42d86fb1565fc7bebe7489">&#9670;&nbsp;</a></span>tSimpleLivingString_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimpleLivingString_init </td>
+          <td>(</td>
+          <td class="paramtype">tSimpleLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>dampFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>targetLev</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levSmoothFactor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levStrength</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>levMode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSimpleLivingString to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the tSimpleLivingString to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga87d9705a3cf73b73aecf42083eb3d921"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga87d9705a3cf73b73aecf42083eb3d921">&#9670;&nbsp;</a></span>tSimpleLivingString_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimpleLivingString_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tSimpleLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>dampFreq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>targetLev</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levSmoothFactor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levStrength</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>levMode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSimpleLivingString to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the tSimpleLivingString to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9d08fedb273f78dfe7dc468736faee1c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9d08fedb273f78dfe7dc468736faee1c">&#9670;&nbsp;</a></span>tSimpleLivingString_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimpleLivingString_free </td>
+          <td>(</td>
+          <td class="paramtype">tSimpleLivingString * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tSimpleLivingString from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the tSimpleLivingString to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae4a6c036a53365af66a92dac9d86f3c3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae4a6c036a53365af66a92dac9d86f3c3">&#9670;&nbsp;</a></span>tSimpleLivingString_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tSimpleLivingString_tick </td>
+          <td>(</td>
+          <td class="paramtype">tSimpleLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tSimpleLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga86a53b69513ad23136a75ed338deca3d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga86a53b69513ad23136a75ed338deca3d">&#9670;&nbsp;</a></span>tSimpleLivingString_sample()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tSimpleLivingString_sample </td>
+          <td>(</td>
+          <td class="paramtype">tSimpleLivingString * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tSimpleLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga474a710fddae2d86bf79b11384f3709b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga474a710fddae2d86bf79b11384f3709b">&#9670;&nbsp;</a></span>tSimpleLivingString_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimpleLivingString_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tSimpleLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tSimpleLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga84804ae6c66949069c185fbc8d8f2ae9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga84804ae6c66949069c185fbc8d8f2ae9">&#9670;&nbsp;</a></span>tSimpleLivingString_setWaveLength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimpleLivingString_setWaveLength </td>
+          <td>(</td>
+          <td class="paramtype">tSimpleLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>waveLength</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tSimpleLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gafbeb5b41ab1d03c57bdc93e785a6adb7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafbeb5b41ab1d03c57bdc93e785a6adb7">&#9670;&nbsp;</a></span>tSimpleLivingString_setDampFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimpleLivingString_setDampFreq </td>
+          <td>(</td>
+          <td class="paramtype">tSimpleLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>dampFreq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tSimpleLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad66e79ac86857f2c5c9af831254dcf66"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad66e79ac86857f2c5c9af831254dcf66">&#9670;&nbsp;</a></span>tSimpleLivingString_setDecay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimpleLivingString_setDecay </td>
+          <td>(</td>
+          <td class="paramtype">tSimpleLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>decay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tSimpleLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2d58bf73c0e7e92ddac30eece502e2be"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2d58bf73c0e7e92ddac30eece502e2be">&#9670;&nbsp;</a></span>tSimpleLivingString_setTargetLev()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimpleLivingString_setTargetLev </td>
+          <td>(</td>
+          <td class="paramtype">tSimpleLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>targetLev</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tSimpleLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaeb957c0478dc7181b074dd51505b6f0d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaeb957c0478dc7181b074dd51505b6f0d">&#9670;&nbsp;</a></span>tSimpleLivingString_setLevSmoothFactor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimpleLivingString_setLevSmoothFactor </td>
+          <td>(</td>
+          <td class="paramtype">tSimpleLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levSmoothFactor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tSimpleLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac76ca3acde529dcae1336fdbfccd498d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac76ca3acde529dcae1336fdbfccd498d">&#9670;&nbsp;</a></span>tSimpleLivingString_setLevStrength()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimpleLivingString_setLevStrength </td>
+          <td>(</td>
+          <td class="paramtype">tSimpleLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>levStrength</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tSimpleLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga951524437c11b10c1023ea5bf922e50e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga951524437c11b10c1023ea5bf922e50e">&#9670;&nbsp;</a></span>tSimpleLivingString_setLevMode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimpleLivingString_setLevMode </td>
+          <td>(</td>
+          <td class="paramtype">tSimpleLivingString * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>levMode</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>A pointer to the relevant tSimpleLivingString. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tsimplepoly.html
@@ -1,0 +1,659 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tSimplePoly</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tSimplePoly<div class="ingroups"><a class="el" href="group__midi.html">MIDI</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Polyphony handler.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaad03d289d4860fd6fc570e359da13f15"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplepoly.html#gaad03d289d4860fd6fc570e359da13f15">tSimplePoly_init</a> (tSimplePoly *const poly, int maxNumVoices, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gaad03d289d4860fd6fc570e359da13f15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSimplePoly to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tsimplepoly.html#gaad03d289d4860fd6fc570e359da13f15">More...</a><br /></td></tr>
+<tr class="separator:gaad03d289d4860fd6fc570e359da13f15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga67391919fd2cf8b80b80b9a74f0a2f02"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplepoly.html#ga67391919fd2cf8b80b80b9a74f0a2f02">tSimplePoly_initToPool</a> (tSimplePoly *const poly, int maxNumVoices, tMempool *const pool)</td></tr>
+<tr class="memdesc:ga67391919fd2cf8b80b80b9a74f0a2f02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSimplePoly to a specified mempool.  <a href="group__tsimplepoly.html#ga67391919fd2cf8b80b80b9a74f0a2f02">More...</a><br /></td></tr>
+<tr class="separator:ga67391919fd2cf8b80b80b9a74f0a2f02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae112285fcb27b1b6822b5db474b892d7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplepoly.html#gae112285fcb27b1b6822b5db474b892d7">tSimplePoly_free</a> (tSimplePoly *const poly)</td></tr>
+<tr class="memdesc:gae112285fcb27b1b6822b5db474b892d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tSimplePoly from its mempool.  <a href="group__tsimplepoly.html#gae112285fcb27b1b6822b5db474b892d7">More...</a><br /></td></tr>
+<tr class="separator:gae112285fcb27b1b6822b5db474b892d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga704023c95d0eef34c4746a4489626bd9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplepoly.html#ga704023c95d0eef34c4746a4489626bd9">tSimplePoly_noteOn</a> (tSimplePoly *const poly, int note, uint8_t vel)</td></tr>
+<tr class="memdesc:ga704023c95d0eef34c4746a4489626bd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a note with a given velocity to the poly handler.  <a href="group__tsimplepoly.html#ga704023c95d0eef34c4746a4489626bd9">More...</a><br /></td></tr>
+<tr class="separator:ga704023c95d0eef34c4746a4489626bd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga12fc7c78f1e2fcd0016a438374eb4ec3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplepoly.html#ga12fc7c78f1e2fcd0016a438374eb4ec3">tSimplePoly_noteOff</a> (tSimplePoly *const poly, uint8_t note)</td></tr>
+<tr class="memdesc:ga12fc7c78f1e2fcd0016a438374eb4ec3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a note from the poly handler.  <a href="group__tsimplepoly.html#ga12fc7c78f1e2fcd0016a438374eb4ec3">More...</a><br /></td></tr>
+<tr class="separator:ga12fc7c78f1e2fcd0016a438374eb4ec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d801960d20e16f81eff12b420a904c8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplepoly.html#ga6d801960d20e16f81eff12b420a904c8">tSimplePoly_deactivateVoice</a> (tSimplePoly *const polyh, uint8_t voice)</td></tr>
+<tr class="separator:ga6d801960d20e16f81eff12b420a904c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga668c915adab45224835268b08c7f4c80"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplepoly.html#ga668c915adab45224835268b08c7f4c80">tSimplePoly_markPendingNoteOff</a> (tSimplePoly *const polyh, uint8_t note)</td></tr>
+<tr class="separator:ga668c915adab45224835268b08c7f4c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9a78b4407716cd48468420194f39d811"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplepoly.html#ga9a78b4407716cd48468420194f39d811">tSimplePoly_findVoiceAssignedToNote</a> (tSimplePoly *const polyh, uint8_t note)</td></tr>
+<tr class="memdesc:ga9a78b4407716cd48468420194f39d811"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find if there is a voice with that note &ndash; useful for note offs where you want to wait to remove it from the poly until the release phase of the envelope is finished.  <a href="group__tsimplepoly.html#ga9a78b4407716cd48468420194f39d811">More...</a><br /></td></tr>
+<tr class="separator:ga9a78b4407716cd48468420194f39d811"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae11bb769f332621148bfe4e9e966cc1d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplepoly.html#gae11bb769f332621148bfe4e9e966cc1d">tSimplePoly_setNumVoices</a> (tSimplePoly *const poly, uint8_t numVoices)</td></tr>
+<tr class="memdesc:gae11bb769f332621148bfe4e9e966cc1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the number of voices available to play notes.  <a href="group__tsimplepoly.html#gae11bb769f332621148bfe4e9e966cc1d">More...</a><br /></td></tr>
+<tr class="separator:gae11bb769f332621148bfe4e9e966cc1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga574023fdcde9863f60a88c5171595628"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplepoly.html#ga574023fdcde9863f60a88c5171595628">tSimplePoly_getNumVoices</a> (tSimplePoly *const poly)</td></tr>
+<tr class="memdesc:ga574023fdcde9863f60a88c5171595628"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current number of voices available to play notes.  <a href="group__tsimplepoly.html#ga574023fdcde9863f60a88c5171595628">More...</a><br /></td></tr>
+<tr class="separator:ga574023fdcde9863f60a88c5171595628"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7927a37f0b05301c58923ee0bd9b1376"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplepoly.html#ga7927a37f0b05301c58923ee0bd9b1376">tSimplePoly_getNumActiveVoices</a> (tSimplePoly *const poly)</td></tr>
+<tr class="memdesc:ga7927a37f0b05301c58923ee0bd9b1376"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of voices currently playing notes.  <a href="group__tsimplepoly.html#ga7927a37f0b05301c58923ee0bd9b1376">More...</a><br /></td></tr>
+<tr class="separator:ga7927a37f0b05301c58923ee0bd9b1376"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga04edeaf26303e4fd57988b3144063590"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplepoly.html#ga04edeaf26303e4fd57988b3144063590">tSimplePoly_getPitch</a> (tSimplePoly *const poly, uint8_t voice)</td></tr>
+<tr class="memdesc:ga04edeaf26303e4fd57988b3144063590"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current MIDI note number of a given voice.  <a href="group__tsimplepoly.html#ga04edeaf26303e4fd57988b3144063590">More...</a><br /></td></tr>
+<tr class="separator:ga04edeaf26303e4fd57988b3144063590"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae147f59b6da64f3af94407da5a6ec3db"><td class="memItemLeft" align="right" valign="top"><a id="gae147f59b6da64f3af94407da5a6ec3db"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplepoly.html#gae147f59b6da64f3af94407da5a6ec3db">tSimplePoly_getPitchAndCheckActive</a> (tSimplePoly *const polyh, uint8_t voice)</td></tr>
+<tr class="memdesc:gae147f59b6da64f3af94407da5a6ec3db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns negative one if the voice is inactive. <br /></td></tr>
+<tr class="separator:gae147f59b6da64f3af94407da5a6ec3db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga85311b798b65407dcd4de68a8ed7d52d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplepoly.html#ga85311b798b65407dcd4de68a8ed7d52d">tSimplePoly_getVelocity</a> (tSimplePoly *const poly, uint8_t voice)</td></tr>
+<tr class="memdesc:ga85311b798b65407dcd4de68a8ed7d52d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current MIDI velocity of a given voice.  <a href="group__tsimplepoly.html#ga85311b798b65407dcd4de68a8ed7d52d">More...</a><br /></td></tr>
+<tr class="separator:ga85311b798b65407dcd4de68a8ed7d52d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1a55f7b4f9e8926acb9f6126c8e80633"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimplepoly.html#ga1a55f7b4f9e8926acb9f6126c8e80633">tSimplePoly_isOn</a> (tSimplePoly *const poly, uint8_t voice)</td></tr>
+<tr class="memdesc:ga1a55f7b4f9e8926acb9f6126c8e80633"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current play state of a given voice.  <a href="group__tsimplepoly.html#ga1a55f7b4f9e8926acb9f6126c8e80633">More...</a><br /></td></tr>
+<tr class="separator:ga1a55f7b4f9e8926acb9f6126c8e80633"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Polyphony handler. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gaad03d289d4860fd6fc570e359da13f15"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaad03d289d4860fd6fc570e359da13f15">&#9670;&nbsp;</a></span>tSimplePoly_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimplePoly_init </td>
+          <td>(</td>
+          <td class="paramtype">tSimplePoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>maxNumVoices</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSimplePoly to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the tSimplePoly to initialize. </td></tr>
+    <tr><td class="paramname">maxNumVoices</td><td>The maximum number of voices this tSimplePoly can handle at once. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga67391919fd2cf8b80b80b9a74f0a2f02"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga67391919fd2cf8b80b80b9a74f0a2f02">&#9670;&nbsp;</a></span>tSimplePoly_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimplePoly_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tSimplePoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>maxNumVoices</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>pool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSimplePoly to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the tSimplePoly to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae112285fcb27b1b6822b5db474b892d7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae112285fcb27b1b6822b5db474b892d7">&#9670;&nbsp;</a></span>tSimplePoly_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimplePoly_free </td>
+          <td>(</td>
+          <td class="paramtype">tSimplePoly *const&#160;</td>
+          <td class="paramname"><em>poly</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tSimplePoly from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the tSimplePoly to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga704023c95d0eef34c4746a4489626bd9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga704023c95d0eef34c4746a4489626bd9">&#9670;&nbsp;</a></span>tSimplePoly_noteOn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tSimplePoly_noteOn </td>
+          <td>(</td>
+          <td class="paramtype">tSimplePoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>note</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>vel</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Add a note with a given velocity to the poly handler. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tSimplePoly. </td></tr>
+    <tr><td class="paramname">note</td><td>The MIDI note number to add. </td></tr>
+    <tr><td class="paramname">vel</td><td>The MIDI velocity of the note to add. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The voice that will play the note. </dd></dl>
+
+</div>
+</div>
+<a id="ga12fc7c78f1e2fcd0016a438374eb4ec3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga12fc7c78f1e2fcd0016a438374eb4ec3">&#9670;&nbsp;</a></span>tSimplePoly_noteOff()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tSimplePoly_noteOff </td>
+          <td>(</td>
+          <td class="paramtype">tSimplePoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>note</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Remove a note from the poly handler. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tSimplePoly. </td></tr>
+    <tr><td class="paramname">note</td><td>The MIDI note number to remove. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The voice that was playing the removed note. </dd></dl>
+
+</div>
+</div>
+<a id="ga6d801960d20e16f81eff12b420a904c8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6d801960d20e16f81eff12b420a904c8">&#9670;&nbsp;</a></span>tSimplePoly_deactivateVoice()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimplePoly_deactivateVoice </td>
+          <td>(</td>
+          <td class="paramtype">tSimplePoly *const&#160;</td>
+          <td class="paramname"><em>polyh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>voice</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga668c915adab45224835268b08c7f4c80"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga668c915adab45224835268b08c7f4c80">&#9670;&nbsp;</a></span>tSimplePoly_markPendingNoteOff()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tSimplePoly_markPendingNoteOff </td>
+          <td>(</td>
+          <td class="paramtype">tSimplePoly *const&#160;</td>
+          <td class="paramname"><em>polyh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>note</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9a78b4407716cd48468420194f39d811"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9a78b4407716cd48468420194f39d811">&#9670;&nbsp;</a></span>tSimplePoly_findVoiceAssignedToNote()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tSimplePoly_findVoiceAssignedToNote </td>
+          <td>(</td>
+          <td class="paramtype">tSimplePoly *const&#160;</td>
+          <td class="paramname"><em>polyh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>note</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Find if there is a voice with that note &ndash; useful for note offs where you want to wait to remove it from the poly until the release phase of the envelope is finished. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae11bb769f332621148bfe4e9e966cc1d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae11bb769f332621148bfe4e9e966cc1d">&#9670;&nbsp;</a></span>tSimplePoly_setNumVoices()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimplePoly_setNumVoices </td>
+          <td>(</td>
+          <td class="paramtype">tSimplePoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>numVoices</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the number of voices available to play notes. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tSimplePoly. </td></tr>
+    <tr><td class="paramname">numVoices</td><td>The new number of available voices. Cannot be greater than the max number voices given on initialization. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga574023fdcde9863f60a88c5171595628"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga574023fdcde9863f60a88c5171595628">&#9670;&nbsp;</a></span>tSimplePoly_getNumVoices()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tSimplePoly_getNumVoices </td>
+          <td>(</td>
+          <td class="paramtype">tSimplePoly *const&#160;</td>
+          <td class="paramname"><em>poly</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the current number of voices available to play notes. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tSimplePoly. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The current number of voices available to play notes. </dd></dl>
+
+</div>
+</div>
+<a id="ga7927a37f0b05301c58923ee0bd9b1376"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7927a37f0b05301c58923ee0bd9b1376">&#9670;&nbsp;</a></span>tSimplePoly_getNumActiveVoices()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tSimplePoly_getNumActiveVoices </td>
+          <td>(</td>
+          <td class="paramtype">tSimplePoly *const&#160;</td>
+          <td class="paramname"><em>poly</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the number of voices currently playing notes. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tSimplePoly. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of voices currently playing notes. </dd></dl>
+
+</div>
+</div>
+<a id="ga04edeaf26303e4fd57988b3144063590"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga04edeaf26303e4fd57988b3144063590">&#9670;&nbsp;</a></span>tSimplePoly_getPitch()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tSimplePoly_getPitch </td>
+          <td>(</td>
+          <td class="paramtype">tSimplePoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>voice</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the current MIDI note number of a given voice. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tSimplePoly. </td></tr>
+    <tr><td class="paramname">voice</td><td>The voice to get the MIDI note number of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The MIDI note number of the given voice. </dd></dl>
+
+</div>
+</div>
+<a id="ga85311b798b65407dcd4de68a8ed7d52d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga85311b798b65407dcd4de68a8ed7d52d">&#9670;&nbsp;</a></span>tSimplePoly_getVelocity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tSimplePoly_getVelocity </td>
+          <td>(</td>
+          <td class="paramtype">tSimplePoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>voice</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the current MIDI velocity of a given voice. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tSimplePoly. </td></tr>
+    <tr><td class="paramname">voice</td><td>The voice to get the MIDI velocity of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The current MIDI velocity of the given voice. </dd></dl>
+
+</div>
+</div>
+<a id="ga1a55f7b4f9e8926acb9f6126c8e80633"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1a55f7b4f9e8926acb9f6126c8e80633">&#9670;&nbsp;</a></span>tSimplePoly_isOn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tSimplePoly_isOn </td>
+          <td>(</td>
+          <td class="paramtype">tSimplePoly *const&#160;</td>
+          <td class="paramname"><em>poly</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>voice</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the current play state of a given voice. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">poly</td><td>A pointer to the relevant tSimplePoly. </td></tr>
+    <tr><td class="paramname">voice</td><td>The voice to get the state of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The current play state of the given voice. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tsimpleretune.html
@@ -1,0 +1,211 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tSimpleRetune</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tSimpleRetune<div class="ingroups"><a class="el" href="group__effects.html">Effects</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Wrapper for multiple pitch shifters with single-channel output.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga3a1f081437fbb7ad75b27fb09c39f096"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimpleretune.html#ga3a1f081437fbb7ad75b27fb09c39f096">tSimpleRetune_free</a> (tSimpleRetune *const)</td></tr>
+<tr class="memdesc:ga3a1f081437fbb7ad75b27fb09c39f096"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tSimpleRetune from its mempool.  <a href="group__tsimpleretune.html#ga3a1f081437fbb7ad75b27fb09c39f096">More...</a><br /></td></tr>
+<tr class="separator:ga3a1f081437fbb7ad75b27fb09c39f096"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga641d532934fde59a0489e7fecd28961c"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimpleretune.html#ga641d532934fde59a0489e7fecd28961c">tSimpleRetune_tick</a> (tSimpleRetune *const, float sample)</td></tr>
+<tr class="separator:ga641d532934fde59a0489e7fecd28961c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ad6f40fd922775510221226892d8839"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsimpleretune.html#ga7ad6f40fd922775510221226892d8839">tSimpleRetune_setNumVoices</a> (tSimpleRetune *const, int numVoices)</td></tr>
+<tr class="separator:ga7ad6f40fd922775510221226892d8839"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Wrapper for multiple pitch shifters with single-channel output. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga3a1f081437fbb7ad75b27fb09c39f096"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3a1f081437fbb7ad75b27fb09c39f096">&#9670;&nbsp;</a></span>tSimpleRetune_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimpleRetune_free </td>
+          <td>(</td>
+          <td class="paramtype">tSimpleRetune * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tSimpleRetune from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">retune</td><td>A pointer to the tSimpleRetune to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga641d532934fde59a0489e7fecd28961c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga641d532934fde59a0489e7fecd28961c">&#9670;&nbsp;</a></span>tSimpleRetune_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float * tSimpleRetune_tick </td>
+          <td>(</td>
+          <td class="paramtype">tSimpleRetune * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sample</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">retune</td><td>A pointer to the relevant tSimpleRetune. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7ad6f40fd922775510221226892d8839"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7ad6f40fd922775510221226892d8839">&#9670;&nbsp;</a></span>tSimpleRetune_setNumVoices()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSimpleRetune_setNumVoices </td>
+          <td>(</td>
+          <td class="paramtype">tSimpleRetune * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>numVoices</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">retune</td><td>A pointer to the relevant tSimpleRetune. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tslide.html
@@ -1,0 +1,413 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tSlide</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tSlide<div class="ingroups"><a class="el" href="group__envelopes.html">Envelopes</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Based on Max/MSP's slide~.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga8288a16662a7fa082c4fcad3cea0ab04"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tslide.html#ga8288a16662a7fa082c4fcad3cea0ab04">tSlide_init</a> (tSlide *const, float upSlide, float downSlide, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga8288a16662a7fa082c4fcad3cea0ab04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSlide to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tslide.html#ga8288a16662a7fa082c4fcad3cea0ab04">More...</a><br /></td></tr>
+<tr class="separator:ga8288a16662a7fa082c4fcad3cea0ab04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga42a348c9028053e0ad3a22f1ac731430"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tslide.html#ga42a348c9028053e0ad3a22f1ac731430">tSlide_initToPool</a> (tSlide *const, float upSlide, float downSlide, tMempool *const)</td></tr>
+<tr class="memdesc:ga42a348c9028053e0ad3a22f1ac731430"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSlide to a specified mempool.  <a href="group__tslide.html#ga42a348c9028053e0ad3a22f1ac731430">More...</a><br /></td></tr>
+<tr class="separator:ga42a348c9028053e0ad3a22f1ac731430"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga57ba71883af607aaf28f0292e0cee901"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tslide.html#ga57ba71883af607aaf28f0292e0cee901">tSlide_free</a> (tSlide *const)</td></tr>
+<tr class="memdesc:ga57ba71883af607aaf28f0292e0cee901"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tSlide from its mempool.  <a href="group__tslide.html#ga57ba71883af607aaf28f0292e0cee901">More...</a><br /></td></tr>
+<tr class="separator:ga57ba71883af607aaf28f0292e0cee901"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacdddc23733eda912f51d57cc944062b0"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tslide.html#gacdddc23733eda912f51d57cc944062b0">tSlide_tick</a> (tSlide *const, float in)</td></tr>
+<tr class="separator:gacdddc23733eda912f51d57cc944062b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0ba5fda0ed766d03ac97ad8d0f068ba1"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tslide.html#ga0ba5fda0ed766d03ac97ad8d0f068ba1">tSlide_tickNoInput</a> (tSlide *const sl)</td></tr>
+<tr class="separator:ga0ba5fda0ed766d03ac97ad8d0f068ba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaac39af0df494460bbc7170a2a34dd7e1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tslide.html#gaac39af0df494460bbc7170a2a34dd7e1">tSlide_setUpSlide</a> (tSlide *const sl, float upSlide)</td></tr>
+<tr class="separator:gaac39af0df494460bbc7170a2a34dd7e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga86d8efa014a6428b1338d70603f1eb95"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tslide.html#ga86d8efa014a6428b1338d70603f1eb95">tSlide_setDownSlide</a> (tSlide *const sl, float downSlide)</td></tr>
+<tr class="separator:ga86d8efa014a6428b1338d70603f1eb95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga381e81d6bcb9cba92acfe9a68df8c193"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tslide.html#ga381e81d6bcb9cba92acfe9a68df8c193">tSlide_setDest</a> (tSlide *const sl, float dest)</td></tr>
+<tr class="separator:ga381e81d6bcb9cba92acfe9a68df8c193"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Based on Max/MSP's slide~. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga8288a16662a7fa082c4fcad3cea0ab04"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8288a16662a7fa082c4fcad3cea0ab04">&#9670;&nbsp;</a></span>tSlide_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSlide_init </td>
+          <td>(</td>
+          <td class="paramtype">tSlide * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>upSlide</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>downSlide</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSlide to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">slide</td><td>A pointer to the tSlide to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga42a348c9028053e0ad3a22f1ac731430"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga42a348c9028053e0ad3a22f1ac731430">&#9670;&nbsp;</a></span>tSlide_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSlide_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tSlide * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>upSlide</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>downSlide</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSlide to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">slide</td><td>A pointer to the tSlide to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga57ba71883af607aaf28f0292e0cee901"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga57ba71883af607aaf28f0292e0cee901">&#9670;&nbsp;</a></span>tSlide_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSlide_free </td>
+          <td>(</td>
+          <td class="paramtype">tSlide * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tSlide from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">slide</td><td>A pointer to the tSlide to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gacdddc23733eda912f51d57cc944062b0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacdddc23733eda912f51d57cc944062b0">&#9670;&nbsp;</a></span>tSlide_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tSlide_tick </td>
+          <td>(</td>
+          <td class="paramtype">tSlide * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>in</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">slide</td><td>A pointer to the relevant tSlide. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0ba5fda0ed766d03ac97ad8d0f068ba1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0ba5fda0ed766d03ac97ad8d0f068ba1">&#9670;&nbsp;</a></span>tSlide_tickNoInput()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tSlide_tickNoInput </td>
+          <td>(</td>
+          <td class="paramtype">tSlide *const&#160;</td>
+          <td class="paramname"><em>sl</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">slide</td><td>A pointer to the relevant tSlide. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaac39af0df494460bbc7170a2a34dd7e1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaac39af0df494460bbc7170a2a34dd7e1">&#9670;&nbsp;</a></span>tSlide_setUpSlide()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSlide_setUpSlide </td>
+          <td>(</td>
+          <td class="paramtype">tSlide *const&#160;</td>
+          <td class="paramname"><em>sl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>upSlide</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">slide</td><td>A pointer to the relevant tSlide. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga86d8efa014a6428b1338d70603f1eb95"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga86d8efa014a6428b1338d70603f1eb95">&#9670;&nbsp;</a></span>tSlide_setDownSlide()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSlide_setDownSlide </td>
+          <td>(</td>
+          <td class="paramtype">tSlide *const&#160;</td>
+          <td class="paramname"><em>sl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>downSlide</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">slide</td><td>A pointer to the relevant tSlide. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga381e81d6bcb9cba92acfe9a68df8c193"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga381e81d6bcb9cba92acfe9a68df8c193">&#9670;&nbsp;</a></span>tSlide_setDest()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSlide_setDest </td>
+          <td>(</td>
+          <td class="paramtype">tSlide *const&#160;</td>
+          <td class="paramname"><em>sl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>dest</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">slide</td><td>A pointer to the relevant tSlide. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tsnac.html
@@ -1,0 +1,398 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tSNAC</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tSNAC<div class="ingroups"><a class="el" href="group__analysis.html">Analysis</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Component of period detection algorithm from Katja Vetters <a href="http://www.katjaas.nl/helmholtz/helmholtz.html">http://www.katjaas.nl/helmholtz/helmholtz.html</a>.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga5f4005dba1c0470e84ae6bc6845c6d27"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsnac.html#ga5f4005dba1c0470e84ae6bc6845c6d27">tSNAC_init</a> (tSNAC *const, int overlaparg, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga5f4005dba1c0470e84ae6bc6845c6d27"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSNAC to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tsnac.html#ga5f4005dba1c0470e84ae6bc6845c6d27">More...</a><br /></td></tr>
+<tr class="separator:ga5f4005dba1c0470e84ae6bc6845c6d27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9779c23ab83bf93c8df11a6b4982c0b2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsnac.html#ga9779c23ab83bf93c8df11a6b4982c0b2">tSNAC_initToPool</a> (tSNAC *const, int overlaparg, tMempool *const)</td></tr>
+<tr class="memdesc:ga9779c23ab83bf93c8df11a6b4982c0b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSNAC to a specified mempool.  <a href="group__tsnac.html#ga9779c23ab83bf93c8df11a6b4982c0b2">More...</a><br /></td></tr>
+<tr class="separator:ga9779c23ab83bf93c8df11a6b4982c0b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad7fc6ce1e80847dfcd9da75d4c734f12"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsnac.html#gad7fc6ce1e80847dfcd9da75d4c734f12">tSNAC_free</a> (tSNAC *const)</td></tr>
+<tr class="memdesc:gad7fc6ce1e80847dfcd9da75d4c734f12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tSNAC from its mempool.  <a href="group__tsnac.html#gad7fc6ce1e80847dfcd9da75d4c734f12">More...</a><br /></td></tr>
+<tr class="separator:gad7fc6ce1e80847dfcd9da75d4c734f12"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab6a4ff9c52fb26d19f3bc4d080f91845"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsnac.html#gab6a4ff9c52fb26d19f3bc4d080f91845">tSNAC_setOverlap</a> (tSNAC *s, int lap)</td></tr>
+<tr class="separator:gab6a4ff9c52fb26d19f3bc4d080f91845"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3dbb9845079ebe1b3dbba647180a1168"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsnac.html#ga3dbb9845079ebe1b3dbba647180a1168">tSNAC_setBias</a> (tSNAC *s, float bias)</td></tr>
+<tr class="separator:ga3dbb9845079ebe1b3dbba647180a1168"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga777b3cb40c7dcb7826b0945358ffe1ec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsnac.html#ga777b3cb40c7dcb7826b0945358ffe1ec">tSNAC_setMinRMS</a> (tSNAC *s, float rms)</td></tr>
+<tr class="separator:ga777b3cb40c7dcb7826b0945358ffe1ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga71074b5888fe76260f3c1fae7e2aeec8"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsnac.html#ga71074b5888fe76260f3c1fae7e2aeec8">tSNAC_getPeriod</a> (tSNAC *s)</td></tr>
+<tr class="separator:ga71074b5888fe76260f3c1fae7e2aeec8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8568190ff50745df3b220f9f8dba3289"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsnac.html#ga8568190ff50745df3b220f9f8dba3289">tSNAC_getFidelity</a> (tSNAC *s)</td></tr>
+<tr class="separator:ga8568190ff50745df3b220f9f8dba3289"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Component of period detection algorithm from Katja Vetters <a href="http://www.katjaas.nl/helmholtz/helmholtz.html">http://www.katjaas.nl/helmholtz/helmholtz.html</a>. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga5f4005dba1c0470e84ae6bc6845c6d27"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5f4005dba1c0470e84ae6bc6845c6d27">&#9670;&nbsp;</a></span>tSNAC_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSNAC_init </td>
+          <td>(</td>
+          <td class="paramtype">tSNAC * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>overlaparg</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSNAC to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snac</td><td>A pointer to the tSNAC to initialize. </td></tr>
+    <tr><td class="paramname">overlap</td><td></td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9779c23ab83bf93c8df11a6b4982c0b2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9779c23ab83bf93c8df11a6b4982c0b2">&#9670;&nbsp;</a></span>tSNAC_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSNAC_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tSNAC * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>overlaparg</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSNAC to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snac</td><td>A pointer to the tSNAC to initialize. </td></tr>
+    <tr><td class="paramname">overlap</td><td></td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad7fc6ce1e80847dfcd9da75d4c734f12"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad7fc6ce1e80847dfcd9da75d4c734f12">&#9670;&nbsp;</a></span>tSNAC_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSNAC_free </td>
+          <td>(</td>
+          <td class="paramtype">tSNAC * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tSNAC from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snac</td><td>A pointer to the tSNAC to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab6a4ff9c52fb26d19f3bc4d080f91845"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab6a4ff9c52fb26d19f3bc4d080f91845">&#9670;&nbsp;</a></span>tSNAC_setOverlap()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSNAC_setOverlap </td>
+          <td>(</td>
+          <td class="paramtype">tSNAC *&#160;</td>
+          <td class="paramname"><em>s</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>lap</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snac</td><td>A pointer to the relevant tSNAC. </td></tr>
+    <tr><td class="paramname">overlap</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3dbb9845079ebe1b3dbba647180a1168"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3dbb9845079ebe1b3dbba647180a1168">&#9670;&nbsp;</a></span>tSNAC_setBias()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSNAC_setBias </td>
+          <td>(</td>
+          <td class="paramtype">tSNAC *&#160;</td>
+          <td class="paramname"><em>s</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>bias</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snac</td><td>A pointer to the relevant tSNAC. </td></tr>
+    <tr><td class="paramname">bias</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga777b3cb40c7dcb7826b0945358ffe1ec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga777b3cb40c7dcb7826b0945358ffe1ec">&#9670;&nbsp;</a></span>tSNAC_setMinRMS()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSNAC_setMinRMS </td>
+          <td>(</td>
+          <td class="paramtype">tSNAC *&#160;</td>
+          <td class="paramname"><em>s</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>rms</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snac</td><td>A pointer to the relevant tSNAC. </td></tr>
+    <tr><td class="paramname">rms</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga71074b5888fe76260f3c1fae7e2aeec8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga71074b5888fe76260f3c1fae7e2aeec8">&#9670;&nbsp;</a></span>tSNAC_getPeriod()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tSNAC_getPeriod </td>
+          <td>(</td>
+          <td class="paramtype">tSNAC *&#160;</td>
+          <td class="paramname"><em>s</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snac</td><td>A pointer to the relevant tSNAC. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The detected period of the input </dd></dl>
+
+</div>
+</div>
+<a id="ga8568190ff50745df3b220f9f8dba3289"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8568190ff50745df3b220f9f8dba3289">&#9670;&nbsp;</a></span>tSNAC_getFidelity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tSNAC_getFidelity </td>
+          <td>(</td>
+          <td class="paramtype">tSNAC *&#160;</td>
+          <td class="paramname"><em>s</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">snac</td><td>A pointer to the relevant tSNAC. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The periodic fidelity of the input  </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tsolad.html
@@ -1,0 +1,285 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tSOLAD</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tSOLAD<div class="ingroups"><a class="el" href="group__effects.html">Effects</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>pitch shifting algorithm that underlies tRetune etc from Katja Vetters <a href="http://www.katjaas.nl/pitchshiftlowlatency/pitchshiftlowlatency.html">http://www.katjaas.nl/pitchshiftlowlatency/pitchshiftlowlatency.html</a>  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga2e51fbab57ccc810832c23dc3286efb1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsolad.html#ga2e51fbab57ccc810832c23dc3286efb1">tSOLAD_free</a> (tSOLAD *const)</td></tr>
+<tr class="memdesc:ga2e51fbab57ccc810832c23dc3286efb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tSOLAD from its mempool.  <a href="group__tsolad.html#ga2e51fbab57ccc810832c23dc3286efb1">More...</a><br /></td></tr>
+<tr class="separator:ga2e51fbab57ccc810832c23dc3286efb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6ff97dea55ab5fa791fca6a6c4cacdbc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsolad.html#ga6ff97dea55ab5fa791fca6a6c4cacdbc">tSOLAD_setPeriod</a> (tSOLAD *w, float period)</td></tr>
+<tr class="memdesc:ga6ff97dea55ab5fa791fca6a6c4cacdbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set periodicity analysis data.  <a href="group__tsolad.html#ga6ff97dea55ab5fa791fca6a6c4cacdbc">More...</a><br /></td></tr>
+<tr class="separator:ga6ff97dea55ab5fa791fca6a6c4cacdbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1b3ffa561a92ba5f64e51eeb670e16ac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsolad.html#ga1b3ffa561a92ba5f64e51eeb670e16ac">tSOLAD_setPitchFactor</a> (tSOLAD *w, float pitchfactor)</td></tr>
+<tr class="memdesc:ga1b3ffa561a92ba5f64e51eeb670e16ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set pitch factor between 0.25 and 4.  <a href="group__tsolad.html#ga1b3ffa561a92ba5f64e51eeb670e16ac">More...</a><br /></td></tr>
+<tr class="separator:ga1b3ffa561a92ba5f64e51eeb670e16ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga92607d41da7f4fbf93386e071806f788"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsolad.html#ga92607d41da7f4fbf93386e071806f788">tSOLAD_setReadLag</a> (tSOLAD *w, float readlag)</td></tr>
+<tr class="memdesc:ga92607d41da7f4fbf93386e071806f788"><td class="mdescLeft">&#160;</td><td class="mdescRight">Force readpointer lag.  <a href="group__tsolad.html#ga92607d41da7f4fbf93386e071806f788">More...</a><br /></td></tr>
+<tr class="separator:ga92607d41da7f4fbf93386e071806f788"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga69b20c8acef373a2590f4e3138d1d4d8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsolad.html#ga69b20c8acef373a2590f4e3138d1d4d8">tSOLAD_resetState</a> (tSOLAD *w)</td></tr>
+<tr class="memdesc:ga69b20c8acef373a2590f4e3138d1d4d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset state variables.  <a href="group__tsolad.html#ga69b20c8acef373a2590f4e3138d1d4d8">More...</a><br /></td></tr>
+<tr class="separator:ga69b20c8acef373a2590f4e3138d1d4d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>pitch shifting algorithm that underlies tRetune etc from Katja Vetters <a href="http://www.katjaas.nl/pitchshiftlowlatency/pitchshiftlowlatency.html">http://www.katjaas.nl/pitchshiftlowlatency/pitchshiftlowlatency.html</a> </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga2e51fbab57ccc810832c23dc3286efb1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2e51fbab57ccc810832c23dc3286efb1">&#9670;&nbsp;</a></span>tSOLAD_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSOLAD_free </td>
+          <td>(</td>
+          <td class="paramtype">tSOLAD * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tSOLAD from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">solad</td><td>A pointer to the tSOLAD to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6ff97dea55ab5fa791fca6a6c4cacdbc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6ff97dea55ab5fa791fca6a6c4cacdbc">&#9670;&nbsp;</a></span>tSOLAD_setPeriod()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSOLAD_setPeriod </td>
+          <td>(</td>
+          <td class="paramtype">tSOLAD *&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>period</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set periodicity analysis data. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">solad</td><td>A pointer to the relevant tSOLAD. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1b3ffa561a92ba5f64e51eeb670e16ac"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1b3ffa561a92ba5f64e51eeb670e16ac">&#9670;&nbsp;</a></span>tSOLAD_setPitchFactor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSOLAD_setPitchFactor </td>
+          <td>(</td>
+          <td class="paramtype">tSOLAD *&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>pitchfactor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set pitch factor between 0.25 and 4. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">solad</td><td>A pointer to the relevant tSOLAD. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga92607d41da7f4fbf93386e071806f788"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga92607d41da7f4fbf93386e071806f788">&#9670;&nbsp;</a></span>tSOLAD_setReadLag()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSOLAD_setReadLag </td>
+          <td>(</td>
+          <td class="paramtype">tSOLAD *&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>readlag</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Force readpointer lag. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">solad</td><td>A pointer to the relevant tSOLAD. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga69b20c8acef373a2590f4e3138d1d4d8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga69b20c8acef373a2590f4e3138d1d4d8">&#9670;&nbsp;</a></span>tSOLAD_resetState()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSOLAD_resetState </td>
+          <td>(</td>
+          <td class="paramtype">tSOLAD *&#160;</td>
+          <td class="paramname"><em>w</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reset state variables. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">solad</td><td>A pointer to the relevant tSOLAD. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tsquare.html
@@ -1,0 +1,289 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tSquare</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tSquare<div class="ingroups"><a class="el" href="group__oscillators.html">Oscillators</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Anti-aliased wavetable square wave oscillator.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gacaaa2bf1d76371d9b4aeda286a09560f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsquare.html#gacaaa2bf1d76371d9b4aeda286a09560f">tSquare_init</a> (tSquare *const osc, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gacaaa2bf1d76371d9b4aeda286a09560f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSquare to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tsquare.html#gacaaa2bf1d76371d9b4aeda286a09560f">More...</a><br /></td></tr>
+<tr class="separator:gacaaa2bf1d76371d9b4aeda286a09560f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad9c41ce10b6b0c821360f43743544c89"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsquare.html#gad9c41ce10b6b0c821360f43743544c89">tSquare_initToPool</a> (tSquare *const osc, tMempool *const)</td></tr>
+<tr class="memdesc:gad9c41ce10b6b0c821360f43743544c89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSquare to a specified mempool.  <a href="group__tsquare.html#gad9c41ce10b6b0c821360f43743544c89">More...</a><br /></td></tr>
+<tr class="separator:gad9c41ce10b6b0c821360f43743544c89"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f6fac5cb92fcbca09970b95a2d05d7d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsquare.html#ga1f6fac5cb92fcbca09970b95a2d05d7d">tSquare_free</a> (tSquare *const osc)</td></tr>
+<tr class="memdesc:ga1f6fac5cb92fcbca09970b95a2d05d7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tSquare from its mempool.  <a href="group__tsquare.html#ga1f6fac5cb92fcbca09970b95a2d05d7d">More...</a><br /></td></tr>
+<tr class="separator:ga1f6fac5cb92fcbca09970b95a2d05d7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga00053831170c826962e4f1aa9d6696e2"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsquare.html#ga00053831170c826962e4f1aa9d6696e2">tSquare_tick</a> (tSquare *const osc)</td></tr>
+<tr class="memdesc:ga00053831170c826962e4f1aa9d6696e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tick a tSquare oscillator.  <a href="group__tsquare.html#ga00053831170c826962e4f1aa9d6696e2">More...</a><br /></td></tr>
+<tr class="separator:ga00053831170c826962e4f1aa9d6696e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4453bd8e23b1b88ec944c93b8cb575f6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsquare.html#ga4453bd8e23b1b88ec944c93b8cb575f6">tSquare_setFreq</a> (tSquare *const osc, float freq)</td></tr>
+<tr class="memdesc:ga4453bd8e23b1b88ec944c93b8cb575f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the frequency of a tSquare oscillator.  <a href="group__tsquare.html#ga4453bd8e23b1b88ec944c93b8cb575f6">More...</a><br /></td></tr>
+<tr class="separator:ga4453bd8e23b1b88ec944c93b8cb575f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Anti-aliased wavetable square wave oscillator. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gacaaa2bf1d76371d9b4aeda286a09560f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacaaa2bf1d76371d9b4aeda286a09560f">&#9670;&nbsp;</a></span>tSquare_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSquare_init </td>
+          <td>(</td>
+          <td class="paramtype">tSquare *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSquare to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tSquare to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad9c41ce10b6b0c821360f43743544c89"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad9c41ce10b6b0c821360f43743544c89">&#9670;&nbsp;</a></span>tSquare_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSquare_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tSquare *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSquare to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tSquare to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1f6fac5cb92fcbca09970b95a2d05d7d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1f6fac5cb92fcbca09970b95a2d05d7d">&#9670;&nbsp;</a></span>tSquare_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSquare_free </td>
+          <td>(</td>
+          <td class="paramtype">tSquare *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tSquare from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tSquare to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga00053831170c826962e4f1aa9d6696e2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga00053831170c826962e4f1aa9d6696e2">&#9670;&nbsp;</a></span>tSquare_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tSquare_tick </td>
+          <td>(</td>
+          <td class="paramtype">tSquare *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Tick a tSquare oscillator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tSquare. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The ticked sample as a float from -1 to 1. </dd></dl>
+
+</div>
+</div>
+<a id="ga4453bd8e23b1b88ec944c93b8cb575f6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4453bd8e23b1b88ec944c93b8cb575f6">&#9670;&nbsp;</a></span>tSquare_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSquare_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tSquare *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the frequency of a tSquare oscillator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tSquare. </td></tr>
+    <tr><td class="paramname">freq</td><td>The frequency to set the oscillator to.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tstack.html
@@ -1,0 +1,580 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tStack</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tStack<div class="ingroups"><a class="el" href="group__midi.html">MIDI</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A basic stack of integers with a fixed capacity of 128, used by tPoly to keep track of MIDI notes.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga0f59d25b2a62af281cb7e5a6337a662a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tstack.html#ga0f59d25b2a62af281cb7e5a6337a662a">tStack_init</a> (tStack *const stack, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga0f59d25b2a62af281cb7e5a6337a662a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tStack to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tstack.html#ga0f59d25b2a62af281cb7e5a6337a662a">More...</a><br /></td></tr>
+<tr class="separator:ga0f59d25b2a62af281cb7e5a6337a662a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac6a330c5c8f6fc6138b22c157e527c81"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tstack.html#gac6a330c5c8f6fc6138b22c157e527c81">tStack_initToPool</a> (tStack *const stack, tMempool *const pool)</td></tr>
+<tr class="memdesc:gac6a330c5c8f6fc6138b22c157e527c81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tStack to a specified mempool.  <a href="group__tstack.html#gac6a330c5c8f6fc6138b22c157e527c81">More...</a><br /></td></tr>
+<tr class="separator:gac6a330c5c8f6fc6138b22c157e527c81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabf348064227f55c30cd2bcac3d899881"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tstack.html#gabf348064227f55c30cd2bcac3d899881">tStack_free</a> (tStack *const stack)</td></tr>
+<tr class="memdesc:gabf348064227f55c30cd2bcac3d899881"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tStack from its mempool.  <a href="group__tstack.html#gabf348064227f55c30cd2bcac3d899881">More...</a><br /></td></tr>
+<tr class="separator:gabf348064227f55c30cd2bcac3d899881"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3b5483c9a7cd996e3c62ea9f0895437c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tstack.html#ga3b5483c9a7cd996e3c62ea9f0895437c">tStack_setCapacity</a> (tStack *const stack, uint16_t cap)</td></tr>
+<tr class="memdesc:ga3b5483c9a7cd996e3c62ea9f0895437c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the capacity of the stack.  <a href="group__tstack.html#ga3b5483c9a7cd996e3c62ea9f0895437c">More...</a><br /></td></tr>
+<tr class="separator:ga3b5483c9a7cd996e3c62ea9f0895437c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga909528e236aa47978e91227961841ab5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tstack.html#ga909528e236aa47978e91227961841ab5">tStack_addIfNotAlreadyThere</a> (tStack *const stack, uint16_t item)</td></tr>
+<tr class="memdesc:ga909528e236aa47978e91227961841ab5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a value to the stack only if that value is not already in the stack.  <a href="group__tstack.html#ga909528e236aa47978e91227961841ab5">More...</a><br /></td></tr>
+<tr class="separator:ga909528e236aa47978e91227961841ab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabd861307ff5e290b4ae8e45507b9903b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tstack.html#gabd861307ff5e290b4ae8e45507b9903b">tStack_add</a> (tStack *const stack, uint16_t item)</td></tr>
+<tr class="memdesc:gabd861307ff5e290b4ae8e45507b9903b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a value to the stack.  <a href="group__tstack.html#gabd861307ff5e290b4ae8e45507b9903b">More...</a><br /></td></tr>
+<tr class="separator:gabd861307ff5e290b4ae8e45507b9903b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga559464a399b9606909f9f57e190ead7b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tstack.html#ga559464a399b9606909f9f57e190ead7b">tStack_remove</a> (tStack *const stack, uint16_t item)</td></tr>
+<tr class="memdesc:ga559464a399b9606909f9f57e190ead7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a single instance of a value from the stack.  <a href="group__tstack.html#ga559464a399b9606909f9f57e190ead7b">More...</a><br /></td></tr>
+<tr class="separator:ga559464a399b9606909f9f57e190ead7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3d053d583ed2c643a1a4ea00818d4f8a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tstack.html#ga3d053d583ed2c643a1a4ea00818d4f8a">tStack_clear</a> (tStack *const stack)</td></tr>
+<tr class="memdesc:ga3d053d583ed2c643a1a4ea00818d4f8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the stack.  <a href="group__tstack.html#ga3d053d583ed2c643a1a4ea00818d4f8a">More...</a><br /></td></tr>
+<tr class="separator:ga3d053d583ed2c643a1a4ea00818d4f8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1684ca55f7c9d42e2994eed03b329700"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tstack.html#ga1684ca55f7c9d42e2994eed03b329700">tStack_first</a> (tStack *const stack)</td></tr>
+<tr class="memdesc:ga1684ca55f7c9d42e2994eed03b329700"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the first value in the stack.  <a href="group__tstack.html#ga1684ca55f7c9d42e2994eed03b329700">More...</a><br /></td></tr>
+<tr class="separator:ga1684ca55f7c9d42e2994eed03b329700"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga995a3cb4b43476c387f4fd431af923ef"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tstack.html#ga995a3cb4b43476c387f4fd431af923ef">tStack_getSize</a> (tStack *const stack)</td></tr>
+<tr class="memdesc:ga995a3cb4b43476c387f4fd431af923ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current size of the stack.  <a href="group__tstack.html#ga995a3cb4b43476c387f4fd431af923ef">More...</a><br /></td></tr>
+<tr class="separator:ga995a3cb4b43476c387f4fd431af923ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8ca0bdad1bce63d0da4cfa6e233ece98"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tstack.html#ga8ca0bdad1bce63d0da4cfa6e233ece98">tStack_contains</a> (tStack *const stack, uint16_t item)</td></tr>
+<tr class="memdesc:ga8ca0bdad1bce63d0da4cfa6e233ece98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the stack contains a value, and if it does, get the index of that value.  <a href="group__tstack.html#ga8ca0bdad1bce63d0da4cfa6e233ece98">More...</a><br /></td></tr>
+<tr class="separator:ga8ca0bdad1bce63d0da4cfa6e233ece98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e0aef2c8bc0f9432b7a2a6541f21550"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tstack.html#ga6e0aef2c8bc0f9432b7a2a6541f21550">tStack_next</a> (tStack *const stack)</td></tr>
+<tr class="memdesc:ga6e0aef2c8bc0f9432b7a2a6541f21550"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the next value in the stack, starting from the earliest added values.  <a href="group__tstack.html#ga6e0aef2c8bc0f9432b7a2a6541f21550">More...</a><br /></td></tr>
+<tr class="separator:ga6e0aef2c8bc0f9432b7a2a6541f21550"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga15d80c513c339ff2c87fb96fcfca9353"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tstack.html#ga15d80c513c339ff2c87fb96fcfca9353">tStack_get</a> (tStack *const stack, int index)</td></tr>
+<tr class="memdesc:ga15d80c513c339ff2c87fb96fcfca9353"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value at a given index of the stack.  <a href="group__tstack.html#ga15d80c513c339ff2c87fb96fcfca9353">More...</a><br /></td></tr>
+<tr class="separator:ga15d80c513c339ff2c87fb96fcfca9353"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>A basic stack of integers with a fixed capacity of 128, used by tPoly to keep track of MIDI notes. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga0f59d25b2a62af281cb7e5a6337a662a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0f59d25b2a62af281cb7e5a6337a662a">&#9670;&nbsp;</a></span>tStack_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tStack_init </td>
+          <td>(</td>
+          <td class="paramtype">tStack *const&#160;</td>
+          <td class="paramname"><em>stack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tStack to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stack</td><td>A pointer to the tStack to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac6a330c5c8f6fc6138b22c157e527c81"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac6a330c5c8f6fc6138b22c157e527c81">&#9670;&nbsp;</a></span>tStack_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tStack_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tStack *const&#160;</td>
+          <td class="paramname"><em>stack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tStack to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stack</td><td>A pointer to the tStack to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabf348064227f55c30cd2bcac3d899881"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabf348064227f55c30cd2bcac3d899881">&#9670;&nbsp;</a></span>tStack_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tStack_free </td>
+          <td>(</td>
+          <td class="paramtype">tStack *const&#160;</td>
+          <td class="paramname"><em>stack</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tStack from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stack</td><td>A pointer to the tStack to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3b5483c9a7cd996e3c62ea9f0895437c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3b5483c9a7cd996e3c62ea9f0895437c">&#9670;&nbsp;</a></span>tStack_setCapacity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tStack_setCapacity </td>
+          <td>(</td>
+          <td class="paramtype">tStack *const&#160;</td>
+          <td class="paramname"><em>stack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint16_t&#160;</td>
+          <td class="paramname"><em>cap</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the capacity of the stack. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stack</td><td>A pointer to the relevant tStack. </td></tr>
+    <tr><td class="paramname">cap</td><td>The new capacity. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga909528e236aa47978e91227961841ab5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga909528e236aa47978e91227961841ab5">&#9670;&nbsp;</a></span>tStack_addIfNotAlreadyThere()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tStack_addIfNotAlreadyThere </td>
+          <td>(</td>
+          <td class="paramtype">tStack *const&#160;</td>
+          <td class="paramname"><em>stack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint16_t&#160;</td>
+          <td class="paramname"><em>item</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Add a value to the stack only if that value is not already in the stack. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stack</td><td>A pointer to the relevant tStack. </td></tr>
+    <tr><td class="paramname">item</td><td>The value to be added. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabd861307ff5e290b4ae8e45507b9903b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabd861307ff5e290b4ae8e45507b9903b">&#9670;&nbsp;</a></span>tStack_add()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tStack_add </td>
+          <td>(</td>
+          <td class="paramtype">tStack *const&#160;</td>
+          <td class="paramname"><em>stack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint16_t&#160;</td>
+          <td class="paramname"><em>item</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Add a value to the stack. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stack</td><td>A pointer to the relevant tStack. </td></tr>
+    <tr><td class="paramname">item</td><td>The value to be added. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga559464a399b9606909f9f57e190ead7b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga559464a399b9606909f9f57e190ead7b">&#9670;&nbsp;</a></span>tStack_remove()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tStack_remove </td>
+          <td>(</td>
+          <td class="paramtype">tStack *const&#160;</td>
+          <td class="paramname"><em>stack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint16_t&#160;</td>
+          <td class="paramname"><em>item</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Remove a single instance of a value from the stack. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stack</td><td>A pointer to the relevant tStack. </td></tr>
+    <tr><td class="paramname">item</td><td>The value to be removed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3d053d583ed2c643a1a4ea00818d4f8a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3d053d583ed2c643a1a4ea00818d4f8a">&#9670;&nbsp;</a></span>tStack_clear()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tStack_clear </td>
+          <td>(</td>
+          <td class="paramtype">tStack *const&#160;</td>
+          <td class="paramname"><em>stack</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Clear the stack. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stack</td><td>A pointer to the relevant tStack. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1684ca55f7c9d42e2994eed03b329700"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1684ca55f7c9d42e2994eed03b329700">&#9670;&nbsp;</a></span>tStack_first()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tStack_first </td>
+          <td>(</td>
+          <td class="paramtype">tStack *const&#160;</td>
+          <td class="paramname"><em>stack</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the first value in the stack. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stack</td><td>A pointer to the relevant tStack. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The first value in the stack. </dd></dl>
+
+</div>
+</div>
+<a id="ga995a3cb4b43476c387f4fd431af923ef"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga995a3cb4b43476c387f4fd431af923ef">&#9670;&nbsp;</a></span>tStack_getSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tStack_getSize </td>
+          <td>(</td>
+          <td class="paramtype">tStack *const&#160;</td>
+          <td class="paramname"><em>stack</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the current size of the stack. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stack</td><td>A pointer to the relevant tStack. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The current size of the stack. </dd></dl>
+
+</div>
+</div>
+<a id="ga8ca0bdad1bce63d0da4cfa6e233ece98"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8ca0bdad1bce63d0da4cfa6e233ece98">&#9670;&nbsp;</a></span>tStack_contains()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tStack_contains </td>
+          <td>(</td>
+          <td class="paramtype">tStack *const&#160;</td>
+          <td class="paramname"><em>stack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint16_t&#160;</td>
+          <td class="paramname"><em>item</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Check if the stack contains a value, and if it does, get the index of that value. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stack</td><td>A pointer to the relevant tStack. </td></tr>
+    <tr><td class="paramname">item</td><td>The value to check against the stack. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The index of the value or -1 if the stack does not contain the value. </dd></dl>
+
+</div>
+</div>
+<a id="ga6e0aef2c8bc0f9432b7a2a6541f21550"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6e0aef2c8bc0f9432b7a2a6541f21550">&#9670;&nbsp;</a></span>tStack_next()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tStack_next </td>
+          <td>(</td>
+          <td class="paramtype">tStack *const&#160;</td>
+          <td class="paramname"><em>stack</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the next value in the stack, starting from the earliest added values. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stack</td><td>A pointer to the relevant tStack. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next value in the stack or -1 if there are no values in the stack. </dd></dl>
+
+</div>
+</div>
+<a id="ga15d80c513c339ff2c87fb96fcfca9353"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga15d80c513c339ff2c87fb96fcfca9353">&#9670;&nbsp;</a></span>tStack_get()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tStack_get </td>
+          <td>(</td>
+          <td class="paramtype">tStack *const&#160;</td>
+          <td class="paramname"><em>stack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the value at a given index of the stack. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stack</td><td>A pointer to the relevant tStack. </td></tr>
+    <tr><td class="paramname">index</td><td>The index of the stack from which to get a value. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The value at the given index. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tsvf.html
@@ -1,0 +1,405 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tSVF</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tSVF<div class="ingroups"><a class="el" href="group__filters.html">Filters</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>State Variable Filter, algorithm from Andy Simper.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaec95a0aaf02ed9170ea1a4e968acd82d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsvf.html#gaec95a0aaf02ed9170ea1a4e968acd82d">tSVF_init</a> (tSVF *const, SVFType type, float freq, float Q, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gaec95a0aaf02ed9170ea1a4e968acd82d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSVF to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tsvf.html#gaec95a0aaf02ed9170ea1a4e968acd82d">More...</a><br /></td></tr>
+<tr class="separator:gaec95a0aaf02ed9170ea1a4e968acd82d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabcf663debbb880724f1c423c9d37d143"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsvf.html#gabcf663debbb880724f1c423c9d37d143">tSVF_initToPool</a> (tSVF *const, SVFType type, float freq, float Q, tMempool *const)</td></tr>
+<tr class="memdesc:gabcf663debbb880724f1c423c9d37d143"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tSVF to a specified mempool.  <a href="group__tsvf.html#gabcf663debbb880724f1c423c9d37d143">More...</a><br /></td></tr>
+<tr class="separator:gabcf663debbb880724f1c423c9d37d143"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga364e2d82cc7d843ccf63c32f6b6f6c28"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsvf.html#ga364e2d82cc7d843ccf63c32f6b6f6c28">tSVF_free</a> (tSVF *const)</td></tr>
+<tr class="memdesc:ga364e2d82cc7d843ccf63c32f6b6f6c28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tSVF from its mempool.  <a href="group__tsvf.html#ga364e2d82cc7d843ccf63c32f6b6f6c28">More...</a><br /></td></tr>
+<tr class="separator:ga364e2d82cc7d843ccf63c32f6b6f6c28"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaef34c602f1f798b4e3200c02a09e193b"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsvf.html#gaef34c602f1f798b4e3200c02a09e193b">tSVF_tick</a> (tSVF *const, float v0)</td></tr>
+<tr class="separator:gaef34c602f1f798b4e3200c02a09e193b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3b3d320a8d7991a002fa344d23780c78"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsvf.html#ga3b3d320a8d7991a002fa344d23780c78">tSVF_setFreq</a> (tSVF *const, float freq)</td></tr>
+<tr class="separator:ga3b3d320a8d7991a002fa344d23780c78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga29e6205846d379ffdd4131d0174c8784"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsvf.html#ga29e6205846d379ffdd4131d0174c8784">tSVF_setQ</a> (tSVF *const, float Q)</td></tr>
+<tr class="separator:ga29e6205846d379ffdd4131d0174c8784"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf86bb651efd0ad3c7e782c71719e7a0f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tsvf.html#gaf86bb651efd0ad3c7e782c71719e7a0f">tSVF_setFreqAndQ</a> (tSVF *const svff, float freq, float Q)</td></tr>
+<tr class="separator:gaf86bb651efd0ad3c7e782c71719e7a0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>State Variable Filter, algorithm from Andy Simper. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gaec95a0aaf02ed9170ea1a4e968acd82d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaec95a0aaf02ed9170ea1a4e968acd82d">&#9670;&nbsp;</a></span>tSVF_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSVF_init </td>
+          <td>(</td>
+          <td class="paramtype">tSVF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">SVFType&#160;</td>
+          <td class="paramname"><em>type</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>Q</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSVF to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tSVF to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabcf663debbb880724f1c423c9d37d143"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabcf663debbb880724f1c423c9d37d143">&#9670;&nbsp;</a></span>tSVF_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSVF_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tSVF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">SVFType&#160;</td>
+          <td class="paramname"><em>type</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>Q</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tSVF to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tSVF to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga364e2d82cc7d843ccf63c32f6b6f6c28"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga364e2d82cc7d843ccf63c32f6b6f6c28">&#9670;&nbsp;</a></span>tSVF_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSVF_free </td>
+          <td>(</td>
+          <td class="paramtype">tSVF * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tSVF from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tSVF to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaef34c602f1f798b4e3200c02a09e193b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaef34c602f1f798b4e3200c02a09e193b">&#9670;&nbsp;</a></span>tSVF_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tSVF_tick </td>
+          <td>(</td>
+          <td class="paramtype">tSVF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>v0</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tSVF. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga3b3d320a8d7991a002fa344d23780c78"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3b3d320a8d7991a002fa344d23780c78">&#9670;&nbsp;</a></span>tSVF_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSVF_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tSVF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tSVF. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga29e6205846d379ffdd4131d0174c8784"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga29e6205846d379ffdd4131d0174c8784">&#9670;&nbsp;</a></span>tSVF_setQ()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSVF_setQ </td>
+          <td>(</td>
+          <td class="paramtype">tSVF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>Q</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tSVF. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf86bb651efd0ad3c7e782c71719e7a0f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf86bb651efd0ad3c7e782c71719e7a0f">&#9670;&nbsp;</a></span>tSVF_setFreqAndQ()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tSVF_setFreqAndQ </td>
+          <td>(</td>
+          <td class="paramtype">tSVF *const&#160;</td>
+          <td class="paramname"><em>svff</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>Q</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tSVF.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__ttable.html
@@ -1,0 +1,317 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tTable</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tTable<div class="ingroups"><a class="el" href="group__oscillators.html">Oscillators</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Simple aliasing wavetable oscillator.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga34f0802957415853e9dc64b7fa9355eb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttable.html#ga34f0802957415853e9dc64b7fa9355eb">tTable_init</a> (tTable *const osc, float *table, int size, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga34f0802957415853e9dc64b7fa9355eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tTable to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__ttable.html#ga34f0802957415853e9dc64b7fa9355eb">More...</a><br /></td></tr>
+<tr class="separator:ga34f0802957415853e9dc64b7fa9355eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae75a6c3468ae7801c86867860152117b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttable.html#gae75a6c3468ae7801c86867860152117b">tTable_initToPool</a> (tTable *const osc, float *table, int size, tMempool *const mempool)</td></tr>
+<tr class="memdesc:gae75a6c3468ae7801c86867860152117b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tTable to a specified mempool.  <a href="group__ttable.html#gae75a6c3468ae7801c86867860152117b">More...</a><br /></td></tr>
+<tr class="separator:gae75a6c3468ae7801c86867860152117b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga23c68eb02b6f856e4cabd793f386ef3d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttable.html#ga23c68eb02b6f856e4cabd793f386ef3d">tTable_free</a> (tTable *const osc)</td></tr>
+<tr class="memdesc:ga23c68eb02b6f856e4cabd793f386ef3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tTable from its mempool.  <a href="group__ttable.html#ga23c68eb02b6f856e4cabd793f386ef3d">More...</a><br /></td></tr>
+<tr class="separator:ga23c68eb02b6f856e4cabd793f386ef3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga59f59db52bf98cf1852d7dcd6f09122c"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttable.html#ga59f59db52bf98cf1852d7dcd6f09122c">tTable_tick</a> (tTable *const osc)</td></tr>
+<tr class="memdesc:ga59f59db52bf98cf1852d7dcd6f09122c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tick a tTable oscillator.  <a href="group__ttable.html#ga59f59db52bf98cf1852d7dcd6f09122c">More...</a><br /></td></tr>
+<tr class="separator:ga59f59db52bf98cf1852d7dcd6f09122c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2dcff23d9b0e98fd706d4880c766320a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttable.html#ga2dcff23d9b0e98fd706d4880c766320a">tTable_setFreq</a> (tTable *const osc, float freq)</td></tr>
+<tr class="memdesc:ga2dcff23d9b0e98fd706d4880c766320a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the frequency of a tTable oscillator.  <a href="group__ttable.html#ga2dcff23d9b0e98fd706d4880c766320a">More...</a><br /></td></tr>
+<tr class="separator:ga2dcff23d9b0e98fd706d4880c766320a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Simple aliasing wavetable oscillator. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga34f0802957415853e9dc64b7fa9355eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga34f0802957415853e9dc64b7fa9355eb">&#9670;&nbsp;</a></span>tTable_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTable_init </td>
+          <td>(</td>
+          <td class="paramtype">tTable *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tTable to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tTable to initialize. </td></tr>
+    <tr><td class="paramname">table</td><td>A pointer to the wavetable data. </td></tr>
+    <tr><td class="paramname">size</td><td>The number of samples in the wavetable. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae75a6c3468ae7801c86867860152117b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae75a6c3468ae7801c86867860152117b">&#9670;&nbsp;</a></span>tTable_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTable_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tTable *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tTable to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tTable to initialize. </td></tr>
+    <tr><td class="paramname">table</td><td>A pointer to the wavetable data. </td></tr>
+    <tr><td class="paramname">size</td><td>The number of samples in the wave table. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga23c68eb02b6f856e4cabd793f386ef3d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga23c68eb02b6f856e4cabd793f386ef3d">&#9670;&nbsp;</a></span>tTable_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTable_free </td>
+          <td>(</td>
+          <td class="paramtype">tTable *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tTable from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tTable to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga59f59db52bf98cf1852d7dcd6f09122c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga59f59db52bf98cf1852d7dcd6f09122c">&#9670;&nbsp;</a></span>tTable_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tTable_tick </td>
+          <td>(</td>
+          <td class="paramtype">tTable *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Tick a tTable oscillator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tTable. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The ticked sample as a float from -1 to 1. </dd></dl>
+
+</div>
+</div>
+<a id="ga2dcff23d9b0e98fd706d4880c766320a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2dcff23d9b0e98fd706d4880c766320a">&#9670;&nbsp;</a></span>tTable_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTable_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tTable *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the frequency of a tTable oscillator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tTable. </td></tr>
+    <tr><td class="paramname">freq</td><td>The frequency to set the oscillator to. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__ttalkbox.html
@@ -1,0 +1,631 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tTalkbox</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tTalkbox<div class="ingroups"><a class="el" href="group__effects.html">Effects</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>High resolution vocoder from mda using Levinson-Durbin LPC algorithm.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga18a1ddfa2f61e60d6ebef394d65f08c6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkbox.html#ga18a1ddfa2f61e60d6ebef394d65f08c6">tTalkbox_init</a> (tTalkbox *const, int bufsize, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga18a1ddfa2f61e60d6ebef394d65f08c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tTalkbox to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__ttalkbox.html#ga18a1ddfa2f61e60d6ebef394d65f08c6">More...</a><br /></td></tr>
+<tr class="separator:ga18a1ddfa2f61e60d6ebef394d65f08c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8f10b76186682cda5b4a546df84c35e3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkbox.html#ga8f10b76186682cda5b4a546df84c35e3">tTalkbox_initToPool</a> (tTalkbox *const, int bufsize, tMempool *const)</td></tr>
+<tr class="memdesc:ga8f10b76186682cda5b4a546df84c35e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tTalkbox to a specified mempool.  <a href="group__ttalkbox.html#ga8f10b76186682cda5b4a546df84c35e3">More...</a><br /></td></tr>
+<tr class="separator:ga8f10b76186682cda5b4a546df84c35e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5f1f85266d1c3e968b9f277fd6530e61"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkbox.html#ga5f1f85266d1c3e968b9f277fd6530e61">tTalkbox_free</a> (tTalkbox *const)</td></tr>
+<tr class="memdesc:ga5f1f85266d1c3e968b9f277fd6530e61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tTalkbox from its mempool.  <a href="group__ttalkbox.html#ga5f1f85266d1c3e968b9f277fd6530e61">More...</a><br /></td></tr>
+<tr class="separator:ga5f1f85266d1c3e968b9f277fd6530e61"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab45e4c3be7561f157b4ab47de8d939db"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkbox.html#gab45e4c3be7561f157b4ab47de8d939db">tTalkbox_tick</a> (tTalkbox *const, float synth, float voice)</td></tr>
+<tr class="separator:gab45e4c3be7561f157b4ab47de8d939db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafd5193315cf309b8c7607795bc5ad995"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkbox.html#gafd5193315cf309b8c7607795bc5ad995">tTalkbox_tickFrozen</a> (tTalkbox *const voc, float synth, float voice)</td></tr>
+<tr class="separator:gafd5193315cf309b8c7607795bc5ad995"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabdfa3fca0a50509623d4c57d851f3315"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkbox.html#gabdfa3fca0a50509623d4c57d851f3315">tTalkbox_update</a> (tTalkbox *const)</td></tr>
+<tr class="memdesc:gabdfa3fca0a50509623d4c57d851f3315"><td class="mdescLeft">&#160;</td><td class="mdescRight">update internal parameters...  <a href="group__ttalkbox.html#gabdfa3fca0a50509623d4c57d851f3315">More...</a><br /></td></tr>
+<tr class="separator:gabdfa3fca0a50509623d4c57d851f3315"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga361f8a48a8ac118804852e99022a2144"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkbox.html#ga361f8a48a8ac118804852e99022a2144">tTalkbox_suspend</a> (tTalkbox *const)</td></tr>
+<tr class="memdesc:ga361f8a48a8ac118804852e99022a2144"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear any buffers...  <a href="group__ttalkbox.html#ga361f8a48a8ac118804852e99022a2144">More...</a><br /></td></tr>
+<tr class="separator:ga361f8a48a8ac118804852e99022a2144"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaba470c9d175927857b9befd5e903da8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkbox.html#gaaba470c9d175927857b9befd5e903da8">tTalkbox_lpcDurbin</a> (float *r, int p, float *k, float *g)</td></tr>
+<tr class="separator:gaaba470c9d175927857b9befd5e903da8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae0e16e4627683deeb7d849f9f6b13367"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkbox.html#gae0e16e4627683deeb7d849f9f6b13367">tTalkbox_setQuality</a> (tTalkbox *const, float quality)</td></tr>
+<tr class="separator:gae0e16e4627683deeb7d849f9f6b13367"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga15d263af4269739442c7187a403996e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkbox.html#ga15d263af4269739442c7187a403996e4">tTalkbox_setWarpFactor</a> (tTalkbox *const voc, float warp)</td></tr>
+<tr class="separator:ga15d263af4269739442c7187a403996e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga37320fd9c7f3c4d065fa4ae27431bc61"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkbox.html#ga37320fd9c7f3c4d065fa4ae27431bc61">tTalkbox_setWarpOn</a> (tTalkbox *const voc, float warpOn)</td></tr>
+<tr class="separator:ga37320fd9c7f3c4d065fa4ae27431bc61"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9345cb1b1bdb78e2c264dc711c29050b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkbox.html#ga9345cb1b1bdb78e2c264dc711c29050b">tTalkbox_setFreeze</a> (tTalkbox *const voc, float freeze)</td></tr>
+<tr class="separator:ga9345cb1b1bdb78e2c264dc711c29050b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga881ae8cbae41f12f2fb4a7446d73a6be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkbox.html#ga881ae8cbae41f12f2fb4a7446d73a6be">tTalkbox_warpedAutocorrelate</a> (float *x, double *dl, double *Rt, unsigned int L, float *R, unsigned int P, float lambda)</td></tr>
+<tr class="separator:ga881ae8cbae41f12f2fb4a7446d73a6be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>High resolution vocoder from mda using Levinson-Durbin LPC algorithm. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga18a1ddfa2f61e60d6ebef394d65f08c6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga18a1ddfa2f61e60d6ebef394d65f08c6">&#9670;&nbsp;</a></span>tTalkbox_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkbox_init </td>
+          <td>(</td>
+          <td class="paramtype">tTalkbox * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>bufsize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tTalkbox to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the tTalkbox to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8f10b76186682cda5b4a546df84c35e3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8f10b76186682cda5b4a546df84c35e3">&#9670;&nbsp;</a></span>tTalkbox_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkbox_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tTalkbox * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>bufsize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tTalkbox to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the tTalkbox to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5f1f85266d1c3e968b9f277fd6530e61"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5f1f85266d1c3e968b9f277fd6530e61">&#9670;&nbsp;</a></span>tTalkbox_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkbox_free </td>
+          <td>(</td>
+          <td class="paramtype">tTalkbox * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tTalkbox from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the tTalkbox to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab45e4c3be7561f157b4ab47de8d939db"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab45e4c3be7561f157b4ab47de8d939db">&#9670;&nbsp;</a></span>tTalkbox_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tTalkbox_tick </td>
+          <td>(</td>
+          <td class="paramtype">tTalkbox * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>synth</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>voice</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkbox. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gafd5193315cf309b8c7607795bc5ad995"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafd5193315cf309b8c7607795bc5ad995">&#9670;&nbsp;</a></span>tTalkbox_tickFrozen()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tTalkbox_tickFrozen </td>
+          <td>(</td>
+          <td class="paramtype">tTalkbox *const&#160;</td>
+          <td class="paramname"><em>voc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>synth</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>voice</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkbox. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabdfa3fca0a50509623d4c57d851f3315"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabdfa3fca0a50509623d4c57d851f3315">&#9670;&nbsp;</a></span>tTalkbox_update()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkbox_update </td>
+          <td>(</td>
+          <td class="paramtype">tTalkbox * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>update internal parameters... </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkbox. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga361f8a48a8ac118804852e99022a2144"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga361f8a48a8ac118804852e99022a2144">&#9670;&nbsp;</a></span>tTalkbox_suspend()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkbox_suspend </td>
+          <td>(</td>
+          <td class="paramtype">tTalkbox * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>clear any buffers... </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkbox. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaaba470c9d175927857b9befd5e903da8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaaba470c9d175927857b9befd5e903da8">&#9670;&nbsp;</a></span>tTalkbox_lpcDurbin()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkbox_lpcDurbin </td>
+          <td>(</td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>r</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>p</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>k</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>g</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkbox. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae0e16e4627683deeb7d849f9f6b13367"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae0e16e4627683deeb7d849f9f6b13367">&#9670;&nbsp;</a></span>tTalkbox_setQuality()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkbox_setQuality </td>
+          <td>(</td>
+          <td class="paramtype">tTalkbox * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>quality</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkbox. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga15d263af4269739442c7187a403996e4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga15d263af4269739442c7187a403996e4">&#9670;&nbsp;</a></span>tTalkbox_setWarpFactor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkbox_setWarpFactor </td>
+          <td>(</td>
+          <td class="paramtype">tTalkbox *const&#160;</td>
+          <td class="paramname"><em>voc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>warp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkbox. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga37320fd9c7f3c4d065fa4ae27431bc61"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga37320fd9c7f3c4d065fa4ae27431bc61">&#9670;&nbsp;</a></span>tTalkbox_setWarpOn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkbox_setWarpOn </td>
+          <td>(</td>
+          <td class="paramtype">tTalkbox *const&#160;</td>
+          <td class="paramname"><em>voc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>warpOn</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkbox. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9345cb1b1bdb78e2c264dc711c29050b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9345cb1b1bdb78e2c264dc711c29050b">&#9670;&nbsp;</a></span>tTalkbox_setFreeze()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkbox_setFreeze </td>
+          <td>(</td>
+          <td class="paramtype">tTalkbox *const&#160;</td>
+          <td class="paramname"><em>voc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freeze</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkbox. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga881ae8cbae41f12f2fb4a7446d73a6be"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga881ae8cbae41f12f2fb4a7446d73a6be">&#9670;&nbsp;</a></span>tTalkbox_warpedAutocorrelate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkbox_warpedAutocorrelate </td>
+          <td>(</td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double *&#160;</td>
+          <td class="paramname"><em>dl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double *&#160;</td>
+          <td class="paramname"><em>Rt</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned int&#160;</td>
+          <td class="paramname"><em>L</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>R</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned int&#160;</td>
+          <td class="paramname"><em>P</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>lambda</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkbox. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__ttalkboxfloat.html
@@ -1,0 +1,559 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tTalkboxFloat</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tTalkboxFloat<div class="ingroups"><a class="el" href="group__effects.html">Effects</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>High resolution vocoder from mda using Levinson-Durbin LPC algorithm.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga6d29a46ee0c008f30e008f7634524e10"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkboxfloat.html#ga6d29a46ee0c008f30e008f7634524e10">tTalkboxFloat_init</a> (tTalkboxFloat *const, int bufsize, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga6d29a46ee0c008f30e008f7634524e10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tTalkboxFloat to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__ttalkboxfloat.html#ga6d29a46ee0c008f30e008f7634524e10">More...</a><br /></td></tr>
+<tr class="separator:ga6d29a46ee0c008f30e008f7634524e10"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga10ab230431665f2b621fd0b21b366e02"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkboxfloat.html#ga10ab230431665f2b621fd0b21b366e02">tTalkboxFloat_initToPool</a> (tTalkboxFloat *const, int bufsize, tMempool *const)</td></tr>
+<tr class="memdesc:ga10ab230431665f2b621fd0b21b366e02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tTalkboxFloat to a specified mempool.  <a href="group__ttalkboxfloat.html#ga10ab230431665f2b621fd0b21b366e02">More...</a><br /></td></tr>
+<tr class="separator:ga10ab230431665f2b621fd0b21b366e02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabbd684033b9869aaac6eb57a694904d9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkboxfloat.html#gabbd684033b9869aaac6eb57a694904d9">tTalkboxFloat_free</a> (tTalkboxFloat *const)</td></tr>
+<tr class="memdesc:gabbd684033b9869aaac6eb57a694904d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tTalkboxFloat from its mempool.  <a href="group__ttalkboxfloat.html#gabbd684033b9869aaac6eb57a694904d9">More...</a><br /></td></tr>
+<tr class="separator:gabbd684033b9869aaac6eb57a694904d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga83b3a42d6348a062eaed4eace6fa9461"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkboxfloat.html#ga83b3a42d6348a062eaed4eace6fa9461">tTalkboxFloat_tick</a> (tTalkboxFloat *const, float synth, float voice)</td></tr>
+<tr class="separator:ga83b3a42d6348a062eaed4eace6fa9461"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7d3e3bc6ecf3e1bd9c1ebe5f717ba06b"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkboxfloat.html#ga7d3e3bc6ecf3e1bd9c1ebe5f717ba06b">tTalkboxFloat_tickFrozen</a> (tTalkboxFloat *const voc, float synth, float voice)</td></tr>
+<tr class="separator:ga7d3e3bc6ecf3e1bd9c1ebe5f717ba06b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga994b70735a97c25f30a7f26981c3334e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkboxfloat.html#ga994b70735a97c25f30a7f26981c3334e">tTalkboxFloat_update</a> (tTalkboxFloat *const)</td></tr>
+<tr class="memdesc:ga994b70735a97c25f30a7f26981c3334e"><td class="mdescLeft">&#160;</td><td class="mdescRight">update internal parameters...  <a href="group__ttalkboxfloat.html#ga994b70735a97c25f30a7f26981c3334e">More...</a><br /></td></tr>
+<tr class="separator:ga994b70735a97c25f30a7f26981c3334e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac8456d804e084f2c4938d1255c723cfc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkboxfloat.html#gac8456d804e084f2c4938d1255c723cfc">tTalkboxFloat_suspend</a> (tTalkboxFloat *const)</td></tr>
+<tr class="memdesc:gac8456d804e084f2c4938d1255c723cfc"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear any buffers...  <a href="group__ttalkboxfloat.html#gac8456d804e084f2c4938d1255c723cfc">More...</a><br /></td></tr>
+<tr class="separator:gac8456d804e084f2c4938d1255c723cfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga667dcd77640c7a6b2fa3995d6d2190be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkboxfloat.html#ga667dcd77640c7a6b2fa3995d6d2190be">tTalkboxFloat_lpcDurbin</a> (float *r, int p, float *k, float *g)</td></tr>
+<tr class="separator:ga667dcd77640c7a6b2fa3995d6d2190be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9f9fbc4bd62efcd9502a0217740e5366"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkboxfloat.html#ga9f9fbc4bd62efcd9502a0217740e5366">tTalkboxFloat_setQuality</a> (tTalkboxFloat *const, float quality)</td></tr>
+<tr class="separator:ga9f9fbc4bd62efcd9502a0217740e5366"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad01eb39b5892107d65a3590f3ea69fec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkboxfloat.html#gad01eb39b5892107d65a3590f3ea69fec">tTalkboxFloat_setWarpFactor</a> (tTalkboxFloat *const voc, float warp)</td></tr>
+<tr class="separator:gad01eb39b5892107d65a3590f3ea69fec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadcbdd544e5d6a3d5b46cead0044dfcfa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttalkboxfloat.html#gadcbdd544e5d6a3d5b46cead0044dfcfa">tTalkboxFloat_warpedAutocorrelate</a> (float *x, float *dl, float *Rt, unsigned int L, float *R, unsigned int P, float lambda)</td></tr>
+<tr class="separator:gadcbdd544e5d6a3d5b46cead0044dfcfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>High resolution vocoder from mda using Levinson-Durbin LPC algorithm. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga6d29a46ee0c008f30e008f7634524e10"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6d29a46ee0c008f30e008f7634524e10">&#9670;&nbsp;</a></span>tTalkboxFloat_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkboxFloat_init </td>
+          <td>(</td>
+          <td class="paramtype">tTalkboxFloat * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>bufsize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tTalkboxFloat to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the tTalkboxFloat to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga10ab230431665f2b621fd0b21b366e02"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga10ab230431665f2b621fd0b21b366e02">&#9670;&nbsp;</a></span>tTalkboxFloat_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkboxFloat_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tTalkboxFloat * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>bufsize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tTalkboxFloat to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the tTalkboxFloat to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabbd684033b9869aaac6eb57a694904d9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabbd684033b9869aaac6eb57a694904d9">&#9670;&nbsp;</a></span>tTalkboxFloat_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkboxFloat_free </td>
+          <td>(</td>
+          <td class="paramtype">tTalkboxFloat * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tTalkboxFloat from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the tTalkboxFloat to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga83b3a42d6348a062eaed4eace6fa9461"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga83b3a42d6348a062eaed4eace6fa9461">&#9670;&nbsp;</a></span>tTalkboxFloat_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tTalkboxFloat_tick </td>
+          <td>(</td>
+          <td class="paramtype">tTalkboxFloat * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>synth</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>voice</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkboxFloat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga7d3e3bc6ecf3e1bd9c1ebe5f717ba06b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7d3e3bc6ecf3e1bd9c1ebe5f717ba06b">&#9670;&nbsp;</a></span>tTalkboxFloat_tickFrozen()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tTalkboxFloat_tickFrozen </td>
+          <td>(</td>
+          <td class="paramtype">tTalkboxFloat *const&#160;</td>
+          <td class="paramname"><em>voc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>synth</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>voice</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkboxFloat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga994b70735a97c25f30a7f26981c3334e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga994b70735a97c25f30a7f26981c3334e">&#9670;&nbsp;</a></span>tTalkboxFloat_update()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkboxFloat_update </td>
+          <td>(</td>
+          <td class="paramtype">tTalkboxFloat * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>update internal parameters... </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkboxFloat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac8456d804e084f2c4938d1255c723cfc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac8456d804e084f2c4938d1255c723cfc">&#9670;&nbsp;</a></span>tTalkboxFloat_suspend()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkboxFloat_suspend </td>
+          <td>(</td>
+          <td class="paramtype">tTalkboxFloat * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>clear any buffers... </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkboxFloat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga667dcd77640c7a6b2fa3995d6d2190be"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga667dcd77640c7a6b2fa3995d6d2190be">&#9670;&nbsp;</a></span>tTalkboxFloat_lpcDurbin()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkboxFloat_lpcDurbin </td>
+          <td>(</td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>r</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>p</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>k</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>g</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkboxFloat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9f9fbc4bd62efcd9502a0217740e5366"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9f9fbc4bd62efcd9502a0217740e5366">&#9670;&nbsp;</a></span>tTalkboxFloat_setQuality()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkboxFloat_setQuality </td>
+          <td>(</td>
+          <td class="paramtype">tTalkboxFloat * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>quality</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkboxFloat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad01eb39b5892107d65a3590f3ea69fec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad01eb39b5892107d65a3590f3ea69fec">&#9670;&nbsp;</a></span>tTalkboxFloat_setWarpFactor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkboxFloat_setWarpFactor </td>
+          <td>(</td>
+          <td class="paramtype">tTalkboxFloat *const&#160;</td>
+          <td class="paramname"><em>voc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>warp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkboxFloat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gadcbdd544e5d6a3d5b46cead0044dfcfa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gadcbdd544e5d6a3d5b46cead0044dfcfa">&#9670;&nbsp;</a></span>tTalkboxFloat_warpedAutocorrelate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTalkboxFloat_warpedAutocorrelate </td>
+          <td>(</td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>dl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>Rt</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned int&#160;</td>
+          <td class="paramname"><em>L</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float *&#160;</td>
+          <td class="paramname"><em>R</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned int&#160;</td>
+          <td class="paramname"><em>P</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>lambda</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">talkbox</td><td>A pointer to the relevant tTalkboxFloat. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__ttapedelay.html
@@ -1,0 +1,582 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tTapeDelay</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tTapeDelay<div class="ingroups"><a class="el" href="group__delay.html">Delay</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Linear interpolating delay with fixed read and write pointers, variable rate.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga11ce0d93fc719d09f9d2832086cb2e7f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttapedelay.html#ga11ce0d93fc719d09f9d2832086cb2e7f">tTapeDelay_init</a> (tTapeDelay *const, float delay, uint32_t maxDelay, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga11ce0d93fc719d09f9d2832086cb2e7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tTapeDelay to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__ttapedelay.html#ga11ce0d93fc719d09f9d2832086cb2e7f">More...</a><br /></td></tr>
+<tr class="separator:ga11ce0d93fc719d09f9d2832086cb2e7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2ceac9b3d3870c4a8ad0b9f8b795f829"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttapedelay.html#ga2ceac9b3d3870c4a8ad0b9f8b795f829">tTapeDelay_initToPool</a> (tTapeDelay *const, float delay, uint32_t maxDelay, tMempool *const)</td></tr>
+<tr class="memdesc:ga2ceac9b3d3870c4a8ad0b9f8b795f829"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tTapeDelay to a specified mempool.  <a href="group__ttapedelay.html#ga2ceac9b3d3870c4a8ad0b9f8b795f829">More...</a><br /></td></tr>
+<tr class="separator:ga2ceac9b3d3870c4a8ad0b9f8b795f829"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4150731cc6b415a799818e32eabe5cc2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttapedelay.html#ga4150731cc6b415a799818e32eabe5cc2">tTapeDelay_free</a> (tTapeDelay *const)</td></tr>
+<tr class="memdesc:ga4150731cc6b415a799818e32eabe5cc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tTapeDelay from its mempool.  <a href="group__ttapedelay.html#ga4150731cc6b415a799818e32eabe5cc2">More...</a><br /></td></tr>
+<tr class="separator:ga4150731cc6b415a799818e32eabe5cc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga984e1e72996c5833bcd99c39bf189bcb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttapedelay.html#ga984e1e72996c5833bcd99c39bf189bcb">tTapeDelay_clear</a> (tTapeDelay *const)</td></tr>
+<tr class="separator:ga984e1e72996c5833bcd99c39bf189bcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga99b94b13f3841e3b4b4915301854c03e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttapedelay.html#ga99b94b13f3841e3b4b4915301854c03e">tTapeDelay_setDelay</a> (tTapeDelay *const, float delay)</td></tr>
+<tr class="separator:ga99b94b13f3841e3b4b4915301854c03e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5141a6c872bda215f52f93d480af75d4"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttapedelay.html#ga5141a6c872bda215f52f93d480af75d4">tTapeDelay_getDelay</a> (tTapeDelay *const)</td></tr>
+<tr class="separator:ga5141a6c872bda215f52f93d480af75d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae3e1efc7c18c73defe5cdb0b9fa18e30"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttapedelay.html#gae3e1efc7c18c73defe5cdb0b9fa18e30">tTapeDelay_tapIn</a> (tTapeDelay *const, float in, uint32_t tapDelay)</td></tr>
+<tr class="separator:gae3e1efc7c18c73defe5cdb0b9fa18e30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga50a4fcd89b612b1633e47d14d9de8844"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttapedelay.html#ga50a4fcd89b612b1633e47d14d9de8844">tTapeDelay_tapOut</a> (tTapeDelay *const d, float tapDelay)</td></tr>
+<tr class="separator:ga50a4fcd89b612b1633e47d14d9de8844"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga17c1f8359ab1b2fd9c38981ca7d018f1"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttapedelay.html#ga17c1f8359ab1b2fd9c38981ca7d018f1">tTapeDelay_addTo</a> (tTapeDelay *const, float value, uint32_t tapDelay)</td></tr>
+<tr class="separator:ga17c1f8359ab1b2fd9c38981ca7d018f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3327247d0d5121629f841e355aa17780"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttapedelay.html#ga3327247d0d5121629f841e355aa17780">tTapeDelay_tick</a> (tTapeDelay *const, float sample)</td></tr>
+<tr class="separator:ga3327247d0d5121629f841e355aa17780"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2207c4d6a5ea82102ec5e26dba957c66"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttapedelay.html#ga2207c4d6a5ea82102ec5e26dba957c66">tTapeDelay_incrementInPoint</a> (tTapeDelay *const dl)</td></tr>
+<tr class="separator:ga2207c4d6a5ea82102ec5e26dba957c66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae22aee2d1f8edf088a5df1f4da2a2f9f"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttapedelay.html#gae22aee2d1f8edf088a5df1f4da2a2f9f">tTapeDelay_getLastOut</a> (tTapeDelay *const)</td></tr>
+<tr class="separator:gae22aee2d1f8edf088a5df1f4da2a2f9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga19c905254cabf4d51f863ee8d92804ec"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttapedelay.html#ga19c905254cabf4d51f863ee8d92804ec">tTapeDelay_getLastIn</a> (tTapeDelay *const)</td></tr>
+<tr class="separator:ga19c905254cabf4d51f863ee8d92804ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Linear interpolating delay with fixed read and write pointers, variable rate. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga11ce0d93fc719d09f9d2832086cb2e7f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga11ce0d93fc719d09f9d2832086cb2e7f">&#9670;&nbsp;</a></span>tTapeDelay_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTapeDelay_init </td>
+          <td>(</td>
+          <td class="paramtype">tTapeDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>delay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>maxDelay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tTapeDelay to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the tTapeDelay to initialize. </td></tr>
+    <tr><td class="paramname">initialLength</td><td></td></tr>
+    <tr><td class="paramname">maxLength</td><td></td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2ceac9b3d3870c4a8ad0b9f8b795f829"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2ceac9b3d3870c4a8ad0b9f8b795f829">&#9670;&nbsp;</a></span>tTapeDelay_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTapeDelay_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tTapeDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>delay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>maxDelay</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tTapeDelay to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the tTapeDelay to initialize. </td></tr>
+    <tr><td class="paramname">initialLength</td><td></td></tr>
+    <tr><td class="paramname">maxLength</td><td></td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga4150731cc6b415a799818e32eabe5cc2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4150731cc6b415a799818e32eabe5cc2">&#9670;&nbsp;</a></span>tTapeDelay_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTapeDelay_free </td>
+          <td>(</td>
+          <td class="paramtype">tTapeDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tTapeDelay from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the tTapeDelay to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga984e1e72996c5833bcd99c39bf189bcb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga984e1e72996c5833bcd99c39bf189bcb">&#9670;&nbsp;</a></span>tTapeDelay_clear()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTapeDelay_clear </td>
+          <td>(</td>
+          <td class="paramtype">tTapeDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tTapeDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga99b94b13f3841e3b4b4915301854c03e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga99b94b13f3841e3b4b4915301854c03e">&#9670;&nbsp;</a></span>tTapeDelay_setDelay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTapeDelay_setDelay </td>
+          <td>(</td>
+          <td class="paramtype">tTapeDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>delay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tTapeDelay. </td></tr>
+    <tr><td class="paramname">delayLength</td><td>The new delay length in samples. Cannot be greater than the max delay length given on initialization. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga5141a6c872bda215f52f93d480af75d4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5141a6c872bda215f52f93d480af75d4">&#9670;&nbsp;</a></span>tTapeDelay_getDelay()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tTapeDelay_getDelay </td>
+          <td>(</td>
+          <td class="paramtype">tTapeDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tTapeDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="gae3e1efc7c18c73defe5cdb0b9fa18e30"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae3e1efc7c18c73defe5cdb0b9fa18e30">&#9670;&nbsp;</a></span>tTapeDelay_tapIn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTapeDelay_tapIn </td>
+          <td>(</td>
+          <td class="paramtype">tTapeDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>tapDelay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tTapeDelay. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+    <tr><td class="paramname">position</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga50a4fcd89b612b1633e47d14d9de8844"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga50a4fcd89b612b1633e47d14d9de8844">&#9670;&nbsp;</a></span>tTapeDelay_tapOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tTapeDelay_tapOut </td>
+          <td>(</td>
+          <td class="paramtype">tTapeDelay *const&#160;</td>
+          <td class="paramname"><em>d</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>tapDelay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tTapeDelay. </td></tr>
+    <tr><td class="paramname">position</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga17c1f8359ab1b2fd9c38981ca7d018f1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga17c1f8359ab1b2fd9c38981ca7d018f1">&#9670;&nbsp;</a></span>tTapeDelay_addTo()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tTapeDelay_addTo </td>
+          <td>(</td>
+          <td class="paramtype">tTapeDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>value</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>tapDelay</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tTapeDelay. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+    <tr><td class="paramname">position</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga3327247d0d5121629f841e355aa17780"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3327247d0d5121629f841e355aa17780">&#9670;&nbsp;</a></span>tTapeDelay_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tTapeDelay_tick </td>
+          <td>(</td>
+          <td class="paramtype">tTapeDelay * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sample</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tTapeDelay. </td></tr>
+    <tr><td class="paramname">input</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga2207c4d6a5ea82102ec5e26dba957c66"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2207c4d6a5ea82102ec5e26dba957c66">&#9670;&nbsp;</a></span>tTapeDelay_incrementInPoint()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTapeDelay_incrementInPoint </td>
+          <td>(</td>
+          <td class="paramtype">tTapeDelay *const&#160;</td>
+          <td class="paramname"><em>dl</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tTapeDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae22aee2d1f8edf088a5df1f4da2a2f9f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae22aee2d1f8edf088a5df1f4da2a2f9f">&#9670;&nbsp;</a></span>tTapeDelay_getLastOut()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tTapeDelay_getLastOut </td>
+          <td>(</td>
+          <td class="paramtype">tTapeDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tTapeDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="ga19c905254cabf4d51f863ee8d92804ec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga19c905254cabf4d51f863ee8d92804ec">&#9670;&nbsp;</a></span>tTapeDelay_getLastIn()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tTapeDelay_getLastIn </td>
+          <td>(</td>
+          <td class="paramtype">tTapeDelay * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">delay</td><td>A pointer to the relevant tTapeDelay. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd> </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tthreshold.html
@@ -1,0 +1,351 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tThreshold</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tThreshold<div class="ingroups"><a class="el" href="group__dynamics.html">Dynamics</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Threshold with hysteresis (like Max/MSP thresh~ object)  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gac5e076322e91d0fc51bb78f670ae6654"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tthreshold.html#gac5e076322e91d0fc51bb78f670ae6654">tThreshold_init</a> (tThreshold *const, float low, float high, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gac5e076322e91d0fc51bb78f670ae6654"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tThreshold to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tthreshold.html#gac5e076322e91d0fc51bb78f670ae6654">More...</a><br /></td></tr>
+<tr class="separator:gac5e076322e91d0fc51bb78f670ae6654"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8929d72fab02f08b94568f2b26b26218"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tthreshold.html#ga8929d72fab02f08b94568f2b26b26218">tThreshold_initToPool</a> (tThreshold *const, float low, float high, tMempool *const)</td></tr>
+<tr class="memdesc:ga8929d72fab02f08b94568f2b26b26218"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tThreshold to a specified mempool.  <a href="group__tthreshold.html#ga8929d72fab02f08b94568f2b26b26218">More...</a><br /></td></tr>
+<tr class="separator:ga8929d72fab02f08b94568f2b26b26218"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga559cdc78b961faa603a1fbe53b419ab6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tthreshold.html#ga559cdc78b961faa603a1fbe53b419ab6">tThreshold_free</a> (tThreshold *const)</td></tr>
+<tr class="memdesc:ga559cdc78b961faa603a1fbe53b419ab6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tThreshold from its mempool.  <a href="group__tthreshold.html#ga559cdc78b961faa603a1fbe53b419ab6">More...</a><br /></td></tr>
+<tr class="separator:ga559cdc78b961faa603a1fbe53b419ab6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2e7f0159dfd715e5f7c7076d73bd0015"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tthreshold.html#ga2e7f0159dfd715e5f7c7076d73bd0015">tThreshold_tick</a> (tThreshold *const, float input)</td></tr>
+<tr class="separator:ga2e7f0159dfd715e5f7c7076d73bd0015"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga20ecba1e635f7ae39b7f3509ea0e2e28"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tthreshold.html#ga20ecba1e635f7ae39b7f3509ea0e2e28">tThreshold_setLow</a> (tThreshold *const, float low)</td></tr>
+<tr class="separator:ga20ecba1e635f7ae39b7f3509ea0e2e28"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad9e0d9f799c1c63cb6c6847518ee6796"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tthreshold.html#gad9e0d9f799c1c63cb6c6847518ee6796">tThreshold_setHigh</a> (tThreshold *const, float high)</td></tr>
+<tr class="separator:gad9e0d9f799c1c63cb6c6847518ee6796"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Threshold with hysteresis (like Max/MSP thresh~ object) </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gac5e076322e91d0fc51bb78f670ae6654"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac5e076322e91d0fc51bb78f670ae6654">&#9670;&nbsp;</a></span>tThreshold_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tThreshold_init </td>
+          <td>(</td>
+          <td class="paramtype">tThreshold * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>low</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>high</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tThreshold to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">threshold</td><td>A pointer to the tThreshold to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8929d72fab02f08b94568f2b26b26218"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8929d72fab02f08b94568f2b26b26218">&#9670;&nbsp;</a></span>tThreshold_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tThreshold_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tThreshold * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>low</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>high</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tThreshold to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">threshold</td><td>A pointer to the tThreshold to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga559cdc78b961faa603a1fbe53b419ab6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga559cdc78b961faa603a1fbe53b419ab6">&#9670;&nbsp;</a></span>tThreshold_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tThreshold_free </td>
+          <td>(</td>
+          <td class="paramtype">tThreshold * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tThreshold from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">threshold</td><td>A pointer to the tThreshold to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2e7f0159dfd715e5f7c7076d73bd0015"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2e7f0159dfd715e5f7c7076d73bd0015">&#9670;&nbsp;</a></span>tThreshold_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int tThreshold_tick </td>
+          <td>(</td>
+          <td class="paramtype">tThreshold * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">threshold</td><td>A pointer to the relevant tThreshold. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga20ecba1e635f7ae39b7f3509ea0e2e28"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga20ecba1e635f7ae39b7f3509ea0e2e28">&#9670;&nbsp;</a></span>tThreshold_setLow()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tThreshold_setLow </td>
+          <td>(</td>
+          <td class="paramtype">tThreshold * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>low</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">threshold</td><td>A pointer to the relevant tThreshold. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad9e0d9f799c1c63cb6c6847518ee6796"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad9e0d9f799c1c63cb6c6847518ee6796">&#9670;&nbsp;</a></span>tThreshold_setHigh()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tThreshold_setHigh </td>
+          <td>(</td>
+          <td class="paramtype">tThreshold * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>high</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">threshold</td><td>A pointer to the relevant tThreshold. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__ttri.html
@@ -1,0 +1,317 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tTri</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tTri<div class="ingroups"><a class="el" href="group__oscillators.html">Oscillators</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Triangle wave oscillator with polyBLEP anti-aliasing.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga84143634f91977f6617ca0b7e50b649d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttri.html#ga84143634f91977f6617ca0b7e50b649d">tTri_init</a> (tTri *const osc, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga84143634f91977f6617ca0b7e50b649d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tTri to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__ttri.html#ga84143634f91977f6617ca0b7e50b649d">More...</a><br /></td></tr>
+<tr class="separator:ga84143634f91977f6617ca0b7e50b649d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabad427341c15462ec3fe9f0b36f3e26c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttri.html#gabad427341c15462ec3fe9f0b36f3e26c">tTri_initToPool</a> (tTri *const osc, tMempool *const mempool)</td></tr>
+<tr class="memdesc:gabad427341c15462ec3fe9f0b36f3e26c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tTri to a specified mempool.  <a href="group__ttri.html#gabad427341c15462ec3fe9f0b36f3e26c">More...</a><br /></td></tr>
+<tr class="separator:gabad427341c15462ec3fe9f0b36f3e26c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga49739309d127ae64ee2854d771b04fe2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttri.html#ga49739309d127ae64ee2854d771b04fe2">tTri_free</a> (tTri *const osc)</td></tr>
+<tr class="memdesc:ga49739309d127ae64ee2854d771b04fe2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tTri from its mempool.  <a href="group__ttri.html#ga49739309d127ae64ee2854d771b04fe2">More...</a><br /></td></tr>
+<tr class="separator:ga49739309d127ae64ee2854d771b04fe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabf569fb94b1ed5d1695e8c09f9b0f09d"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttri.html#gabf569fb94b1ed5d1695e8c09f9b0f09d">tTri_tick</a> (tTri *const osc)</td></tr>
+<tr class="separator:gabf569fb94b1ed5d1695e8c09f9b0f09d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab77b067320cc0124252fdd92d0bcdef0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttri.html#gab77b067320cc0124252fdd92d0bcdef0">tTri_setFreq</a> (tTri *const osc, float freq)</td></tr>
+<tr class="separator:gab77b067320cc0124252fdd92d0bcdef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab6740de0f9cfdfe60f03c4bcb72482f8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttri.html#gab6740de0f9cfdfe60f03c4bcb72482f8">tTri_setSkew</a> (tTri *const osc, float skew)</td></tr>
+<tr class="separator:gab6740de0f9cfdfe60f03c4bcb72482f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Triangle wave oscillator with polyBLEP anti-aliasing. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga84143634f91977f6617ca0b7e50b649d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga84143634f91977f6617ca0b7e50b649d">&#9670;&nbsp;</a></span>tTri_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTri_init </td>
+          <td>(</td>
+          <td class="paramtype">tTri *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tTri to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tTri to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabad427341c15462ec3fe9f0b36f3e26c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabad427341c15462ec3fe9f0b36f3e26c">&#9670;&nbsp;</a></span>tTri_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTri_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tTri *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tTri to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tTri to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga49739309d127ae64ee2854d771b04fe2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga49739309d127ae64ee2854d771b04fe2">&#9670;&nbsp;</a></span>tTri_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTri_free </td>
+          <td>(</td>
+          <td class="paramtype">tTri *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tTri from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tTri to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabf569fb94b1ed5d1695e8c09f9b0f09d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabf569fb94b1ed5d1695e8c09f9b0f09d">&#9670;&nbsp;</a></span>tTri_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tTri_tick </td>
+          <td>(</td>
+          <td class="paramtype">tTri *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tTri. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab77b067320cc0124252fdd92d0bcdef0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab77b067320cc0124252fdd92d0bcdef0">&#9670;&nbsp;</a></span>tTri_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTri_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tTri *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tTri. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab6740de0f9cfdfe60f03c4bcb72482f8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab6740de0f9cfdfe60f03c4bcb72482f8">&#9670;&nbsp;</a></span>tTri_setSkew()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTri_setSkew </td>
+          <td>(</td>
+          <td class="paramtype">tTri *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>skew</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tTri.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__ttriangle.html
@@ -1,0 +1,289 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tTriangle</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tTriangle<div class="ingroups"><a class="el" href="group__oscillators.html">Oscillators</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Anti-aliased wavetable triangle wave oscillator.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga50f2f0c7a69471479484560a94a11fbb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttriangle.html#ga50f2f0c7a69471479484560a94a11fbb">tTriangle_init</a> (tTriangle *const osc, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga50f2f0c7a69471479484560a94a11fbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tTriangle to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__ttriangle.html#ga50f2f0c7a69471479484560a94a11fbb">More...</a><br /></td></tr>
+<tr class="separator:ga50f2f0c7a69471479484560a94a11fbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac50568ee121737e782e495e9afd0d523"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttriangle.html#gac50568ee121737e782e495e9afd0d523">tTriangle_initToPool</a> (tTriangle *const osc, tMempool *const mempool)</td></tr>
+<tr class="memdesc:gac50568ee121737e782e495e9afd0d523"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tTriangle to a specified mempool.  <a href="group__ttriangle.html#gac50568ee121737e782e495e9afd0d523">More...</a><br /></td></tr>
+<tr class="separator:gac50568ee121737e782e495e9afd0d523"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabb07623117c0d448839b808df2ea6f35"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttriangle.html#gabb07623117c0d448839b808df2ea6f35">tTriangle_free</a> (tTriangle *const osc)</td></tr>
+<tr class="memdesc:gabb07623117c0d448839b808df2ea6f35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tTriangle from its mempool.  <a href="group__ttriangle.html#gabb07623117c0d448839b808df2ea6f35">More...</a><br /></td></tr>
+<tr class="separator:gabb07623117c0d448839b808df2ea6f35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga036ec99241852ea7336a3a7e8bcd2fc7"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttriangle.html#ga036ec99241852ea7336a3a7e8bcd2fc7">tTriangle_tick</a> (tTriangle *const osc)</td></tr>
+<tr class="memdesc:ga036ec99241852ea7336a3a7e8bcd2fc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tick a tTriangle oscillator.  <a href="group__ttriangle.html#ga036ec99241852ea7336a3a7e8bcd2fc7">More...</a><br /></td></tr>
+<tr class="separator:ga036ec99241852ea7336a3a7e8bcd2fc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga02f6034d5442b55d1beda63fe7918fcb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttriangle.html#ga02f6034d5442b55d1beda63fe7918fcb">tTriangle_setFreq</a> (tTriangle *const osc, float freq)</td></tr>
+<tr class="memdesc:ga02f6034d5442b55d1beda63fe7918fcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the frequency of a tTriangle oscillator.  <a href="group__ttriangle.html#ga02f6034d5442b55d1beda63fe7918fcb">More...</a><br /></td></tr>
+<tr class="separator:ga02f6034d5442b55d1beda63fe7918fcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Anti-aliased wavetable triangle wave oscillator. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga50f2f0c7a69471479484560a94a11fbb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga50f2f0c7a69471479484560a94a11fbb">&#9670;&nbsp;</a></span>tTriangle_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTriangle_init </td>
+          <td>(</td>
+          <td class="paramtype">tTriangle *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tTriangle to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tTriangle to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac50568ee121737e782e495e9afd0d523"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac50568ee121737e782e495e9afd0d523">&#9670;&nbsp;</a></span>tTriangle_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTriangle_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tTriangle *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tTriangle to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tTriangle to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gabb07623117c0d448839b808df2ea6f35"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gabb07623117c0d448839b808df2ea6f35">&#9670;&nbsp;</a></span>tTriangle_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTriangle_free </td>
+          <td>(</td>
+          <td class="paramtype">tTriangle *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tTriangle from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tTriangle to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga036ec99241852ea7336a3a7e8bcd2fc7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga036ec99241852ea7336a3a7e8bcd2fc7">&#9670;&nbsp;</a></span>tTriangle_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tTriangle_tick </td>
+          <td>(</td>
+          <td class="paramtype">tTriangle *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Tick a tTriangle oscillator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tTriangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The ticked sample as a float from -1 to 1. </dd></dl>
+
+</div>
+</div>
+<a id="ga02f6034d5442b55d1beda63fe7918fcb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga02f6034d5442b55d1beda63fe7918fcb">&#9670;&nbsp;</a></span>tTriangle_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTriangle_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tTriangle *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the frequency of a tTriangle oscillator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tTriangle. </td></tr>
+    <tr><td class="paramname">freq</td><td>The frequency to set the oscillator to. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__ttwopole.html
@@ -1,0 +1,495 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tTwoPole</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tTwoPole<div class="ingroups"><a class="el" href="group__filters.html">Filters</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>TwoPole filter, reimplemented from STK (Cook and Scavone).  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga437e9e3fd63636ab7fefcd58462278fa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwopole.html#ga437e9e3fd63636ab7fefcd58462278fa">tTwoPole_init</a> (tTwoPole *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga437e9e3fd63636ab7fefcd58462278fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tTwoPole to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__ttwopole.html#ga437e9e3fd63636ab7fefcd58462278fa">More...</a><br /></td></tr>
+<tr class="separator:ga437e9e3fd63636ab7fefcd58462278fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga55ee401b5734305e263e0095d87e221b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwopole.html#ga55ee401b5734305e263e0095d87e221b">tTwoPole_initToPool</a> (tTwoPole *const, tMempool *const)</td></tr>
+<tr class="memdesc:ga55ee401b5734305e263e0095d87e221b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tTwoPole to a specified mempool.  <a href="group__ttwopole.html#ga55ee401b5734305e263e0095d87e221b">More...</a><br /></td></tr>
+<tr class="separator:ga55ee401b5734305e263e0095d87e221b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga20e88350ffe6c751a0e2248bab393706"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwopole.html#ga20e88350ffe6c751a0e2248bab393706">tTwoPole_free</a> (tTwoPole *const)</td></tr>
+<tr class="memdesc:ga20e88350ffe6c751a0e2248bab393706"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tTwoPole from its mempool.  <a href="group__ttwopole.html#ga20e88350ffe6c751a0e2248bab393706">More...</a><br /></td></tr>
+<tr class="separator:ga20e88350ffe6c751a0e2248bab393706"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga98456b845592b69f0088421c46d25e7c"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwopole.html#ga98456b845592b69f0088421c46d25e7c">tTwoPole_tick</a> (tTwoPole *const, float input)</td></tr>
+<tr class="separator:ga98456b845592b69f0088421c46d25e7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa643934d1d292fcf856fc1be6b7eb3a8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwopole.html#gaa643934d1d292fcf856fc1be6b7eb3a8">tTwoPole_setB0</a> (tTwoPole *const, float b0)</td></tr>
+<tr class="separator:gaa643934d1d292fcf856fc1be6b7eb3a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga914f59f7f7f48b948ac21f1dc76bbb30"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwopole.html#ga914f59f7f7f48b948ac21f1dc76bbb30">tTwoPole_setA1</a> (tTwoPole *const, float a1)</td></tr>
+<tr class="separator:ga914f59f7f7f48b948ac21f1dc76bbb30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8b1df900582e1961bab7ea00a6648c3d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwopole.html#ga8b1df900582e1961bab7ea00a6648c3d">tTwoPole_setA2</a> (tTwoPole *const, float a2)</td></tr>
+<tr class="separator:ga8b1df900582e1961bab7ea00a6648c3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaef4a460381c662c98f60cce91a1f8924"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwopole.html#gaef4a460381c662c98f60cce91a1f8924">tTwoPole_setResonance</a> (tTwoPole *const, float freq, float radius, int normalize)</td></tr>
+<tr class="separator:gaef4a460381c662c98f60cce91a1f8924"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2a70b13cb9039c9dd9c1a1407c26ff4c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwopole.html#ga2a70b13cb9039c9dd9c1a1407c26ff4c">tTwoPole_setCoefficients</a> (tTwoPole *const, float b0, float a1, float a2)</td></tr>
+<tr class="separator:ga2a70b13cb9039c9dd9c1a1407c26ff4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad1f982ce04f2d4d4505b77bbc70d5080"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwopole.html#gad1f982ce04f2d4d4505b77bbc70d5080">tTwoPole_setGain</a> (tTwoPole *const, float gain)</td></tr>
+<tr class="separator:gad1f982ce04f2d4d4505b77bbc70d5080"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>TwoPole filter, reimplemented from STK (Cook and Scavone). </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga437e9e3fd63636ab7fefcd58462278fa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga437e9e3fd63636ab7fefcd58462278fa">&#9670;&nbsp;</a></span>tTwoPole_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoPole_init </td>
+          <td>(</td>
+          <td class="paramtype">tTwoPole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tTwoPole to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tTwoPole to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga55ee401b5734305e263e0095d87e221b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga55ee401b5734305e263e0095d87e221b">&#9670;&nbsp;</a></span>tTwoPole_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoPole_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tTwoPole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tTwoPole to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tTwoPole to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga20e88350ffe6c751a0e2248bab393706"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga20e88350ffe6c751a0e2248bab393706">&#9670;&nbsp;</a></span>tTwoPole_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoPole_free </td>
+          <td>(</td>
+          <td class="paramtype">tTwoPole * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tTwoPole from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tTwoPole to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga98456b845592b69f0088421c46d25e7c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga98456b845592b69f0088421c46d25e7c">&#9670;&nbsp;</a></span>tTwoPole_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tTwoPole_tick </td>
+          <td>(</td>
+          <td class="paramtype">tTwoPole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tTwoPole. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa643934d1d292fcf856fc1be6b7eb3a8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa643934d1d292fcf856fc1be6b7eb3a8">&#9670;&nbsp;</a></span>tTwoPole_setB0()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoPole_setB0 </td>
+          <td>(</td>
+          <td class="paramtype">tTwoPole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b0</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tTwoPole. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga914f59f7f7f48b948ac21f1dc76bbb30"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga914f59f7f7f48b948ac21f1dc76bbb30">&#9670;&nbsp;</a></span>tTwoPole_setA1()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoPole_setA1 </td>
+          <td>(</td>
+          <td class="paramtype">tTwoPole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>a1</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tTwoPole. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8b1df900582e1961bab7ea00a6648c3d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8b1df900582e1961bab7ea00a6648c3d">&#9670;&nbsp;</a></span>tTwoPole_setA2()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoPole_setA2 </td>
+          <td>(</td>
+          <td class="paramtype">tTwoPole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>a2</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tTwoPole. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaef4a460381c662c98f60cce91a1f8924"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaef4a460381c662c98f60cce91a1f8924">&#9670;&nbsp;</a></span>tTwoPole_setResonance()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoPole_setResonance </td>
+          <td>(</td>
+          <td class="paramtype">tTwoPole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>radius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>normalize</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tTwoPole. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2a70b13cb9039c9dd9c1a1407c26ff4c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2a70b13cb9039c9dd9c1a1407c26ff4c">&#9670;&nbsp;</a></span>tTwoPole_setCoefficients()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoPole_setCoefficients </td>
+          <td>(</td>
+          <td class="paramtype">tTwoPole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b0</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>a1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>a2</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tTwoPole. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad1f982ce04f2d4d4505b77bbc70d5080"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad1f982ce04f2d4d4505b77bbc70d5080">&#9670;&nbsp;</a></span>tTwoPole_setGain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoPole_setGain </td>
+          <td>(</td>
+          <td class="paramtype">tTwoPole * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>gain</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tTwoPole.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__ttwozero.html
@@ -1,0 +1,490 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tTwoZero</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tTwoZero<div class="ingroups"><a class="el" href="group__filters.html">Filters</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>TwoZero filter, reimplemented from STK (Cook and Scavone).  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gacebbb6bc52b6f785d3209369366f4932"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwozero.html#gacebbb6bc52b6f785d3209369366f4932">tTwoZero_init</a> (tTwoZero *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:gacebbb6bc52b6f785d3209369366f4932"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tTwoZero to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__ttwozero.html#gacebbb6bc52b6f785d3209369366f4932">More...</a><br /></td></tr>
+<tr class="separator:gacebbb6bc52b6f785d3209369366f4932"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1a327119904fbcdb8f71f28629bb14d4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwozero.html#ga1a327119904fbcdb8f71f28629bb14d4">tTwoZero_initToPool</a> (tTwoZero *const, tMempool *const)</td></tr>
+<tr class="memdesc:ga1a327119904fbcdb8f71f28629bb14d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tTwoZero to a specified mempool.  <a href="group__ttwozero.html#ga1a327119904fbcdb8f71f28629bb14d4">More...</a><br /></td></tr>
+<tr class="separator:ga1a327119904fbcdb8f71f28629bb14d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadc24b26d9a21905fe56a42a6eeec70a1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwozero.html#gadc24b26d9a21905fe56a42a6eeec70a1">tTwoZero_free</a> (tTwoZero *const)</td></tr>
+<tr class="memdesc:gadc24b26d9a21905fe56a42a6eeec70a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tTwoZero from its mempool.  <a href="group__ttwozero.html#gadc24b26d9a21905fe56a42a6eeec70a1">More...</a><br /></td></tr>
+<tr class="separator:gadc24b26d9a21905fe56a42a6eeec70a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa717ce92df413200e3dfe7f5322cdd41"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwozero.html#gaa717ce92df413200e3dfe7f5322cdd41">tTwoZero_tick</a> (tTwoZero *const, float input)</td></tr>
+<tr class="separator:gaa717ce92df413200e3dfe7f5322cdd41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae344592b94dcf9493aa9fdb9b363b8ac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwozero.html#gae344592b94dcf9493aa9fdb9b363b8ac">tTwoZero_setB0</a> (tTwoZero *const, float b0)</td></tr>
+<tr class="separator:gae344592b94dcf9493aa9fdb9b363b8ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8f7eea8cd31ae96e300d8398ee988c8b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwozero.html#ga8f7eea8cd31ae96e300d8398ee988c8b">tTwoZero_setB1</a> (tTwoZero *const, float b1)</td></tr>
+<tr class="separator:ga8f7eea8cd31ae96e300d8398ee988c8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga57cfdc780478243c74335fb85fdc2620"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwozero.html#ga57cfdc780478243c74335fb85fdc2620">tTwoZero_setB2</a> (tTwoZero *const, float b2)</td></tr>
+<tr class="separator:ga57cfdc780478243c74335fb85fdc2620"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafbcfc71b7c4eccc53cc104c3ceb83eba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwozero.html#gafbcfc71b7c4eccc53cc104c3ceb83eba">tTwoZero_setNotch</a> (tTwoZero *const, float frequency, float radius)</td></tr>
+<tr class="separator:gafbcfc71b7c4eccc53cc104c3ceb83eba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0875c43313e952ee2dcd86247efef096"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwozero.html#ga0875c43313e952ee2dcd86247efef096">tTwoZero_setCoefficients</a> (tTwoZero *const, float b0, float b1, float b2)</td></tr>
+<tr class="separator:ga0875c43313e952ee2dcd86247efef096"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaeeb223d8133a3b4d6e249b1a9cbae05"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ttwozero.html#gaaeeb223d8133a3b4d6e249b1a9cbae05">tTwoZero_setGain</a> (tTwoZero *const, float gain)</td></tr>
+<tr class="separator:gaaeeb223d8133a3b4d6e249b1a9cbae05"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>TwoZero filter, reimplemented from STK (Cook and Scavone). </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="gacebbb6bc52b6f785d3209369366f4932"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacebbb6bc52b6f785d3209369366f4932">&#9670;&nbsp;</a></span>tTwoZero_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoZero_init </td>
+          <td>(</td>
+          <td class="paramtype">tTwoZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tTwoZero to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tTwoZero to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1a327119904fbcdb8f71f28629bb14d4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1a327119904fbcdb8f71f28629bb14d4">&#9670;&nbsp;</a></span>tTwoZero_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoZero_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tTwoZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tTwoZero to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tTwoZero to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gadc24b26d9a21905fe56a42a6eeec70a1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gadc24b26d9a21905fe56a42a6eeec70a1">&#9670;&nbsp;</a></span>tTwoZero_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoZero_free </td>
+          <td>(</td>
+          <td class="paramtype">tTwoZero * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tTwoZero from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tTwoZero to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa717ce92df413200e3dfe7f5322cdd41"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa717ce92df413200e3dfe7f5322cdd41">&#9670;&nbsp;</a></span>tTwoZero_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tTwoZero_tick </td>
+          <td>(</td>
+          <td class="paramtype">tTwoZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tTwoZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae344592b94dcf9493aa9fdb9b363b8ac"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae344592b94dcf9493aa9fdb9b363b8ac">&#9670;&nbsp;</a></span>tTwoZero_setB0()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoZero_setB0 </td>
+          <td>(</td>
+          <td class="paramtype">tTwoZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b0</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tTwoZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga8f7eea8cd31ae96e300d8398ee988c8b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8f7eea8cd31ae96e300d8398ee988c8b">&#9670;&nbsp;</a></span>tTwoZero_setB1()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoZero_setB1 </td>
+          <td>(</td>
+          <td class="paramtype">tTwoZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b1</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tTwoZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga57cfdc780478243c74335fb85fdc2620"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga57cfdc780478243c74335fb85fdc2620">&#9670;&nbsp;</a></span>tTwoZero_setB2()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoZero_setB2 </td>
+          <td>(</td>
+          <td class="paramtype">tTwoZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b2</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tTwoZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gafbcfc71b7c4eccc53cc104c3ceb83eba"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafbcfc71b7c4eccc53cc104c3ceb83eba">&#9670;&nbsp;</a></span>tTwoZero_setNotch()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoZero_setNotch </td>
+          <td>(</td>
+          <td class="paramtype">tTwoZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>frequency</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>radius</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tTwoZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0875c43313e952ee2dcd86247efef096"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0875c43313e952ee2dcd86247efef096">&#9670;&nbsp;</a></span>tTwoZero_setCoefficients()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoZero_setCoefficients </td>
+          <td>(</td>
+          <td class="paramtype">tTwoZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b0</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>b2</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tTwoZero. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaaeeb223d8133a3b4d6e249b1a9cbae05"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaaeeb223d8133a3b4d6e249b1a9cbae05">&#9670;&nbsp;</a></span>tTwoZero_setGain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tTwoZero_setGain </td>
+          <td>(</td>
+          <td class="paramtype">tTwoZero * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>gain</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tTwoZero.</td></tr>
+  </table>
+  </dd>
+</dl>
+<p> </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tvocoder.html
@@ -1,0 +1,313 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tVocoder</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tVocoder<div class="ingroups"><a class="el" href="group__effects.html">Effects</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Channel vocoder from mda.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga687d4d2f952579f5df6d9c280ef9e0eb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvocoder.html#ga687d4d2f952579f5df6d9c280ef9e0eb">tVocoder_init</a> (tVocoder *const, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga687d4d2f952579f5df6d9c280ef9e0eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tVocoder to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tvocoder.html#ga687d4d2f952579f5df6d9c280ef9e0eb">More...</a><br /></td></tr>
+<tr class="separator:ga687d4d2f952579f5df6d9c280ef9e0eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad625ecd68ef438606e5a82fe11a3484f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvocoder.html#gad625ecd68ef438606e5a82fe11a3484f">tVocoder_initToPool</a> (tVocoder *const, tMempool *const)</td></tr>
+<tr class="memdesc:gad625ecd68ef438606e5a82fe11a3484f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tVocoder to a specified mempool.  <a href="group__tvocoder.html#gad625ecd68ef438606e5a82fe11a3484f">More...</a><br /></td></tr>
+<tr class="separator:gad625ecd68ef438606e5a82fe11a3484f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa54cfb22d5fab7c12d70d7e5fd4a0cd0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvocoder.html#gaa54cfb22d5fab7c12d70d7e5fd4a0cd0">tVocoder_free</a> (tVocoder *const)</td></tr>
+<tr class="memdesc:gaa54cfb22d5fab7c12d70d7e5fd4a0cd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tVocoder from its mempool.  <a href="group__tvocoder.html#gaa54cfb22d5fab7c12d70d7e5fd4a0cd0">More...</a><br /></td></tr>
+<tr class="separator:gaa54cfb22d5fab7c12d70d7e5fd4a0cd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf809f26807d22a348156bbcced99ae91"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvocoder.html#gaf809f26807d22a348156bbcced99ae91">tVocoder_tick</a> (tVocoder *const, float synth, float voice)</td></tr>
+<tr class="separator:gaf809f26807d22a348156bbcced99ae91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6ae72878b932a14fac7503e4f3226312"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvocoder.html#ga6ae72878b932a14fac7503e4f3226312">tVocoder_update</a> (tVocoder *const)</td></tr>
+<tr class="separator:ga6ae72878b932a14fac7503e4f3226312"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae4c7fd1376d81bcfce49f4a8a407ec16"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvocoder.html#gae4c7fd1376d81bcfce49f4a8a407ec16">tVocoder_suspend</a> (tVocoder *const)</td></tr>
+<tr class="separator:gae4c7fd1376d81bcfce49f4a8a407ec16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Channel vocoder from mda. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga687d4d2f952579f5df6d9c280ef9e0eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga687d4d2f952579f5df6d9c280ef9e0eb">&#9670;&nbsp;</a></span>tVocoder_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tVocoder_init </td>
+          <td>(</td>
+          <td class="paramtype">tVocoder * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tVocoder to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">vocoder</td><td>A pointer to the tVocoder to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad625ecd68ef438606e5a82fe11a3484f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad625ecd68ef438606e5a82fe11a3484f">&#9670;&nbsp;</a></span>tVocoder_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tVocoder_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tVocoder * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tVocoder to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">vocoder</td><td>A pointer to the tVocoder to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa54cfb22d5fab7c12d70d7e5fd4a0cd0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa54cfb22d5fab7c12d70d7e5fd4a0cd0">&#9670;&nbsp;</a></span>tVocoder_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tVocoder_free </td>
+          <td>(</td>
+          <td class="paramtype">tVocoder * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tVocoder from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">vocoder</td><td>A pointer to the tVocoder to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf809f26807d22a348156bbcced99ae91"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf809f26807d22a348156bbcced99ae91">&#9670;&nbsp;</a></span>tVocoder_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tVocoder_tick </td>
+          <td>(</td>
+          <td class="paramtype">tVocoder * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>synth</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>voice</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">vocoder</td><td>A pointer to the relevant tVocoder. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga6ae72878b932a14fac7503e4f3226312"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6ae72878b932a14fac7503e4f3226312">&#9670;&nbsp;</a></span>tVocoder_update()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tVocoder_update </td>
+          <td>(</td>
+          <td class="paramtype">tVocoder * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">vocoder</td><td>A pointer to the relevant tVocoder. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae4c7fd1376d81bcfce49f4a8a407ec16"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae4c7fd1376d81bcfce49f4a8a407ec16">&#9670;&nbsp;</a></span>tVocoder_suspend()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tVocoder_suspend </td>
+          <td>(</td>
+          <td class="paramtype">tVocoder * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">vocoder</td><td>A pointer to the relevant tVocoder. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tvzfilter.html
@@ -1,0 +1,611 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tVZFilter</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tVZFilter<div class="ingroups"><a class="el" href="group__filters.html">Filters</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Vadim Zavalishin style from VA book (from implementation in RSlib posted to kvr forum)  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga3c5672bd2d229be5201a8d4f6e81c9cf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvzfilter.html#ga3c5672bd2d229be5201a8d4f6e81c9cf">tVZFilter_init</a> (tVZFilter *const, VZFilterType type, float freq, float Q, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga3c5672bd2d229be5201a8d4f6e81c9cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tVZFilter to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tvzfilter.html#ga3c5672bd2d229be5201a8d4f6e81c9cf">More...</a><br /></td></tr>
+<tr class="separator:ga3c5672bd2d229be5201a8d4f6e81c9cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadefd89eb319135397cd2aebe9d92ae19"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvzfilter.html#gadefd89eb319135397cd2aebe9d92ae19">tVZFilter_initToPool</a> (tVZFilter *const, VZFilterType type, float freq, float Q, tMempool *const)</td></tr>
+<tr class="memdesc:gadefd89eb319135397cd2aebe9d92ae19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tVZFilter to a specified mempool.  <a href="group__tvzfilter.html#gadefd89eb319135397cd2aebe9d92ae19">More...</a><br /></td></tr>
+<tr class="separator:gadefd89eb319135397cd2aebe9d92ae19"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac4bda1af30d4e883b2de0d7f35067a45"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvzfilter.html#gac4bda1af30d4e883b2de0d7f35067a45">tVZFilter_free</a> (tVZFilter *const)</td></tr>
+<tr class="memdesc:gac4bda1af30d4e883b2de0d7f35067a45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tVZFilter from its mempool.  <a href="group__tvzfilter.html#gac4bda1af30d4e883b2de0d7f35067a45">More...</a><br /></td></tr>
+<tr class="separator:gac4bda1af30d4e883b2de0d7f35067a45"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2e4af322ef20fe128fddec1e30315a78"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvzfilter.html#ga2e4af322ef20fe128fddec1e30315a78">tVZFilter_setSampleRate</a> (tVZFilter *const, float sampleRate)</td></tr>
+<tr class="separator:ga2e4af322ef20fe128fddec1e30315a78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0fbbf089b751d1e31c796a3a4bdd3d64"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvzfilter.html#ga0fbbf089b751d1e31c796a3a4bdd3d64">tVZFilter_tick</a> (tVZFilter *const, float input)</td></tr>
+<tr class="separator:ga0fbbf089b751d1e31c796a3a4bdd3d64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa8b8a7061d00b6d4a507115f015a76cc"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvzfilter.html#gaa8b8a7061d00b6d4a507115f015a76cc">tVZFilter_tickEfficient</a> (tVZFilter *const vf, float in)</td></tr>
+<tr class="separator:gaa8b8a7061d00b6d4a507115f015a76cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9b926d729e03680d876a0c1e44603ccb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvzfilter.html#ga9b926d729e03680d876a0c1e44603ccb">tVZFilter_calcCoeffs</a> (tVZFilter *const)</td></tr>
+<tr class="separator:ga9b926d729e03680d876a0c1e44603ccb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1a3a1fb6f92dd3ba35144337781c0fe2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvzfilter.html#ga1a3a1fb6f92dd3ba35144337781c0fe2">tVZFilter_setBandwidth</a> (tVZFilter *const, float bandWidth)</td></tr>
+<tr class="separator:ga1a3a1fb6f92dd3ba35144337781c0fe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2dcd4668daf45ce81c7dc4b1a5477c71"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvzfilter.html#ga2dcd4668daf45ce81c7dc4b1a5477c71">tVZFilter_setFreq</a> (tVZFilter *const, float freq)</td></tr>
+<tr class="separator:ga2dcd4668daf45ce81c7dc4b1a5477c71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gace98499c6b229162b8eb23d1df8dbb28"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvzfilter.html#gace98499c6b229162b8eb23d1df8dbb28">tVZFilter_setFreqAndBandwidth</a> (tVZFilter *const vf, float freq, float bw)</td></tr>
+<tr class="separator:gace98499c6b229162b8eb23d1df8dbb28"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga516f54dd1403fcba60aa1ba2b5d0f35d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvzfilter.html#ga516f54dd1403fcba60aa1ba2b5d0f35d">tVZFilter_setGain</a> (tVZFilter *const, float gain)</td></tr>
+<tr class="separator:ga516f54dd1403fcba60aa1ba2b5d0f35d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7239af935c13f07e92f817c0a53c3d7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvzfilter.html#gaa7239af935c13f07e92f817c0a53c3d7">tVZFilter_setType</a> (tVZFilter *const, VZFilterType type)</td></tr>
+<tr class="separator:gaa7239af935c13f07e92f817c0a53c3d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac639e85aa70295332ba927c8d9b99a73"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tvzfilter.html#gac639e85aa70295332ba927c8d9b99a73">tVZFilter_BandwidthToR</a> (tVZFilter *const vf, float B)</td></tr>
+<tr class="separator:gac639e85aa70295332ba927c8d9b99a73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Vadim Zavalishin style from VA book (from implementation in RSlib posted to kvr forum) </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga3c5672bd2d229be5201a8d4f6e81c9cf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3c5672bd2d229be5201a8d4f6e81c9cf">&#9670;&nbsp;</a></span>tVZFilter_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tVZFilter_init </td>
+          <td>(</td>
+          <td class="paramtype">tVZFilter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">VZFilterType&#160;</td>
+          <td class="paramname"><em>type</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>Q</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tVZFilter to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tVZFilter to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gadefd89eb319135397cd2aebe9d92ae19"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gadefd89eb319135397cd2aebe9d92ae19">&#9670;&nbsp;</a></span>tVZFilter_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tVZFilter_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tVZFilter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">VZFilterType&#160;</td>
+          <td class="paramname"><em>type</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>Q</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tVZFilter to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tVZFilter to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac4bda1af30d4e883b2de0d7f35067a45"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac4bda1af30d4e883b2de0d7f35067a45">&#9670;&nbsp;</a></span>tVZFilter_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tVZFilter_free </td>
+          <td>(</td>
+          <td class="paramtype">tVZFilter * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tVZFilter from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the tVZFilter to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2e4af322ef20fe128fddec1e30315a78"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2e4af322ef20fe128fddec1e30315a78">&#9670;&nbsp;</a></span>tVZFilter_setSampleRate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tVZFilter_setSampleRate </td>
+          <td>(</td>
+          <td class="paramtype">tVZFilter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sampleRate</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tVZFilter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0fbbf089b751d1e31c796a3a4bdd3d64"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0fbbf089b751d1e31c796a3a4bdd3d64">&#9670;&nbsp;</a></span>tVZFilter_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tVZFilter_tick </td>
+          <td>(</td>
+          <td class="paramtype">tVZFilter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tVZFilter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa8b8a7061d00b6d4a507115f015a76cc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa8b8a7061d00b6d4a507115f015a76cc">&#9670;&nbsp;</a></span>tVZFilter_tickEfficient()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tVZFilter_tickEfficient </td>
+          <td>(</td>
+          <td class="paramtype">tVZFilter *const&#160;</td>
+          <td class="paramname"><em>vf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>in</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tVZFilter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga9b926d729e03680d876a0c1e44603ccb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9b926d729e03680d876a0c1e44603ccb">&#9670;&nbsp;</a></span>tVZFilter_calcCoeffs()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tVZFilter_calcCoeffs </td>
+          <td>(</td>
+          <td class="paramtype">tVZFilter * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tVZFilter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga1a3a1fb6f92dd3ba35144337781c0fe2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1a3a1fb6f92dd3ba35144337781c0fe2">&#9670;&nbsp;</a></span>tVZFilter_setBandwidth()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tVZFilter_setBandwidth </td>
+          <td>(</td>
+          <td class="paramtype">tVZFilter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>bandWidth</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tVZFilter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga2dcd4668daf45ce81c7dc4b1a5477c71"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2dcd4668daf45ce81c7dc4b1a5477c71">&#9670;&nbsp;</a></span>tVZFilter_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tVZFilter_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tVZFilter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tVZFilter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gace98499c6b229162b8eb23d1df8dbb28"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gace98499c6b229162b8eb23d1df8dbb28">&#9670;&nbsp;</a></span>tVZFilter_setFreqAndBandwidth()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tVZFilter_setFreqAndBandwidth </td>
+          <td>(</td>
+          <td class="paramtype">tVZFilter *const&#160;</td>
+          <td class="paramname"><em>vf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>bw</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tVZFilter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga516f54dd1403fcba60aa1ba2b5d0f35d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga516f54dd1403fcba60aa1ba2b5d0f35d">&#9670;&nbsp;</a></span>tVZFilter_setGain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tVZFilter_setGain </td>
+          <td>(</td>
+          <td class="paramtype">tVZFilter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>gain</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tVZFilter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa7239af935c13f07e92f817c0a53c3d7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa7239af935c13f07e92f817c0a53c3d7">&#9670;&nbsp;</a></span>tVZFilter_setType()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tVZFilter_setType </td>
+          <td>(</td>
+          <td class="paramtype">tVZFilter * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">VZFilterType&#160;</td>
+          <td class="paramname"><em>type</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tVZFilter. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac639e85aa70295332ba927c8d9b99a73"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac639e85aa70295332ba927c8d9b99a73">&#9670;&nbsp;</a></span>tVZFilter_BandwidthToR()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tVZFilter_BandwidthToR </td>
+          <td>(</td>
+          <td class="paramtype">tVZFilter *const&#160;</td>
+          <td class="paramname"><em>vf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>B</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">filter</td><td>A pointer to the relevant tVZFilter.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__twavetable.html
@@ -1,0 +1,209 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tWavetable</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tWavetable<div class="ingroups"><a class="el" href="group__oscillators.html">Oscillators</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Anti-aliased wavetable oscillator.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga54957a54c5f86392dc8b3105668425e5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twavetable.html#ga54957a54c5f86392dc8b3105668425e5">tWavetable_free</a> (tWavetable *const osc)</td></tr>
+<tr class="memdesc:ga54957a54c5f86392dc8b3105668425e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tWavetable from its mempool.  <a href="group__twavetable.html#ga54957a54c5f86392dc8b3105668425e5">More...</a><br /></td></tr>
+<tr class="separator:ga54957a54c5f86392dc8b3105668425e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad22ca7b75e09dd860286215aed1711b9"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twavetable.html#gad22ca7b75e09dd860286215aed1711b9">tWavetable_tick</a> (tWavetable *const osc)</td></tr>
+<tr class="memdesc:gad22ca7b75e09dd860286215aed1711b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tick a tWavetable oscillator.  <a href="group__twavetable.html#gad22ca7b75e09dd860286215aed1711b9">More...</a><br /></td></tr>
+<tr class="separator:gad22ca7b75e09dd860286215aed1711b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf397a73fa707667cb0038b1be42896f1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twavetable.html#gaf397a73fa707667cb0038b1be42896f1">tWavetable_setFreq</a> (tWavetable *const osc, float freq)</td></tr>
+<tr class="memdesc:gaf397a73fa707667cb0038b1be42896f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the frequency of a tWavetable oscillator.  <a href="group__twavetable.html#gaf397a73fa707667cb0038b1be42896f1">More...</a><br /></td></tr>
+<tr class="separator:gaf397a73fa707667cb0038b1be42896f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Anti-aliased wavetable oscillator. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga54957a54c5f86392dc8b3105668425e5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga54957a54c5f86392dc8b3105668425e5">&#9670;&nbsp;</a></span>tWavetable_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tWavetable_free </td>
+          <td>(</td>
+          <td class="paramtype">tWavetable *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tWavetable from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the tWavetable to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gad22ca7b75e09dd860286215aed1711b9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad22ca7b75e09dd860286215aed1711b9">&#9670;&nbsp;</a></span>tWavetable_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tWavetable_tick </td>
+          <td>(</td>
+          <td class="paramtype">tWavetable *const&#160;</td>
+          <td class="paramname"><em>osc</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Tick a tWavetable oscillator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tWavetable. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The ticked sample as a float from -1 to 1. </dd></dl>
+
+</div>
+</div>
+<a id="gaf397a73fa707667cb0038b1be42896f1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf397a73fa707667cb0038b1be42896f1">&#9670;&nbsp;</a></span>tWavetable_setFreq()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tWavetable_setFreq </td>
+          <td>(</td>
+          <td class="paramtype">tWavetable *const&#160;</td>
+          <td class="paramname"><em>osc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>freq</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the frequency of a tWavetable oscillator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">osc</td><td>A pointer to the relevant tWavetable. </td></tr>
+    <tr><td class="paramname">freq</td><td>The frequency to set the oscillator to. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__twdf.html
@@ -1,0 +1,611 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tWDF</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tWDF<div class="ingroups"><a class="el" href="group__electrical.html">Electrical Models</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Wave digital filter component.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga8b1809a43641039fb095a2d5d1892b89"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twdf.html#ga8b1809a43641039fb095a2d5d1892b89">tWDF_init</a> (tWDF *const, WDFComponentType type, float value, tWDF *const rL, tWDF *const rR, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga8b1809a43641039fb095a2d5d1892b89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tWDF to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__twdf.html#ga8b1809a43641039fb095a2d5d1892b89">More...</a><br /></td></tr>
+<tr class="separator:ga8b1809a43641039fb095a2d5d1892b89"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga88589dcd1fe135010f251ac8e9e00b7b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twdf.html#ga88589dcd1fe135010f251ac8e9e00b7b">tWDF_initToPool</a> (tWDF *const, WDFComponentType type, float value, tWDF *const rL, tWDF *const rR, tMempool *const)</td></tr>
+<tr class="memdesc:ga88589dcd1fe135010f251ac8e9e00b7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tWDF to a specified mempool.  <a href="group__twdf.html#ga88589dcd1fe135010f251ac8e9e00b7b">More...</a><br /></td></tr>
+<tr class="separator:ga88589dcd1fe135010f251ac8e9e00b7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga286814ebe6a0757239c6403a0c9be9a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twdf.html#ga286814ebe6a0757239c6403a0c9be9a4">tWDF_free</a> (tWDF *const)</td></tr>
+<tr class="memdesc:ga286814ebe6a0757239c6403a0c9be9a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tWDF from its mempool.  <a href="group__twdf.html#ga286814ebe6a0757239c6403a0c9be9a4">More...</a><br /></td></tr>
+<tr class="separator:ga286814ebe6a0757239c6403a0c9be9a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa6ac38775cde5d0f859fbd007d5e4154"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twdf.html#gaa6ac38775cde5d0f859fbd007d5e4154">tWDF_tick</a> (tWDF *const, float sample, tWDF *const outputPoint, uint8_t paramsChanged)</td></tr>
+<tr class="separator:gaa6ac38775cde5d0f859fbd007d5e4154"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea4c5bf95c97f449b86e5e2371e048c0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twdf.html#gaea4c5bf95c97f449b86e5e2371e048c0">tWDF_setValue</a> (tWDF *const, float value)</td></tr>
+<tr class="separator:gaea4c5bf95c97f449b86e5e2371e048c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac519b5869e0cc3eb08b328ee1eacf859"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twdf.html#gac519b5869e0cc3eb08b328ee1eacf859">tWDF_setSampleRate</a> (tWDF *const, float sample_rate)</td></tr>
+<tr class="separator:gac519b5869e0cc3eb08b328ee1eacf859"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae10a7d10fa7d7928cdb0bb1e90dfba86"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twdf.html#gae10a7d10fa7d7928cdb0bb1e90dfba86">tWDF_isLeaf</a> (tWDF *const)</td></tr>
+<tr class="separator:gae10a7d10fa7d7928cdb0bb1e90dfba86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga59e01adf3c85d097b41c7c12dc1da83c"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twdf.html#ga59e01adf3c85d097b41c7c12dc1da83c">tWDF_getPortResistance</a> (tWDF *const)</td></tr>
+<tr class="separator:ga59e01adf3c85d097b41c7c12dc1da83c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0419e60095b8caea022d117e2f51e902"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twdf.html#ga0419e60095b8caea022d117e2f51e902">tWDF_getReflectedWaveUp</a> (tWDF *const, float input)</td></tr>
+<tr class="separator:ga0419e60095b8caea022d117e2f51e902"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf88b3a106e610173e153c7e4ab3914c8"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twdf.html#gaf88b3a106e610173e153c7e4ab3914c8">tWDF_getReflectedWaveDown</a> (tWDF *const, float input, float incident_wave)</td></tr>
+<tr class="separator:gaf88b3a106e610173e153c7e4ab3914c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab6b8b9ae4786b3c185a22402d43c263c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twdf.html#gab6b8b9ae4786b3c185a22402d43c263c">tWDF_setIncidentWave</a> (tWDF *const, float incident_wave, float input)</td></tr>
+<tr class="separator:gab6b8b9ae4786b3c185a22402d43c263c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga225e0816681d5a7bb733487bd4202bae"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twdf.html#ga225e0816681d5a7bb733487bd4202bae">tWDF_getVoltage</a> (tWDF *const)</td></tr>
+<tr class="separator:ga225e0816681d5a7bb733487bd4202bae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gace849a3c7401adf2cd9e4be561ff8163"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__twdf.html#gace849a3c7401adf2cd9e4be561ff8163">tWDF_getCurrent</a> (tWDF *const)</td></tr>
+<tr class="separator:gace849a3c7401adf2cd9e4be561ff8163"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Wave digital filter component. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga8b1809a43641039fb095a2d5d1892b89"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8b1809a43641039fb095a2d5d1892b89">&#9670;&nbsp;</a></span>tWDF_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tWDF_init </td>
+          <td>(</td>
+          <td class="paramtype">tWDF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">WDFComponentType&#160;</td>
+          <td class="paramname"><em>type</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>value</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tWDF *const&#160;</td>
+          <td class="paramname"><em>rL</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tWDF *const&#160;</td>
+          <td class="paramname"><em>rR</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tWDF to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wdf</td><td>A pointer to the tWDF to initialize. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga88589dcd1fe135010f251ac8e9e00b7b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga88589dcd1fe135010f251ac8e9e00b7b">&#9670;&nbsp;</a></span>tWDF_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tWDF_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tWDF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">WDFComponentType&#160;</td>
+          <td class="paramname"><em>type</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>value</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tWDF *const&#160;</td>
+          <td class="paramname"><em>rL</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tWDF *const&#160;</td>
+          <td class="paramname"><em>rR</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tWDF to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wdf</td><td>A pointer to the tWDF to initialize. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga286814ebe6a0757239c6403a0c9be9a4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga286814ebe6a0757239c6403a0c9be9a4">&#9670;&nbsp;</a></span>tWDF_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tWDF_free </td>
+          <td>(</td>
+          <td class="paramtype">tWDF * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tWDF from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wdf</td><td>A pointer to the tWDF to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa6ac38775cde5d0f859fbd007d5e4154"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa6ac38775cde5d0f859fbd007d5e4154">&#9670;&nbsp;</a></span>tWDF_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tWDF_tick </td>
+          <td>(</td>
+          <td class="paramtype">tWDF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sample</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tWDF *const&#160;</td>
+          <td class="paramname"><em>outputPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>paramsChanged</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wdf</td><td>A pointer to the relevant tWDF. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaea4c5bf95c97f449b86e5e2371e048c0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaea4c5bf95c97f449b86e5e2371e048c0">&#9670;&nbsp;</a></span>tWDF_setValue()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tWDF_setValue </td>
+          <td>(</td>
+          <td class="paramtype">tWDF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wdf</td><td>A pointer to the relevant tWDF. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gac519b5869e0cc3eb08b328ee1eacf859"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac519b5869e0cc3eb08b328ee1eacf859">&#9670;&nbsp;</a></span>tWDF_setSampleRate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tWDF_setSampleRate </td>
+          <td>(</td>
+          <td class="paramtype">tWDF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>sample_rate</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wdf</td><td>A pointer to the relevant tWDF. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gae10a7d10fa7d7928cdb0bb1e90dfba86"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae10a7d10fa7d7928cdb0bb1e90dfba86">&#9670;&nbsp;</a></span>tWDF_isLeaf()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint8_t tWDF_isLeaf </td>
+          <td>(</td>
+          <td class="paramtype">tWDF * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wdf</td><td>A pointer to the relevant tWDF. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga59e01adf3c85d097b41c7c12dc1da83c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga59e01adf3c85d097b41c7c12dc1da83c">&#9670;&nbsp;</a></span>tWDF_getPortResistance()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tWDF_getPortResistance </td>
+          <td>(</td>
+          <td class="paramtype">tWDF * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wdf</td><td>A pointer to the relevant tWDF. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga0419e60095b8caea022d117e2f51e902"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0419e60095b8caea022d117e2f51e902">&#9670;&nbsp;</a></span>tWDF_getReflectedWaveUp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tWDF_getReflectedWaveUp </td>
+          <td>(</td>
+          <td class="paramtype">tWDF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wdf</td><td>A pointer to the relevant tWDF. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaf88b3a106e610173e153c7e4ab3914c8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf88b3a106e610173e153c7e4ab3914c8">&#9670;&nbsp;</a></span>tWDF_getReflectedWaveDown()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tWDF_getReflectedWaveDown </td>
+          <td>(</td>
+          <td class="paramtype">tWDF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>incident_wave</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wdf</td><td>A pointer to the relevant tWDF. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab6b8b9ae4786b3c185a22402d43c263c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab6b8b9ae4786b3c185a22402d43c263c">&#9670;&nbsp;</a></span>tWDF_setIncidentWave()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tWDF_setIncidentWave </td>
+          <td>(</td>
+          <td class="paramtype">tWDF * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>incident_wave</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wdf</td><td>A pointer to the relevant tWDF. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga225e0816681d5a7bb733487bd4202bae"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga225e0816681d5a7bb733487bd4202bae">&#9670;&nbsp;</a></span>tWDF_getVoltage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tWDF_getVoltage </td>
+          <td>(</td>
+          <td class="paramtype">tWDF * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wdf</td><td>A pointer to the relevant tWDF. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gace849a3c7401adf2cd9e4be561ff8163"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gace849a3c7401adf2cd9e4be561ff8163">&#9670;&nbsp;</a></span>tWDF_getCurrent()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tWDF_getCurrent </td>
+          <td>(</td>
+          <td class="paramtype">tWDF * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">wdf</td><td>A pointer to the relevant tWDF. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tzerocrossing.html
@@ -1,0 +1,293 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>LEAF: tZeroCrossing</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script src="/js/template.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+<link rel="stylesheet" href="/css/tachyons.css" type="text/css">
+</head>
+<body class="bg-washed-green black-70 ph0 sans-serif">
+<header class="fl bg-deep-green w-100 pt4-ns pb3-ns pl5">
+  <div class="bg-dark-green pv0">
+    <h1 class="black-70 pv3 ph4 f-headline-m">
+      <a class="link hover-gold white dib mr3" href="/" title="NIRL">NIRL &#8212; New Instrument Research Lab
+        <div class="fw4 f4">at Princeton University</div>
+      </a>
+    </h1>
+  </div>
+  <nav class="pv0 ph4 f5 fw5 ttu tracked">
+    <a class="link hover-gold white dib mr6" href="/" title="Home">&#187;Home&#171;</a>
+    <a class="link hover-gold white dib mr6" href="/tabs/projects.html" title="Projects">&#187;Projects&#171;</a>
+    <a class="link hover-gold white dib mr6" href="/tabs/papers.html" title="Papers">&#187;Papers&#171;</a>
+<!--    <a class="link hover-gold white dib mr6" href="/tabs/people.html" title="People">People</a> -->
+<!--    <a class="link hover-gold white dib" href="/tabs/contact.html" title="Contact">Contact</a> -->
+  </nav>
+</header>
+<div><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tZeroCrossing<div class="ingroups"><a class="el" href="group__analysis.html">Analysis</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga95dee0455b05b55f423be9c4c2b7b34b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tzerocrossing.html#ga95dee0455b05b55f423be9c4c2b7b34b">tZeroCrossing_init</a> (tZeroCrossing *const, int maxWindowSize)</td></tr>
+<tr class="separator:ga95dee0455b05b55f423be9c4c2b7b34b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga873bf05450d1043839d36a9b8b971f2e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tzerocrossing.html#ga873bf05450d1043839d36a9b8b971f2e">tZeroCrossing_initToPool</a> (tZeroCrossing *const, int maxWindowSize, tMempool *const)</td></tr>
+<tr class="separator:ga873bf05450d1043839d36a9b8b971f2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga725a38b0414d2888660c14a52f0579ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tzerocrossing.html#ga725a38b0414d2888660c14a52f0579ce">tZeroCrossing_free</a> (tZeroCrossing *const)</td></tr>
+<tr class="separator:ga725a38b0414d2888660c14a52f0579ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4ad51c547e85bdbfd86e522e3437d5d3"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tzerocrossing.html#ga4ad51c547e85bdbfd86e522e3437d5d3">tZeroCrossing_tick</a> (tZeroCrossing *const, float input)</td></tr>
+<tr class="separator:ga4ad51c547e85bdbfd86e522e3437d5d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga744530c43a089f7fce910991737456a1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tzerocrossing.html#ga744530c43a089f7fce910991737456a1">tZeroCrossing_setWindow</a> (tZeroCrossing *const, float windowSize)</td></tr>
+<tr class="separator:ga744530c43a089f7fce910991737456a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga95dee0455b05b55f423be9c4c2b7b34b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga95dee0455b05b55f423be9c4c2b7b34b">&#9670;&nbsp;</a></span>tZeroCrossing_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tZeroCrossing_init </td>
+          <td>(</td>
+          <td class="paramtype">tZeroCrossing * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>maxWindowSize</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga873bf05450d1043839d36a9b8b971f2e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga873bf05450d1043839d36a9b8b971f2e">&#9670;&nbsp;</a></span>tZeroCrossing_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tZeroCrossing_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tZeroCrossing * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>maxWindowSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool * const&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga725a38b0414d2888660c14a52f0579ce"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga725a38b0414d2888660c14a52f0579ce">&#9670;&nbsp;</a></span>tZeroCrossing_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tZeroCrossing_free </td>
+          <td>(</td>
+          <td class="paramtype">tZeroCrossing * const&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga4ad51c547e85bdbfd86e522e3437d5d3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4ad51c547e85bdbfd86e522e3437d5d3">&#9670;&nbsp;</a></span>tZeroCrossing_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tZeroCrossing_tick </td>
+          <td>(</td>
+          <td class="paramtype">tZeroCrossing * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga744530c43a089f7fce910991737456a1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga744530c43a089f7fce910991737456a1">&#9670;&nbsp;</a></span>tZeroCrossing_setWindow()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tZeroCrossing_setWindow </td>
+          <td>(</td>
+          <td class="paramtype">tZeroCrossing * const&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>windowSize</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname"></td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/group__tzerocrossingcounter.html
@@ -1,0 +1,314 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: tZeroCrossingCounter</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">tZeroCrossingCounter<div class="ingroups"><a class="el" href="group__analysis.html">Analysis</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Count the amount of zero crossings within a window of the input audio data.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga8fed3441e5ac46750e3f7641d8b5d80b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tzerocrossingcounter.html#ga8fed3441e5ac46750e3f7641d8b5d80b">tZeroCrossingCounter_init</a> (tZeroCrossingCounter *const, int maxWindowSize, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
+<tr class="memdesc:ga8fed3441e5ac46750e3f7641d8b5d80b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tZeroCrossingCounter to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tzerocrossingcounter.html#ga8fed3441e5ac46750e3f7641d8b5d80b">More...</a><br /></td></tr>
+<tr class="separator:ga8fed3441e5ac46750e3f7641d8b5d80b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga797b0ef62ada70b352a22426a9915ae6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tzerocrossingcounter.html#ga797b0ef62ada70b352a22426a9915ae6">tZeroCrossingCounter_initToPool</a> (tZeroCrossingCounter *const, int maxWindowSize, tMempool *const mempool)</td></tr>
+<tr class="memdesc:ga797b0ef62ada70b352a22426a9915ae6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tZeroCrossingCounter to a specified mempool.  <a href="group__tzerocrossingcounter.html#ga797b0ef62ada70b352a22426a9915ae6">More...</a><br /></td></tr>
+<tr class="separator:ga797b0ef62ada70b352a22426a9915ae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa1865545e8a1ac340af315e77547e75b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tzerocrossingcounter.html#gaa1865545e8a1ac340af315e77547e75b">tZeroCrossingCounter_free</a> (tZeroCrossingCounter *const)</td></tr>
+<tr class="memdesc:gaa1865545e8a1ac340af315e77547e75b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tZeroCrossingCounter from its mempool.  <a href="group__tzerocrossingcounter.html#gaa1865545e8a1ac340af315e77547e75b">More...</a><br /></td></tr>
+<tr class="separator:gaa1865545e8a1ac340af315e77547e75b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab53550020f2625049537b65655af0053"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tzerocrossingcounter.html#gab53550020f2625049537b65655af0053">tZeroCrossingCounter_tick</a> (tZeroCrossingCounter *const, float input)</td></tr>
+<tr class="memdesc:gab53550020f2625049537b65655af0053"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tick the tZeroCrossingCounter.  <a href="group__tzerocrossingcounter.html#gab53550020f2625049537b65655af0053">More...</a><br /></td></tr>
+<tr class="separator:gab53550020f2625049537b65655af0053"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7810cc03d693da0d9752b61f5320d01b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tzerocrossingcounter.html#ga7810cc03d693da0d9752b61f5320d01b">tZeroCrossingCounter_setWindowSize</a> (tZeroCrossingCounter *const, float windowSize)</td></tr>
+<tr class="memdesc:ga7810cc03d693da0d9752b61f5320d01b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the size of the window. Cannot be greater than the max size given on initialization.  <a href="group__tzerocrossingcounter.html#ga7810cc03d693da0d9752b61f5320d01b">More...</a><br /></td></tr>
+<tr class="separator:ga7810cc03d693da0d9752b61f5320d01b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Count the amount of zero crossings within a window of the input audio data. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ga8fed3441e5ac46750e3f7641d8b5d80b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8fed3441e5ac46750e3f7641d8b5d80b">&#9670;&nbsp;</a></span>tZeroCrossingCounter_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tZeroCrossingCounter_init </td>
+          <td>(</td>
+          <td class="paramtype">tZeroCrossingCounter * const&#160;</td>
+          <td class="paramname"><em>counter</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>maxWindowSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
+          <td class="paramname"><em>leaf</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tZeroCrossingCounter to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">counter</td><td>A pointer to the tZeroCrossingCounter to initialize. </td></tr>
+    <tr><td class="paramname">maxWindowSize</td><td>The max and initial size of the window. </td></tr>
+    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ga797b0ef62ada70b352a22426a9915ae6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga797b0ef62ada70b352a22426a9915ae6">&#9670;&nbsp;</a></span>tZeroCrossingCounter_initToPool()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tZeroCrossingCounter_initToPool </td>
+          <td>(</td>
+          <td class="paramtype">tZeroCrossingCounter * const&#160;</td>
+          <td class="paramname"><em>counter</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>maxWindowSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">tMempool *const&#160;</td>
+          <td class="paramname"><em>mempool</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a tZeroCrossingCounter to a specified mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">counter</td><td>A pointer to the tZeroCrossingCounter to initialize. </td></tr>
+    <tr><td class="paramname">maxWindowSize</td><td>The max and initial size of the window. </td></tr>
+    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gaa1865545e8a1ac340af315e77547e75b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa1865545e8a1ac340af315e77547e75b">&#9670;&nbsp;</a></span>tZeroCrossingCounter_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tZeroCrossingCounter_free </td>
+          <td>(</td>
+          <td class="paramtype">tZeroCrossingCounter * const&#160;</td>
+          <td class="paramname"><em>counter</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free a tZeroCrossingCounter from its mempool. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">counter</td><td>A pointer to the tZeroCrossingCounter to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="gab53550020f2625049537b65655af0053"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab53550020f2625049537b65655af0053">&#9670;&nbsp;</a></span>tZeroCrossingCounter_tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float tZeroCrossingCounter_tick </td>
+          <td>(</td>
+          <td class="paramtype">tZeroCrossingCounter * const&#160;</td>
+          <td class="paramname"><em>counter</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>input</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Tick the tZeroCrossingCounter. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">counter</td><td>A pointer to the relevant tZeroCrossingCounter. </td></tr>
+    <tr><td class="paramname">input</td><td>The input sample. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The amount of zero crossings as a proportion of the window. </dd></dl>
+
+</div>
+</div>
+<a id="ga7810cc03d693da0d9752b61f5320d01b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7810cc03d693da0d9752b61f5320d01b">&#9670;&nbsp;</a></span>tZeroCrossingCounter_setWindowSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tZeroCrossingCounter_setWindowSize </td>
+          <td>(</td>
+          <td class="paramtype">tZeroCrossingCounter * const&#160;</td>
+          <td class="paramname"><em>counter</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>windowSize</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the size of the window. Cannot be greater than the max size given on initialization. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">counter</td><td>A pointer to the relevant tZeroCrossingCounter. </td></tr>
+    <tr><td class="paramname">windowSize</td><td>The new window size.  </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/index.html
@@ -1,0 +1,103 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="PageDoc"><div class="header">
+  <div class="headertitle">
+<div class="title"><a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> </div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1><a class="anchor" id="intro_sec"></a>
+Introduction</h1>
+<p><a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> (Lightweight Embedded Audio Framework) is a no-dependency C audio library intended for embedded systems.</p>
+<p>This documentation is a work in progress and will eventually include usage instructions, examples, and descriptions of <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> objects and functions. </p>
+</div></div><!-- PageDoc -->
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/jquery.js
@@ -1,0 +1,35 @@
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multipl
\ No newline at end of file
+/*! jQuery UI - v1.12.1 - 2019-01-27
+* http://jqueryui.com
+* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}t.ui=t.ui||{},t.ui.version="1.12.1";var i=0,s=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,n,o=s.call(arguments,1),a=0,r=o.length;r>a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.sp
\ No newline at end of file
+},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRa
\ No newline at end of file
+ * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler
+ * Licensed under MIT
+ * @author Ariel Flesler
+ * @version 2.1.2
+ */
+;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/=2);b.offset=h(b.offset);b.over=h(b.over);return this.each(function(){function k(a){var k=$.extend({},b,{queue:!0,duration:d,complete:a&&function(){a.call(q,e,b)}});r.animate(f,k)}if(null!==a){var l=n(this),q=l?this.contentWindow||window:this,r=$(q),e=a,f={},t;switch(typeof e){case "number":case "string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(e)){e= h(e);break}e=l?$(e):$(e,q);case "object":if(e.length===0)return;if(e.is||e.style)t=(e=$(e)).offset()}var v=$.isFunction(b.offset)&&b.offset(q,e)||b.offset;$.each(b.axis.split(""),function(a,c){var d="x"===c?"Left":"Top",m=d.toLowerCase(),g="scroll"+d,h=r[g](),n=p.max(q,c);t?(f[g]=t[m]+(l?0:h-r.offset()[m]),b.margin&&(f[g]-=parseInt(e.css("margin"+d),10)||0,f[g]-=parseInt(e.css("border"+d+"Width"),10)||0),f[g]+=v[m]||0,b.over[m]&&(f[g]+=e["x"===c?"width":"height"]()*b.over[m])):(d=e[m],f[g]=d.slice&& "%"===d.slice(-1)?parseFloat(d)/100*n:d);b.limit&&/^\d+$/.test(f[g])&&(f[g]=0>=f[g]?0:Math.min(f[g],n));!a&&1<b.axis.length&&(h===f[g]?f={}:u&&(k(b.onAfterFirst),f={}))});k(b.onAfter)}})};p.max=function(a,d){var b="x"===d?"Width":"Height",h="scroll"+b;if(!n(a))return a[h]-$(a)[b.toLowerCase()]();var b="client"+b,k=a.ownerDocument||a.document,l=k.documentElement,k=k.body;return Math.max(l[h],k[h])-Math.min(l[b],k[b])};$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(a){return $(a.elem)[a.prop]()}, set:function(a){var d=this.get(a);if(a.options.interrupt&&a._last&&a._last!==d)return $(a.elem).stop();var b=Math.round(a.now);d!==b&&($(a.elem)[a.prop](b),a._last=this.get(a))}};return p});
+/*!
+ PowerTip v1.3.1 (2018-04-15)
+ https://stevenbenner.github.io/jquery-powertip/
+ Copyright (c) 2018 Steven Benner (http://stevenbenner.com/).
+ Released under MIT license.
+ https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
+*/
+(function(root,factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof module==="object"&&module.exports){module.exports=factory(require("jquery"))}else{factory(root.jQuery)}})(this,function($){var $document=$(document),$window=$(window),$body=$("body");var DATA_DISPLAYCONTROLLER="displayController",DATA_HASACTIVEHOVER="hasActiveHover",DATA_FORCEDOPEN="forcedOpen",DATA_HASMOUSEMOVE="hasMouseMove",DATA_MOUSEONTOTIP="mouseOnToPopup",DATA_ORIGINALTITLE="originalTitle",DATA_POWERTIP="powertip",DATA_POWERTIPJQ="powertipjq",DATA_POWERTIPTARGET="powertiptarget",EVENT_NAMESPACE=".powertip",RAD2DEG=180/Math.PI,MOUSE_EVENTS=["click","dblclick","mousedown","mouseup","mousemove","mouseover","mouseout","mouseenter","mouseleave","contextmenu"];var session={tooltips:null,isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,closeDelayTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var Collision={none:0,top:1,bottom:2,left:4,right:8};$.fn.powerTip=function(opts,arg){var targetElements=this,options,tipController;if(!targetElements.length){return targetElements}if($.type(opts)==="string"&&$.powerTip[opts]){return $.powerTip[opts].call(targetElements,targetElements,arg)}options=$.extend({},$.fn.powerTip.defaults,opts);tipController=new TooltipController(options);initTracking();targetElements.each(function elementSetup(){var $this=$(this),dataPowertip=$this.data(DATA_POWERTIP),dataElem=$this.data(DATA_POWERTIPJQ),dataTarget=$this.data(DATA_POWERTIPTARGET),title=$this.attr("title");if(!dataPowertip&&!dataTarget&&!dataElem&&title){$this.data(DATA_POWERTIP,title);$this.data(DATA_ORIGINALTITLE,title);$this.removeAttr("title")}$this.data(DATA_DISPLAYCONTROLLER,new DisplayController($this,options,tipController))});if(!options.manual){$.each(options.openEvents,function(idx,evt){if($.inArray(evt,options.closeEvents)>-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displa
\ No newline at end of file
+ * jQuery UI Touch Punch 0.2.3
+ *
+ * Copyright 2011–2014, Dave Furfero
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ *
+ * Depends:
+ *  jquery.ui.widget.js
+ *  jquery.ui.mouse.js
+ */
+!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017
+ * http://www.smartmenus.org/
+ * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("<span/>").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr
\ No newline at end of file
--- /dev/null
+++ b/doxygen/leaf/leaf-analysis_8h_source.html
@@ -1,0 +1,743 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-analysis.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-analysis.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*==============================================================================</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> leaf-analysis.h</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> Created: 25 Oct 2019 10:30:52am</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> Author:  Matthew Wang</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> ==============================================================================*/</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#ifndef LEAF_ANALYSIS_H_INCLUDED</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define LEAF_ANALYSIS_H_INCLUDED</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;leaf-global.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;leaf-distortion.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;leaf-filters.h&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;leaf-envelopes.h&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;leaf-delay.h&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    </div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tEnvelopeFollower</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    {</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <span class="keywordtype">float</span> y;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        <span class="keywordtype">float</span> a_thresh;</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <span class="keywordtype">float</span> d_coeff;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    } _tEnvelopeFollower;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keyword">typedef</span> _tEnvelopeFollower* tEnvelopeFollower;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    </div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tenvelopefollower.html#ga5a7749052924bc7ed03051043b5e42bb">tEnvelopeFollower_init</a>          (tEnvelopeFollower* <span class="keyword">const</span> follower, <span class="keywordtype">float</span> attackThreshold, <span class="keywordtype">float</span> decayCoefficient, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tenvelopefollower.html#gacd6a2310494413b550ededdaed214d2a">tEnvelopeFollower_initToPool</a>    (tEnvelopeFollower* <span class="keyword">const</span> follower, <span class="keywordtype">float</span> attackThreshold, <span class="keywordtype">float</span> decayCoefficient, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tenvelopefollower.html#ga9ff136abec8842d17d25205787370239">tEnvelopeFollower_free</a>          (tEnvelopeFollower* <span class="keyword">const</span> follower);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tenvelopefollower.html#gadd57dad9c08b2ada6e8c720077256d5a">tEnvelopeFollower_tick</a>          (tEnvelopeFollower* <span class="keyword">const</span> follower, <span class="keywordtype">float</span> sample);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tenvelopefollower.html#ga746d0a9698c22b21091cc6fad79faf85">tEnvelopeFollower_setDecayCoefficient</a>    (tEnvelopeFollower* <span class="keyword">const</span> follower, <span class="keywordtype">float</span> decayCoefficient);</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tenvelopefollower.html#ga9d8d4762b016fa57939e5d733e164cb9">tEnvelopeFollower_setAttackThreshold</a>  (tEnvelopeFollower* <span class="keyword">const</span> follower, <span class="keywordtype">float</span> attackThreshold);</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    </div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="comment">/* Zero Crossing Detector */</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tZeroCrossingCounter</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    {</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <span class="keywordtype">int</span> count;</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <span class="keywordtype">int</span> maxWindowSize;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        <span class="keywordtype">int</span> currentWindowSize;</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <span class="keywordtype">float</span> invCurrentWindowSize;</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <span class="keywordtype">float</span>* inBuffer;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        uint16_t* countBuffer;</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        <span class="keywordtype">int</span> prevPosition;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        <span class="keywordtype">int</span> position;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    } _tZeroCrossingCounter;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="keyword">typedef</span> _tZeroCrossingCounter* tZeroCrossingCounter;</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tzerocrossingcounter.html#ga8fed3441e5ac46750e3f7641d8b5d80b">tZeroCrossingCounter_init</a>         (tZeroCrossingCounter* <span class="keyword">const</span>, <span class="keywordtype">int</span> maxWindowSize, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tzerocrossingcounter.html#ga797b0ef62ada70b352a22426a9915ae6">tZeroCrossingCounter_initToPool</a>   (tZeroCrossingCounter* <span class="keyword">const</span>, <span class="keywordtype">int</span> maxWindowSize, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tzerocrossingcounter.html#gaa1865545e8a1ac340af315e77547e75b">tZeroCrossingCounter_free</a>         (tZeroCrossingCounter* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tzerocrossingcounter.html#gab53550020f2625049537b65655af0053">tZeroCrossingCounter_tick</a>         (tZeroCrossingCounter* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tzerocrossingcounter.html#ga7810cc03d693da0d9752b61f5320d01b">tZeroCrossingCounter_setWindowSize</a>    (tZeroCrossingCounter* <span class="keyword">const</span>, <span class="keywordtype">float</span> windowSize);</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    </div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    </div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="comment">/* PowerEnvelopeFollower */</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tPowerFollower</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    {</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        <span class="keywordtype">float</span> factor, oneminusfactor;</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        <span class="keywordtype">float</span> curr;</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    } _tPowerFollower;</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keyword">typedef</span> _tPowerFollower* tPowerFollower;</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    </div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpowerfollower.html#gab8b92e4b8a0819f2d0a779f3b20d3f25">tPowerFollower_init</a>         (tPowerFollower* <span class="keyword">const</span>, <span class="keywordtype">float</span> factor, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpowerfollower.html#ga726f0b8ec4ab97346fb8521934452a2e">tPowerFollower_initToPool</a>   (tPowerFollower* <span class="keyword">const</span>, <span class="keywordtype">float</span> factor, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpowerfollower.html#ga479317d7fd22a86a832ebec92eae4782">tPowerFollower_free</a>         (tPowerFollower* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tpowerfollower.html#ga0b422a35ef8ccdd72b3db45fc53c1e96">tPowerFollower_tick</a>         (tPowerFollower* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tpowerfollower.html#ga0a423e1c15b581b4430112ed2897f6d2">tPowerFollower_getPower</a>     (tPowerFollower* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpowerfollower.html#gac7ab521ba7345c90b2455acc66a7caf1">tPowerFollower_setFactor</a>    (tPowerFollower* <span class="keyword">const</span>, <span class="keywordtype">float</span> factor);</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    </div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="preprocessor">#define MAXOVERLAP 32</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;<span class="preprocessor">#define INITVSTAKEN 64</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;<span class="preprocessor">#define ENV_WINDOW_SIZE 1024</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;<span class="preprocessor">#define ENV_HOP_SIZE 256</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tEnvPD</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    {</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        </div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        <span class="keywordtype">float</span> buf[ENV_WINDOW_SIZE + INITVSTAKEN];</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <span class="keywordtype">int</span> x_phase;                    <span class="comment">/* number of points since last output */</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        <span class="keywordtype">int</span> x_period;                   <span class="comment">/* requested period of output */</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        <span class="keywordtype">int</span> x_realperiod;               <span class="comment">/* period rounded up to vecsize multiple */</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        <span class="keywordtype">int</span> x_npoints;                  <span class="comment">/* analysis window size in samples */</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        <span class="keywordtype">float</span> x_result;                 <span class="comment">/* result to output */</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        <span class="keywordtype">float</span> x_sumbuf[MAXOVERLAP];     <span class="comment">/* summing buffer */</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        <span class="keywordtype">float</span> x_f;</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        <span class="keywordtype">int</span> windowSize, hopSize, blockSize;</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        <span class="keywordtype">int</span> x_allocforvs;               <span class="comment">/* extra buffer for DSP vector size */</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    } _tEnvPD;</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    </div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    <span class="keyword">typedef</span> _tEnvPD* tEnvPD;</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    </div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tenvpd.html#ga49c2752feb9890d139e296e75ea74b9b">tEnvPD_init</a>             (tEnvPD* <span class="keyword">const</span>, <span class="keywordtype">int</span> windowSize, <span class="keywordtype">int</span> hopSize, <span class="keywordtype">int</span> blockSize, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tenvpd.html#ga31446fa14ee57bd0f19d260f4c748e2e">tEnvPD_initToPool</a>       (tEnvPD* <span class="keyword">const</span>, <span class="keywordtype">int</span> windowSize, <span class="keywordtype">int</span> hopSize, <span class="keywordtype">int</span> blockSize, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tenvpd.html#ga28ade0e2893d6e94bca4dfa6cdd0f0ea">tEnvPD_free</a>             (tEnvPD* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;    </div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tenvpd.html#ga73ca443b1b36dc5995bf1659fdb242ab">tEnvPD_tick</a>             (tEnvPD* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tenvpd.html#ga15bd0b8018ca2c67120053eb8cd1fc9a">tEnvPD_processBlock</a>     (tEnvPD* <span class="keyword">const</span>, <span class="keywordtype">float</span>* in);</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    </div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    </div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<span class="preprocessor">#define DEFBLOCKSIZE 1024</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;<span class="preprocessor">#define DEFTHRESHOLD 6</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;<span class="preprocessor">#define DEFATTACK    10</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;<span class="preprocessor">#define DEFRELEASE    10</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    </div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tAttackDetection</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    {</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        <span class="keywordtype">float</span> env;</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        </div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        <span class="comment">//Attack &amp; Release times in msec</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;        <span class="keywordtype">int</span> atk;</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        <span class="keywordtype">int</span> rel;</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        </div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        <span class="comment">//Attack &amp; Release coefficients based on times</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;        <span class="keywordtype">float</span> atk_coeff;</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        <span class="keywordtype">float</span> rel_coeff;</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        </div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        <span class="keywordtype">int</span> blocksize;</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        <span class="keywordtype">int</span> samplerate;</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        </div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        <span class="comment">//RMS amplitude of previous block - used to decide if attack is present</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        <span class="keywordtype">float</span> prevAmp;</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <span class="keywordtype">float</span> threshold;</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    } _tAttackDetection;</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    </div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    <span class="keyword">typedef</span> _tAttackDetection* tAttackDetection;</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;    </div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tattackdetection.html#gaa7cf7c473a720eb6e034661a92a9164a">tAttackDetection_init</a>           (tAttackDetection* <span class="keyword">const</span>, <span class="keywordtype">int</span> blocksize, <span class="keywordtype">int</span> atk, <span class="keywordtype">int</span> rel, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tattackdetection.html#ga159b77e3617708f63d34705f66891eca">tAttackDetection_initToPool</a>     (tAttackDetection* <span class="keyword">const</span>, <span class="keywordtype">int</span> blocksize, <span class="keywordtype">int</span> atk, <span class="keywordtype">int</span> rel, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tattackdetection.html#gac0cecbd3eb9478a8ac62ad056b4e65e8">tAttackDetection_free</a>           (tAttackDetection* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    </div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tattackdetection.html#ga330419a7bcf2aea460cbb8341d0cc7a1">tAttackDetection_setBlocksize</a>   (tAttackDetection* <span class="keyword">const</span>, <span class="keywordtype">int</span> size);</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tattackdetection.html#gafc1088d0fc65cb8c9ca3e219dc6ee23e">tAttackDetection_setSamplerate</a>  (tAttackDetection* <span class="keyword">const</span>, <span class="keywordtype">int</span> inRate);</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tattackdetection.html#gae1258e29699c07368168a5a06e847c1c">tAttackDetection_setAttack</a>      (tAttackDetection* <span class="keyword">const</span>, <span class="keywordtype">int</span> inAtk);</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tattackdetection.html#ga849d76be546d42e00dcfaee4ca326adb">tAttackDetection_setRelease</a>     (tAttackDetection* <span class="keyword">const</span>, <span class="keywordtype">int</span> inRel);</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tattackdetection.html#gafc46d23c20523048eaf45a68e146dbcf">tAttackDetection_setThreshold</a>   (tAttackDetection* <span class="keyword">const</span>, <span class="keywordtype">float</span> thres);</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tattackdetection.html#ga628b4e4305fb135f7f363b94a209cb37">tAttackDetection_detect</a>         (tAttackDetection* <span class="keyword">const</span>, <span class="keywordtype">float</span> *in);</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    </div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    </div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;<span class="preprocessor">#define SNAC_FRAME_SIZE 1024           // default analysis framesize // should be the same as (or smaller than?) PS_FRAME_SIZE</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;<span class="preprocessor">#define DEFOVERLAP 1                // default overlap</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;<span class="preprocessor">#define DEFBIAS 0.2f        // default bias</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;<span class="preprocessor">#define DEFMINRMS 0.003f   // default minimum RMS</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;<span class="preprocessor">#define SEEK 0.85f       // seek-length as ratio of framesize</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;    </div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tSNAC</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    {</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;        </div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;        <span class="keywordtype">float</span>* inputbuf;</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        <span class="keywordtype">float</span>* processbuf;</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;        <span class="keywordtype">float</span>* spectrumbuf;</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;        <span class="keywordtype">float</span>* biasbuf;</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        uint16_t timeindex;</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        uint16_t framesize;</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;        uint16_t overlap;</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;        uint16_t periodindex;</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;        </div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;        <span class="keywordtype">float</span> periodlength;</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        <span class="keywordtype">float</span> fidelity;</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        <span class="keywordtype">float</span> biasfactor;</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;        <span class="keywordtype">float</span> minrms;</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;        </div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;    } _tSNAC;</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    </div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    <span class="keyword">typedef</span> _tSNAC* tSNAC;</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    </div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsnac.html#ga5f4005dba1c0470e84ae6bc6845c6d27">tSNAC_init</a>          (tSNAC* <span class="keyword">const</span>, <span class="keywordtype">int</span> overlaparg, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsnac.html#ga9779c23ab83bf93c8df11a6b4982c0b2">tSNAC_initToPool</a>    (tSNAC* <span class="keyword">const</span>, <span class="keywordtype">int</span> overlaparg, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsnac.html#gad7fc6ce1e80847dfcd9da75d4c734f12">tSNAC_free</a>          (tSNAC* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    </div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    <span class="keywordtype">void</span>    tSNAC_ioSamples     (tSNAC *s, <span class="keywordtype">float</span> *in, <span class="keywordtype">int</span> size);</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsnac.html#gab6a4ff9c52fb26d19f3bc4d080f91845">tSNAC_setOverlap</a>    (tSNAC *s, <span class="keywordtype">int</span> lap);</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsnac.html#ga3dbb9845079ebe1b3dbba647180a1168">tSNAC_setBias</a>       (tSNAC *s, <span class="keywordtype">float</span> bias);</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsnac.html#ga777b3cb40c7dcb7826b0945358ffe1ec">tSNAC_setMinRMS</a>     (tSNAC *s, <span class="keywordtype">float</span> rms);</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;    </div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    <span class="comment">/*To get freq, perform SAMPLE_RATE/snac_getperiod() */</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tsnac.html#ga71074b5888fe76260f3c1fae7e2aeec8">tSNAC_getPeriod</a>     (tSNAC *s);</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tsnac.html#ga8568190ff50745df3b220f9f8dba3289">tSNAC_getFidelity</a>   (tSNAC *s);</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    </div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;<span class="preprocessor">#define DEFPITCHRATIO 1.0f</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;<span class="preprocessor">#define DEFTIMECONSTANT 100.0f</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;<span class="preprocessor">#define DEFHOPSIZE 64</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;<span class="preprocessor">#define DEFWINDOWSIZE 64</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;<span class="preprocessor">#define FBA 20</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;<span class="preprocessor">#define HPFREQ 20.0f</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;    </div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tPeriodDetection</div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    {</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;        </div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;        tEnvPD env;</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;        tSNAC snac;</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;        <span class="keywordtype">float</span>* inBuffer;</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;        <span class="keywordtype">float</span>* outBuffer;</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;        <span class="keywordtype">int</span> frameSize;</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;        <span class="keywordtype">int</span> bufSize;</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;        <span class="keywordtype">int</span> framesPerBuffer;</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;        <span class="keywordtype">int</span> curBlock;</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;        <span class="keywordtype">int</span> lastBlock;</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;        <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;        <span class="keywordtype">int</span> indexstore;</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;        <span class="keywordtype">int</span> iLast;</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;        <span class="keywordtype">int</span> index;</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;        <span class="keywordtype">float</span> period;</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;        </div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;        uint16_t hopSize;</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;        uint16_t windowSize;</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;        uint8_t fba;</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;        </div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;        <span class="keywordtype">float</span> timeConstant;</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;        <span class="keywordtype">float</span> radius;</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;        <span class="keywordtype">float</span> max;</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;        <span class="keywordtype">float</span> lastmax;</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;        <span class="keywordtype">float</span> deltamax;</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;        </div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;        <span class="keywordtype">float</span> fidelityThreshold;</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;        </div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;        <span class="keywordtype">float</span> history;</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;        <span class="keywordtype">float</span> alpha;</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;        <span class="keywordtype">float</span> tolerance;</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;        </div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;    } _tPeriodDetection;</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;    </div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;    <span class="keyword">typedef</span> _tPeriodDetection* tPeriodDetection;</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    </div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;    <span class="keywordtype">void</span>    tPeriodDetection_init               (tPeriodDetection* <span class="keyword">const</span>, <span class="keywordtype">float</span>* in, <span class="keywordtype">int</span> bufSize, <span class="keywordtype">int</span> frameSize, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;    <span class="keywordtype">void</span>    tPeriodDetection_initToPool         (tPeriodDetection* <span class="keyword">const</span>, <span class="keywordtype">float</span>* in, <span class="keywordtype">int</span> bufSize, <span class="keywordtype">int</span> frameSize, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tperioddetection.html#ga94c9cff1d6cb0f0d6a70fdeb8764cdb0">tPeriodDetection_free</a>               (tPeriodDetection* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;    </div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tperioddetection.html#ga18cf97615547a615aec4b183da82e8ee">tPeriodDetection_tick</a>               (tPeriodDetection* <span class="keyword">const</span>, <span class="keywordtype">float</span> sample);</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tperioddetection.html#ga04f0fa73e75e8fc128243515b039c474">tPeriodDetection_getPeriod</a>          (tPeriodDetection* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;    <span class="keywordtype">float</span>   tPeriodDetection_getFidelity        (tPeriodDetection* pd);</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tperioddetection.html#ga207a7ec884eebc58c9cd9f17518d5a1b">tPeriodDetection_setHopSize</a>         (tPeriodDetection* <span class="keyword">const</span>, <span class="keywordtype">int</span> hs);</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tperioddetection.html#ga9a3ed4fe9806b0ee691b56090cef4339">tPeriodDetection_setWindowSize</a>      (tPeriodDetection* <span class="keyword">const</span>, <span class="keywordtype">int</span> ws);</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tperioddetection.html#ga2249345fb1cb419173b35ef258cf4248">tPeriodDetection_setFidelityThreshold</a>(tPeriodDetection* <span class="keyword">const</span>, <span class="keywordtype">float</span> threshold);</div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tperioddetection.html#ga95602fa326fda0ab685a626508166d15">tPeriodDetection_setAlpha</a>           (tPeriodDetection* <span class="keyword">const</span>, <span class="keywordtype">float</span> alpha);</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tperioddetection.html#ga49b5e95b84c6e101abac2ab7ec0cdebd">tPeriodDetection_setTolerance</a>       (tPeriodDetection* <span class="keyword">const</span>, <span class="keywordtype">float</span> tolerance);</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;    </div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;    </div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;    <span class="comment">// Maybe keep from here to tPeriodDetector internal?</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tZeroCrossingInfo</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;    {</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;        </div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;        </div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;        <span class="keywordtype">float</span> _before_crossing;</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;        <span class="keywordtype">float</span> _after_crossing;</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;        </div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;        <span class="keywordtype">float</span>             _peak;</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;        <span class="keywordtype">int</span>               _leading_edge;<span class="comment">// = undefined_edge; int_min</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;        <span class="keywordtype">int</span>               _trailing_edge;<span class="comment">// = undefined_edge;</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;        <span class="keywordtype">float</span>             _width;<span class="comment">// = 0.0f;</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;    } _tZeroCrossingInfo;</div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    </div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;    <span class="keyword">typedef</span> _tZeroCrossingInfo* tZeroCrossingInfo;</div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;    </div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;    <span class="keywordtype">void</span>    tZeroCrossingInfo_init  (tZeroCrossingInfo* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;    <span class="keywordtype">void</span>    tZeroCrossingInfo_initToPool    (tZeroCrossingInfo* <span class="keyword">const</span>, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;    <span class="keywordtype">void</span>    tZeroCrossingInfo_free  (tZeroCrossingInfo* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;    </div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;    <span class="keywordtype">int</span>     tZeroCrossingInfo_tick(tZeroCrossingInfo* <span class="keyword">const</span>, <span class="keywordtype">float</span> s);</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;    <span class="keywordtype">int</span>     tZeroCrossingInfo_getState(tZeroCrossingInfo* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;    <span class="keywordtype">void</span>    tZeroCrossingInfo_updatePeak(tZeroCrossingInfo* <span class="keyword">const</span>, <span class="keywordtype">float</span> s, <span class="keywordtype">int</span> pos);</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;    <span class="keywordtype">int</span>     tZeroCrossingInfo_period(tZeroCrossingInfo* <span class="keyword">const</span>, tZeroCrossingInfo* <span class="keyword">const</span> next);</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;    <span class="keywordtype">float</span>   tZeroCrossingInfo_fractionalPeriod(tZeroCrossingInfo* <span class="keyword">const</span>, tZeroCrossingInfo* <span class="keyword">const</span> next);</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;    <span class="keywordtype">int</span>     tZeroCrossingInfo_getWidth(tZeroCrossingInfo* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;    </div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;    </div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tZeroCrossingCollector</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;    {</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;        </div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;        </div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;        tZeroCrossingInfo* _info;</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _size;</div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _pos;</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _mask;</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;        </div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;        <span class="keywordtype">float</span>                _prev;<span class="comment">// = 0.0f;</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;        <span class="keywordtype">float</span>                _hysteresis;</div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;        <span class="keywordtype">int</span>                  _state;<span class="comment">// = false;</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;        <span class="keywordtype">int</span>                  _num_edges;<span class="comment">// = 0;</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;        <span class="keywordtype">int</span>                  _window_size;</div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;        <span class="keywordtype">int</span>                  _frame;<span class="comment">// = 0;</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;        <span class="keywordtype">int</span>                  _ready;<span class="comment">// = false;</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;        <span class="keywordtype">float</span>                _peak_update;<span class="comment">// = 0.0f;</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;        <span class="keywordtype">float</span>                _peak;<span class="comment">// = 0.0f;</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;    } _tZeroCrossingCollector;</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;    </div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;    <span class="keyword">typedef</span> _tZeroCrossingCollector* tZeroCrossingCollector;</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;    </div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;    <span class="keywordtype">void</span>    tZeroCrossingCollector_init  (tZeroCrossingCollector* <span class="keyword">const</span>, <span class="keywordtype">int</span> windowSize, <span class="keywordtype">float</span> hysteresis, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;    <span class="keywordtype">void</span>    tZeroCrossingCollector_initToPool    (tZeroCrossingCollector* <span class="keyword">const</span>, <span class="keywordtype">int</span> windowSize, <span class="keywordtype">float</span> hysteresis, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;    <span class="keywordtype">void</span>    tZeroCrossingCollector_free  (tZeroCrossingCollector* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;    </div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;    <span class="keywordtype">int</span>     tZeroCrossingCollector_tick(tZeroCrossingCollector* <span class="keyword">const</span>, <span class="keywordtype">float</span> s);</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;    <span class="keywordtype">int</span>     tZeroCrossingCollector_getState(tZeroCrossingCollector* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;    </div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;    <span class="keywordtype">int</span>     tZeroCrossingCollector_getNumEdges(tZeroCrossingCollector* <span class="keyword">const</span> zc);</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;    <span class="keywordtype">int</span>     tZeroCrossingCollector_getCapacity(tZeroCrossingCollector* <span class="keyword">const</span> zc);</div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;    <span class="keywordtype">int</span>     tZeroCrossingCollector_getFrame(tZeroCrossingCollector* <span class="keyword">const</span> zc);</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;    <span class="keywordtype">int</span>     tZeroCrossingCollector_getWindowSize(tZeroCrossingCollector* <span class="keyword">const</span> zc);</div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;    </div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;    <span class="keywordtype">int</span>     tZeroCrossingCollector_isReady(tZeroCrossingCollector* <span class="keyword">const</span> zc);</div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;    <span class="keywordtype">float</span>   tZeroCrossingCollector_getPeak(tZeroCrossingCollector* <span class="keyword">const</span> zc);</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;    <span class="keywordtype">int</span>     tZeroCrossingCollector_isReset(tZeroCrossingCollector* <span class="keyword">const</span> zc);</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;    </div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;    tZeroCrossingInfo <span class="keyword">const</span> tZeroCrossingCollector_getCrossing(tZeroCrossingCollector* <span class="keyword">const</span> zc, <span class="keywordtype">int</span> index);</div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160; </div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;    <span class="keywordtype">void</span>    tZeroCrossingCollector_setHysteresis(tZeroCrossingCollector* <span class="keyword">const</span> zc, <span class="keywordtype">float</span> hysteresis);</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;    </div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;    </div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tBitset</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;    {</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;        </div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;        </div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _value_size;</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _size;</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _bit_size;</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* _bits;</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;    } _tBitset;</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;    </div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;    <span class="keyword">typedef</span> _tBitset* tBitset;</div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;    </div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;    <span class="keywordtype">void</span>    tBitset_init    (tBitset* <span class="keyword">const</span> bitset, <span class="keywordtype">int</span> numBits, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;    <span class="keywordtype">void</span>    tBitset_initToPool  (tBitset* <span class="keyword">const</span> bitset, <span class="keywordtype">int</span> numBits, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;    <span class="keywordtype">void</span>    tBitset_free    (tBitset* <span class="keyword">const</span> bitset);</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;    </div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;    <span class="keywordtype">int</span>     tBitset_get     (tBitset* <span class="keyword">const</span> bitset, <span class="keywordtype">int</span> index);</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*   tBitset_getData   (tBitset* <span class="keyword">const</span> bitset);</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;    </div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;    <span class="keywordtype">void</span>    tBitset_set     (tBitset* <span class="keyword">const</span> bitset, <span class="keywordtype">int</span> index, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> val);</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;    <span class="keywordtype">void</span>    tBitset_setMultiple (tBitset* <span class="keyword">const</span> bitset, <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> n, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> val);</div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160; </div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    <span class="keywordtype">int</span>     tBitset_getSize (tBitset* <span class="keyword">const</span> bitset);</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;    <span class="keywordtype">void</span>    tBitset_clear   (tBitset* <span class="keyword">const</span> bitset);</div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160; </div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;    </div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;    </div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tBACF</div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;    {</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;        </div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;        </div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;        tBitset _bitset;</div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _mid_array;</div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;    } _tBACF;</div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;    </div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;    <span class="keyword">typedef</span> _tBACF* tBACF;</div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;    </div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;    <span class="keywordtype">void</span>    tBACF_init  (tBACF* <span class="keyword">const</span> bacf, tBitset* <span class="keyword">const</span> bitset, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;    <span class="keywordtype">void</span>    tBACF_initToPool    (tBACF* <span class="keyword">const</span> bacf, tBitset* <span class="keyword">const</span> bitset, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;    <span class="keywordtype">void</span>    tBACF_free  (tBACF* <span class="keyword">const</span> bacf);</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;    </div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;    <span class="keywordtype">int</span>     tBACF_getCorrelation    (tBACF* <span class="keyword">const</span> bacf, <span class="keywordtype">int</span> pos);</div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;    <span class="keywordtype">void</span>    tBACF_set  (tBACF* <span class="keyword">const</span> bacf, tBitset* <span class="keyword">const</span> bitset);</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;    </div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;    </div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;<span class="preprocessor">#define PULSE_THRESHOLD 0.6f</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;<span class="preprocessor">#define HARMONIC_PERIODICITY_FACTOR 16 //16</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;<span class="preprocessor">#define PERIODICITY_DIFF_FACTOR 0.008f //0.008f</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;    </div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_auto_correlation_info</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;    {</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;        <span class="keywordtype">int</span>               _i1;<span class="comment">// = -1;</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;        <span class="keywordtype">int</span>               _i2;<span class="comment">// = -1;</span></div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;        <span class="keywordtype">int</span>               _period;<span class="comment">// = -1;</span></div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;        <span class="keywordtype">float</span>             _periodicity;<span class="comment">// = 0.0f;</span></div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>      _harmonic;</div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;    } _auto_correlation_info;</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;    </div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_sub_collector</div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;    {</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;        </div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;        </div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;        <span class="keywordtype">float</span>             _first_period;</div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;        </div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;        _auto_correlation_info _fundamental;</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;        </div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;        <span class="comment">// passed in, not initialized</span></div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;        tZeroCrossingCollector    _zc;</div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;        </div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;        <span class="keywordtype">float</span>             _harmonic_threshold;</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;        <span class="keywordtype">float</span>             _periodicity_diff_threshold;</div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;        <span class="keywordtype">int</span>               _range;</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;    } _sub_collector;</div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160; </div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_period_info</div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;    {</div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;        <span class="keywordtype">float</span> period; <span class="comment">// -1.0f</span></div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;        <span class="keywordtype">float</span> periodicity;</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;    } _period_info;</div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160; </div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tPeriodDetector</div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;    {</div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;        </div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;        tZeroCrossingCollector          _zc;</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;        _period_info            _fundamental;</div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>            _min_period;</div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;        <span class="keywordtype">int</span>                     _range;</div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;        tBitset                 _bits;</div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;        <span class="keywordtype">float</span>                   _weight;</div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>            _mid_point;</div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;        <span class="keywordtype">float</span>                   _periodicity_diff_threshold;</div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;        <span class="keywordtype">float</span>                   _predicted_period;<span class="comment">// = -1.0f;</span></div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>            _edge_mark;<span class="comment">// = 0;</span></div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>            _predict_edge;<span class="comment">// = 0;</span></div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>            _num_pulses; <span class="comment">// = 0;</span></div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;        <span class="keywordtype">int</span>                     _half_empty; <span class="comment">// 0;</span></div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;        </div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;        tBACF                   _bacf;</div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;        </div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;    } _tPeriodDetector;</div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;    </div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;    <span class="keyword">typedef</span> _tPeriodDetector* tPeriodDetector;</div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;    </div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tperioddetector.html#gaa0947f407eba0d205dfdb3f5221e8a68">tPeriodDetector_init</a>    (tPeriodDetector* <span class="keyword">const</span> detector, <span class="keywordtype">float</span> lowestFreq, <span class="keywordtype">float</span> highestFreq, <span class="keywordtype">float</span> hysteresis, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tperioddetector.html#ga03431f353481718a4e573f4df4a0161f">tPeriodDetector_initToPool</a>  (tPeriodDetector* <span class="keyword">const</span> detector, <span class="keywordtype">float</span> lowestFreq, <span class="keywordtype">float</span> highestFreq, <span class="keywordtype">float</span> hysteresis, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tperioddetector.html#ga55e2ad80c68f2fbf0cafceee206abf3f">tPeriodDetector_free</a>    (tPeriodDetector* <span class="keyword">const</span> detector);</div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;    </div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tperioddetector.html#gaed4bf4a51580ba6209dfe5d35a235644">tPeriodDetector_tick</a>    (tPeriodDetector* <span class="keyword">const</span> detector, <span class="keywordtype">float</span> sample);</div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;    </div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;    <span class="comment">// get the periodicity for a given harmonic</span></div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tperioddetector.html#ga025e1bc096ca88fc2f6e493513f0d6fb">tPeriodDetector_getPeriod</a>   (tPeriodDetector* <span class="keyword">const</span> detector);</div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tperioddetector.html#ga9e836c21a0dcabe9f3438bc56e671f39">tPeriodDetector_getPeriodicity</a>  (tPeriodDetector* <span class="keyword">const</span> detector);</div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tperioddetector.html#ga4a66a46a4a6bea562bae63640e6855a5">tPeriodDetector_harmonic</a>    (tPeriodDetector* <span class="keyword">const</span> detector, <span class="keywordtype">int</span> harmonicIndex);</div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tperioddetector.html#ga6bea587938466ba988a6e716446975ed">tPeriodDetector_predictPeriod</a>   (tPeriodDetector* <span class="keyword">const</span> detector);</div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tperioddetector.html#ga3d58e36fafa3e5b5102175e2c9062010">tPeriodDetector_isReady</a> (tPeriodDetector* <span class="keyword">const</span> detector);</div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tperioddetector.html#gad7d111b4c8dc6e7428ff2facdf90092a">tPeriodDetector_isReset</a> (tPeriodDetector* <span class="keyword">const</span> detector);</div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160; </div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tperioddetector.html#ga3157c7b7e210eafb0286aef6f1843f94">tPeriodDetector_setHysteresis</a>   (tPeriodDetector* <span class="keyword">const</span> detector, <span class="keywordtype">float</span> hysteresis);</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;    </div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;    </div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;<span class="preprocessor">#define ONSET_PERIODICITY 0.95f</span></div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;<span class="preprocessor">#define MIN_PERIODICITY 0.9f</span></div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;<span class="preprocessor">#define DEFAULT_HYSTERESIS -200.0f</span></div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160; </div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_pitch_info</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;    {</div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;        <span class="keywordtype">float</span> frequency;</div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;        <span class="keywordtype">float</span> periodicity;</div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;    } _pitch_info;</div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;    </div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tPitchDetector</div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;    {</div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;        </div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;        </div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;        tPeriodDetector _pd;</div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;        _pitch_info _current;</div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;        <span class="keywordtype">int</span> _frames_after_shift;<span class="comment">// = 0;</span></div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;        </div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;    } _tPitchDetector;</div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;    </div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;    <span class="keyword">typedef</span> _tPitchDetector* tPitchDetector;</div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;    </div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpitchdetector.html#ga99e55d649e58523aa706c711082585f6">tPitchDetector_init</a> (tPitchDetector* <span class="keyword">const</span> detector, <span class="keywordtype">float</span> lowestFreq, <span class="keywordtype">float</span> highestFreq, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpitchdetector.html#gaaa325f08c7c80ecace14fcd7f934d211">tPitchDetector_initToPool</a>   (tPitchDetector* <span class="keyword">const</span> detector, <span class="keywordtype">float</span> lowestFreq, <span class="keywordtype">float</span> highestFreq, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpitchdetector.html#ga21a8caf85569fa4366e83aa776831273">tPitchDetector_free</a> (tPitchDetector* <span class="keyword">const</span> detector);</div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;    </div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tpitchdetector.html#ga7ff9d62bb716a57fce8ffeb5558c4890">tPitchDetector_tick</a>    (tPitchDetector* <span class="keyword">const</span> detector, <span class="keywordtype">float</span> sample);</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tpitchdetector.html#ga5b4f011cdb1812ab29022e4851e81c7e">tPitchDetector_getFrequency</a>    (tPitchDetector* <span class="keyword">const</span> detector);</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tpitchdetector.html#gad99b1eb3569ac87a54a31ddc7ec78eea">tPitchDetector_getPeriodicity</a>  (tPitchDetector* <span class="keyword">const</span> detector);</div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tpitchdetector.html#gae830c20dc77369d3055f23cd0fc51435">tPitchDetector_harmonic</a>    (tPitchDetector* <span class="keyword">const</span> detector, <span class="keywordtype">int</span> harmonicIndex);</div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tpitchdetector.html#gab29d82d5391480c9310b9c5074576966">tPitchDetector_predictFrequency</a> (tPitchDetector* <span class="keyword">const</span> detector);</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;    <span class="keywordtype">int</span>     tPitchDetector_indeterminate    (tPitchDetector* <span class="keyword">const</span> detector);</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;    </div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpitchdetector.html#ga65ead0c2f0f3f30b2e64f5a6aa50d6f9">tPitchDetector_setHysteresis</a>    (tPitchDetector* <span class="keyword">const</span> detector, <span class="keywordtype">float</span> hysteresis);</div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;    </div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;    </div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;    </div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tDualPitchDetector</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;    {</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;        </div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;        tPeriodDetection _pd1;</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;        tPitchDetector _pd2;</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;        _pitch_info _current;</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;        <span class="keywordtype">float</span> _mean;</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;        <span class="keywordtype">float</span> _predicted_frequency;</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;        <span class="keywordtype">int</span> _first;</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;        </div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;        <span class="keywordtype">float</span> highest, lowest;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;        <span class="keywordtype">float</span> thresh;</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; </div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;    } _tDualPitchDetector;</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;    </div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;    <span class="keyword">typedef</span> _tDualPitchDetector* tDualPitchDetector;</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;    </div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdualpitchdetector.html#gae41a404e3b1463d626423aa6f4ac56a6">tDualPitchDetector_init</a> (tDualPitchDetector* <span class="keyword">const</span> detector, <span class="keywordtype">float</span> lowestFreq, <span class="keywordtype">float</span> highestFreq, <span class="keywordtype">float</span>* inBuffer, <span class="keywordtype">int</span> bufSize, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdualpitchdetector.html#gaf9fbf5ecd92f356af0572600ec796556">tDualPitchDetector_initToPool</a>   (tDualPitchDetector* <span class="keyword">const</span> detector, <span class="keywordtype">float</span> lowestFreq, <span class="keywordtype">float</span> highestFreq, <span class="keywordtype">float</span>* inBuffer, <span class="keywordtype">int</span> bufSize, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdualpitchdetector.html#ga0f104dc5171d8cf3cf5e01d3d52f20e4">tDualPitchDetector_free</a> (tDualPitchDetector* <span class="keyword">const</span> detector);</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;    </div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tdualpitchdetector.html#ga25d99f2df26169355fda4810802f7b87">tDualPitchDetector_tick</a>    (tDualPitchDetector* <span class="keyword">const</span> detector, <span class="keywordtype">float</span> sample);</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tdualpitchdetector.html#gae647948c3fad09263e02625d52a0f9f0">tDualPitchDetector_getFrequency</a>    (tDualPitchDetector* <span class="keyword">const</span> detector);</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tdualpitchdetector.html#ga013b0b209ac1fe9268f88ed4925c7905">tDualPitchDetector_getPeriodicity</a>  (tDualPitchDetector* <span class="keyword">const</span> detector);</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tdualpitchdetector.html#gaa80b5da1c459f61396d95066cf8fdbfe">tDualPitchDetector_harmonic</a>    (tDualPitchDetector* <span class="keyword">const</span> detector, <span class="keywordtype">int</span> harmonicIndex);</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tdualpitchdetector.html#gab5e594fb81c3c6e5c3f3d58a5f98c504">tDualPitchDetector_predictFrequency</a> (tDualPitchDetector* <span class="keyword">const</span> detector);</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;    </div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdualpitchdetector.html#ga0a511f71335134377f4db13f9b6c311e">tDualPitchDetector_setHysteresis</a>    (tDualPitchDetector* <span class="keyword">const</span> detector, <span class="keywordtype">float</span> hysteresis);</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdualpitchdetector.html#gaf1a678d94ea5579c8847e8672541fecd">tDualPitchDetector_setPeriodicityThreshold</a> (tDualPitchDetector* <span class="keyword">const</span> detector, <span class="keywordtype">float</span> thresh);</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;    </div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;    </div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;    </div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;    </div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;}</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; </div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;<span class="preprocessor">#endif  // LEAF_ANALYSIS_H_INCLUDED</span></div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; </div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; </div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; </div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; </div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="agroup__tperioddetector_html_gaa0947f407eba0d205dfdb3f5221e8a68"><div class="ttname"><a href="group__tperioddetector.html#gaa0947f407eba0d205dfdb3f5221e8a68">tPeriodDetector_init</a></div><div class="ttdeci">void tPeriodDetector_init(tPeriodDetector *const detector, float lowestFreq, float highestFreq, float hysteresis, LEAF *const leaf)</div><div class="ttdoc">Initialize a tPeriodDetector to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1505</div></div>
+<div class="ttc" id="agroup__tdualpitchdetector_html_ga25d99f2df26169355fda4810802f7b87"><div class="ttname"><a href="group__tdualpitchdetector.html#ga25d99f2df26169355fda4810802f7b87">tDualPitchDetector_tick</a></div><div class="ttdeci">int tDualPitchDetector_tick(tDualPitchDetector *const detector, float sample)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:2152</div></div>
+<div class="ttc" id="agroup__tattackdetection_html_ga159b77e3617708f63d34705f66891eca"><div class="ttname"><a href="group__tattackdetection.html#ga159b77e3617708f63d34705f66891eca">tAttackDetection_initToPool</a></div><div class="ttdeci">void tAttackDetection_initToPool(tAttackDetection *const, int blocksize, int atk, int rel, tMempool *const)</div><div class="ttdoc">Initialize a tAttackDetection to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:343</div></div>
+<div class="ttc" id="agroup__tattackdetection_html_ga849d76be546d42e00dcfaee4ca326adb"><div class="ttname"><a href="group__tattackdetection.html#ga849d76be546d42e00dcfaee4ca326adb">tAttackDetection_setRelease</a></div><div class="ttdeci">void tAttackDetection_setRelease(tAttackDetection *const, int inRel)</div><div class="ttdoc">Set release time and coeff.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:393</div></div>
+<div class="ttc" id="agroup__tperioddetector_html_gad7d111b4c8dc6e7428ff2facdf90092a"><div class="ttname"><a href="group__tperioddetector.html#gad7d111b4c8dc6e7428ff2facdf90092a">tPeriodDetector_isReset</a></div><div class="ttdeci">int tPeriodDetector_isReset(tPeriodDetector *const detector)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1652</div></div>
+<div class="ttc" id="agroup__tsnac_html_ga777b3cb40c7dcb7826b0945358ffe1ec"><div class="ttname"><a href="group__tsnac.html#ga777b3cb40c7dcb7826b0945358ffe1ec">tSNAC_setMinRMS</a></div><div class="ttdeci">void tSNAC_setMinRMS(tSNAC *s, float rms)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:566</div></div>
+<div class="ttc" id="agroup__tsnac_html_gab6a4ff9c52fb26d19f3bc4d080f91845"><div class="ttname"><a href="group__tsnac.html#gab6a4ff9c52fb26d19f3bc4d080f91845">tSNAC_setOverlap</a></div><div class="ttdeci">void tSNAC_setOverlap(tSNAC *s, int lap)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:547</div></div>
+<div class="ttc" id="agroup__tpowerfollower_html_ga0b422a35ef8ccdd72b3db45fc53c1e96"><div class="ttname"><a href="group__tpowerfollower.html#ga0b422a35ef8ccdd72b3db45fc53c1e96">tPowerFollower_tick</a></div><div class="ttdeci">float tPowerFollower_tick(tPowerFollower *const, float input)</div><div class="ttdoc">Pass a sample into the power follower and return the current power.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:210</div></div>
+<div class="ttc" id="agroup__tpowerfollower_html_ga726f0b8ec4ab97346fb8521934452a2e"><div class="ttname"><a href="group__tpowerfollower.html#ga726f0b8ec4ab97346fb8521934452a2e">tPowerFollower_initToPool</a></div><div class="ttdeci">void tPowerFollower_initToPool(tPowerFollower *const, float factor, tMempool *const)</div><div class="ttdoc">Initialize a tPowerFollower to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:182</div></div>
+<div class="ttc" id="agroup__tperioddetection_html_ga2249345fb1cb419173b35ef258cf4248"><div class="ttname"><a href="group__tperioddetection.html#ga2249345fb1cb419173b35ef258cf4248">tPeriodDetection_setFidelityThreshold</a></div><div class="ttdeci">void tPeriodDetection_setFidelityThreshold(tPeriodDetection *const, float threshold)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:936</div></div>
+<div class="ttc" id="agroup__tsnac_html_ga3dbb9845079ebe1b3dbba647180a1168"><div class="ttname"><a href="group__tsnac.html#ga3dbb9845079ebe1b3dbba647180a1168">tSNAC_setBias</a></div><div class="ttdeci">void tSNAC_setBias(tSNAC *s, float bias)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:555</div></div>
+<div class="ttc" id="agroup__tattackdetection_html_ga628b4e4305fb135f7f363b94a209cb37"><div class="ttname"><a href="group__tattackdetection.html#ga628b4e4305fb135f7f363b94a209cb37">tAttackDetection_detect</a></div><div class="ttdeci">int tAttackDetection_detect(tAttackDetection *const, float *in)</div><div class="ttdoc">Find the largest transient in input block, return index of attack.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:401</div></div>
+<div class="ttc" id="agroup__tattackdetection_html_gafc1088d0fc65cb8c9ca3e219dc6ee23e"><div class="ttname"><a href="group__tattackdetection.html#gafc1088d0fc65cb8c9ca3e219dc6ee23e">tAttackDetection_setSamplerate</a></div><div class="ttdeci">void tAttackDetection_setSamplerate(tAttackDetection *const, int inRate)</div><div class="ttdoc">Set attack detection sample rate.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:369</div></div>
+<div class="ttc" id="agroup__tattackdetection_html_gae1258e29699c07368168a5a06e847c1c"><div class="ttname"><a href="group__tattackdetection.html#gae1258e29699c07368168a5a06e847c1c">tAttackDetection_setAttack</a></div><div class="ttdeci">void tAttackDetection_setAttack(tAttackDetection *const, int inAtk)</div><div class="ttdoc">Set attack time and coeff.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:386</div></div>
+<div class="ttc" id="agroup__tzerocrossingcounter_html_ga7810cc03d693da0d9752b61f5320d01b"><div class="ttname"><a href="group__tzerocrossingcounter.html#ga7810cc03d693da0d9752b61f5320d01b">tZeroCrossingCounter_setWindowSize</a></div><div class="ttdeci">void tZeroCrossingCounter_setWindowSize(tZeroCrossingCounter *const, float windowSize)</div><div class="ttdoc">Set the size of the window. Cannot be greater than the max size given on initialization.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:156</div></div>
+<div class="ttc" id="agroup__tperioddetection_html_ga94c9cff1d6cb0f0d6a70fdeb8764cdb0"><div class="ttname"><a href="group__tperioddetection.html#ga94c9cff1d6cb0f0d6a70fdeb8764cdb0">tPeriodDetection_free</a></div><div class="ttdeci">void tPeriodDetection_free(tPeriodDetection *const)</div><div class="ttdoc">Free a tPeriodDetection from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:868</div></div>
+<div class="ttc" id="agroup__tperioddetector_html_ga6bea587938466ba988a6e716446975ed"><div class="ttname"><a href="group__tperioddetector.html#ga6bea587938466ba988a6e716446975ed">tPeriodDetector_predictPeriod</a></div><div class="ttdeci">float tPeriodDetector_predictPeriod(tPeriodDetector *const detector)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1611</div></div>
+<div class="ttc" id="agroup__tdualpitchdetector_html_gaa80b5da1c459f61396d95066cf8fdbfe"><div class="ttname"><a href="group__tdualpitchdetector.html#gaa80b5da1c459f61396d95066cf8fdbfe">tDualPitchDetector_harmonic</a></div><div class="ttdeci">float tDualPitchDetector_harmonic(tDualPitchDetector *const detector, int harmonicIndex)</div></div>
+<div class="ttc" id="agroup__tenvpd_html_ga49c2752feb9890d139e296e75ea74b9b"><div class="ttname"><a href="group__tenvpd.html#ga49c2752feb9890d139e296e75ea74b9b">tEnvPD_init</a></div><div class="ttdeci">void tEnvPD_init(tEnvPD *const, int windowSize, int hopSize, int blockSize, LEAF *const leaf)</div><div class="ttdoc">Initialize a tEnvPD to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:230</div></div>
+<div class="ttc" id="agroup__tenvpd_html_ga28ade0e2893d6e94bca4dfa6cdd0f0ea"><div class="ttname"><a href="group__tenvpd.html#ga28ade0e2893d6e94bca4dfa6cdd0f0ea">tEnvPD_free</a></div><div class="ttdeci">void tEnvPD_free(tEnvPD *const)</div><div class="ttdoc">Free a tEnvPD from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:279</div></div>
+<div class="ttc" id="agroup__tattackdetection_html_gaa7cf7c473a720eb6e034661a92a9164a"><div class="ttname"><a href="group__tattackdetection.html#gaa7cf7c473a720eb6e034661a92a9164a">tAttackDetection_init</a></div><div class="ttdeci">void tAttackDetection_init(tAttackDetection *const, int blocksize, int atk, int rel, LEAF *const leaf)</div><div class="ttdoc">Initialize a tAttackDetection to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:338</div></div>
+<div class="ttc" id="agroup__tenvelopefollower_html_ga746d0a9698c22b21091cc6fad79faf85"><div class="ttname"><a href="group__tenvelopefollower.html#ga746d0a9698c22b21091cc6fad79faf85">tEnvelopeFollower_setDecayCoefficient</a></div><div class="ttdeci">void tEnvelopeFollower_setDecayCoefficient(tEnvelopeFollower *const follower, float decayCoefficient)</div><div class="ttdoc">Set the envelope decay coefficient.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:68</div></div>
+<div class="ttc" id="agroup__tzerocrossingcounter_html_gab53550020f2625049537b65655af0053"><div class="ttname"><a href="group__tzerocrossingcounter.html#gab53550020f2625049537b65655af0053">tZeroCrossingCounter_tick</a></div><div class="ttdeci">float tZeroCrossingCounter_tick(tZeroCrossingCounter *const, float input)</div><div class="ttdoc">Tick the tZeroCrossingCounter.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:117</div></div>
+<div class="ttc" id="agroup__tattackdetection_html_gac0cecbd3eb9478a8ac62ad056b4e65e8"><div class="ttname"><a href="group__tattackdetection.html#gac0cecbd3eb9478a8ac62ad056b4e65e8">tAttackDetection_free</a></div><div class="ttdeci">void tAttackDetection_free(tAttackDetection *const)</div><div class="ttdoc">Free a tAttackDetection from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:352</div></div>
+<div class="ttc" id="agroup__tsnac_html_ga8568190ff50745df3b220f9f8dba3289"><div class="ttname"><a href="group__tsnac.html#ga8568190ff50745df3b220f9f8dba3289">tSNAC_getFidelity</a></div><div class="ttdeci">float tSNAC_getFidelity(tSNAC *s)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:583</div></div>
+<div class="ttc" id="agroup__tpitchdetector_html_ga99e55d649e58523aa706c711082585f6"><div class="ttname"><a href="group__tpitchdetector.html#ga99e55d649e58523aa706c711082585f6">tPitchDetector_init</a></div><div class="ttdeci">void tPitchDetector_init(tPitchDetector *const detector, float lowestFreq, float highestFreq, LEAF *const leaf)</div><div class="ttdoc">Initialize a tPitchDetector to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1887</div></div>
+<div class="ttc" id="agroup__tenvpd_html_ga31446fa14ee57bd0f19d260f4c748e2e"><div class="ttname"><a href="group__tenvpd.html#ga31446fa14ee57bd0f19d260f4c748e2e">tEnvPD_initToPool</a></div><div class="ttdeci">void tEnvPD_initToPool(tEnvPD *const, int windowSize, int hopSize, int blockSize, tMempool *const)</div><div class="ttdoc">Initialize a tEnvPD to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:235</div></div>
+<div class="ttc" id="agroup__tdualpitchdetector_html_gab5e594fb81c3c6e5c3f3d58a5f98c504"><div class="ttname"><a href="group__tdualpitchdetector.html#gab5e594fb81c3c6e5c3f3d58a5f98c504">tDualPitchDetector_predictFrequency</a></div><div class="ttdeci">float tDualPitchDetector_predictFrequency(tDualPitchDetector *const detector)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:2249</div></div>
+<div class="ttc" id="agroup__tperioddetection_html_ga95602fa326fda0ab685a626508166d15"><div class="ttname"><a href="group__tperioddetection.html#ga95602fa326fda0ab685a626508166d15">tPeriodDetection_setAlpha</a></div><div class="ttdeci">void tPeriodDetection_setAlpha(tPeriodDetection *const, float alpha)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:942</div></div>
+<div class="ttc" id="agroup__tsnac_html_ga5f4005dba1c0470e84ae6bc6845c6d27"><div class="ttname"><a href="group__tsnac.html#ga5f4005dba1c0470e84ae6bc6845c6d27">tSNAC_init</a></div><div class="ttdeci">void tSNAC_init(tSNAC *const, int overlaparg, LEAF *const leaf)</div><div class="ttdoc">Initialize a tSNAC to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:479</div></div>
+<div class="ttc" id="agroup__tdualpitchdetector_html_gae647948c3fad09263e02625d52a0f9f0"><div class="ttname"><a href="group__tdualpitchdetector.html#gae647948c3fad09263e02625d52a0f9f0">tDualPitchDetector_getFrequency</a></div><div class="ttdeci">float tDualPitchDetector_getFrequency(tDualPitchDetector *const detector)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:2235</div></div>
+<div class="ttc" id="agroup__tpowerfollower_html_gab8b92e4b8a0819f2d0a779f3b20d3f25"><div class="ttname"><a href="group__tpowerfollower.html#gab8b92e4b8a0819f2d0a779f3b20d3f25">tPowerFollower_init</a></div><div class="ttdeci">void tPowerFollower_init(tPowerFollower *const, float factor, LEAF *const leaf)</div><div class="ttdoc">Initialize a tPowerFollower to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:177</div></div>
+<div class="ttc" id="agroup__tperioddetection_html_ga18cf97615547a615aec4b183da82e8ee"><div class="ttname"><a href="group__tperioddetection.html#ga18cf97615547a615aec4b183da82e8ee">tPeriodDetection_tick</a></div><div class="ttdeci">float tPeriodDetection_tick(tPeriodDetection *const, float sample)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:877</div></div>
+<div class="ttc" id="agroup__tperioddetector_html_ga03431f353481718a4e573f4df4a0161f"><div class="ttname"><a href="group__tperioddetector.html#ga03431f353481718a4e573f4df4a0161f">tPeriodDetector_initToPool</a></div><div class="ttdeci">void tPeriodDetector_initToPool(tPeriodDetector *const detector, float lowestFreq, float highestFreq, float hysteresis, tMempool *const mempool)</div><div class="ttdoc">Initialize a tPeriodDetector to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1510</div></div>
+<div class="ttc" id="agroup__tperioddetector_html_ga3d58e36fafa3e5b5102175e2c9062010"><div class="ttname"><a href="group__tperioddetector.html#ga3d58e36fafa3e5b5102175e2c9062010">tPeriodDetector_isReady</a></div><div class="ttdeci">int tPeriodDetector_isReady(tPeriodDetector *const detector)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1645</div></div>
+<div class="ttc" id="agroup__tenvelopefollower_html_ga5a7749052924bc7ed03051043b5e42bb"><div class="ttname"><a href="group__tenvelopefollower.html#ga5a7749052924bc7ed03051043b5e42bb">tEnvelopeFollower_init</a></div><div class="ttdeci">void tEnvelopeFollower_init(tEnvelopeFollower *const follower, float attackThreshold, float decayCoefficient, LEAF *const leaf)</div><div class="ttdoc">Initialize a tEnvelopeFollower to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:25</div></div>
+<div class="ttc" id="agroup__tenvpd_html_ga73ca443b1b36dc5995bf1659fdb242ab"><div class="ttname"><a href="group__tenvpd.html#ga73ca443b1b36dc5995bf1659fdb242ab">tEnvPD_tick</a></div><div class="ttdeci">float tEnvPD_tick(tEnvPD *const)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:286</div></div>
+<div class="ttc" id="agroup__tzerocrossingcounter_html_ga797b0ef62ada70b352a22426a9915ae6"><div class="ttname"><a href="group__tzerocrossingcounter.html#ga797b0ef62ada70b352a22426a9915ae6">tZeroCrossingCounter_initToPool</a></div><div class="ttdeci">void tZeroCrossingCounter_initToPool(tZeroCrossingCounter *const, int maxWindowSize, tMempool *const mempool)</div><div class="ttdoc">Initialize a tZeroCrossingCounter to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:91</div></div>
+<div class="ttc" id="agroup__tperioddetector_html_ga3157c7b7e210eafb0286aef6f1843f94"><div class="ttname"><a href="group__tperioddetector.html#ga3157c7b7e210eafb0286aef6f1843f94">tPeriodDetector_setHysteresis</a></div><div class="ttdeci">void tPeriodDetector_setHysteresis(tPeriodDetector *const detector, float hysteresis)</div><div class="ttdoc">Set the hysteresis used in zero crossing detection.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1659</div></div>
+<div class="ttc" id="agroup__tpitchdetector_html_ga65ead0c2f0f3f30b2e64f5a6aa50d6f9"><div class="ttname"><a href="group__tpitchdetector.html#ga65ead0c2f0f3f30b2e64f5a6aa50d6f9">tPitchDetector_setHysteresis</a></div><div class="ttdeci">void tPitchDetector_setHysteresis(tPitchDetector *const detector, float hysteresis)</div><div class="ttdoc">Set the hysteresis used in zero crossing detection.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:2002</div></div>
+<div class="ttc" id="agroup__tperioddetector_html_ga025e1bc096ca88fc2f6e493513f0d6fb"><div class="ttname"><a href="group__tperioddetector.html#ga025e1bc096ca88fc2f6e493513f0d6fb">tPeriodDetector_getPeriod</a></div><div class="ttdeci">float tPeriodDetector_getPeriod(tPeriodDetector *const detector)</div><div class="ttdoc">Get the periodicity for a given harmonic of the detected pitch.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1577</div></div>
+<div class="ttc" id="agroup__tdualpitchdetector_html_gae41a404e3b1463d626423aa6f4ac56a6"><div class="ttname"><a href="group__tdualpitchdetector.html#gae41a404e3b1463d626423aa6f4ac56a6">tDualPitchDetector_init</a></div><div class="ttdeci">void tDualPitchDetector_init(tDualPitchDetector *const detector, float lowestFreq, float highestFreq, float *inBuffer, int bufSize, LEAF *const leaf)</div><div class="ttdoc">Initialize a tDualPitchDetector to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:2117</div></div>
+<div class="ttc" id="agroup__tenvelopefollower_html_gadd57dad9c08b2ada6e8c720077256d5a"><div class="ttname"><a href="group__tenvelopefollower.html#gadd57dad9c08b2ada6e8c720077256d5a">tEnvelopeFollower_tick</a></div><div class="ttdeci">float tEnvelopeFollower_tick(tEnvelopeFollower *const follower, float sample)</div><div class="ttdoc">Tick the tEnvelopeFollower.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:48</div></div>
+<div class="ttc" id="agroup__tperioddetection_html_ga9a3ed4fe9806b0ee691b56090cef4339"><div class="ttname"><a href="group__tperioddetection.html#ga9a3ed4fe9806b0ee691b56090cef4339">tPeriodDetection_setWindowSize</a></div><div class="ttdeci">void tPeriodDetection_setWindowSize(tPeriodDetection *const, int ws)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:930</div></div>
+<div class="ttc" id="agroup__tenvpd_html_ga15bd0b8018ca2c67120053eb8cd1fc9a"><div class="ttname"><a href="group__tenvpd.html#ga15bd0b8018ca2c67120053eb8cd1fc9a">tEnvPD_processBlock</a></div><div class="ttdeci">void tEnvPD_processBlock(tEnvPD *const, float *in)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:292</div></div>
+<div class="ttc" id="agroup__tpowerfollower_html_gac7ab521ba7345c90b2455acc66a7caf1"><div class="ttname"><a href="group__tpowerfollower.html#gac7ab521ba7345c90b2455acc66a7caf1">tPowerFollower_setFactor</a></div><div class="ttdeci">void tPowerFollower_setFactor(tPowerFollower *const, float factor)</div><div class="ttdoc">Set the smoothing factor for the moving average.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:200</div></div>
+<div class="ttc" id="agroup__tdualpitchdetector_html_ga0a511f71335134377f4db13f9b6c311e"><div class="ttname"><a href="group__tdualpitchdetector.html#ga0a511f71335134377f4db13f9b6c311e">tDualPitchDetector_setHysteresis</a></div><div class="ttdeci">void tDualPitchDetector_setHysteresis(tDualPitchDetector *const detector, float hysteresis)</div><div class="ttdoc">Set the hysteresis used in zero crossing detection.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:2258</div></div>
+<div class="ttc" id="agroup__tpitchdetector_html_gab29d82d5391480c9310b9c5074576966"><div class="ttname"><a href="group__tpitchdetector.html#gab29d82d5391480c9310b9c5074576966">tPitchDetector_predictFrequency</a></div><div class="ttdeci">float tPitchDetector_predictFrequency(tPitchDetector *const detector)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1984</div></div>
+<div class="ttc" id="agroup__tperioddetector_html_ga55e2ad80c68f2fbf0cafceee206abf3f"><div class="ttname"><a href="group__tperioddetector.html#ga55e2ad80c68f2fbf0cafceee206abf3f">tPeriodDetector_free</a></div><div class="ttdeci">void tPeriodDetector_free(tPeriodDetector *const detector)</div><div class="ttdoc">Free a tPeriodDetector from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1537</div></div>
+<div class="ttc" id="agroup__tperioddetection_html_ga04f0fa73e75e8fc128243515b039c474"><div class="ttname"><a href="group__tperioddetection.html#ga04f0fa73e75e8fc128243515b039c474">tPeriodDetection_getPeriod</a></div><div class="ttdeci">float tPeriodDetection_getPeriod(tPeriodDetection *const)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:912</div></div>
+<div class="ttc" id="agroup__tperioddetector_html_ga9e836c21a0dcabe9f3438bc56e671f39"><div class="ttname"><a href="group__tperioddetector.html#ga9e836c21a0dcabe9f3438bc56e671f39">tPeriodDetector_getPeriodicity</a></div><div class="ttdeci">float tPeriodDetector_getPeriodicity(tPeriodDetector *const detector)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1584</div></div>
+<div class="ttc" id="agroup__tzerocrossingcounter_html_ga8fed3441e5ac46750e3f7641d8b5d80b"><div class="ttname"><a href="group__tzerocrossingcounter.html#ga8fed3441e5ac46750e3f7641d8b5d80b">tZeroCrossingCounter_init</a></div><div class="ttdeci">void tZeroCrossingCounter_init(tZeroCrossingCounter *const, int maxWindowSize, LEAF *const leaf)</div><div class="ttdoc">Initialize a tZeroCrossingCounter to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:86</div></div>
+<div class="ttc" id="agroup__tpitchdetector_html_ga7ff9d62bb716a57fce8ffeb5558c4890"><div class="ttname"><a href="group__tpitchdetector.html#ga7ff9d62bb716a57fce8ffeb5558c4890">tPitchDetector_tick</a></div><div class="ttdeci">int tPitchDetector_tick(tPitchDetector *const detector, float sample)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1912</div></div>
+<div class="ttc" id="agroup__tdualpitchdetector_html_gaf9fbf5ecd92f356af0572600ec796556"><div class="ttname"><a href="group__tdualpitchdetector.html#gaf9fbf5ecd92f356af0572600ec796556">tDualPitchDetector_initToPool</a></div><div class="ttdeci">void tDualPitchDetector_initToPool(tDualPitchDetector *const detector, float lowestFreq, float highestFreq, float *inBuffer, int bufSize, tMempool *const mempool)</div><div class="ttdoc">Initialize a tDualPitchDetector to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:2122</div></div>
+<div class="ttc" id="agroup__tattackdetection_html_ga330419a7bcf2aea460cbb8341d0cc7a1"><div class="ttname"><a href="group__tattackdetection.html#ga330419a7bcf2aea460cbb8341d0cc7a1">tAttackDetection_setBlocksize</a></div><div class="ttdeci">void tAttackDetection_setBlocksize(tAttackDetection *const, int size)</div><div class="ttdoc">Set expected input blocksize.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:362</div></div>
+<div class="ttc" id="agroup__tperioddetector_html_ga4a66a46a4a6bea562bae63640e6855a5"><div class="ttname"><a href="group__tperioddetector.html#ga4a66a46a4a6bea562bae63640e6855a5">tPeriodDetector_harmonic</a></div><div class="ttdeci">float tPeriodDetector_harmonic(tPeriodDetector *const detector, int harmonicIndex)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1591</div></div>
+<div class="ttc" id="agroup__tpitchdetector_html_gad99b1eb3569ac87a54a31ddc7ec78eea"><div class="ttname"><a href="group__tpitchdetector.html#gad99b1eb3569ac87a54a31ddc7ec78eea">tPitchDetector_getPeriodicity</a></div><div class="ttdeci">float tPitchDetector_getPeriodicity(tPitchDetector *const detector)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1970</div></div>
+<div class="ttc" id="agroup__tzerocrossingcounter_html_gaa1865545e8a1ac340af315e77547e75b"><div class="ttname"><a href="group__tzerocrossingcounter.html#gaa1865545e8a1ac340af315e77547e75b">tZeroCrossingCounter_free</a></div><div class="ttdeci">void tZeroCrossingCounter_free(tZeroCrossingCounter *const)</div><div class="ttdoc">Free a tZeroCrossingCounter from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:107</div></div>
+<div class="ttc" id="agroup__tdualpitchdetector_html_gaf1a678d94ea5579c8847e8672541fecd"><div class="ttname"><a href="group__tdualpitchdetector.html#gaf1a678d94ea5579c8847e8672541fecd">tDualPitchDetector_setPeriodicityThreshold</a></div><div class="ttdeci">void tDualPitchDetector_setPeriodicityThreshold(tDualPitchDetector *const detector, float thresh)</div><div class="ttdoc">Set the threshold for periodicity of a signal to be considered as pitched.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:2265</div></div>
+<div class="ttc" id="agroup__tpitchdetector_html_gaaa325f08c7c80ecace14fcd7f934d211"><div class="ttname"><a href="group__tpitchdetector.html#gaaa325f08c7c80ecace14fcd7f934d211">tPitchDetector_initToPool</a></div><div class="ttdeci">void tPitchDetector_initToPool(tPitchDetector *const detector, float lowestFreq, float highestFreq, tMempool *const mempool)</div><div class="ttdoc">Initialize a tPitchDetector to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1892</div></div>
+<div class="ttc" id="agroup__tdualpitchdetector_html_ga013b0b209ac1fe9268f88ed4925c7905"><div class="ttname"><a href="group__tdualpitchdetector.html#ga013b0b209ac1fe9268f88ed4925c7905">tDualPitchDetector_getPeriodicity</a></div><div class="ttdeci">float tDualPitchDetector_getPeriodicity(tDualPitchDetector *const detector)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:2242</div></div>
+<div class="ttc" id="agroup__tpitchdetector_html_ga21a8caf85569fa4366e83aa776831273"><div class="ttname"><a href="group__tpitchdetector.html#ga21a8caf85569fa4366e83aa776831273">tPitchDetector_free</a></div><div class="ttdeci">void tPitchDetector_free(tPitchDetector *const detector)</div><div class="ttdoc">Free a tPitchDetector from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1904</div></div>
+<div class="ttc" id="agroup__tenvelopefollower_html_ga9d8d4762b016fa57939e5d733e164cb9"><div class="ttname"><a href="group__tenvelopefollower.html#ga9d8d4762b016fa57939e5d733e164cb9">tEnvelopeFollower_setAttackThreshold</a></div><div class="ttdeci">void tEnvelopeFollower_setAttackThreshold(tEnvelopeFollower *const follower, float attackThreshold)</div><div class="ttdoc">Set the envelope attack threshold.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:74</div></div>
+<div class="ttc" id="agroup__tsnac_html_gad7fc6ce1e80847dfcd9da75d4c734f12"><div class="ttname"><a href="group__tsnac.html#gad7fc6ce1e80847dfcd9da75d4c734f12">tSNAC_free</a></div><div class="ttdeci">void tSNAC_free(tSNAC *const)</div><div class="ttdoc">Free a tSNAC from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:507</div></div>
+<div class="ttc" id="agroup__tpowerfollower_html_ga479317d7fd22a86a832ebec92eae4782"><div class="ttname"><a href="group__tpowerfollower.html#ga479317d7fd22a86a832ebec92eae4782">tPowerFollower_free</a></div><div class="ttdeci">void tPowerFollower_free(tPowerFollower *const)</div><div class="ttdoc">Free a tPowerFollower from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:193</div></div>
+<div class="ttc" id="agroup__tattackdetection_html_gafc46d23c20523048eaf45a68e146dbcf"><div class="ttname"><a href="group__tattackdetection.html#gafc46d23c20523048eaf45a68e146dbcf">tAttackDetection_setThreshold</a></div><div class="ttdeci">void tAttackDetection_setThreshold(tAttackDetection *const, float thres)</div><div class="ttdoc">Set level above which values are identified as attacks.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:380</div></div>
+<div class="ttc" id="agroup__tperioddetection_html_ga207a7ec884eebc58c9cd9f17518d5a1b"><div class="ttname"><a href="group__tperioddetection.html#ga207a7ec884eebc58c9cd9f17518d5a1b">tPeriodDetection_setHopSize</a></div><div class="ttdeci">void tPeriodDetection_setHopSize(tPeriodDetection *const, int hs)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:924</div></div>
+<div class="ttc" id="agroup__tenvelopefollower_html_ga9ff136abec8842d17d25205787370239"><div class="ttname"><a href="group__tenvelopefollower.html#ga9ff136abec8842d17d25205787370239">tEnvelopeFollower_free</a></div><div class="ttdeci">void tEnvelopeFollower_free(tEnvelopeFollower *const follower)</div><div class="ttdoc">Free a tEnvelopeFollower from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:41</div></div>
+<div class="ttc" id="agroup__tperioddetector_html_gaed4bf4a51580ba6209dfe5d35a235644"><div class="ttname"><a href="group__tperioddetector.html#gaed4bf4a51580ba6209dfe5d35a235644">tPeriodDetector_tick</a></div><div class="ttdeci">int tPeriodDetector_tick(tPeriodDetector *const detector, float sample)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1548</div></div>
+<div class="ttc" id="agroup__tpitchdetector_html_ga5b4f011cdb1812ab29022e4851e81c7e"><div class="ttname"><a href="group__tpitchdetector.html#ga5b4f011cdb1812ab29022e4851e81c7e">tPitchDetector_getFrequency</a></div><div class="ttdeci">float tPitchDetector_getFrequency(tPitchDetector *const detector)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1963</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<div class="ttc" id="agroup__tsnac_html_ga9779c23ab83bf93c8df11a6b4982c0b2"><div class="ttname"><a href="group__tsnac.html#ga9779c23ab83bf93c8df11a6b4982c0b2">tSNAC_initToPool</a></div><div class="ttdeci">void tSNAC_initToPool(tSNAC *const, int overlaparg, tMempool *const)</div><div class="ttdoc">Initialize a tSNAC to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:484</div></div>
+<div class="ttc" id="agroup__tenvelopefollower_html_gacd6a2310494413b550ededdaed214d2a"><div class="ttname"><a href="group__tenvelopefollower.html#gacd6a2310494413b550ededdaed214d2a">tEnvelopeFollower_initToPool</a></div><div class="ttdeci">void tEnvelopeFollower_initToPool(tEnvelopeFollower *const follower, float attackThreshold, float decayCoefficient, tMempool *const mempool)</div><div class="ttdoc">Initialize a tEnvelopeFollower to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:30</div></div>
+<div class="ttc" id="agroup__tperioddetection_html_ga49b5e95b84c6e101abac2ab7ec0cdebd"><div class="ttname"><a href="group__tperioddetection.html#ga49b5e95b84c6e101abac2ab7ec0cdebd">tPeriodDetection_setTolerance</a></div><div class="ttdeci">void tPeriodDetection_setTolerance(tPeriodDetection *const, float tolerance)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:948</div></div>
+<div class="ttc" id="agroup__tdualpitchdetector_html_ga0f104dc5171d8cf3cf5e01d3d52f20e4"><div class="ttname"><a href="group__tdualpitchdetector.html#ga0f104dc5171d8cf3cf5e01d3d52f20e4">tDualPitchDetector_free</a></div><div class="ttdeci">void tDualPitchDetector_free(tDualPitchDetector *const detector)</div><div class="ttdoc">Free a tDualPitchDetector from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:2142</div></div>
+<div class="ttc" id="agroup__tsnac_html_ga71074b5888fe76260f3c1fae7e2aeec8"><div class="ttname"><a href="group__tsnac.html#ga71074b5888fe76260f3c1fae7e2aeec8">tSNAC_getPeriod</a></div><div class="ttdeci">float tSNAC_getPeriod(tSNAC *s)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:576</div></div>
+<div class="ttc" id="agroup__tpowerfollower_html_ga0a423e1c15b581b4430112ed2897f6d2"><div class="ttname"><a href="group__tpowerfollower.html#ga0a423e1c15b581b4430112ed2897f6d2">tPowerFollower_getPower</a></div><div class="ttdeci">float tPowerFollower_getPower(tPowerFollower *const)</div><div class="ttdoc">Get the current power.</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:217</div></div>
+<div class="ttc" id="agroup__tpitchdetector_html_gae830c20dc77369d3055f23cd0fc51435"><div class="ttname"><a href="group__tpitchdetector.html#gae830c20dc77369d3055f23cd0fc51435">tPitchDetector_harmonic</a></div><div class="ttdeci">float tPitchDetector_harmonic(tPitchDetector *const detector, int harmonicIndex)</div><div class="ttdef"><b>Definition:</b> leaf-analysis.c:1977</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-config_8h.html
@@ -1,0 +1,153 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/leaf-config.h File Reference</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">leaf-config.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> configuration file. Contains defines for controlling inclusion of various tables.  
+<a href="#details">More...</a></p>
+
+<p><a href="leaf-config_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:aa1d86fcc131ab6f1789217ed6706606b"><td class="memItemLeft" align="right" valign="top"><a id="aa1d86fcc131ab6f1789217ed6706606b"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="leaf-config_8h.html#aa1d86fcc131ab6f1789217ed6706606b">LEAF_INCLUDE_OVERSAMPLER_TABLES</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:aa1d86fcc131ab6f1789217ed6706606b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Include FIR tables required to use tOversampler and tCompactWavetable which uses tOversampler. <br /></td></tr>
+<tr class="separator:aa1d86fcc131ab6f1789217ed6706606b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab2893efe703eab3bb551c9add5ef387"><td class="memItemLeft" align="right" valign="top"><a id="aab2893efe703eab3bb551c9add5ef387"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="leaf-config_8h.html#aab2893efe703eab3bb551c9add5ef387">LEAF_INCLUDE_FILTERTAN_TABLE</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:aab2893efe703eab3bb551c9add5ef387"><td class="mdescLeft">&#160;</td><td class="mdescRight">Include table required to use tEfficientSVF. <br /></td></tr>
+<tr class="separator:aab2893efe703eab3bb551c9add5ef387"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac97160952072d68ef1b972822ad272ae"><td class="memItemLeft" align="right" valign="top"><a id="ac97160952072d68ef1b972822ad272ae"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="leaf-config_8h.html#ac97160952072d68ef1b972822ad272ae">LEAF_INCLUDE_ADSR_TABLES</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:ac97160952072d68ef1b972822ad272ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Include tables required to use tEnvelope and tADSR (but not tADSR2, tADSR3, and tADSR4). <br /></td></tr>
+<tr class="separator:ac97160952072d68ef1b972822ad272ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b45f1d5e0e5f16ef2b7bcfa5c2b69c3"><td class="memItemLeft" align="right" valign="top"><a id="a6b45f1d5e0e5f16ef2b7bcfa5c2b69c3"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="leaf-config_8h.html#a6b45f1d5e0e5f16ef2b7bcfa5c2b69c3">LEAF_INCLUDE_SINE_TABLE</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:a6b45f1d5e0e5f16ef2b7bcfa5c2b69c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Include wave table required to use tCycle. <br /></td></tr>
+<tr class="separator:a6b45f1d5e0e5f16ef2b7bcfa5c2b69c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae5a99a230cd12d10d9b2011c8461787"><td class="memItemLeft" align="right" valign="top"><a id="aae5a99a230cd12d10d9b2011c8461787"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="leaf-config_8h.html#aae5a99a230cd12d10d9b2011c8461787">LEAF_INCLUDE_TRIANGLE_TABLE</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:aae5a99a230cd12d10d9b2011c8461787"><td class="mdescLeft">&#160;</td><td class="mdescRight">Include wave table required to use tTriangle. <br /></td></tr>
+<tr class="separator:aae5a99a230cd12d10d9b2011c8461787"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeea32201ca1663099f453916e852547d"><td class="memItemLeft" align="right" valign="top"><a id="aeea32201ca1663099f453916e852547d"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="leaf-config_8h.html#aeea32201ca1663099f453916e852547d">LEAF_INCLUDE_SQUARE_TABLE</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:aeea32201ca1663099f453916e852547d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Include wave table required to use tSquare. <br /></td></tr>
+<tr class="separator:aeea32201ca1663099f453916e852547d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adc140cd309979869fe8a593cb4f1ee48"><td class="memItemLeft" align="right" valign="top"><a id="adc140cd309979869fe8a593cb4f1ee48"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="leaf-config_8h.html#adc140cd309979869fe8a593cb4f1ee48">LEAF_INCLUDE_SAWTOOTH_TABLE</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:adc140cd309979869fe8a593cb4f1ee48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Include wave table required to use tSawtooth. <br /></td></tr>
+<tr class="separator:adc140cd309979869fe8a593cb4f1ee48"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a48382d3ccd1f8b5133cc39e5dfec6407"><td class="memItemLeft" align="right" valign="top"><a id="a48382d3ccd1f8b5133cc39e5dfec6407"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="leaf-config_8h.html#a48382d3ccd1f8b5133cc39e5dfec6407">LEAF_INCLUDE_MINBLEP_TABLES</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:a48382d3ccd1f8b5133cc39e5dfec6407"><td class="mdescLeft">&#160;</td><td class="mdescRight">Include tables for minblep insertion, required for all tMB objects. <br /></td></tr>
+<tr class="separator:a48382d3ccd1f8b5133cc39e5dfec6407"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> configuration file. Contains defines for controlling inclusion of various tables. </p>
+</div></div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-config_8h_source.html
@@ -1,0 +1,158 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/leaf-config.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-config.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="leaf-config_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">  ==============================================================================</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">    leaf-config.h</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">    Created: 18 Dec 2020 1:24:49pm</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">    Author:  Matthew Wang</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">  ==============================================================================</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#ifndef LEAF_CONFIG_H_INCLUDED</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#define LEAF_CONFIG_H_INCLUDED</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="leaf-config_8h.html#aa1d86fcc131ab6f1789217ed6706606b">   22</a></span>&#160;<span class="preprocessor">#define LEAF_INCLUDE_OVERSAMPLER_TABLES 1</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">// Unused</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#define LEAF_INCLUDE_SHAPER_TABLE 0</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment">// Unused</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#define LEAF_INCLUDE_MTOF_TABLE 0</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="leaf-config_8h.html#aab2893efe703eab3bb551c9add5ef387">   31</a></span>&#160;<span class="preprocessor">#define LEAF_INCLUDE_FILTERTAN_TABLE 1</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment">// Unused</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#define LEAF_INCLUDE_TANH_TABLE 0</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="comment">// Unused</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#define LEAF_INCLUDE_ADC_TABLE 0</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="leaf-config_8h.html#ac97160952072d68ef1b972822ad272ae">   40</a></span>&#160;<span class="preprocessor">#define LEAF_INCLUDE_ADSR_TABLES 1</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="leaf-config_8h.html#a6b45f1d5e0e5f16ef2b7bcfa5c2b69c3">   43</a></span>&#160;<span class="preprocessor">#define LEAF_INCLUDE_SINE_TABLE 1</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="leaf-config_8h.html#aae5a99a230cd12d10d9b2011c8461787">   46</a></span>&#160;<span class="preprocessor">#define LEAF_INCLUDE_TRIANGLE_TABLE 1</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="leaf-config_8h.html#aeea32201ca1663099f453916e852547d">   49</a></span>&#160;<span class="preprocessor">#define LEAF_INCLUDE_SQUARE_TABLE 1</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="leaf-config_8h.html#adc140cd309979869fe8a593cb4f1ee48">   52</a></span>&#160;<span class="preprocessor">#define LEAF_INCLUDE_SAWTOOTH_TABLE 1</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="leaf-config_8h.html#a48382d3ccd1f8b5133cc39e5dfec6407">   55</a></span>&#160;<span class="preprocessor">#define LEAF_INCLUDE_MINBLEP_TABLES 1</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#define LEAF_NO_DENORMAL_CHECK 0</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#define LEAF_USE_CMSIS 0</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#endif // LEAF_CONFIG_H_INCLUDED</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-delay_8h_source.html
@@ -1,0 +1,430 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-delay.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-delay.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*==============================================================================</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> leaf-delay.h</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> Created: 20 Jan 2017 12:01:24pm</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> Author:  Michael R Mulshine</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> ==============================================================================*/</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#ifndef LEAF_DELAY_H_INCLUDED</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define LEAF_DELAY_H_INCLUDED</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tDelay</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    {</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <span class="keywordtype">float</span> gain;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <span class="keywordtype">float</span>* buff;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <span class="keywordtype">float</span> lastOut, lastIn;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        uint32_t inPoint, outPoint;</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        uint32_t delay, maxDelay;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        </div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    } _tDelay;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keyword">typedef</span> _tDelay* tDelay;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keywordtype">void</span>        <a class="code" href="group__tdelay.html#ga22597de02abb939743a18ec38ff08a0f">tDelay_init</a>         (tDelay* <span class="keyword">const</span>, uint32_t delay, uint32_t maxDelay, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keywordtype">void</span>        <a class="code" href="group__tdelay.html#gacaaaaabc7ddb4259f05481f10ba5c403">tDelay_initToPool</a>   (tDelay* <span class="keyword">const</span>, uint32_t delay, uint32_t maxDelay, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keywordtype">void</span>        <a class="code" href="group__tdelay.html#gac96fb1d4b4997a3137f211b6f22e14ba">tDelay_free</a>         (tDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordtype">void</span>        <a class="code" href="group__tdelay.html#ga10738582699eb8e6ff892b4ba662c4ef">tDelay_clear</a>        (tDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="keywordtype">void</span>        <a class="code" href="group__tdelay.html#ga364a63687af1a63b7daa8a8431527a6a">tDelay_setDelay</a>     (tDelay* <span class="keyword">const</span>, uint32_t delay);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    uint32_t    <a class="code" href="group__tdelay.html#ga5686cf386894dcee3c9241bef0ca4c41">tDelay_getDelay</a>     (tDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordtype">void</span>        <a class="code" href="group__tdelay.html#gadc5709febff70f7cbca38c2508103ac0">tDelay_tapIn</a>        (tDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> in, uint32_t tapDelay);</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordtype">float</span>       <a class="code" href="group__tdelay.html#ga94c07f9e8bfdaf402ebfbcd38d0150b5">tDelay_tapOut</a>       (tDelay* <span class="keyword">const</span>, uint32_t tapDelay);</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordtype">float</span>       <a class="code" href="group__tdelay.html#gac4014573da91d0da9c8b7d48d515de5a">tDelay_addTo</a>        (tDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> value, uint32_t tapDelay);</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="keywordtype">float</span>       <a class="code" href="group__tdelay.html#ga2f3b8939018fd6972756a9137cab3567">tDelay_tick</a>         (tDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> sample);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keywordtype">float</span>       <a class="code" href="group__tdelay.html#ga3e00ec62933b69e09d9eed5b7608e094">tDelay_getLastOut</a>   (tDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="keywordtype">float</span>       <a class="code" href="group__tdelay.html#gab23b7051f02d2f7108939bdb034fe308">tDelay_getLastIn</a>    (tDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    </div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tLinearDelay</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    {</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        </div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        <span class="keywordtype">float</span> gain;</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        <span class="keywordtype">float</span>* buff;</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;        </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;        <span class="keywordtype">float</span> lastOut, lastIn;</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;        </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        uint32_t inPoint, outPoint;</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        </div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;        uint32_t maxDelay;</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;        </div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;        <span class="keywordtype">float</span> delay;</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        </div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;        <span class="keywordtype">float</span> alpha, omAlpha;</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        </div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    } _tLinearDelay;</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    </div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <span class="keyword">typedef</span> _tLinearDelay* tLinearDelay;</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    </div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlineardelay.html#gaffbe3ac134a45c164eded9d4dc3304f7">tLinearDelay_init</a>        (tLinearDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> delay, uint32_t maxDelay, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlineardelay.html#ga6cb9f12ba9262386d8ecbf0dd8151b69">tLinearDelay_initToPool</a>  (tLinearDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> delay, uint32_t maxDelay, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlineardelay.html#gaeb62896b4392a7f9ca1c557ccc859f4f">tLinearDelay_free</a>        (tLinearDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    </div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlineardelay.html#ga890124d89744b9621ce802ad9e0e0759">tLinearDelay_clear</a>         (tLinearDelay* <span class="keyword">const</span> dl);</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlineardelay.html#ga02ae58cb385f4d598bd4c57903dd365a">tLinearDelay_setDelay</a>    (tLinearDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> delay);</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tlineardelay.html#gac57ca1a251b96ec2aad7550049864b8c">tLinearDelay_getDelay</a>    (tLinearDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlineardelay.html#ga16350a1576f9662c7ef8dade853c8f93">tLinearDelay_tapIn</a>       (tLinearDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> in, uint32_t tapDelay);</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tlineardelay.html#ga8b5a87f1a03b6456cac6334085bf8be6">tLinearDelay_tapOut</a>      (tLinearDelay* <span class="keyword">const</span>, uint32_t tapDelay);</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tlineardelay.html#ga39f3f7376b5f38123678fea82c245368">tLinearDelay_addTo</a>       (tLinearDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> value, uint32_t tapDelay);</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tlineardelay.html#ga2f4a6a73eea16bb9ce3408b945ddb8f7">tLinearDelay_tick</a>        (tLinearDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> sample);</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlineardelay.html#ga8f9c2a86422204321dbd56ba317a5662">tLinearDelay_tickIn</a>      (tLinearDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tlineardelay.html#gad7f62bcf8446ee6a3987ffa3c01bf31c">tLinearDelay_tickOut</a>     (tLinearDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tlineardelay.html#ga97b8b25f279b974a969dc0bd46b7547b">tLinearDelay_getLastOut</a>  (tLinearDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tlineardelay.html#ga710bf54a2fec7f40dcd1c5b99a7b44fd">tLinearDelay_getLastIn</a>   (tLinearDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    </div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    </div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tHermiteDelay</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;    {</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        </div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;        <span class="keywordtype">float</span> gain;</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        <span class="keywordtype">float</span>* buff;</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        </div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        <span class="keywordtype">float</span> lastOut, lastIn;</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        </div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        uint32_t inPoint, outPoint;</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        </div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        uint32_t maxDelay;</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <span class="keywordtype">float</span> delay;</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        </div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        <span class="keywordtype">float</span> alpha, omAlpha;</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    } _tHermiteDelay;</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;    </div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    <span class="keyword">typedef</span> _tHermiteDelay* tHermiteDelay;</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    </div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__thermitedelay.html#ga09adaf3acdcd2ad63ba36f97083ca633">tHermiteDelay_init</a> (tHermiteDelay* <span class="keyword">const</span> dl, <span class="keywordtype">float</span> delay, uint32_t maxDelay, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__thermitedelay.html#ga6d3b413c7a3ac6addae36895e47ae3f4">tHermiteDelay_initToPool</a> (tHermiteDelay* <span class="keyword">const</span> dl, <span class="keywordtype">float</span> delay, uint32_t maxDelay, tMempool* <span class="keyword">const</span> mp);</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__thermitedelay.html#gaf3e5014213692ec0574c67713d562b83">tHermiteDelay_free</a>          (tHermiteDelay* <span class="keyword">const</span> dl);</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    </div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__thermitedelay.html#gac47ba1719955d115217ce09c1dcd8aa3">tHermiteDelay_clear</a>         (tHermiteDelay* <span class="keyword">const</span> dl);</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__thermitedelay.html#gabf6a43f6358e9fcfdb544bf6d93401d5">tHermiteDelay_tick</a>          (tHermiteDelay* <span class="keyword">const</span> dl, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__thermitedelay.html#ga9d4b6554bac1a01fcbe1deaf04b02a15">tHermiteDelay_tickIn</a>        (tHermiteDelay* <span class="keyword">const</span> dl, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__thermitedelay.html#ga758ba680ae090cc70bc5d9be12332bb9">tHermiteDelay_tickOut</a>       (tHermiteDelay* <span class="keyword">const</span> dl);</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__thermitedelay.html#ga76357c59563894699c6d89f958476151">tHermiteDelay_setDelay</a>      (tHermiteDelay* <span class="keyword">const</span> dl, <span class="keywordtype">float</span> delay);</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__thermitedelay.html#ga6aba8a52c0d7a9349fca81e0b7ae05c0">tHermiteDelay_tapOut</a>        (tHermiteDelay* <span class="keyword">const</span> dl, uint32_t tapDelay);</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__thermitedelay.html#gac650bbef7f3f47f75160e7b90e65bab5">tHermiteDelay_tapIn</a>         (tHermiteDelay* <span class="keyword">const</span> dl, <span class="keywordtype">float</span> value, uint32_t tapDelay);</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__thermitedelay.html#ga3b94d0644da904535f9f44481a9d2acd">tHermiteDelay_addTo</a>         (tHermiteDelay* <span class="keyword">const</span> dl, <span class="keywordtype">float</span> value, uint32_t tapDelay);</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__thermitedelay.html#ga0965274c7d2b3b3af2ad88117476321f">tHermiteDelay_getDelay</a>      (tHermiteDelay* <span class="keyword">const</span> dl);</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__thermitedelay.html#gab80cc6ce9c6b3909fd3427c4a75e42cb">tHermiteDelay_getLastOut</a>    (tHermiteDelay* <span class="keyword">const</span> dl);</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__thermitedelay.html#ga81d270041108d9af64f97c83cb096955">tHermiteDelay_getLastIn</a>     (tHermiteDelay* <span class="keyword">const</span> dl);</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__thermitedelay.html#ga8ff412ae2db6aa41afcf812db7c92057">tHermiteDelay_setGain</a>       (tHermiteDelay* <span class="keyword">const</span> dl, <span class="keywordtype">float</span> gain);</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__thermitedelay.html#ga5e23e3b036fc9a98494b853794cd8421">tHermiteDelay_getGain</a>       (tHermiteDelay* <span class="keyword">const</span> dl);</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    </div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    </div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    </div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tAllpassDelay</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;    {</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;        </div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;        <span class="keywordtype">float</span> gain;</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;        <span class="keywordtype">float</span>* buff;</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;        </div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;        <span class="keywordtype">float</span> lastOut, lastIn;</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;        </div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;        uint32_t inPoint, outPoint;</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        </div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;        uint32_t maxDelay;</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;        </div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;        <span class="keywordtype">float</span> delay;</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;        </div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;        <span class="keywordtype">float</span> alpha, omAlpha, coeff;</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;        </div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;        <span class="keywordtype">float</span> apInput;</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;        </div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;    } _tAllpassDelay;</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;    </div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;    <span class="keyword">typedef</span> _tAllpassDelay* tAllpassDelay;</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;    </div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tallpassdelay.html#gac68b64e119c315b545227a9404c2dedc">tAllpassDelay_init</a>        (tAllpassDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> delay, uint32_t maxDelay, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tallpassdelay.html#ga9a65c14cde90540162d7fb94bedd4013">tAllpassDelay_initToPool</a>  (tAllpassDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> delay, uint32_t maxDelay, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tallpassdelay.html#gaae4b75bede117322eedbb806f92af672">tAllpassDelay_free</a>        (tAllpassDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;    </div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tallpassdelay.html#ga22a3124a087816518ae22e7dd57049dd">tAllpassDelay_clear</a>       (tAllpassDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tallpassdelay.html#ga83b93819de2b2d825247c47b830d918c">tAllpassDelay_setDelay</a>    (tAllpassDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> delay);</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tallpassdelay.html#ga7cda781e73a82d91e49f3ce5955cbd0a">tAllpassDelay_getDelay</a>    (tAllpassDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tallpassdelay.html#ga000dae89babb537265f9b56f8ce5560b">tAllpassDelay_tapIn</a>       (tAllpassDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> in, uint32_t tapDelay);</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tallpassdelay.html#ga0348f7e531aa956c0e4f1e9eb3bb208a">tAllpassDelay_tapOut</a>      (tAllpassDelay* <span class="keyword">const</span>, uint32_t tapDelay);</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tallpassdelay.html#ga25124f2fc78144daa86e0008417f410c">tAllpassDelay_addTo</a>       (tAllpassDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> value, uint32_t tapDelay);</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tallpassdelay.html#ga6145fe6d2e4fd9e423d96725183498cc">tAllpassDelay_tick</a>        (tAllpassDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> sample);</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tallpassdelay.html#gab6937352ad500b205c4fc5e822937735">tAllpassDelay_getLastOut</a>  (tAllpassDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tallpassdelay.html#ga01be8563825023d090b5dbd750f2bba3">tAllpassDelay_getLastIn</a>   (tAllpassDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    </div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;    </div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tTapeDelay</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;    {</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;        </div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;        <span class="keywordtype">float</span> gain;</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;        <span class="keywordtype">float</span>* buff;</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;        </div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;        <span class="keywordtype">float</span> lastOut, lastIn;</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;        </div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;        uint32_t inPoint;</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;        </div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;        uint32_t maxDelay;</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;        </div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;        <span class="keywordtype">float</span> delay, inc, idx;</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;        </div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;        <span class="keywordtype">float</span> apInput;</div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;        </div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    } _tTapeDelay;</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;    </div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    <span class="keyword">typedef</span> _tTapeDelay* tTapeDelay;</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;    </div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttapedelay.html#ga11ce0d93fc719d09f9d2832086cb2e7f">tTapeDelay_init</a>        (tTapeDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> delay, uint32_t maxDelay, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttapedelay.html#ga2ceac9b3d3870c4a8ad0b9f8b795f829">tTapeDelay_initToPool</a>  (tTapeDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> delay, uint32_t maxDelay, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttapedelay.html#ga4150731cc6b415a799818e32eabe5cc2">tTapeDelay_free</a>        (tTapeDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;    </div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttapedelay.html#ga984e1e72996c5833bcd99c39bf189bcb">tTapeDelay_clear</a>       (tTapeDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttapedelay.html#ga99b94b13f3841e3b4b4915301854c03e">tTapeDelay_setDelay</a>    (tTapeDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> delay);</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__ttapedelay.html#ga5141a6c872bda215f52f93d480af75d4">tTapeDelay_getDelay</a>    (tTapeDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttapedelay.html#gae3e1efc7c18c73defe5cdb0b9fa18e30">tTapeDelay_tapIn</a>       (tTapeDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> in, uint32_t tapDelay);</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__ttapedelay.html#ga50a4fcd89b612b1633e47d14d9de8844">tTapeDelay_tapOut</a>      (tTapeDelay* <span class="keyword">const</span> d, <span class="keywordtype">float</span> tapDelay);</div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__ttapedelay.html#ga17c1f8359ab1b2fd9c38981ca7d018f1">tTapeDelay_addTo</a>       (tTapeDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> value, uint32_t tapDelay);</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__ttapedelay.html#ga3327247d0d5121629f841e355aa17780">tTapeDelay_tick</a>        (tTapeDelay* <span class="keyword">const</span>, <span class="keywordtype">float</span> sample);</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttapedelay.html#ga2207c4d6a5ea82102ec5e26dba957c66">tTapeDelay_incrementInPoint</a>(tTapeDelay* <span class="keyword">const</span> dl);</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__ttapedelay.html#gae22aee2d1f8edf088a5df1f4da2a2f9f">tTapeDelay_getLastOut</a>  (tTapeDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__ttapedelay.html#ga19c905254cabf4d51f863ee8d92804ec">tTapeDelay_getLastIn</a>   (tTapeDelay* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    </div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;    </div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tRingBuffer</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;    {</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;        </div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;        </div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;        <span class="keywordtype">float</span>* buffer;</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size;</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> pos;</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mask;</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;    } _tRingBuffer;</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;    </div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;    <span class="keyword">typedef</span> _tRingBuffer* tRingBuffer;</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;    </div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tringbuffer.html#gaa6e10d8ad89469f9868d1c8bf61c3369">tRingBuffer_init</a>     (tRingBuffer* <span class="keyword">const</span> ring, <span class="keywordtype">int</span> size, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tringbuffer.html#ga42849a91b882ee8231fe494617f8e441">tRingBuffer_initToPool</a>   (tRingBuffer* <span class="keyword">const</span> ring, <span class="keywordtype">int</span> size, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tringbuffer.html#gafbf4874d2fa48aff8b15919cbf85df5b">tRingBuffer_free</a>     (tRingBuffer* <span class="keyword">const</span> ring);</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;    </div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tringbuffer.html#ga9e95e5b6969ccde90391f5312f7cde69">tRingBuffer_push</a>     (tRingBuffer* <span class="keyword">const</span> ring, <span class="keywordtype">float</span> val);</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tringbuffer.html#gaef38082fdfabb5abb11d1d8d55c99f2a">tRingBuffer_getNewest</a>    (tRingBuffer* <span class="keyword">const</span> ring);</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tringbuffer.html#gaea32020dea77c0f0c65c3ea04460f598">tRingBuffer_getOldest</a>    (tRingBuffer* <span class="keyword">const</span> ring);</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tringbuffer.html#ga6925019a4a1418b61751da7240e489fd">tRingBuffer_get</a>      (tRingBuffer* <span class="keyword">const</span> ring, <span class="keywordtype">int</span> index);</div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tringbuffer.html#ga33bf20b1a1a3f1bb3195f0735050d560">tRingBuffer_getSize</a>  (tRingBuffer* <span class="keyword">const</span> ring);</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;    </div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;}</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160; </div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;<span class="preprocessor">#endif  // LEAF_DELAY_H_INCLUDED</span></div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160; </div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160; </div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="agroup__tallpassdelay_html_ga83b93819de2b2d825247c47b830d918c"><div class="ttname"><a href="group__tallpassdelay.html#ga83b93819de2b2d825247c47b830d918c">tAllpassDelay_setDelay</a></div><div class="ttdeci">void tAllpassDelay_setDelay(tAllpassDelay *const, float delay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:619</div></div>
+<div class="ttc" id="agroup__tallpassdelay_html_ga22a3124a087816518ae22e7dd57049dd"><div class="ttname"><a href="group__tallpassdelay.html#ga22a3124a087816518ae22e7dd57049dd">tAllpassDelay_clear</a></div><div class="ttdeci">void tAllpassDelay_clear(tAllpassDelay *const)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:587</div></div>
+<div class="ttc" id="agroup__thermitedelay_html_ga0965274c7d2b3b3af2ad88117476321f"><div class="ttname"><a href="group__thermitedelay.html#ga0965274c7d2b3b3af2ad88117476321f">tHermiteDelay_getDelay</a></div><div class="ttdeci">float tHermiteDelay_getDelay(tHermiteDelay *const dl)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:511</div></div>
+<div class="ttc" id="agroup__tallpassdelay_html_ga000dae89babb537265f9b56f8ce5560b"><div class="ttname"><a href="group__tallpassdelay.html#ga000dae89babb537265f9b56f8ce5560b">tAllpassDelay_tapIn</a></div><div class="ttdeci">void tAllpassDelay_tapIn(tAllpassDelay *const, float in, uint32_t tapDelay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:664</div></div>
+<div class="ttc" id="agroup__tdelay_html_ga22597de02abb939743a18ec38ff08a0f"><div class="ttname"><a href="group__tdelay.html#ga22597de02abb939743a18ec38ff08a0f">tDelay_init</a></div><div class="ttdeci">void tDelay_init(tDelay *const, uint32_t delay, uint32_t maxDelay, LEAF *const leaf)</div><div class="ttdoc">Initialize a tDelay to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:22</div></div>
+<div class="ttc" id="agroup__thermitedelay_html_ga758ba680ae090cc70bc5d9be12332bb9"><div class="ttname"><a href="group__thermitedelay.html#ga758ba680ae090cc70bc5d9be12332bb9">tHermiteDelay_tickOut</a></div><div class="ttdeci">float tHermiteDelay_tickOut(tHermiteDelay *const dl)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:435</div></div>
+<div class="ttc" id="agroup__tlineardelay_html_ga39f3f7376b5f38123678fea82c245368"><div class="ttname"><a href="group__tlineardelay.html#ga39f3f7376b5f38123678fea82c245368">tLinearDelay_addTo</a></div><div class="ttdeci">float tLinearDelay_addTo(tLinearDelay *const, float value, uint32_t tapDelay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:305</div></div>
+<div class="ttc" id="agroup__thermitedelay_html_ga76357c59563894699c6d89f958476151"><div class="ttname"><a href="group__thermitedelay.html#ga76357c59563894699c6d89f958476151">tHermiteDelay_setDelay</a></div><div class="ttdeci">void tHermiteDelay_setDelay(tHermiteDelay *const dl, float delay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:455</div></div>
+<div class="ttc" id="agroup__tallpassdelay_html_ga0348f7e531aa956c0e4f1e9eb3bb208a"><div class="ttname"><a href="group__tallpassdelay.html#ga0348f7e531aa956c0e4f1e9eb3bb208a">tAllpassDelay_tapOut</a></div><div class="ttdeci">float tAllpassDelay_tapOut(tAllpassDelay *const, uint32_t tapDelay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:651</div></div>
+<div class="ttc" id="agroup__tallpassdelay_html_gac68b64e119c315b545227a9404c2dedc"><div class="ttname"><a href="group__tallpassdelay.html#gac68b64e119c315b545227a9404c2dedc">tAllpassDelay_init</a></div><div class="ttdeci">void tAllpassDelay_init(tAllpassDelay *const, float delay, uint32_t maxDelay, LEAF *const leaf)</div><div class="ttdoc">Initialize a tAllpassDelay to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:547</div></div>
+<div class="ttc" id="agroup__tdelay_html_gacaaaaabc7ddb4259f05481f10ba5c403"><div class="ttname"><a href="group__tdelay.html#gacaaaaabc7ddb4259f05481f10ba5c403">tDelay_initToPool</a></div><div class="ttdeci">void tDelay_initToPool(tDelay *const, uint32_t delay, uint32_t maxDelay, tMempool *const)</div><div class="ttdoc">Initialize a tDelay to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:27</div></div>
+<div class="ttc" id="agroup__tlineardelay_html_ga890124d89744b9621ce802ad9e0e0759"><div class="ttname"><a href="group__tlineardelay.html#ga890124d89744b9621ce802ad9e0e0759">tLinearDelay_clear</a></div><div class="ttdeci">void tLinearDelay_clear(tLinearDelay *const dl)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:201</div></div>
+<div class="ttc" id="agroup__thermitedelay_html_ga6aba8a52c0d7a9349fca81e0b7ae05c0"><div class="ttname"><a href="group__thermitedelay.html#ga6aba8a52c0d7a9349fca81e0b7ae05c0">tHermiteDelay_tapOut</a></div><div class="ttdeci">float tHermiteDelay_tapOut(tHermiteDelay *const dl, uint32_t tapDelay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:474</div></div>
+<div class="ttc" id="agroup__tlineardelay_html_ga2f4a6a73eea16bb9ce3408b945ddb8f7"><div class="ttname"><a href="group__tlineardelay.html#ga2f4a6a73eea16bb9ce3408b945ddb8f7">tLinearDelay_tick</a></div><div class="ttdeci">float tLinearDelay_tick(tLinearDelay *const, float sample)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:210</div></div>
+<div class="ttc" id="agroup__tringbuffer_html_gafbf4874d2fa48aff8b15919cbf85df5b"><div class="ttname"><a href="group__tringbuffer.html#gafbf4874d2fa48aff8b15919cbf85df5b">tRingBuffer_free</a></div><div class="ttdeci">void tRingBuffer_free(tRingBuffer *const ring)</div><div class="ttdoc">Free a tRingBuffer from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:918</div></div>
+<div class="ttc" id="agroup__thermitedelay_html_ga5e23e3b036fc9a98494b853794cd8421"><div class="ttname"><a href="group__thermitedelay.html#ga5e23e3b036fc9a98494b853794cd8421">tHermiteDelay_getGain</a></div><div class="ttdeci">float tHermiteDelay_getGain(tHermiteDelay *const dl)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:536</div></div>
+<div class="ttc" id="agroup__thermitedelay_html_ga09adaf3acdcd2ad63ba36f97083ca633"><div class="ttname"><a href="group__thermitedelay.html#ga09adaf3acdcd2ad63ba36f97083ca633">tHermiteDelay_init</a></div><div class="ttdeci">void tHermiteDelay_init(tHermiteDelay *const dl, float delay, uint32_t maxDelay, LEAF *const leaf)</div><div class="ttdoc">Initialize a tHermiteDelay to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:354</div></div>
+<div class="ttc" id="agroup__tlineardelay_html_gaeb62896b4392a7f9ca1c557ccc859f4f"><div class="ttname"><a href="group__tlineardelay.html#gaeb62896b4392a7f9ca1c557ccc859f4f">tLinearDelay_free</a></div><div class="ttdeci">void tLinearDelay_free(tLinearDelay *const)</div><div class="ttdoc">Free a tLinearDelay from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:193</div></div>
+<div class="ttc" id="agroup__ttapedelay_html_ga99b94b13f3841e3b4b4915301854c03e"><div class="ttname"><a href="group__ttapedelay.html#ga99b94b13f3841e3b4b4915301854c03e">tTapeDelay_setDelay</a></div><div class="ttdeci">void tTapeDelay_setDelay(tTapeDelay *const, float delay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:812</div></div>
+<div class="ttc" id="agroup__thermitedelay_html_ga9d4b6554bac1a01fcbe1deaf04b02a15"><div class="ttname"><a href="group__thermitedelay.html#ga9d4b6554bac1a01fcbe1deaf04b02a15">tHermiteDelay_tickIn</a></div><div class="ttdeci">void tHermiteDelay_tickIn(tHermiteDelay *const dl, float input)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:425</div></div>
+<div class="ttc" id="agroup__ttapedelay_html_ga19c905254cabf4d51f863ee8d92804ec"><div class="ttname"><a href="group__ttapedelay.html#ga19c905254cabf4d51f863ee8d92804ec">tTapeDelay_getLastIn</a></div><div class="ttdeci">float tTapeDelay_getLastIn(tTapeDelay *const)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:877</div></div>
+<div class="ttc" id="agroup__tringbuffer_html_gaea32020dea77c0f0c65c3ea04460f598"><div class="ttname"><a href="group__tringbuffer.html#gaea32020dea77c0f0c65c3ea04460f598">tRingBuffer_getOldest</a></div><div class="ttdeci">float tRingBuffer_getOldest(tRingBuffer *const ring)</div><div class="ttdoc">Get the oldest value in the ring buffer.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:942</div></div>
+<div class="ttc" id="agroup__tringbuffer_html_ga33bf20b1a1a3f1bb3195f0735050d560"><div class="ttname"><a href="group__tringbuffer.html#ga33bf20b1a1a3f1bb3195f0735050d560">tRingBuffer_getSize</a></div><div class="ttdeci">int tRingBuffer_getSize(tRingBuffer *const ring)</div><div class="ttdoc">Get the size of the ring buffer.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:956</div></div>
+<div class="ttc" id="agroup__tdelay_html_gac4014573da91d0da9c8b7d48d515de5a"><div class="ttname"><a href="group__tdelay.html#gac4014573da91d0da9c8b7d48d515de5a">tDelay_addTo</a></div><div class="ttdeci">float tDelay_addTo(tDelay *const, float value, uint32_t tapDelay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:119</div></div>
+<div class="ttc" id="agroup__thermitedelay_html_ga6d3b413c7a3ac6addae36895e47ae3f4"><div class="ttname"><a href="group__thermitedelay.html#ga6d3b413c7a3ac6addae36895e47ae3f4">tHermiteDelay_initToPool</a></div><div class="ttdeci">void tHermiteDelay_initToPool(tHermiteDelay *const dl, float delay, uint32_t maxDelay, tMempool *const mp)</div><div class="ttdoc">Initialize a tHermiteDelay to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:359</div></div>
+<div class="ttc" id="agroup__tringbuffer_html_gaef38082fdfabb5abb11d1d8d55c99f2a"><div class="ttname"><a href="group__tringbuffer.html#gaef38082fdfabb5abb11d1d8d55c99f2a">tRingBuffer_getNewest</a></div><div class="ttdeci">float tRingBuffer_getNewest(tRingBuffer *const ring)</div><div class="ttdoc">Get the newest value in the ring buffer.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:935</div></div>
+<div class="ttc" id="agroup__ttapedelay_html_ga2207c4d6a5ea82102ec5e26dba957c66"><div class="ttname"><a href="group__ttapedelay.html#ga2207c4d6a5ea82102ec5e26dba957c66">tTapeDelay_incrementInPoint</a></div><div class="ttdeci">void tTapeDelay_incrementInPoint(tTapeDelay *const dl)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:798</div></div>
+<div class="ttc" id="agroup__tlineardelay_html_ga710bf54a2fec7f40dcd1c5b99a7b44fd"><div class="ttname"><a href="group__tlineardelay.html#ga710bf54a2fec7f40dcd1c5b99a7b44fd">tLinearDelay_getLastIn</a></div><div class="ttdeci">float tLinearDelay_getLastIn(tLinearDelay *const)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:329</div></div>
+<div class="ttc" id="agroup__ttapedelay_html_ga5141a6c872bda215f52f93d480af75d4"><div class="ttname"><a href="group__ttapedelay.html#ga5141a6c872bda215f52f93d480af75d4">tTapeDelay_getDelay</a></div><div class="ttdeci">float tTapeDelay_getDelay(tTapeDelay *const)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:865</div></div>
+<div class="ttc" id="agroup__thermitedelay_html_ga3b94d0644da904535f9f44481a9d2acd"><div class="ttname"><a href="group__thermitedelay.html#ga3b94d0644da904535f9f44481a9d2acd">tHermiteDelay_addTo</a></div><div class="ttdeci">float tHermiteDelay_addTo(tHermiteDelay *const dl, float value, uint32_t tapDelay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:499</div></div>
+<div class="ttc" id="agroup__tlineardelay_html_ga02ae58cb385f4d598bd4c57903dd365a"><div class="ttname"><a href="group__tlineardelay.html#ga02ae58cb385f4d598bd4c57903dd365a">tLinearDelay_setDelay</a></div><div class="ttdeci">void tLinearDelay_setDelay(tLinearDelay *const, float delay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:263</div></div>
+<div class="ttc" id="agroup__tlineardelay_html_ga16350a1576f9662c7ef8dade853c8f93"><div class="ttname"><a href="group__tlineardelay.html#ga16350a1576f9662c7ef8dade853c8f93">tLinearDelay_tapIn</a></div><div class="ttdeci">void tLinearDelay_tapIn(tLinearDelay *const, float in, uint32_t tapDelay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:293</div></div>
+<div class="ttc" id="agroup__ttapedelay_html_ga11ce0d93fc719d09f9d2832086cb2e7f"><div class="ttname"><a href="group__ttapedelay.html#ga11ce0d93fc719d09f9d2832086cb2e7f">tTapeDelay_init</a></div><div class="ttdeci">void tTapeDelay_init(tTapeDelay *const, float delay, uint32_t maxDelay, LEAF *const leaf)</div><div class="ttdoc">Initialize a tTapeDelay to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:720</div></div>
+<div class="ttc" id="agroup__tlineardelay_html_gaffbe3ac134a45c164eded9d4dc3304f7"><div class="ttname"><a href="group__tlineardelay.html#gaffbe3ac134a45c164eded9d4dc3304f7">tLinearDelay_init</a></div><div class="ttdeci">void tLinearDelay_init(tLinearDelay *const, float delay, uint32_t maxDelay, LEAF *const leaf)</div><div class="ttdoc">Initialize a tLinearDelay to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:163</div></div>
+<div class="ttc" id="agroup__ttapedelay_html_ga4150731cc6b415a799818e32eabe5cc2"><div class="ttname"><a href="group__ttapedelay.html#ga4150731cc6b415a799818e32eabe5cc2">tTapeDelay_free</a></div><div class="ttdeci">void tTapeDelay_free(tTapeDelay *const)</div><div class="ttdoc">Free a tTapeDelay from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:747</div></div>
+<div class="ttc" id="agroup__ttapedelay_html_ga984e1e72996c5833bcd99c39bf189bcb"><div class="ttname"><a href="group__ttapedelay.html#ga984e1e72996c5833bcd99c39bf189bcb">tTapeDelay_clear</a></div><div class="ttdeci">void tTapeDelay_clear(tTapeDelay *const)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:755</div></div>
+<div class="ttc" id="agroup__ttapedelay_html_gae3e1efc7c18c73defe5cdb0b9fa18e30"><div class="ttname"><a href="group__ttapedelay.html#gae3e1efc7c18c73defe5cdb0b9fa18e30">tTapeDelay_tapIn</a></div><div class="ttdeci">void tTapeDelay_tapIn(tTapeDelay *const, float in, uint32_t tapDelay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:841</div></div>
+<div class="ttc" id="agroup__ttapedelay_html_ga17c1f8359ab1b2fd9c38981ca7d018f1"><div class="ttname"><a href="group__ttapedelay.html#ga17c1f8359ab1b2fd9c38981ca7d018f1">tTapeDelay_addTo</a></div><div class="ttdeci">float tTapeDelay_addTo(tTapeDelay *const, float value, uint32_t tapDelay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:853</div></div>
+<div class="ttc" id="agroup__thermitedelay_html_gac47ba1719955d115217ce09c1dcd8aa3"><div class="ttname"><a href="group__thermitedelay.html#gac47ba1719955d115217ce09c1dcd8aa3">tHermiteDelay_clear</a></div><div class="ttdeci">void tHermiteDelay_clear(tHermiteDelay *const dl)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:393</div></div>
+<div class="ttc" id="agroup__tlineardelay_html_gac57ca1a251b96ec2aad7550049864b8c"><div class="ttname"><a href="group__tlineardelay.html#gac57ca1a251b96ec2aad7550049864b8c">tLinearDelay_getDelay</a></div><div class="ttdeci">float tLinearDelay_getDelay(tLinearDelay *const)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:317</div></div>
+<div class="ttc" id="agroup__thermitedelay_html_gabf6a43f6358e9fcfdb544bf6d93401d5"><div class="ttname"><a href="group__thermitedelay.html#gabf6a43f6358e9fcfdb544bf6d93401d5">tHermiteDelay_tick</a></div><div class="ttdeci">float tHermiteDelay_tick(tHermiteDelay *const dl, float input)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:402</div></div>
+<div class="ttc" id="agroup__tdelay_html_gab23b7051f02d2f7108939bdb034fe308"><div class="ttname"><a href="group__tdelay.html#gab23b7051f02d2f7108939bdb034fe308">tDelay_getLastIn</a></div><div class="ttdeci">float tDelay_getLastIn(tDelay *const)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:143</div></div>
+<div class="ttc" id="agroup__tdelay_html_ga2f3b8939018fd6972756a9137cab3567"><div class="ttname"><a href="group__tdelay.html#ga2f3b8939018fd6972756a9137cab3567">tDelay_tick</a></div><div class="ttdeci">float tDelay_tick(tDelay *const, float sample)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:67</div></div>
+<div class="ttc" id="agroup__tdelay_html_ga3e00ec62933b69e09d9eed5b7608e094"><div class="ttname"><a href="group__tdelay.html#ga3e00ec62933b69e09d9eed5b7608e094">tDelay_getLastOut</a></div><div class="ttdeci">float tDelay_getLastOut(tDelay *const)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:137</div></div>
+<div class="ttc" id="agroup__tdelay_html_gac96fb1d4b4997a3137f211b6f22e14ba"><div class="ttname"><a href="group__tdelay.html#gac96fb1d4b4997a3137f211b6f22e14ba">tDelay_free</a></div><div class="ttdeci">void tDelay_free(tDelay *const)</div><div class="ttdoc">Free a tDelay from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:50</div></div>
+<div class="ttc" id="agroup__tdelay_html_ga10738582699eb8e6ff892b4ba662c4ef"><div class="ttname"><a href="group__tdelay.html#ga10738582699eb8e6ff892b4ba662c4ef">tDelay_clear</a></div><div class="ttdeci">void tDelay_clear(tDelay *const)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:58</div></div>
+<div class="ttc" id="agroup__tringbuffer_html_gaa6e10d8ad89469f9868d1c8bf61c3369"><div class="ttname"><a href="group__tringbuffer.html#gaa6e10d8ad89469f9868d1c8bf61c3369">tRingBuffer_init</a></div><div class="ttdeci">void tRingBuffer_init(tRingBuffer *const ring, int size, LEAF *const leaf)</div><div class="ttdoc">Initialize a tRingBuffer to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:898</div></div>
+<div class="ttc" id="agroup__tallpassdelay_html_ga01be8563825023d090b5dbd750f2bba3"><div class="ttname"><a href="group__tallpassdelay.html#ga01be8563825023d090b5dbd750f2bba3">tAllpassDelay_getLastIn</a></div><div class="ttdeci">float tAllpassDelay_getLastIn(tAllpassDelay *const)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:700</div></div>
+<div class="ttc" id="agroup__tallpassdelay_html_gab6937352ad500b205c4fc5e822937735"><div class="ttname"><a href="group__tallpassdelay.html#gab6937352ad500b205c4fc5e822937735">tAllpassDelay_getLastOut</a></div><div class="ttdeci">float tAllpassDelay_getLastOut(tAllpassDelay *const)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:694</div></div>
+<div class="ttc" id="agroup__tdelay_html_ga94c07f9e8bfdaf402ebfbcd38d0150b5"><div class="ttname"><a href="group__tdelay.html#ga94c07f9e8bfdaf402ebfbcd38d0150b5">tDelay_tapOut</a></div><div class="ttdeci">float tDelay_tapOut(tDelay *const, uint32_t tapDelay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:94</div></div>
+<div class="ttc" id="agroup__tlineardelay_html_ga8f9c2a86422204321dbd56ba317a5662"><div class="ttname"><a href="group__tlineardelay.html#ga8f9c2a86422204321dbd56ba317a5662">tLinearDelay_tickIn</a></div><div class="ttdeci">void tLinearDelay_tickIn(tLinearDelay *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:234</div></div>
+<div class="ttc" id="agroup__tallpassdelay_html_gaae4b75bede117322eedbb806f92af672"><div class="ttname"><a href="group__tallpassdelay.html#gaae4b75bede117322eedbb806f92af672">tAllpassDelay_free</a></div><div class="ttdeci">void tAllpassDelay_free(tAllpassDelay *const)</div><div class="ttdoc">Free a tAllpassDelay from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:579</div></div>
+<div class="ttc" id="agroup__ttapedelay_html_gae22aee2d1f8edf088a5df1f4da2a2f9f"><div class="ttname"><a href="group__ttapedelay.html#gae22aee2d1f8edf088a5df1f4da2a2f9f">tTapeDelay_getLastOut</a></div><div class="ttdeci">float tTapeDelay_getLastOut(tTapeDelay *const)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:871</div></div>
+<div class="ttc" id="agroup__ttapedelay_html_ga50a4fcd89b612b1633e47d14d9de8844"><div class="ttname"><a href="group__ttapedelay.html#ga50a4fcd89b612b1633e47d14d9de8844">tTapeDelay_tapOut</a></div><div class="ttdeci">float tTapeDelay_tapOut(tTapeDelay *const d, float tapDelay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:818</div></div>
+<div class="ttc" id="agroup__tlineardelay_html_gad7f62bcf8446ee6a3987ffa3c01bf31c"><div class="ttname"><a href="group__tlineardelay.html#gad7f62bcf8446ee6a3987ffa3c01bf31c">tLinearDelay_tickOut</a></div><div class="ttdeci">float tLinearDelay_tickOut(tLinearDelay *const)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:244</div></div>
+<div class="ttc" id="agroup__thermitedelay_html_gab80cc6ce9c6b3909fd3427c4a75e42cb"><div class="ttname"><a href="group__thermitedelay.html#gab80cc6ce9c6b3909fd3427c4a75e42cb">tHermiteDelay_getLastOut</a></div><div class="ttdeci">float tHermiteDelay_getLastOut(tHermiteDelay *const dl)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:517</div></div>
+<div class="ttc" id="agroup__tlineardelay_html_ga6cb9f12ba9262386d8ecbf0dd8151b69"><div class="ttname"><a href="group__tlineardelay.html#ga6cb9f12ba9262386d8ecbf0dd8151b69">tLinearDelay_initToPool</a></div><div class="ttdeci">void tLinearDelay_initToPool(tLinearDelay *const, float delay, uint32_t maxDelay, tMempool *const)</div><div class="ttdoc">Initialize a tLinearDelay to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:168</div></div>
+<div class="ttc" id="agroup__tallpassdelay_html_ga6145fe6d2e4fd9e423d96725183498cc"><div class="ttname"><a href="group__tallpassdelay.html#ga6145fe6d2e4fd9e423d96725183498cc">tAllpassDelay_tick</a></div><div class="ttdeci">float tAllpassDelay_tick(tAllpassDelay *const, float sample)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:596</div></div>
+<div class="ttc" id="agroup__thermitedelay_html_gaf3e5014213692ec0574c67713d562b83"><div class="ttname"><a href="group__thermitedelay.html#gaf3e5014213692ec0574c67713d562b83">tHermiteDelay_free</a></div><div class="ttdeci">void tHermiteDelay_free(tHermiteDelay *const dl)</div><div class="ttdoc">Free a tHermiteDelay from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:384</div></div>
+<div class="ttc" id="agroup__ttapedelay_html_ga3327247d0d5121629f841e355aa17780"><div class="ttname"><a href="group__ttapedelay.html#ga3327247d0d5121629f841e355aa17780">tTapeDelay_tick</a></div><div class="ttdeci">float tTapeDelay_tick(tTapeDelay *const, float sample)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:766</div></div>
+<div class="ttc" id="agroup__tallpassdelay_html_ga7cda781e73a82d91e49f3ce5955cbd0a"><div class="ttname"><a href="group__tallpassdelay.html#ga7cda781e73a82d91e49f3ce5955cbd0a">tAllpassDelay_getDelay</a></div><div class="ttdeci">float tAllpassDelay_getDelay(tAllpassDelay *const)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:688</div></div>
+<div class="ttc" id="agroup__thermitedelay_html_gac650bbef7f3f47f75160e7b90e65bab5"><div class="ttname"><a href="group__thermitedelay.html#gac650bbef7f3f47f75160e7b90e65bab5">tHermiteDelay_tapIn</a></div><div class="ttdeci">void tHermiteDelay_tapIn(tHermiteDelay *const dl, float value, uint32_t tapDelay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:487</div></div>
+<div class="ttc" id="agroup__tdelay_html_ga5686cf386894dcee3c9241bef0ca4c41"><div class="ttname"><a href="group__tdelay.html#ga5686cf386894dcee3c9241bef0ca4c41">tDelay_getDelay</a></div><div class="ttdeci">uint32_t tDelay_getDelay(tDelay *const)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:131</div></div>
+<div class="ttc" id="agroup__thermitedelay_html_ga81d270041108d9af64f97c83cb096955"><div class="ttname"><a href="group__thermitedelay.html#ga81d270041108d9af64f97c83cb096955">tHermiteDelay_getLastIn</a></div><div class="ttdeci">float tHermiteDelay_getLastIn(tHermiteDelay *const dl)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:523</div></div>
+<div class="ttc" id="agroup__tlineardelay_html_ga8b5a87f1a03b6456cac6334085bf8be6"><div class="ttname"><a href="group__tlineardelay.html#ga8b5a87f1a03b6456cac6334085bf8be6">tLinearDelay_tapOut</a></div><div class="ttdeci">float tLinearDelay_tapOut(tLinearDelay *const, uint32_t tapDelay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:282</div></div>
+<div class="ttc" id="agroup__tringbuffer_html_ga6925019a4a1418b61751da7240e489fd"><div class="ttname"><a href="group__tringbuffer.html#ga6925019a4a1418b61751da7240e489fd">tRingBuffer_get</a></div><div class="ttdeci">float tRingBuffer_get(tRingBuffer *const ring, int index)</div><div class="ttdoc">Get the value at an index of the buffer.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:949</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<div class="ttc" id="agroup__tdelay_html_gadc5709febff70f7cbca38c2508103ac0"><div class="ttname"><a href="group__tdelay.html#gadc5709febff70f7cbca38c2508103ac0">tDelay_tapIn</a></div><div class="ttdeci">void tDelay_tapIn(tDelay *const, float in, uint32_t tapDelay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:107</div></div>
+<div class="ttc" id="agroup__tlineardelay_html_ga97b8b25f279b974a969dc0bd46b7547b"><div class="ttname"><a href="group__tlineardelay.html#ga97b8b25f279b974a969dc0bd46b7547b">tLinearDelay_getLastOut</a></div><div class="ttdeci">float tLinearDelay_getLastOut(tLinearDelay *const)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:323</div></div>
+<div class="ttc" id="agroup__tallpassdelay_html_ga9a65c14cde90540162d7fb94bedd4013"><div class="ttname"><a href="group__tallpassdelay.html#ga9a65c14cde90540162d7fb94bedd4013">tAllpassDelay_initToPool</a></div><div class="ttdeci">void tAllpassDelay_initToPool(tAllpassDelay *const, float delay, uint32_t maxDelay, tMempool *const)</div><div class="ttdoc">Initialize a tAllpassDelay to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:552</div></div>
+<div class="ttc" id="agroup__tringbuffer_html_ga9e95e5b6969ccde90391f5312f7cde69"><div class="ttname"><a href="group__tringbuffer.html#ga9e95e5b6969ccde90391f5312f7cde69">tRingBuffer_push</a></div><div class="ttdeci">void tRingBuffer_push(tRingBuffer *const ring, float val)</div><div class="ttdoc">Push a value to the ring buffer, overwriting the oldest value if the buffer is full.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:926</div></div>
+<div class="ttc" id="agroup__ttapedelay_html_ga2ceac9b3d3870c4a8ad0b9f8b795f829"><div class="ttname"><a href="group__ttapedelay.html#ga2ceac9b3d3870c4a8ad0b9f8b795f829">tTapeDelay_initToPool</a></div><div class="ttdeci">void tTapeDelay_initToPool(tTapeDelay *const, float delay, uint32_t maxDelay, tMempool *const)</div><div class="ttdoc">Initialize a tTapeDelay to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:725</div></div>
+<div class="ttc" id="agroup__tringbuffer_html_ga42849a91b882ee8231fe494617f8e441"><div class="ttname"><a href="group__tringbuffer.html#ga42849a91b882ee8231fe494617f8e441">tRingBuffer_initToPool</a></div><div class="ttdeci">void tRingBuffer_initToPool(tRingBuffer *const ring, int size, tMempool *const mempool)</div><div class="ttdoc">Initialize a tRingBuffer to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:903</div></div>
+<div class="ttc" id="agroup__tallpassdelay_html_ga25124f2fc78144daa86e0008417f410c"><div class="ttname"><a href="group__tallpassdelay.html#ga25124f2fc78144daa86e0008417f410c">tAllpassDelay_addTo</a></div><div class="ttdeci">float tAllpassDelay_addTo(tAllpassDelay *const, float value, uint32_t tapDelay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:676</div></div>
+<div class="ttc" id="agroup__tdelay_html_ga364a63687af1a63b7daa8a8431527a6a"><div class="ttname"><a href="group__tdelay.html#ga364a63687af1a63b7daa8a8431527a6a">tDelay_setDelay</a></div><div class="ttdeci">void tDelay_setDelay(tDelay *const, uint32_t delay)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:83</div></div>
+<div class="ttc" id="agroup__thermitedelay_html_ga8ff412ae2db6aa41afcf812db7c92057"><div class="ttname"><a href="group__thermitedelay.html#ga8ff412ae2db6aa41afcf812db7c92057">tHermiteDelay_setGain</a></div><div class="ttdeci">void tHermiteDelay_setGain(tHermiteDelay *const dl, float gain)</div><div class="ttdef"><b>Definition:</b> leaf-delay.c:529</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-distortion_8h_source.html
@@ -1,0 +1,282 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-distortion.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-distortion.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*==============================================================================</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> leaf-distortion.h</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> Created: 25 Oct 2019 10:23:28am</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> Author:  Matthew Wang</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> ==============================================================================*/</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#ifndef LEAF_DISTORTION_H_INCLUDED</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define LEAF_DISTORTION_H_INCLUDED</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;leaf-global.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tSampleReducer</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    {</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="keywordtype">float</span> invRatio;</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <span class="keywordtype">float</span> hold;</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        uint32_t count;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    } _tSampleReducer;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keyword">typedef</span> _tSampleReducer* tSampleReducer;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsamplereducer.html#ga4e2aa28e349ce74e863302442581d2c2">tSampleReducer_init</a>    (tSampleReducer* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsamplereducer.html#ga26f7d760728158cfac165e34ba7ed57f">tSampleReducer_initToPool</a>   (tSampleReducer* <span class="keyword">const</span>, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsamplereducer.html#gae63dd070a3dcf2c58e69f6ccb2e476c1">tSampleReducer_free</a>    (tSampleReducer* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    </div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tsamplereducer.html#gad2c3b27d31b01f37e3926ae2b7024a71">tSampleReducer_tick</a>    (tSampleReducer* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsamplereducer.html#ga21f7231417a132c6ec8c115c99582c68">tSampleReducer_setRatio</a> (tSampleReducer* <span class="keyword">const</span>, <span class="keywordtype">float</span> ratio);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tOversampler</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    {</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        <span class="keywordtype">int</span> ratio;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        <span class="keywordtype">float</span>* pCoeffs;</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <span class="keywordtype">float</span>* upState;</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        <span class="keywordtype">float</span>* downState;</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        <span class="keywordtype">int</span> numTaps;</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <span class="keywordtype">int</span> phaseLength;</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    } _tOversampler;</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keyword">typedef</span> _tOversampler* tOversampler;</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    </div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__toversampler.html#ga6c89c7875f0f5679ea59430d9a6c61e8">tOversampler_init</a>           (tOversampler* <span class="keyword">const</span>, <span class="keywordtype">int</span> order, <span class="keywordtype">int</span> extraQuality, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__toversampler.html#ga65ae3bd40ead130ffc4a81d47bdc61fe">tOversampler_initToPool</a>     (tOversampler* <span class="keyword">const</span>, <span class="keywordtype">int</span> order, <span class="keywordtype">int</span> extraQuality, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__toversampler.html#ga809c183c7443aa77ae6233e8c5276218">tOversampler_free</a>           (tOversampler* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    </div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__toversampler.html#ga274c2b3d123628c2ecbb3e77d0f9bd3b">tOversampler_upsample</a>       (tOversampler* <span class="keyword">const</span>, <span class="keywordtype">float</span> input, <span class="keywordtype">float</span>* output);</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__toversampler.html#ga36a0bca206cb86ac529495bf0f1e487d">tOversampler_downsample</a>     (tOversampler* <span class="keyword">const</span> os, <span class="keywordtype">float</span>* input);</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__toversampler.html#ga8be1bb7f1f763de87c6e02f02b5d977f">tOversampler_tick</a>           (tOversampler* <span class="keyword">const</span>, <span class="keywordtype">float</span> input, <span class="keywordtype">float</span>* oversample, <span class="keywordtype">float</span> (*effectTick)(<span class="keywordtype">float</span>));</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__toversampler.html#gaa511cdb16fe967cf40000127319d9f0c">tOversampler_getLatency</a>     (tOversampler* <span class="keyword">const</span> os);</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tLockhartWavefolder</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    {</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <span class="keywordtype">double</span> Ln1;</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        <span class="keywordtype">double</span> Fn1;</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        <span class="keywordtype">double</span> xn1;</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160; </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;        <span class="keywordtype">double</span> RL;</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        <span class="keywordtype">double</span> R;</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;        <span class="keywordtype">double</span> VT;</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <span class="keywordtype">double</span> Is;</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160; </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        <span class="keywordtype">double</span> a;</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        <span class="keywordtype">double</span> b;</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <span class="keywordtype">double</span> d;</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160; </div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        <span class="comment">// Antialiasing error threshold</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        <span class="keywordtype">double</span> AAthresh;</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        <span class="keywordtype">double</span> half_a;</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        <span class="keywordtype">double</span> longthing;</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160; </div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        <span class="keywordtype">double</span> LambertThresh, w, expw, p, r, s, myerr;</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        <span class="keywordtype">double</span> l;</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        <span class="keywordtype">double</span> u, Ln, Fn;</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        <span class="keywordtype">double</span> tempsDenom;</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        <span class="keywordtype">double</span> tempErrDenom;</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        <span class="keywordtype">double</span> tempOutDenom;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160; </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    } _tLockhartWavefolder;</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <span class="keyword">typedef</span> _tLockhartWavefolder* tLockhartWavefolder;</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlockhartwavefolder.html#gaaaccced3a742e99031ec5aa09604e376">tLockhartWavefolder_init</a>    (tLockhartWavefolder* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlockhartwavefolder.html#gab130d6243f2c51fe55f1e23e2a7f65ff">tLockhartWavefolder_initToPool</a>   (tLockhartWavefolder* <span class="keyword">const</span>, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlockhartwavefolder.html#ga1d6c822538b7fd10b36d137aec039e58">tLockhartWavefolder_free</a>    (tLockhartWavefolder* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tlockhartwavefolder.html#gaaa9ddfb64262aa97804144c96d2d400f">tLockhartWavefolder_tick</a>    (tLockhartWavefolder* <span class="keyword">const</span>, <span class="keywordtype">float</span> samp);</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160; </div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160; </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tCrusher</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    {</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        </div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        </div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        <span class="keywordtype">float</span> srr;</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        <span class="keywordtype">float</span> mult, div;</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        <span class="keywordtype">float</span> rnd;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        </div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        uint32_t  op; <span class="comment">//which bitwise operation (0-7)</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        </div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        <span class="keywordtype">float</span> gain;</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        tSampleReducer sReducer;</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        </div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    } _tCrusher;</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    </div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="keyword">typedef</span> _tCrusher* tCrusher;</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    </div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcrusher.html#gafd391e483eb15ab1e220867b2bc37537">tCrusher_init</a>    (tCrusher* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcrusher.html#ga7ee1052fbd8183d322cc6513e563c0af">tCrusher_initToPool</a>   (tCrusher* <span class="keyword">const</span>, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcrusher.html#gaa9dbb4f12f21f015b4f322be6de511c6">tCrusher_free</a>    (tCrusher* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    </div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tcrusher.html#gabc887b903fc48ac650174402a8c74533">tCrusher_tick</a>    (tCrusher* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcrusher.html#gaaf3aba23313797b2e72384d9bd26bc4f">tCrusher_setOperation</a> (tCrusher* <span class="keyword">const</span>, <span class="keywordtype">float</span> op);</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcrusher.html#gaef65521d221f1bd3654793ae9441cd45">tCrusher_setQuality</a> (tCrusher* <span class="keyword">const</span>, <span class="keywordtype">float</span> val);</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcrusher.html#ga0e5c86da40325cd15ef654c4558d663b">tCrusher_setRound</a> (tCrusher* <span class="keyword">const</span>, <span class="keywordtype">float</span> rnd);</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcrusher.html#ga34c59ae78019c8d903b051fc61b4d019">tCrusher_setSamplingRatio</a> (tCrusher* <span class="keyword">const</span>, <span class="keywordtype">float</span> ratio);</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    </div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    </div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;}</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; </div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="preprocessor">#endif // LEAF_DISTORTION_H_INCLUDED</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160; </div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160; </div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="agroup__tsamplereducer_html_ga4e2aa28e349ce74e863302442581d2c2"><div class="ttname"><a href="group__tsamplereducer.html#ga4e2aa28e349ce74e863302442581d2c2">tSampleReducer_init</a></div><div class="ttdeci">void tSampleReducer_init(tSampleReducer *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a tSampleReducer to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:25</div></div>
+<div class="ttc" id="agroup__tlockhartwavefolder_html_gab130d6243f2c51fe55f1e23e2a7f65ff"><div class="ttname"><a href="group__tlockhartwavefolder.html#gab130d6243f2c51fe55f1e23e2a7f65ff">tLockhartWavefolder_initToPool</a></div><div class="ttdeci">void tLockhartWavefolder_initToPool(tLockhartWavefolder *const, tMempool *const)</div><div class="ttdoc">Initialize a tLockhartWavefolder to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:321</div></div>
+<div class="ttc" id="agroup__tsamplereducer_html_ga26f7d760728158cfac165e34ba7ed57f"><div class="ttname"><a href="group__tsamplereducer.html#ga26f7d760728158cfac165e34ba7ed57f">tSampleReducer_initToPool</a></div><div class="ttdeci">void tSampleReducer_initToPool(tSampleReducer *const, tMempool *const)</div><div class="ttdoc">Initialize a tSampleReducer to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:30</div></div>
+<div class="ttc" id="agroup__tlockhartwavefolder_html_gaaa9ddfb64262aa97804144c96d2d400f"><div class="ttname"><a href="group__tlockhartwavefolder.html#gaaa9ddfb64262aa97804144c96d2d400f">tLockhartWavefolder_tick</a></div><div class="ttdeci">float tLockhartWavefolder_tick(tLockhartWavefolder *const, float samp)</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:462</div></div>
+<div class="ttc" id="agroup__toversampler_html_ga6c89c7875f0f5679ea59430d9a6c61e8"><div class="ttname"><a href="group__toversampler.html#ga6c89c7875f0f5679ea59430d9a6c61e8">tOversampler_init</a></div><div class="ttdeci">void tOversampler_init(tOversampler *const, int order, int extraQuality, LEAF *const leaf)</div><div class="ttdoc">Initialize a tOversampler to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:75</div></div>
+<div class="ttc" id="agroup__tcrusher_html_ga34c59ae78019c8d903b051fc61b4d019"><div class="ttname"><a href="group__tcrusher.html#ga34c59ae78019c8d903b051fc61b4d019">tCrusher_setSamplingRatio</a></div><div class="ttdeci">void tCrusher_setSamplingRatio(tCrusher *const, float ratio)</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:634</div></div>
+<div class="ttc" id="agroup__tcrusher_html_ga0e5c86da40325cd15ef654c4558d663b"><div class="ttname"><a href="group__tcrusher.html#ga0e5c86da40325cd15ef654c4558d663b">tCrusher_setRound</a></div><div class="ttdeci">void tCrusher_setRound(tCrusher *const, float rnd)</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:628</div></div>
+<div class="ttc" id="agroup__tcrusher_html_gabc887b903fc48ac650174402a8c74533"><div class="ttname"><a href="group__tcrusher.html#gabc887b903fc48ac650174402a8c74533">tCrusher_tick</a></div><div class="ttdeci">float tCrusher_tick(tCrusher *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:585</div></div>
+<div class="ttc" id="agroup__tlockhartwavefolder_html_gaaaccced3a742e99031ec5aa09604e376"><div class="ttname"><a href="group__tlockhartwavefolder.html#gaaaccced3a742e99031ec5aa09604e376">tLockhartWavefolder_init</a></div><div class="ttdeci">void tLockhartWavefolder_init(tLockhartWavefolder *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a tLockhartWavefolder to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:316</div></div>
+<div class="ttc" id="agroup__tcrusher_html_gaaf3aba23313797b2e72384d9bd26bc4f"><div class="ttname"><a href="group__tcrusher.html#gaaf3aba23313797b2e72384d9bd26bc4f">tCrusher_setOperation</a></div><div class="ttdeci">void tCrusher_setOperation(tCrusher *const, float op)</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:609</div></div>
+<div class="ttc" id="agroup__tsamplereducer_html_ga21f7231417a132c6ec8c115c99582c68"><div class="ttname"><a href="group__tsamplereducer.html#ga21f7231417a132c6ec8c115c99582c68">tSampleReducer_setRatio</a></div><div class="ttdeci">void tSampleReducer_setRatio(tSampleReducer *const, float ratio)</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:62</div></div>
+<div class="ttc" id="agroup__toversampler_html_ga809c183c7443aa77ae6233e8c5276218"><div class="ttname"><a href="group__toversampler.html#ga809c183c7443aa77ae6233e8c5276218">tOversampler_free</a></div><div class="ttdeci">void tOversampler_free(tOversampler *const)</div><div class="ttdoc">Free a tOversampler from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:101</div></div>
+<div class="ttc" id="agroup__tcrusher_html_ga7ee1052fbd8183d322cc6513e563c0af"><div class="ttname"><a href="group__tcrusher.html#ga7ee1052fbd8183d322cc6513e563c0af">tCrusher_initToPool</a></div><div class="ttdeci">void tCrusher_initToPool(tCrusher *const, tMempool *const)</div><div class="ttdoc">Initialize a tCrusher to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:563</div></div>
+<div class="ttc" id="agroup__toversampler_html_ga36a0bca206cb86ac529495bf0f1e487d"><div class="ttname"><a href="group__toversampler.html#ga36a0bca206cb86ac529495bf0f1e487d">tOversampler_downsample</a></div><div class="ttdeci">float tOversampler_downsample(tOversampler *const os, float *input)</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:217</div></div>
+<div class="ttc" id="agroup__toversampler_html_ga274c2b3d123628c2ecbb3e77d0f9bd3b"><div class="ttname"><a href="group__toversampler.html#ga274c2b3d123628c2ecbb3e77d0f9bd3b">tOversampler_upsample</a></div><div class="ttdeci">void tOversampler_upsample(tOversampler *const, float input, float *output)</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:124</div></div>
+<div class="ttc" id="agroup__toversampler_html_ga8be1bb7f1f763de87c6e02f02b5d977f"><div class="ttname"><a href="group__toversampler.html#ga8be1bb7f1f763de87c6e02f02b5d977f">tOversampler_tick</a></div><div class="ttdeci">float tOversampler_tick(tOversampler *const, float input, float *oversample, float(*effectTick)(float))</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:110</div></div>
+<div class="ttc" id="agroup__tcrusher_html_gaa9dbb4f12f21f015b4f322be6de511c6"><div class="ttname"><a href="group__tcrusher.html#gaa9dbb4f12f21f015b4f322be6de511c6">tCrusher_free</a></div><div class="ttdeci">void tCrusher_free(tCrusher *const)</div><div class="ttdoc">Free a tCrusher from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:577</div></div>
+<div class="ttc" id="agroup__tsamplereducer_html_gad2c3b27d31b01f37e3926ae2b7024a71"><div class="ttname"><a href="group__tsamplereducer.html#gad2c3b27d31b01f37e3926ae2b7024a71">tSampleReducer_tick</a></div><div class="ttdeci">float tSampleReducer_tick(tSampleReducer *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:48</div></div>
+<div class="ttc" id="agroup__tcrusher_html_gaef65521d221f1bd3654793ae9441cd45"><div class="ttname"><a href="group__tcrusher.html#gaef65521d221f1bd3654793ae9441cd45">tCrusher_setQuality</a></div><div class="ttdeci">void tCrusher_setQuality(tCrusher *const, float val)</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:616</div></div>
+<div class="ttc" id="agroup__toversampler_html_ga65ae3bd40ead130ffc4a81d47bdc61fe"><div class="ttname"><a href="group__toversampler.html#ga65ae3bd40ead130ffc4a81d47bdc61fe">tOversampler_initToPool</a></div><div class="ttdeci">void tOversampler_initToPool(tOversampler *const, int order, int extraQuality, tMempool *const)</div><div class="ttdoc">Initialize a tOversampler to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:80</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<div class="ttc" id="agroup__toversampler_html_gaa511cdb16fe967cf40000127319d9f0c"><div class="ttname"><a href="group__toversampler.html#gaa511cdb16fe967cf40000127319d9f0c">tOversampler_getLatency</a></div><div class="ttdeci">int tOversampler_getLatency(tOversampler *const os)</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:301</div></div>
+<div class="ttc" id="agroup__tlockhartwavefolder_html_ga1d6c822538b7fd10b36d137aec039e58"><div class="ttname"><a href="group__tlockhartwavefolder.html#ga1d6c822538b7fd10b36d137aec039e58">tLockhartWavefolder_free</a></div><div class="ttdeci">void tLockhartWavefolder_free(tLockhartWavefolder *const)</div><div class="ttdoc">Free a tLockhartWavefolder from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:366</div></div>
+<div class="ttc" id="agroup__tcrusher_html_gafd391e483eb15ab1e220867b2bc37537"><div class="ttname"><a href="group__tcrusher.html#gafd391e483eb15ab1e220867b2bc37537">tCrusher_init</a></div><div class="ttdeci">void tCrusher_init(tCrusher *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a tCrusher to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:558</div></div>
+<div class="ttc" id="agroup__tsamplereducer_html_gae63dd070a3dcf2c58e69f6ccb2e476c1"><div class="ttname"><a href="group__tsamplereducer.html#gae63dd070a3dcf2c58e69f6ccb2e476c1">tSampleReducer_free</a></div><div class="ttdeci">void tSampleReducer_free(tSampleReducer *const)</div><div class="ttdoc">Free a tSampleReducer from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-distortion.c:41</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-dynamics_8h_source.html
@@ -1,0 +1,234 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-dynamics.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-dynamics.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*==============================================================================</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> leaf-dynamics.h</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> Created: 30 Nov 2018 11:57:05am</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> Author:  airship</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> ==============================================================================*/</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#ifndef LEAF_DYNAMICS_H_INCLUDED</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define LEAF_DYNAMICS_H_INCLUDED</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160; </div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    </div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;leaf-global.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;leaf-analysis.h&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tCompressor</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    {</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        </div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        <span class="keywordtype">float</span> tauAttack, tauRelease;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="keywordtype">float</span> T, R, W, M; <span class="comment">// Threshold, compression Ratio, decibel Width of knee transition, decibel Make-up gain</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        </div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <span class="keywordtype">float</span> x_G[2], y_G[2], x_T[2], y_T[2];</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        </div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <span class="keywordtype">int</span> isActive;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    } _tCompressor;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keyword">typedef</span> _tCompressor* tCompressor;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcompressor.html#ga831af7fdc81866f746f3ec5552589e05">tCompressor_init</a>        (tCompressor* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcompressor.html#ga305d1f036bb4844429687afdc1a8053c">tCompressor_initToPool</a>  (tCompressor* <span class="keyword">const</span>, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcompressor.html#gaa3369bf1a4eef5d5bce64db6bf962618">tCompressor_free</a>        (tCompressor* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tcompressor.html#ga129d5624d13d79f9ad7bb29c84ee0c42">tCompressor_tick</a>        (tCompressor* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    </div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tFeedbackLeveler</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    {</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        </div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        <span class="keywordtype">float</span> targetLevel;    <span class="comment">// target power level</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        <span class="keywordtype">float</span> strength;        <span class="comment">// how strongly level difference affects the VCA</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        <span class="keywordtype">int</span>      mode;            <span class="comment">// 0 for upwards limiting only, 1 for biderctional limiting</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <span class="keywordtype">float</span> curr;</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        tPowerFollower pwrFlw;    <span class="comment">// internal power follower needed for level tracking</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        </div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    } _tFeedbackLeveler;</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="keyword">typedef</span> _tFeedbackLeveler* tFeedbackLeveler;</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    </div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tfeedbackleveler.html#gad47edde6cb4edcbb2c7b987169fa3894">tFeedbackLeveler_init</a>           (tFeedbackLeveler* <span class="keyword">const</span>, <span class="keywordtype">float</span> targetLevel, <span class="keywordtype">float</span> factor, <span class="keywordtype">float</span> strength, <span class="keywordtype">int</span> mode, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tfeedbackleveler.html#gae7b25faea2961dcf8fc010073f27da01">tFeedbackLeveler_initToPool</a>     (tFeedbackLeveler* <span class="keyword">const</span>, <span class="keywordtype">float</span> targetLevel, <span class="keywordtype">float</span> factor, <span class="keywordtype">float</span> strength, <span class="keywordtype">int</span> mode, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tfeedbackleveler.html#ga821078d9cde9ae2f2c4e78ff3c3b78e6">tFeedbackLeveler_free</a>           (tFeedbackLeveler* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tfeedbackleveler.html#ga5c882adb387363a1aaf9ab89856f22a2">tFeedbackLeveler_tick</a>           (tFeedbackLeveler* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tfeedbackleveler.html#gab451b93e5c3676fae53e44d19f8d949b">tFeedbackLeveler_sample</a>         (tFeedbackLeveler* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tfeedbackleveler.html#ga4668b5d237be33237f8e4bf0870301f7">tFeedbackLeveler_setTargetLevel</a> (tFeedbackLeveler* <span class="keyword">const</span>, <span class="keywordtype">float</span> TargetLevel);</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tfeedbackleveler.html#gad1a82f7a3dbd65e3310a7d345b2e4243">tFeedbackLeveler_setFactor</a>      (tFeedbackLeveler* <span class="keyword">const</span>, <span class="keywordtype">float</span> factor);</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tfeedbackleveler.html#ga08681640f1442f016e6bcf4d05542aa9">tFeedbackLeveler_setMode</a>        (tFeedbackLeveler* <span class="keyword">const</span>, <span class="keywordtype">int</span> mode); <span class="comment">// 0 for upwards limiting only, 1 for biderctional limiting</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tfeedbackleveler.html#gad7bf90dd14e80f6683859aeac2e62e80">tFeedbackLeveler_setStrength</a>    (tFeedbackLeveler* <span class="keyword">const</span>, <span class="keywordtype">float</span> strength);</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    </div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tThreshold</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    {</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        </div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        <span class="keywordtype">float</span> highThresh, lowThresh;</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        <span class="keywordtype">int</span> currentValue;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    } _tThreshold;</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160; </div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <span class="keyword">typedef</span> _tThreshold* tThreshold;</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160; </div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tthreshold.html#gac5e076322e91d0fc51bb78f670ae6654">tThreshold_init</a>        (tThreshold* <span class="keyword">const</span>, <span class="keywordtype">float</span> low, <span class="keywordtype">float</span> high, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tthreshold.html#ga8929d72fab02f08b94568f2b26b26218">tThreshold_initToPool</a>  (tThreshold* <span class="keyword">const</span>, <span class="keywordtype">float</span> low, <span class="keywordtype">float</span> high, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tthreshold.html#ga559cdc78b961faa603a1fbe53b419ab6">tThreshold_free</a>        (tThreshold* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160; </div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    <span class="keywordtype">int</span>    <a class="code" href="group__tthreshold.html#ga2e7f0159dfd715e5f7c7076d73bd0015">tThreshold_tick</a>        (tThreshold* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keywordtype">void</span>   <a class="code" href="group__tthreshold.html#ga20ecba1e635f7ae39b7f3509ea0e2e28">tThreshold_setLow</a>        (tThreshold* <span class="keyword">const</span>, <span class="keywordtype">float</span> low);</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="keywordtype">void</span>   <a class="code" href="group__tthreshold.html#gad9e0d9f799c1c63cb6c6847518ee6796">tThreshold_setHigh</a>       (tThreshold* <span class="keyword">const</span>, <span class="keywordtype">float</span> high);</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160; </div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160; </div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160; </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160; </div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;}</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160; </div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="preprocessor">#endif // LEAF_DYNAMICS_H_INCLUDED</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160; </div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="agroup__tfeedbackleveler_html_ga821078d9cde9ae2f2c4e78ff3c3b78e6"><div class="ttname"><a href="group__tfeedbackleveler.html#ga821078d9cde9ae2f2c4e78ff3c3b78e6">tFeedbackLeveler_free</a></div><div class="ttdeci">void tFeedbackLeveler_free(tFeedbackLeveler *const)</div><div class="ttdoc">Free a tFeedbackLeveler from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:143</div></div>
+<div class="ttc" id="agroup__tfeedbackleveler_html_ga08681640f1442f016e6bcf4d05542aa9"><div class="ttname"><a href="group__tfeedbackleveler.html#ga08681640f1442f016e6bcf4d05542aa9">tFeedbackLeveler_setMode</a></div><div class="ttdeci">void tFeedbackLeveler_setMode(tFeedbackLeveler *const, int mode)</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:164</div></div>
+<div class="ttc" id="agroup__tfeedbackleveler_html_ga5c882adb387363a1aaf9ab89856f22a2"><div class="ttname"><a href="group__tfeedbackleveler.html#ga5c882adb387363a1aaf9ab89856f22a2">tFeedbackLeveler_tick</a></div><div class="ttdeci">float tFeedbackLeveler_tick(tFeedbackLeveler *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:170</div></div>
+<div class="ttc" id="agroup__tcompressor_html_ga305d1f036bb4844429687afdc1a8053c"><div class="ttname"><a href="group__tcompressor.html#ga305d1f036bb4844429687afdc1a8053c">tCompressor_initToPool</a></div><div class="ttdeci">void tCompressor_initToPool(tCompressor *const, tMempool *const)</div><div class="ttdoc">Initialize a tCompressor to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:49</div></div>
+<div class="ttc" id="agroup__tthreshold_html_ga8929d72fab02f08b94568f2b26b26218"><div class="ttname"><a href="group__tthreshold.html#ga8929d72fab02f08b94568f2b26b26218">tThreshold_initToPool</a></div><div class="ttdeci">void tThreshold_initToPool(tThreshold *const, float low, float high, tMempool *const)</div><div class="ttdoc">Initialize a tThreshold to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:199</div></div>
+<div class="ttc" id="agroup__tfeedbackleveler_html_gab451b93e5c3676fae53e44d19f8d949b"><div class="ttname"><a href="group__tfeedbackleveler.html#gab451b93e5c3676fae53e44d19f8d949b">tFeedbackLeveler_sample</a></div><div class="ttdeci">float tFeedbackLeveler_sample(tFeedbackLeveler *const)</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:179</div></div>
+<div class="ttc" id="agroup__tcompressor_html_ga129d5624d13d79f9ad7bb29c84ee0c42"><div class="ttname"><a href="group__tcompressor.html#ga129d5624d13d79f9ad7bb29c84ee0c42">tCompressor_tick</a></div><div class="ttdeci">float tCompressor_tick(tCompressor *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:73</div></div>
+<div class="ttc" id="agroup__tfeedbackleveler_html_gae7b25faea2961dcf8fc010073f27da01"><div class="ttname"><a href="group__tfeedbackleveler.html#gae7b25faea2961dcf8fc010073f27da01">tFeedbackLeveler_initToPool</a></div><div class="ttdeci">void tFeedbackLeveler_initToPool(tFeedbackLeveler *const, float targetLevel, float factor, float strength, int mode, tMempool *const)</div><div class="ttdoc">Initialize a tFeedbackLeveler to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:130</div></div>
+<div class="ttc" id="agroup__tthreshold_html_gac5e076322e91d0fc51bb78f670ae6654"><div class="ttname"><a href="group__tthreshold.html#gac5e076322e91d0fc51bb78f670ae6654">tThreshold_init</a></div><div class="ttdeci">void tThreshold_init(tThreshold *const, float low, float high, LEAF *const leaf)</div><div class="ttdoc">Initialize a tThreshold to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:194</div></div>
+<div class="ttc" id="agroup__tfeedbackleveler_html_gad47edde6cb4edcbb2c7b987169fa3894"><div class="ttname"><a href="group__tfeedbackleveler.html#gad47edde6cb4edcbb2c7b987169fa3894">tFeedbackLeveler_init</a></div><div class="ttdeci">void tFeedbackLeveler_init(tFeedbackLeveler *const, float targetLevel, float factor, float strength, int mode, LEAF *const leaf)</div><div class="ttdoc">Initialize a tFeedbackLeveler to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:125</div></div>
+<div class="ttc" id="agroup__tfeedbackleveler_html_gad7bf90dd14e80f6683859aeac2e62e80"><div class="ttname"><a href="group__tfeedbackleveler.html#gad7bf90dd14e80f6683859aeac2e62e80">tFeedbackLeveler_setStrength</a></div><div class="ttdeci">void tFeedbackLeveler_setStrength(tFeedbackLeveler *const, float strength)</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:151</div></div>
+<div class="ttc" id="agroup__tcompressor_html_gaa3369bf1a4eef5d5bce64db6bf962618"><div class="ttname"><a href="group__tcompressor.html#gaa3369bf1a4eef5d5bce64db6bf962618">tCompressor_free</a></div><div class="ttdeci">void tCompressor_free(tCompressor *const)</div><div class="ttdoc">Free a tCompressor from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:66</div></div>
+<div class="ttc" id="agroup__tthreshold_html_ga20ecba1e635f7ae39b7f3509ea0e2e28"><div class="ttname"><a href="group__tthreshold.html#ga20ecba1e635f7ae39b7f3509ea0e2e28">tThreshold_setLow</a></div><div class="ttdeci">void tThreshold_setLow(tThreshold *const, float low)</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:234</div></div>
+<div class="ttc" id="agroup__tfeedbackleveler_html_gad1a82f7a3dbd65e3310a7d345b2e4243"><div class="ttname"><a href="group__tfeedbackleveler.html#gad1a82f7a3dbd65e3310a7d345b2e4243">tFeedbackLeveler_setFactor</a></div><div class="ttdeci">void tFeedbackLeveler_setFactor(tFeedbackLeveler *const, float factor)</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:158</div></div>
+<div class="ttc" id="agroup__tthreshold_html_gad9e0d9f799c1c63cb6c6847518ee6796"><div class="ttname"><a href="group__tthreshold.html#gad9e0d9f799c1c63cb6c6847518ee6796">tThreshold_setHigh</a></div><div class="ttdeci">void tThreshold_setHigh(tThreshold *const, float high)</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:241</div></div>
+<div class="ttc" id="agroup__tthreshold_html_ga2e7f0159dfd715e5f7c7076d73bd0015"><div class="ttname"><a href="group__tthreshold.html#ga2e7f0159dfd715e5f7c7076d73bd0015">tThreshold_tick</a></div><div class="ttdeci">int tThreshold_tick(tThreshold *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:218</div></div>
+<div class="ttc" id="agroup__tcompressor_html_ga831af7fdc81866f746f3ec5552589e05"><div class="ttname"><a href="group__tcompressor.html#ga831af7fdc81866f746f3ec5552589e05">tCompressor_init</a></div><div class="ttdeci">void tCompressor_init(tCompressor *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a tCompressor to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:44</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<div class="ttc" id="agroup__tfeedbackleveler_html_ga4668b5d237be33237f8e4bf0870301f7"><div class="ttname"><a href="group__tfeedbackleveler.html#ga4668b5d237be33237f8e4bf0870301f7">tFeedbackLeveler_setTargetLevel</a></div><div class="ttdeci">void tFeedbackLeveler_setTargetLevel(tFeedbackLeveler *const, float TargetLevel)</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:186</div></div>
+<div class="ttc" id="agroup__tthreshold_html_ga559cdc78b961faa603a1fbe53b419ab6"><div class="ttname"><a href="group__tthreshold.html#ga559cdc78b961faa603a1fbe53b419ab6">tThreshold_free</a></div><div class="ttdeci">void tThreshold_free(tThreshold *const)</div><div class="ttdoc">Free a tThreshold from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-dynamics.c:211</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-effects_8h_source.html
@@ -1,0 +1,553 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-effects.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-effects.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*==============================================================================</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> leaf-effects.h</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> ==============================================================================*/</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#ifndef LEAF_EFFECTS_H_INCLUDED</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#define LEAF_EFFECTS_H_INCLUDED</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;leaf-global.h&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;leaf-dynamics.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;leaf-analysis.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;leaf-envelopes.h&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#define NUM_TALKBOX_PARAM 4</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tTalkbox</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    {</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        </div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <span class="keywordtype">float</span> param[NUM_TALKBOX_PARAM];</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <span class="keywordtype">int</span> bufsize;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keywordtype">float</span>* car0;</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <span class="keywordtype">float</span>* car1;</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        <span class="keywordtype">float</span>* window;</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <span class="keywordtype">float</span>* buf0;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        <span class="keywordtype">float</span>* buf1;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <span class="keywordtype">float</span>* k;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <span class="keywordtype">float</span> warpFactor;</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        int32_t warpOn;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <span class="keywordtype">int</span> freeze;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        <span class="keywordtype">float</span> emphasis;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        int32_t K, N, O, pos;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="keywordtype">float</span> wet, dry, FX;</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        <span class="keywordtype">float</span> d0, d1, d2, d3, d4;</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        <span class="keywordtype">float</span> u0, u1, u2, u3, u4;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="keywordtype">float</span> G;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        <span class="keywordtype">double</span>* dl;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        <span class="keywordtype">double</span>* Rt;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        </div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    } _tTalkbox;</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    </div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keyword">typedef</span> _tTalkbox* tTalkbox;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    </div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttalkbox.html#ga18a1ddfa2f61e60d6ebef394d65f08c6">tTalkbox_init</a>           (tTalkbox* <span class="keyword">const</span>, <span class="keywordtype">int</span> bufsize, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttalkbox.html#ga8f10b76186682cda5b4a546df84c35e3">tTalkbox_initToPool</a>     (tTalkbox* <span class="keyword">const</span>, <span class="keywordtype">int</span> bufsize, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttalkbox.html#ga5f1f85266d1c3e968b9f277fd6530e61">tTalkbox_free</a>           (tTalkbox* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    </div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__ttalkbox.html#gab45e4c3be7561f157b4ab47de8d939db">tTalkbox_tick</a>           (tTalkbox* <span class="keyword">const</span>, <span class="keywordtype">float</span> synth, <span class="keywordtype">float</span> voice);</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__ttalkbox.html#gafd5193315cf309b8c7607795bc5ad995">tTalkbox_tickFrozen</a>     (tTalkbox* <span class="keyword">const</span> voc, <span class="keywordtype">float</span> synth, <span class="keywordtype">float</span> voice);</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttalkbox.html#gabdfa3fca0a50509623d4c57d851f3315">tTalkbox_update</a>         (tTalkbox* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttalkbox.html#ga361f8a48a8ac118804852e99022a2144">tTalkbox_suspend</a>        (tTalkbox* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttalkbox.html#gaaba470c9d175927857b9befd5e903da8">tTalkbox_lpcDurbin</a>      (<span class="keywordtype">float</span> *r, <span class="keywordtype">int</span> p, <span class="keywordtype">float</span> *k, <span class="keywordtype">float</span> *g);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="keywordtype">void</span>    tTalkbox_lpc            (<span class="keywordtype">float</span> *buf, <span class="keywordtype">float</span> *car, <span class="keywordtype">double</span>* dl, <span class="keywordtype">double</span>* Rt, int32_t n, int32_t o, <span class="keywordtype">float</span> warp, <span class="keywordtype">int</span> warpOn, <span class="keywordtype">float</span> *k, <span class="keywordtype">int</span> freeze, <span class="keywordtype">float</span> *G);</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttalkbox.html#gae0e16e4627683deeb7d849f9f6b13367">tTalkbox_setQuality</a>     (tTalkbox* <span class="keyword">const</span>, <span class="keywordtype">float</span> quality);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttalkbox.html#ga15d263af4269739442c7187a403996e4">tTalkbox_setWarpFactor</a>  (tTalkbox* <span class="keyword">const</span> voc, <span class="keywordtype">float</span> warp);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttalkbox.html#ga37320fd9c7f3c4d065fa4ae27431bc61">tTalkbox_setWarpOn</a>      (tTalkbox* <span class="keyword">const</span> voc, <span class="keywordtype">float</span> warpOn);</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttalkbox.html#ga9345cb1b1bdb78e2c264dc711c29050b">tTalkbox_setFreeze</a>      (tTalkbox* <span class="keyword">const</span> voc, <span class="keywordtype">float</span> freeze);</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttalkbox.html#ga881ae8cbae41f12f2fb4a7446d73a6be">tTalkbox_warpedAutocorrelate</a>    (<span class="keywordtype">float</span> * x, <span class="keywordtype">double</span>* dl, <span class="keywordtype">double</span>* Rt, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> L, <span class="keywordtype">float</span> * R, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> P, <span class="keywordtype">float</span> lambda);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    </div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160; </div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tTalkboxFloat</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;      {</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;            </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;          tMempool mempool;</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;          </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;          <span class="keywordtype">float</span> param[NUM_TALKBOX_PARAM];</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160; </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;          <span class="keywordtype">int</span> bufsize;</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;          <span class="keywordtype">float</span>* car0;</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;          <span class="keywordtype">float</span>* car1;</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;          <span class="keywordtype">float</span>* window;</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;          <span class="keywordtype">float</span>* buf0;</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;          <span class="keywordtype">float</span>* buf1;</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;          <span class="keywordtype">float</span>* k;</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;          <span class="keywordtype">float</span> warpFactor;</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;          int32_t warpOn;</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;          <span class="keywordtype">int</span> freeze;</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;          <span class="keywordtype">float</span> emphasis;</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;          int32_t K, N, O, pos;</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;          <span class="keywordtype">float</span> wet, dry, FX;</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;          <span class="keywordtype">float</span> d0, d1, d2, d3, d4;</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;          <span class="keywordtype">float</span> u0, u1, u2, u3, u4;</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;          <span class="keywordtype">float</span> G;</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;          <span class="keywordtype">float</span>* dl;</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;          <span class="keywordtype">float</span>* Rt;</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160; </div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;      } _tTalkboxFloat;</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160; </div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;      <span class="keyword">typedef</span> _tTalkboxFloat* tTalkboxFloat;</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160; </div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;      <span class="keywordtype">void</span>    <a class="code" href="group__ttalkboxfloat.html#ga6d29a46ee0c008f30e008f7634524e10">tTalkboxFloat_init</a>           (tTalkboxFloat* <span class="keyword">const</span>, <span class="keywordtype">int</span> bufsize, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;      <span class="keywordtype">void</span>    <a class="code" href="group__ttalkboxfloat.html#ga10ab230431665f2b621fd0b21b366e02">tTalkboxFloat_initToPool</a>     (tTalkboxFloat* <span class="keyword">const</span>, <span class="keywordtype">int</span> bufsize, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;      <span class="keywordtype">void</span>    <a class="code" href="group__ttalkboxfloat.html#gabbd684033b9869aaac6eb57a694904d9">tTalkboxFloat_free</a>           (tTalkboxFloat* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160; </div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;      <span class="keywordtype">float</span>   <a class="code" href="group__ttalkboxfloat.html#ga83b3a42d6348a062eaed4eace6fa9461">tTalkboxFloat_tick</a>           (tTalkboxFloat* <span class="keyword">const</span>, <span class="keywordtype">float</span> synth, <span class="keywordtype">float</span> voice);</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;      <span class="keywordtype">float</span>     <a class="code" href="group__ttalkboxfloat.html#ga7d3e3bc6ecf3e1bd9c1ebe5f717ba06b">tTalkboxFloat_tickFrozen</a>        (tTalkboxFloat* <span class="keyword">const</span> voc, <span class="keywordtype">float</span> synth, <span class="keywordtype">float</span> voice);</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;      <span class="keywordtype">void</span>    <a class="code" href="group__ttalkboxfloat.html#ga994b70735a97c25f30a7f26981c3334e">tTalkboxFloat_update</a>         (tTalkboxFloat* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;      <span class="keywordtype">void</span>    <a class="code" href="group__ttalkboxfloat.html#gac8456d804e084f2c4938d1255c723cfc">tTalkboxFloat_suspend</a>        (tTalkboxFloat* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;      <span class="keywordtype">void</span>    <a class="code" href="group__ttalkboxfloat.html#ga667dcd77640c7a6b2fa3995d6d2190be">tTalkboxFloat_lpcDurbin</a>      (<span class="keywordtype">float</span> *r, <span class="keywordtype">int</span> p, <span class="keywordtype">float</span> *k, <span class="keywordtype">float</span> *g);</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;      <span class="keywordtype">void</span>  tTalkboxFloat_lpc           (<span class="keywordtype">float</span> *buf, <span class="keywordtype">float</span> *car, <span class="keywordtype">float</span>* dl, <span class="keywordtype">float</span>* Rt, int32_t n, int32_t o, <span class="keywordtype">float</span> warp, <span class="keywordtype">int</span> warpOn, <span class="keywordtype">float</span> *k, <span class="keywordtype">int</span> freeze, <span class="keywordtype">float</span> *G);</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;      <span class="keywordtype">void</span>    <a class="code" href="group__ttalkboxfloat.html#ga9f9fbc4bd62efcd9502a0217740e5366">tTalkboxFloat_setQuality</a>     (tTalkboxFloat* <span class="keyword">const</span>, <span class="keywordtype">float</span> quality);</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;      <span class="keywordtype">void</span>  <a class="code" href="group__ttalkboxfloat.html#gad01eb39b5892107d65a3590f3ea69fec">tTalkboxFloat_setWarpFactor</a> (tTalkboxFloat* <span class="keyword">const</span> voc, <span class="keywordtype">float</span> warp);</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;      <span class="keywordtype">void</span>  tTalkboxFloat_setWarpOn     (tTalkboxFloat* <span class="keyword">const</span> voc, <span class="keywordtype">int</span> warpOn);</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;      <span class="keywordtype">void</span>  tTalkboxFloat_setFreeze     (tTalkboxFloat* <span class="keyword">const</span> voc, <span class="keywordtype">int</span> freeze);</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;      <span class="keywordtype">void</span>  <a class="code" href="group__ttalkboxfloat.html#gadcbdd544e5d6a3d5b46cead0044dfcfa">tTalkboxFloat_warpedAutocorrelate</a>   (<span class="keywordtype">float</span> * x, <span class="keywordtype">float</span>* dl, <span class="keywordtype">float</span>* Rt, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> L, <span class="keywordtype">float</span> * R, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> P, <span class="keywordtype">float</span> lambda);</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;      <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160; </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160; </div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<span class="preprocessor">#define NUM_VOCODER_PARAM 8</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;<span class="preprocessor">#define NBANDS 16</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    </div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tVocoder</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    {</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;        </div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        </div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <span class="keywordtype">float</span> param[NUM_VOCODER_PARAM];</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        </div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        <span class="keywordtype">float</span> gain;         <span class="comment">//output level</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        <span class="keywordtype">float</span> thru, high;   <span class="comment">//hf thru</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        <span class="keywordtype">float</span> kout;         <span class="comment">//downsampled output</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        int32_t  kval;      <span class="comment">//downsample counter</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        int32_t  nbnd;      <span class="comment">//number of bands</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;        </div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        <span class="comment">//filter coeffs and buffers - seems it&#39;s faster to leave this global than make local copy</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        <span class="keywordtype">float</span> f[NBANDS][13]; <span class="comment">//[0-8][0 1 2 | 0 1 2 3 | 0 1 2 3 | val rate]</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;        </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    } _tVocoder;</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;    </div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    <span class="keyword">typedef</span> _tVocoder* tVocoder;</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;    </div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tvocoder.html#ga687d4d2f952579f5df6d9c280ef9e0eb">tVocoder_init</a>           (tVocoder* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tvocoder.html#gad625ecd68ef438606e5a82fe11a3484f">tVocoder_initToPool</a>     (tVocoder* <span class="keyword">const</span>, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tvocoder.html#gaa54cfb22d5fab7c12d70d7e5fd4a0cd0">tVocoder_free</a>           (tVocoder* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    </div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tvocoder.html#gaf809f26807d22a348156bbcced99ae91">tVocoder_tick</a>           (tVocoder* <span class="keyword">const</span>, <span class="keywordtype">float</span> synth, <span class="keywordtype">float</span> voice);</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tvocoder.html#ga6ae72878b932a14fac7503e4f3226312">tVocoder_update</a>         (tVocoder* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tvocoder.html#gae4c7fd1376d81bcfce49f4a8a407ec16">tVocoder_suspend</a>        (tVocoder* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    </div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tRosenbergGlottalPulse</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    {</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        </div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        <span class="keywordtype">float</span> phase;</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        <span class="keywordtype">float</span> openLength;</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;        <span class="keywordtype">float</span> pulseLength;</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        <span class="keywordtype">float</span> invPulseLengthMinusOpenLength;</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        <span class="keywordtype">float</span> freq;</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;        <span class="keywordtype">float</span> inc;</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    } _tRosenbergGlottalPulse;</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160; </div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    <span class="keyword">typedef</span> _tRosenbergGlottalPulse* tRosenbergGlottalPulse;</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160; </div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__trosenbergglottalpulse.html#gabc9f965e57fb4f4d19078e735ceeef41">tRosenbergGlottalPulse_init</a>           (tRosenbergGlottalPulse* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__trosenbergglottalpulse.html#ga337b99d9c13835ad7d44dc496de018d6">tRosenbergGlottalPulse_initToPool</a>     (tRosenbergGlottalPulse* <span class="keyword">const</span>, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__trosenbergglottalpulse.html#gac23f160eacd6098f0be43ef2ad50adba">tRosenbergGlottalPulse_free</a>           (tRosenbergGlottalPulse* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160; </div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__trosenbergglottalpulse.html#gaa13740e5d8e0cab56e61eb0cb242fabe">tRosenbergGlottalPulse_tick</a>           (tRosenbergGlottalPulse* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__trosenbergglottalpulse.html#gadbf13772282402d02eb7623fda03d496">tRosenbergGlottalPulse_tickHQ</a>           (tRosenbergGlottalPulse* <span class="keyword">const</span> gp);</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    <span class="keywordtype">void</span>   <a class="code" href="group__trosenbergglottalpulse.html#ga199fe228e20140018c943b72347ba434">tRosenbergGlottalPulse_setFreq</a>           (tRosenbergGlottalPulse* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160; </div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    <span class="keywordtype">void</span>   <a class="code" href="group__trosenbergglottalpulse.html#ga703d56589fa0121e978609f5315ea1e7">tRosenbergGlottalPulse_setOpenLength</a>           (tRosenbergGlottalPulse* <span class="keyword">const</span>, <span class="keywordtype">float</span> openLength);</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160; </div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    <span class="keywordtype">void</span>   <a class="code" href="group__trosenbergglottalpulse.html#ga7339007dec7bc4164d850e63d57a75ec">tRosenbergGlottalPulse_setPulseLength</a>           (tRosenbergGlottalPulse* <span class="keyword">const</span>, <span class="keywordtype">float</span> pulseLength);</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    <span class="keywordtype">void</span>   <a class="code" href="group__trosenbergglottalpulse.html#ga0ebbc0ca662434c8685cbca2e44f656a">tRosenbergGlottalPulse_setOpenLengthAndPulseLength</a>           (tRosenbergGlottalPulse* <span class="keyword">const</span> gp, <span class="keywordtype">float</span> openLength, <span class="keywordtype">float</span> pulseLength);</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    </div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;<span class="comment">//#define LOOPSIZE (2048*2)      // (4096*2) // loop size must be power of two</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;<span class="comment">//#define LOOPMASK (LOOPSIZE - 1)</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;<span class="preprocessor">#define PITCHFACTORDEFAULT 1.0f</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;<span class="preprocessor">#define INITPERIOD 64.0f</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;<span class="comment">//#define MAXPERIOD (float)((LOOPSIZE - w-&gt;blocksize) * 0.8f)</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;<span class="preprocessor">#define MINPERIOD 8.0f</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;    </div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tSOLAD</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;    {</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;        </div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;        tAttackDetection ad;</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;        tHighpass hp;</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;        </div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;        <span class="keywordtype">int</span> loopSize;</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        uint16_t timeindex;              <span class="comment">// current reference time, write index</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;        uint16_t blocksize;              <span class="comment">// signal input / output block size</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;        <span class="keywordtype">float</span> pitchfactor;        <span class="comment">// pitch factor between 0.25 and 4</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        <span class="keywordtype">float</span> readlag;            <span class="comment">// read pointer&#39;s lag behind write pointer</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        <span class="keywordtype">float</span> period;             <span class="comment">// period length in input signal</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;        <span class="keywordtype">float</span> jump;               <span class="comment">// read pointer jump length and direction</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;        <span class="keywordtype">float</span> xfadelength;        <span class="comment">// crossfade length expressed at input sample rate</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;        <span class="keywordtype">float</span> xfadevalue;         <span class="comment">// crossfade phase and value</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;        </div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        <span class="keywordtype">float</span>* delaybuf;</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        </div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;    } _tSOLAD;</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    </div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;    <span class="keyword">typedef</span> _tSOLAD* tSOLAD;</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    </div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    <span class="keywordtype">void</span>    tSOLAD_init             (tSOLAD* <span class="keyword">const</span>, <span class="keywordtype">int</span> loopSize, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    <span class="keywordtype">void</span>    tSOLAD_initToPool       (tSOLAD* <span class="keyword">const</span>, <span class="keywordtype">int</span> loopSize, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsolad.html#ga2e51fbab57ccc810832c23dc3286efb1">tSOLAD_free</a>             (tSOLAD* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;    </div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;    <span class="comment">// send one block of input samples, receive one block of output samples</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    <span class="keywordtype">void</span>    tSOLAD_ioSamples        (tSOLAD *w, <span class="keywordtype">float</span>* in, <span class="keywordtype">float</span>* out, <span class="keywordtype">int</span> blocksize);</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    <span class="comment">// set periodicity analysis data</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsolad.html#ga6ff97dea55ab5fa791fca6a6c4cacdbc">tSOLAD_setPeriod</a>        (tSOLAD *w, <span class="keywordtype">float</span> period);</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;    <span class="comment">// set pitch factor between 0.25 and 4</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsolad.html#ga1b3ffa561a92ba5f64e51eeb670e16ac">tSOLAD_setPitchFactor</a>   (tSOLAD *w, <span class="keywordtype">float</span> pitchfactor);</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;    <span class="comment">// force readpointer lag</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsolad.html#ga92607d41da7f4fbf93386e071806f788">tSOLAD_setReadLag</a>       (tSOLAD *w, <span class="keywordtype">float</span> readlag);</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    <span class="comment">// reset state variables</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsolad.html#ga69b20c8acef373a2590f4e3138d1d4d8">tSOLAD_resetState</a>       (tSOLAD *w);</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    </div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tPitchShift</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;    {</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;        </div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        _tDualPitchDetector* pd;</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        tSOLAD sola;</div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;        </div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        <span class="keywordtype">float</span>* outBuffer;</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;        <span class="keywordtype">float</span>* inBuffer;</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;        <span class="keywordtype">int</span> bufSize;</div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;        <span class="keywordtype">int</span> index;</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;        </div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;        <span class="keywordtype">float</span> pickiness;</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;    } _tPitchShift;</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;    </div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;    <span class="keyword">typedef</span> _tPitchShift* tPitchShift;</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;    </div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;    <span class="keywordtype">void</span>    tPitchShift_init (tPitchShift* <span class="keyword">const</span>, tDualPitchDetector* <span class="keyword">const</span>, <span class="keywordtype">int</span> bufSize, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    <span class="keywordtype">void</span>    tPitchShift_initToPool (tPitchShift* <span class="keyword">const</span>, tDualPitchDetector* <span class="keyword">const</span>, <span class="keywordtype">int</span> bufSize, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpitchshift.html#gaa11d2bf41d69ed89fe86f5840fe1b612">tPitchShift_free</a> (tPitchShift* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;    </div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;    <span class="keywordtype">void</span>    tPitchShift_shiftBy (tPitchShift* <span class="keyword">const</span>, <span class="keywordtype">float</span> factor, <span class="keywordtype">float</span>* in, <span class="keywordtype">float</span>* out);</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;    <span class="keywordtype">void</span>    tPitchShift_shiftTo (tPitchShift* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span>* in, <span class="keywordtype">float</span>* out);</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    </div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    <span class="keywordtype">void</span>    tPitchShift_setPickiness (tPitchShift* <span class="keyword">const</span>, <span class="keywordtype">float</span> p);</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;    </div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tSimpleRetune</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;    {</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;        </div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;        tDualPitchDetector dp;</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;        <span class="keywordtype">float</span> minInputFreq, maxInputFreq;</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;        </div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;        tPitchShift* ps;</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;        </div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;        <span class="keywordtype">float</span>* inBuffer;</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;        <span class="keywordtype">float</span>* outBuffer;</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;        <span class="keywordtype">int</span> bufSize;</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;        <span class="keywordtype">int</span> index;</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;        </div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;        void (*shiftFunction)(tPitchShift* <span class="keyword">const</span>, float, <span class="keywordtype">float</span>*, <span class="keywordtype">float</span>*);</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;        </div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;        <span class="keywordtype">float</span>* shiftValues;</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;        <span class="keywordtype">int</span> numVoices;</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;    } _tSimpleRetune;</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;    </div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;    <span class="keyword">typedef</span> _tSimpleRetune* tSimpleRetune;</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    </div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;    <span class="keywordtype">void</span>    tSimpleRetune_init                  (tSimpleRetune* <span class="keyword">const</span>, <span class="keywordtype">int</span> numVoices, <span class="keywordtype">float</span> minInputFreq, <span class="keywordtype">float</span> maxInputFreq, <span class="keywordtype">int</span> bufSize, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    <span class="keywordtype">void</span>    tSimpleRetune_initToPool            (tSimpleRetune* <span class="keyword">const</span>, <span class="keywordtype">int</span> numVoices, <span class="keywordtype">float</span> minInputFreq, <span class="keywordtype">float</span> maxInputFreq, <span class="keywordtype">int</span> bufSize, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimpleretune.html#ga3a1f081437fbb7ad75b27fb09c39f096">tSimpleRetune_free</a>                  (tSimpleRetune* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;    </div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tsimpleretune.html#ga641d532934fde59a0489e7fecd28961c">tSimpleRetune_tick</a>                  (tSimpleRetune* <span class="keyword">const</span>, <span class="keywordtype">float</span> sample);</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;    <span class="keywordtype">void</span>    tSimpleRetune_setMode               (tSimpleRetune* <span class="keyword">const</span>, <span class="keywordtype">int</span> mode);</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimpleretune.html#ga7ad6f40fd922775510221226892d8839">tSimpleRetune_setNumVoices</a>          (tSimpleRetune* <span class="keyword">const</span>, <span class="keywordtype">int</span> numVoices);</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;    <span class="keywordtype">void</span>    tSimpleRetune_setPickiness          (tSimpleRetune* <span class="keyword">const</span>, <span class="keywordtype">float</span> p);</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;    <span class="keywordtype">void</span>    tSimpleRetune_tuneVoices            (tSimpleRetune* <span class="keyword">const</span>, <span class="keywordtype">float</span>* t);</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;    <span class="keywordtype">void</span>    tSimpleRetune_tuneVoice             (tSimpleRetune* <span class="keyword">const</span>, <span class="keywordtype">int</span> voice, <span class="keywordtype">float</span> t);</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    <span class="keywordtype">float</span>   tSimpleRetune_getInputFrequency     (tSimpleRetune* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;    </div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tRetune</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;    {</div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;        </div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;        tDualPitchDetector dp;</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;        <span class="keywordtype">float</span> minInputFreq, maxInputFreq;</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;        </div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;        tPitchShift* ps;</div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;        </div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;        <span class="keywordtype">float</span>* pdBuffer;</div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;        <span class="keywordtype">float</span>* inBuffer;</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;        <span class="keywordtype">float</span>** outBuffers;</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;        <span class="keywordtype">int</span> bufSize;</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;        <span class="keywordtype">int</span> index;</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;        </div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;        <span class="keywordtype">float</span>* output;</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;        </div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;        void (*shiftFunction)(tPitchShift* <span class="keyword">const</span>, float, <span class="keywordtype">float</span>*, <span class="keywordtype">float</span>*);</div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;        </div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;        <span class="keywordtype">float</span>* shiftValues;</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;        <span class="keywordtype">int</span> numVoices;</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;    } _tRetune;</div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;    </div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;    <span class="keyword">typedef</span> _tRetune* tRetune;</div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;    </div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;    <span class="keywordtype">void</span>    tRetune_init                (tRetune* <span class="keyword">const</span>, <span class="keywordtype">int</span> numVoices, <span class="keywordtype">float</span> minInputFreq, <span class="keywordtype">float</span> maxInputFreq,  <span class="keywordtype">int</span> bufSize, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;    <span class="keywordtype">void</span>    tRetune_initToPool          (tRetune* <span class="keyword">const</span>,  <span class="keywordtype">int</span> numVoices, <span class="keywordtype">float</span> minInputFreq, <span class="keywordtype">float</span> maxInputFreq, <span class="keywordtype">int</span> bufSize, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tretune.html#ga9054a73b7bb08d4721b109b7c2c94042">tRetune_free</a>                (tRetune* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;    </div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;    <span class="keywordtype">float</span>*  <a class="code" href="group__tretune.html#gae5ed387f5a71deac43ab89b8f8986060">tRetune_tick</a>                (tRetune* <span class="keyword">const</span>, <span class="keywordtype">float</span> sample);</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;    <span class="keywordtype">void</span>    tRetune_setMode             (tRetune* <span class="keyword">const</span>, <span class="keywordtype">int</span> mode);</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tretune.html#ga126c94026f5b022a4e50dec9a5b8e294">tRetune_setNumVoices</a>        (tRetune* <span class="keyword">const</span>, <span class="keywordtype">int</span> numVoices);</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    <span class="keywordtype">void</span>    tRetune_setPickiness        (tRetune* <span class="keyword">const</span>, <span class="keywordtype">float</span> p);</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    <span class="keywordtype">void</span>    tRetune_tuneVoices          (tRetune* <span class="keyword">const</span>, <span class="keywordtype">float</span>* t);</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;    <span class="keywordtype">void</span>    tRetune_tuneVoice           (tRetune* <span class="keyword">const</span>, <span class="keywordtype">int</span> voice, <span class="keywordtype">float</span> t);</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;    <span class="keywordtype">float</span>   tRetune_getInputFrequency   (tRetune* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    </div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;    </div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tFormantShifter</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;    {</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;        </div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;        <span class="keywordtype">int</span> ford;</div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;        <span class="keywordtype">float</span> falph;</div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;        <span class="keywordtype">float</span> flamb;</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;        <span class="keywordtype">float</span>* fk;</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;        <span class="keywordtype">float</span>* fb;</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;        <span class="keywordtype">float</span>* fc;</div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;        <span class="keywordtype">float</span>* frb;</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;        <span class="keywordtype">float</span>* frc;</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;        <span class="keywordtype">float</span>* fsig;</div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;        <span class="keywordtype">float</span>* fsmooth;</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;        <span class="keywordtype">float</span> fhp;</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;        <span class="keywordtype">float</span> flp;</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;        <span class="keywordtype">float</span> flpa;</div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;        <span class="keywordtype">float</span>* fbuff;</div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;        <span class="keywordtype">float</span>* ftvec;</div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;        <span class="keywordtype">float</span> fmute;</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;        <span class="keywordtype">float</span> fmutealph;</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cbi;</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;        <span class="keywordtype">float</span> shiftFactor;</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;        <span class="keywordtype">float</span> intensity, invIntensity;</div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;        tHighpass hp;</div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;        tHighpass hp2;</div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;        tFeedbackLeveler fbl1;</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;        tFeedbackLeveler fbl2;</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;    } _tFormantShifter;</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;    </div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;    <span class="keyword">typedef</span> _tFormantShifter* tFormantShifter;</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;    </div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tformantshifter.html#ga42890ba9ac29c3f200d617647fcd321b">tFormantShifter_init</a>            (tFormantShifter* <span class="keyword">const</span>, <span class="keywordtype">int</span> order, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tformantshifter.html#gad79a5e074c0f99ac7c7af3d530fdd214">tFormantShifter_initToPool</a>      (tFormantShifter* <span class="keyword">const</span>, <span class="keywordtype">int</span> order, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tformantshifter.html#gab4d9198bc06d81125663dd3da00fbf47">tFormantShifter_free</a>            (tFormantShifter* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;    </div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tformantshifter.html#ga6e02d685feef8233a0949e19718b2884">tFormantShifter_tick</a>            (tFormantShifter* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tformantshifter.html#ga20c5dcc163a256e5b7792b1cd4788d59">tFormantShifter_remove</a>          (tFormantShifter* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tformantshifter.html#gaa1697aa8f5614be25546943c7a3c6f46">tFormantShifter_add</a>             (tFormantShifter* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tformantshifter.html#gadf13d01a3ed6e8941d93e521769f5447">tFormantShifter_ioSamples</a>       (tFormantShifter* <span class="keyword">const</span>, <span class="keywordtype">float</span>* in, <span class="keywordtype">float</span>* out, <span class="keywordtype">int</span> size, <span class="keywordtype">float</span> fwarp);</div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tformantshifter.html#ga3f5493a4bce93a71124aed52d374cfdc">tFormantShifter_setShiftFactor</a>  (tFormantShifter* <span class="keyword">const</span>, <span class="keywordtype">float</span> shiftFactor);</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tformantshifter.html#gaf975f968b7428a7d744b2493c68267d4">tFormantShifter_setIntensity</a>    (tFormantShifter* <span class="keyword">const</span>, <span class="keywordtype">float</span> intensity);</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;    </div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;    </div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;}</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160; </div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;<span class="preprocessor">#endif  // LEAF_EFFECTS_H_INCLUDED</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160; </div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;<span class="comment">//==============================================================================</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="agroup__ttalkboxfloat_html_gadcbdd544e5d6a3d5b46cead0044dfcfa"><div class="ttname"><a href="group__ttalkboxfloat.html#gadcbdd544e5d6a3d5b46cead0044dfcfa">tTalkboxFloat_warpedAutocorrelate</a></div><div class="ttdeci">void tTalkboxFloat_warpedAutocorrelate(float *x, float *dl, float *Rt, unsigned int L, float *R, unsigned int P, float lambda)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:475</div></div>
+<div class="ttc" id="agroup__tformantshifter_html_ga20c5dcc163a256e5b7792b1cd4788d59"><div class="ttname"><a href="group__tformantshifter.html#ga20c5dcc163a256e5b7792b1cd4788d59">tFormantShifter_remove</a></div><div class="ttdeci">float tFormantShifter_remove(tFormantShifter *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1783</div></div>
+<div class="ttc" id="agroup__ttalkboxfloat_html_ga6d29a46ee0c008f30e008f7634524e10"><div class="ttname"><a href="group__ttalkboxfloat.html#ga6d29a46ee0c008f30e008f7634524e10">tTalkboxFloat_init</a></div><div class="ttdeci">void tTalkboxFloat_init(tTalkboxFloat *const, int bufsize, LEAF *const leaf)</div><div class="ttdoc">Initialize a tTalkboxFloat to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:367</div></div>
+<div class="ttc" id="agroup__tretune_html_ga126c94026f5b022a4e50dec9a5b8e294"><div class="ttname"><a href="group__tretune.html#ga126c94026f5b022a4e50dec9a5b8e294">tRetune_setNumVoices</a></div><div class="ttdeci">void tRetune_setNumVoices(tRetune *const, int numVoices)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1674</div></div>
+<div class="ttc" id="agroup__tformantshifter_html_gab4d9198bc06d81125663dd3da00fbf47"><div class="ttname"><a href="group__tformantshifter.html#gab4d9198bc06d81125663dd3da00fbf47">tFormantShifter_free</a></div><div class="ttdeci">void tFormantShifter_free(tFormantShifter *const)</div><div class="ttdoc">Free a tFormantShifter from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1758</div></div>
+<div class="ttc" id="agroup__tretune_html_ga9054a73b7bb08d4721b109b7c2c94042"><div class="ttname"><a href="group__tretune.html#ga9054a73b7bb08d4721b109b7c2c94042">tRetune_free</a></div><div class="ttdeci">void tRetune_free(tRetune *const)</div><div class="ttdoc">Free a tRetune from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1615</div></div>
+<div class="ttc" id="agroup__trosenbergglottalpulse_html_gadbf13772282402d02eb7623fda03d496"><div class="ttname"><a href="group__trosenbergglottalpulse.html#gadbf13772282402d02eb7623fda03d496">tRosenbergGlottalPulse_tickHQ</a></div><div class="ttdeci">float tRosenbergGlottalPulse_tickHQ(tRosenbergGlottalPulse *const gp)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:945</div></div>
+<div class="ttc" id="agroup__tformantshifter_html_ga42890ba9ac29c3f200d617647fcd321b"><div class="ttname"><a href="group__tformantshifter.html#ga42890ba9ac29c3f200d617647fcd321b">tFormantShifter_init</a></div><div class="ttdeci">void tFormantShifter_init(tFormantShifter *const, int order, LEAF *const leaf)</div><div class="ttdoc">Initialize a tFormantShifter to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1716</div></div>
+<div class="ttc" id="agroup__ttalkbox_html_ga881ae8cbae41f12f2fb4a7446d73a6be"><div class="ttname"><a href="group__ttalkbox.html#ga881ae8cbae41f12f2fb4a7446d73a6be">tTalkbox_warpedAutocorrelate</a></div><div class="ttdeci">void tTalkbox_warpedAutocorrelate(float *x, double *dl, double *Rt, unsigned int L, float *R, unsigned int P, float lambda)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:143</div></div>
+<div class="ttc" id="agroup__trosenbergglottalpulse_html_ga199fe228e20140018c943b72347ba434"><div class="ttname"><a href="group__trosenbergglottalpulse.html#ga199fe228e20140018c943b72347ba434">tRosenbergGlottalPulse_setFreq</a></div><div class="ttdeci">void tRosenbergGlottalPulse_setFreq(tRosenbergGlottalPulse *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:973</div></div>
+<div class="ttc" id="agroup__trosenbergglottalpulse_html_ga0ebbc0ca662434c8685cbca2e44f656a"><div class="ttname"><a href="group__trosenbergglottalpulse.html#ga0ebbc0ca662434c8685cbca2e44f656a">tRosenbergGlottalPulse_setOpenLengthAndPulseLength</a></div><div class="ttdeci">void tRosenbergGlottalPulse_setOpenLengthAndPulseLength(tRosenbergGlottalPulse *const gp, float openLength, float pulseLength)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:996</div></div>
+<div class="ttc" id="agroup__tretune_html_gae5ed387f5a71deac43ab89b8f8986060"><div class="ttname"><a href="group__tretune.html#gae5ed387f5a71deac43ab89b8f8986060">tRetune_tick</a></div><div class="ttdeci">float * tRetune_tick(tRetune *const, float sample)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1634</div></div>
+<div class="ttc" id="agroup__ttalkbox_html_ga8f10b76186682cda5b4a546df84c35e3"><div class="ttname"><a href="group__ttalkbox.html#ga8f10b76186682cda5b4a546df84c35e3">tTalkbox_initToPool</a></div><div class="ttdeci">void tTalkbox_initToPool(tTalkbox *const, int bufsize, tMempool *const)</div><div class="ttdoc">Initialize a tTalkbox to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:40</div></div>
+<div class="ttc" id="agroup__ttalkbox_html_gafd5193315cf309b8c7607795bc5ad995"><div class="ttname"><a href="group__ttalkbox.html#gafd5193315cf309b8c7607795bc5ad995">tTalkbox_tickFrozen</a></div><div class="ttdeci">float tTalkbox_tickFrozen(tTalkbox *const voc, float synth, float voice)</div></div>
+<div class="ttc" id="agroup__ttalkboxfloat_html_ga994b70735a97c25f30a7f26981c3334e"><div class="ttname"><a href="group__ttalkboxfloat.html#ga994b70735a97c25f30a7f26981c3334e">tTalkboxFloat_update</a></div><div class="ttdeci">void tTalkboxFloat_update(tTalkboxFloat *const)</div><div class="ttdoc">update internal parameters...</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:418</div></div>
+<div class="ttc" id="agroup__tformantshifter_html_gad79a5e074c0f99ac7c7af3d530fdd214"><div class="ttname"><a href="group__tformantshifter.html#gad79a5e074c0f99ac7c7af3d530fdd214">tFormantShifter_initToPool</a></div><div class="ttdeci">void tFormantShifter_initToPool(tFormantShifter *const, int order, tMempool *const)</div><div class="ttdoc">Initialize a tFormantShifter to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1721</div></div>
+<div class="ttc" id="agroup__tsolad_html_ga1b3ffa561a92ba5f64e51eeb670e16ac"><div class="ttname"><a href="group__tsolad.html#ga1b3ffa561a92ba5f64e51eeb670e16ac">tSOLAD_setPitchFactor</a></div><div class="ttdeci">void tSOLAD_setPitchFactor(tSOLAD *w, float pitchfactor)</div><div class="ttdoc">Set pitch factor between 0.25 and 4.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1100</div></div>
+<div class="ttc" id="agroup__tvocoder_html_gae4c7fd1376d81bcfce49f4a8a407ec16"><div class="ttname"><a href="group__tvocoder.html#gae4c7fd1376d81bcfce49f4a8a407ec16">tVocoder_suspend</a></div><div class="ttdeci">void tVocoder_suspend(tVocoder *const)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:877</div></div>
+<div class="ttc" id="agroup__ttalkbox_html_gab45e4c3be7561f157b4ab47de8d939db"><div class="ttname"><a href="group__ttalkbox.html#gab45e4c3be7561f157b4ab47de8d939db">tTalkbox_tick</a></div><div class="ttdeci">float tTalkbox_tick(tTalkbox *const, float synth, float voice)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:214</div></div>
+<div class="ttc" id="agroup__tformantshifter_html_gadf13d01a3ed6e8941d93e521769f5447"><div class="ttname"><a href="group__tformantshifter.html#gadf13d01a3ed6e8941d93e521769f5447">tFormantShifter_ioSamples</a></div><div class="ttdeci">void tFormantShifter_ioSamples(tFormantShifter *const, float *in, float *out, int size, float fwarp)</div></div>
+<div class="ttc" id="agroup__ttalkboxfloat_html_ga10ab230431665f2b621fd0b21b366e02"><div class="ttname"><a href="group__ttalkboxfloat.html#ga10ab230431665f2b621fd0b21b366e02">tTalkboxFloat_initToPool</a></div><div class="ttdeci">void tTalkboxFloat_initToPool(tTalkboxFloat *const, int bufsize, tMempool *const)</div><div class="ttdoc">Initialize a tTalkboxFloat to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:372</div></div>
+<div class="ttc" id="agroup__trosenbergglottalpulse_html_gaa13740e5d8e0cab56e61eb0cb242fabe"><div class="ttname"><a href="group__trosenbergglottalpulse.html#gaa13740e5d8e0cab56e61eb0cb242fabe">tRosenbergGlottalPulse_tick</a></div><div class="ttdeci">float tRosenbergGlottalPulse_tick(tRosenbergGlottalPulse *const)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:916</div></div>
+<div class="ttc" id="agroup__tformantshifter_html_ga6e02d685feef8233a0949e19718b2884"><div class="ttname"><a href="group__tformantshifter.html#ga6e02d685feef8233a0949e19718b2884">tFormantShifter_tick</a></div><div class="ttdeci">float tFormantShifter_tick(tFormantShifter *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1778</div></div>
+<div class="ttc" id="agroup__ttalkbox_html_gabdfa3fca0a50509623d4c57d851f3315"><div class="ttname"><a href="group__ttalkbox.html#gabdfa3fca0a50509623d4c57d851f3315">tTalkbox_update</a></div><div class="ttdeci">void tTalkbox_update(tTalkbox *const)</div><div class="ttdoc">update internal parameters...</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:86</div></div>
+<div class="ttc" id="agroup__ttalkboxfloat_html_gad01eb39b5892107d65a3590f3ea69fec"><div class="ttname"><a href="group__ttalkboxfloat.html#gad01eb39b5892107d65a3590f3ea69fec">tTalkboxFloat_setWarpFactor</a></div><div class="ttdeci">void tTalkboxFloat_setWarpFactor(tTalkboxFloat *const voc, float warp)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:669</div></div>
+<div class="ttc" id="agroup__tformantshifter_html_ga3f5493a4bce93a71124aed52d374cfdc"><div class="ttname"><a href="group__tformantshifter.html#ga3f5493a4bce93a71124aed52d374cfdc">tFormantShifter_setShiftFactor</a></div><div class="ttdeci">void tFormantShifter_setShiftFactor(tFormantShifter *const, float shiftFactor)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1920</div></div>
+<div class="ttc" id="agroup__ttalkbox_html_ga5f1f85266d1c3e968b9f277fd6530e61"><div class="ttname"><a href="group__ttalkbox.html#ga5f1f85266d1c3e968b9f277fd6530e61">tTalkbox_free</a></div><div class="ttdeci">void tTalkbox_free(tTalkbox *const)</div><div class="ttdoc">Free a tTalkbox from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:70</div></div>
+<div class="ttc" id="agroup__tsolad_html_ga92607d41da7f4fbf93386e071806f788"><div class="ttname"><a href="group__tsolad.html#ga92607d41da7f4fbf93386e071806f788">tSOLAD_setReadLag</a></div><div class="ttdeci">void tSOLAD_setReadLag(tSOLAD *w, float readlag)</div><div class="ttdoc">Force readpointer lag.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1112</div></div>
+<div class="ttc" id="agroup__tvocoder_html_ga6ae72878b932a14fac7503e4f3226312"><div class="ttname"><a href="group__tvocoder.html#ga6ae72878b932a14fac7503e4f3226312">tVocoder_update</a></div><div class="ttdeci">void tVocoder_update(tVocoder *const)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:725</div></div>
+<div class="ttc" id="agroup__ttalkboxfloat_html_gac8456d804e084f2c4938d1255c723cfc"><div class="ttname"><a href="group__ttalkboxfloat.html#gac8456d804e084f2c4938d1255c723cfc">tTalkboxFloat_suspend</a></div><div class="ttdeci">void tTalkboxFloat_suspend(tTalkboxFloat *const)</div><div class="ttdoc">clear any buffers...</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:452</div></div>
+<div class="ttc" id="agroup__trosenbergglottalpulse_html_ga7339007dec7bc4164d850e63d57a75ec"><div class="ttname"><a href="group__trosenbergglottalpulse.html#ga7339007dec7bc4164d850e63d57a75ec">tRosenbergGlottalPulse_setPulseLength</a></div><div class="ttdeci">void tRosenbergGlottalPulse_setPulseLength(tRosenbergGlottalPulse *const, float pulseLength)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:989</div></div>
+<div class="ttc" id="agroup__ttalkbox_html_gaaba470c9d175927857b9befd5e903da8"><div class="ttname"><a href="group__ttalkbox.html#gaaba470c9d175927857b9befd5e903da8">tTalkbox_lpcDurbin</a></div><div class="ttdeci">void tTalkbox_lpcDurbin(float *r, int p, float *k, float *g)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:181</div></div>
+<div class="ttc" id="agroup__tformantshifter_html_gaf975f968b7428a7d744b2493c68267d4"><div class="ttname"><a href="group__tformantshifter.html#gaf975f968b7428a7d744b2493c68267d4">tFormantShifter_setIntensity</a></div><div class="ttdeci">void tFormantShifter_setIntensity(tFormantShifter *const, float intensity)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1926</div></div>
+<div class="ttc" id="agroup__trosenbergglottalpulse_html_gac23f160eacd6098f0be43ef2ad50adba"><div class="ttname"><a href="group__trosenbergglottalpulse.html#gac23f160eacd6098f0be43ef2ad50adba">tRosenbergGlottalPulse_free</a></div><div class="ttdeci">void tRosenbergGlottalPulse_free(tRosenbergGlottalPulse *const)</div><div class="ttdoc">Free a tRosenbergGlottalPulse from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:910</div></div>
+<div class="ttc" id="agroup__tsimpleretune_html_ga3a1f081437fbb7ad75b27fb09c39f096"><div class="ttname"><a href="group__tsimpleretune.html#ga3a1f081437fbb7ad75b27fb09c39f096">tSimpleRetune_free</a></div><div class="ttdeci">void tSimpleRetune_free(tSimpleRetune *const)</div><div class="ttdoc">Free a tSimpleRetune from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1481</div></div>
+<div class="ttc" id="agroup__tsimpleretune_html_ga7ad6f40fd922775510221226892d8839"><div class="ttname"><a href="group__tsimpleretune.html#ga7ad6f40fd922775510221226892d8839">tSimpleRetune_setNumVoices</a></div><div class="ttdeci">void tSimpleRetune_setNumVoices(tSimpleRetune *const, int numVoices)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1527</div></div>
+<div class="ttc" id="agroup__ttalkboxfloat_html_ga83b3a42d6348a062eaed4eace6fa9461"><div class="ttname"><a href="group__ttalkboxfloat.html#ga83b3a42d6348a062eaed4eace6fa9461">tTalkboxFloat_tick</a></div><div class="ttdeci">float tTalkboxFloat_tick(tTalkboxFloat *const, float synth, float voice)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:547</div></div>
+<div class="ttc" id="agroup__tsolad_html_ga2e51fbab57ccc810832c23dc3286efb1"><div class="ttname"><a href="group__tsolad.html#ga2e51fbab57ccc810832c23dc3286efb1">tSOLAD_free</a></div><div class="ttdeci">void tSOLAD_free(tSOLAD *const)</div><div class="ttdoc">Free a tSOLAD from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1047</div></div>
+<div class="ttc" id="agroup__ttalkbox_html_ga9345cb1b1bdb78e2c264dc711c29050b"><div class="ttname"><a href="group__ttalkbox.html#ga9345cb1b1bdb78e2c264dc711c29050b">tTalkbox_setFreeze</a></div><div class="ttdeci">void tTalkbox_setFreeze(tTalkbox *const voc, float freeze)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:347</div></div>
+<div class="ttc" id="agroup__trosenbergglottalpulse_html_ga337b99d9c13835ad7d44dc496de018d6"><div class="ttname"><a href="group__trosenbergglottalpulse.html#ga337b99d9c13835ad7d44dc496de018d6">tRosenbergGlottalPulse_initToPool</a></div><div class="ttdeci">void tRosenbergGlottalPulse_initToPool(tRosenbergGlottalPulse *const, tMempool *const)</div><div class="ttdoc">Initialize a tRosenbergGlottalPulse to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:896</div></div>
+<div class="ttc" id="agroup__ttalkbox_html_ga18a1ddfa2f61e60d6ebef394d65f08c6"><div class="ttname"><a href="group__ttalkbox.html#ga18a1ddfa2f61e60d6ebef394d65f08c6">tTalkbox_init</a></div><div class="ttdeci">void tTalkbox_init(tTalkbox *const, int bufsize, LEAF *const leaf)</div><div class="ttdoc">Initialize a tTalkbox to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:35</div></div>
+<div class="ttc" id="agroup__ttalkboxfloat_html_ga667dcd77640c7a6b2fa3995d6d2190be"><div class="ttname"><a href="group__ttalkboxfloat.html#ga667dcd77640c7a6b2fa3995d6d2190be">tTalkboxFloat_lpcDurbin</a></div><div class="ttdeci">void tTalkboxFloat_lpcDurbin(float *r, int p, float *k, float *g)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:513</div></div>
+<div class="ttc" id="agroup__trosenbergglottalpulse_html_gabc9f965e57fb4f4d19078e735ceeef41"><div class="ttname"><a href="group__trosenbergglottalpulse.html#gabc9f965e57fb4f4d19078e735ceeef41">tRosenbergGlottalPulse_init</a></div><div class="ttdeci">void tRosenbergGlottalPulse_init(tRosenbergGlottalPulse *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a tRosenbergGlottalPulse to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:891</div></div>
+<div class="ttc" id="agroup__tvocoder_html_gaa54cfb22d5fab7c12d70d7e5fd4a0cd0"><div class="ttname"><a href="group__tvocoder.html#gaa54cfb22d5fab7c12d70d7e5fd4a0cd0">tVocoder_free</a></div><div class="ttdeci">void tVocoder_free(tVocoder *const)</div><div class="ttdoc">Free a tVocoder from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:718</div></div>
+<div class="ttc" id="agroup__tformantshifter_html_gaa1697aa8f5614be25546943c7a3c6f46"><div class="ttname"><a href="group__tformantshifter.html#gaa1697aa8f5614be25546943c7a3c6f46">tFormantShifter_add</a></div><div class="ttdeci">float tFormantShifter_add(tFormantShifter *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1822</div></div>
+<div class="ttc" id="agroup__tvocoder_html_gad625ecd68ef438606e5a82fe11a3484f"><div class="ttname"><a href="group__tvocoder.html#gad625ecd68ef438606e5a82fe11a3484f">tVocoder_initToPool</a></div><div class="ttdeci">void tVocoder_initToPool(tVocoder *const, tMempool *const)</div><div class="ttdoc">Initialize a tVocoder to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:700</div></div>
+<div class="ttc" id="agroup__ttalkboxfloat_html_ga9f9fbc4bd62efcd9502a0217740e5366"><div class="ttname"><a href="group__ttalkboxfloat.html#ga9f9fbc4bd62efcd9502a0217740e5366">tTalkboxFloat_setQuality</a></div><div class="ttdeci">void tTalkboxFloat_setQuality(tTalkboxFloat *const, float quality)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:656</div></div>
+<div class="ttc" id="agroup__tpitchshift_html_gaa11d2bf41d69ed89fe86f5840fe1b612"><div class="ttname"><a href="group__tpitchshift.html#gaa11d2bf41d69ed89fe86f5840fe1b612">tPitchShift_free</a></div><div class="ttdeci">void tPitchShift_free(tPitchShift *const)</div><div class="ttdoc">Free a tPitchShift from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1392</div></div>
+<div class="ttc" id="agroup__ttalkbox_html_gae0e16e4627683deeb7d849f9f6b13367"><div class="ttname"><a href="group__ttalkbox.html#gae0e16e4627683deeb7d849f9f6b13367">tTalkbox_setQuality</a></div><div class="ttdeci">void tTalkbox_setQuality(tTalkbox *const, float quality)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:320</div></div>
+<div class="ttc" id="agroup__trosenbergglottalpulse_html_ga703d56589fa0121e978609f5315ea1e7"><div class="ttname"><a href="group__trosenbergglottalpulse.html#ga703d56589fa0121e978609f5315ea1e7">tRosenbergGlottalPulse_setOpenLength</a></div><div class="ttdeci">void tRosenbergGlottalPulse_setOpenLength(tRosenbergGlottalPulse *const, float openLength)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:982</div></div>
+<div class="ttc" id="agroup__ttalkbox_html_ga15d263af4269739442c7187a403996e4"><div class="ttname"><a href="group__ttalkbox.html#ga15d263af4269739442c7187a403996e4">tTalkbox_setWarpFactor</a></div><div class="ttdeci">void tTalkbox_setWarpFactor(tTalkbox *const voc, float warp)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:333</div></div>
+<div class="ttc" id="agroup__tvocoder_html_gaf809f26807d22a348156bbcced99ae91"><div class="ttname"><a href="group__tvocoder.html#gaf809f26807d22a348156bbcced99ae91">tVocoder_tick</a></div><div class="ttdeci">float tVocoder_tick(tVocoder *const, float synth, float voice)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:810</div></div>
+<div class="ttc" id="agroup__ttalkbox_html_ga361f8a48a8ac118804852e99022a2144"><div class="ttname"><a href="group__ttalkbox.html#ga361f8a48a8ac118804852e99022a2144">tTalkbox_suspend</a></div><div class="ttdeci">void tTalkbox_suspend(tTalkbox *const)</div><div class="ttdoc">clear any buffers...</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:120</div></div>
+<div class="ttc" id="agroup__ttalkbox_html_ga37320fd9c7f3c4d065fa4ae27431bc61"><div class="ttname"><a href="group__ttalkbox.html#ga37320fd9c7f3c4d065fa4ae27431bc61">tTalkbox_setWarpOn</a></div><div class="ttdeci">void tTalkbox_setWarpOn(tTalkbox *const voc, float warpOn)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:340</div></div>
+<div class="ttc" id="agroup__ttalkboxfloat_html_gabbd684033b9869aaac6eb57a694904d9"><div class="ttname"><a href="group__ttalkboxfloat.html#gabbd684033b9869aaac6eb57a694904d9">tTalkboxFloat_free</a></div><div class="ttdeci">void tTalkboxFloat_free(tTalkboxFloat *const)</div><div class="ttdoc">Free a tTalkboxFloat from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:402</div></div>
+<div class="ttc" id="agroup__tvocoder_html_ga687d4d2f952579f5df6d9c280ef9e0eb"><div class="ttname"><a href="group__tvocoder.html#ga687d4d2f952579f5df6d9c280ef9e0eb">tVocoder_init</a></div><div class="ttdeci">void tVocoder_init(tVocoder *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a tVocoder to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:695</div></div>
+<div class="ttc" id="agroup__tsolad_html_ga6ff97dea55ab5fa791fca6a6c4cacdbc"><div class="ttname"><a href="group__tsolad.html#ga6ff97dea55ab5fa791fca6a6c4cacdbc">tSOLAD_setPeriod</a></div><div class="ttdeci">void tSOLAD_setPeriod(tSOLAD *w, float period)</div><div class="ttdoc">Set periodicity analysis data.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1090</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<div class="ttc" id="agroup__tsolad_html_ga69b20c8acef373a2590f4e3138d1d4d8"><div class="ttname"><a href="group__tsolad.html#ga69b20c8acef373a2590f4e3138d1d4d8">tSOLAD_resetState</a></div><div class="ttdeci">void tSOLAD_resetState(tSOLAD *w)</div><div class="ttdoc">Reset state variables.</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1127</div></div>
+<div class="ttc" id="agroup__tsimpleretune_html_ga641d532934fde59a0489e7fecd28961c"><div class="ttname"><a href="group__tsimpleretune.html#ga641d532934fde59a0489e7fecd28961c">tSimpleRetune_tick</a></div><div class="ttdeci">float tSimpleRetune_tick(tSimpleRetune *const, float sample)</div><div class="ttdef"><b>Definition:</b> leaf-effects.c:1497</div></div>
+<div class="ttc" id="agroup__ttalkboxfloat_html_ga7d3e3bc6ecf3e1bd9c1ebe5f717ba06b"><div class="ttname"><a href="group__ttalkboxfloat.html#ga7d3e3bc6ecf3e1bd9c1ebe5f717ba06b">tTalkboxFloat_tickFrozen</a></div><div class="ttdeci">float tTalkboxFloat_tickFrozen(tTalkboxFloat *const voc, float synth, float voice)</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-electrical_8h_source.html
@@ -1,0 +1,218 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-electrical.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-electrical.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * leaf-electrical.h</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *  Created on: Sep 25, 2019</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *      Author: jeffsnyder</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#ifndef LEAF_INC_LEAF_ELECTRICAL_H_</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#define LEAF_INC_LEAF_ELECTRICAL_H_</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    </div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;leaf-global.h&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">enum</span> WDFComponentType</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    {</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        SeriesAdaptor = 0,</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        ParallelAdaptor,</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        Resistor,</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        Capacitor,</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        Inductor,</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        Inverter,</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        ResistiveSource,</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        IdealSource,</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        Diode,</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        DiodePair,</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        RootNil,</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        WDFComponentNil</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    } WDFComponentType;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tWDF _tWDF; <span class="comment">// needed to allow tWDF pointers in struct</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="keyword">typedef</span> _tWDF* tWDF;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keyword">struct </span>_tWDF</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    {</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        WDFComponentType type;</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        <span class="keywordtype">float</span> port_resistance_up;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="keywordtype">float</span> port_resistance_left;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        <span class="keywordtype">float</span> port_resistance_right;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        <span class="keywordtype">float</span> port_conductance_up;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        <span class="keywordtype">float</span> port_conductance_left;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        <span class="keywordtype">float</span> port_conductance_right;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        <span class="keywordtype">float</span> incident_wave_up;</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keywordtype">float</span> incident_wave_left;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        <span class="keywordtype">float</span> incident_wave_right;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        <span class="keywordtype">float</span> reflected_wave_up;</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <span class="keywordtype">float</span> reflected_wave_left;</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        <span class="keywordtype">float</span> reflected_wave_right;</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        <span class="keywordtype">float</span> gamma_zero;</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <span class="keywordtype">float</span> sample_rate;</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        <span class="keywordtype">float</span> value;</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        tWDF* child_left;</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        tWDF* child_right;</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        float (*get_port_resistance)(tWDF* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        float (*get_reflected_wave_up)(tWDF* <span class="keyword">const</span>, float);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        float (*get_reflected_wave_down)(tWDF* <span class="keyword">const</span>, float, float);</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        void (*set_incident_wave)(tWDF* <span class="keyword">const</span>, float, float);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    };</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    </div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="comment">//WDF Linear Components</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__twdf.html#ga8b1809a43641039fb095a2d5d1892b89">tWDF_init</a>                   (tWDF* <span class="keyword">const</span>, WDFComponentType type, <span class="keywordtype">float</span> value, tWDF* <span class="keyword">const</span> rL, tWDF* <span class="keyword">const</span> rR, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__twdf.html#ga88589dcd1fe135010f251ac8e9e00b7b">tWDF_initToPool</a>             (tWDF* <span class="keyword">const</span>, WDFComponentType type, <span class="keywordtype">float</span> value, tWDF* <span class="keyword">const</span> rL, tWDF* <span class="keyword">const</span> rR, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__twdf.html#ga286814ebe6a0757239c6403a0c9be9a4">tWDF_free</a>                   (tWDF* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    </div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__twdf.html#gaa6ac38775cde5d0f859fbd007d5e4154">tWDF_tick</a>                   (tWDF* <span class="keyword">const</span>, <span class="keywordtype">float</span> sample, tWDF* <span class="keyword">const</span> outputPoint, uint8_t paramsChanged);</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__twdf.html#gaea4c5bf95c97f449b86e5e2371e048c0">tWDF_setValue</a>               (tWDF* <span class="keyword">const</span>, <span class="keywordtype">float</span> value);</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__twdf.html#gac519b5869e0cc3eb08b328ee1eacf859">tWDF_setSampleRate</a>          (tWDF* <span class="keyword">const</span>, <span class="keywordtype">float</span> sample_rate);</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    uint8_t <a class="code" href="group__twdf.html#gae10a7d10fa7d7928cdb0bb1e90dfba86">tWDF_isLeaf</a>                 (tWDF* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__twdf.html#ga59e01adf3c85d097b41c7c12dc1da83c">tWDF_getPortResistance</a>      (tWDF* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__twdf.html#ga0419e60095b8caea022d117e2f51e902">tWDF_getReflectedWaveUp</a>     (tWDF* <span class="keyword">const</span>, <span class="keywordtype">float</span> input); <span class="comment">//for tree, only uses input for resistive source</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__twdf.html#gaf88b3a106e610173e153c7e4ab3914c8">tWDF_getReflectedWaveDown</a>   (tWDF* <span class="keyword">const</span>, <span class="keywordtype">float</span> input, <span class="keywordtype">float</span> incident_wave); <span class="comment">//for roots</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__twdf.html#gab6b8b9ae4786b3c185a22402d43c263c">tWDF_setIncidentWave</a>        (tWDF* <span class="keyword">const</span>, <span class="keywordtype">float</span> incident_wave, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    </div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__twdf.html#ga225e0816681d5a7bb733487bd4202bae">tWDF_getVoltage</a>             (tWDF* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__twdf.html#gace849a3c7401adf2cd9e4be561ff8163">tWDF_getCurrent</a>             (tWDF* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    </div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;}</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LEAF_INC_LEAF_ELECTRICAL_H_ */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="agroup__twdf_html_gace849a3c7401adf2cd9e4be561ff8163"><div class="ttname"><a href="group__twdf.html#gace849a3c7401adf2cd9e4be561ff8163">tWDF_getCurrent</a></div><div class="ttdeci">float tWDF_getCurrent(tWDF *const)</div><div class="ttdef"><b>Definition:</b> leaf-electrical.c:264</div></div>
+<div class="ttc" id="agroup__twdf_html_gae10a7d10fa7d7928cdb0bb1e90dfba86"><div class="ttname"><a href="group__twdf.html#gae10a7d10fa7d7928cdb0bb1e90dfba86">tWDF_isLeaf</a></div><div class="ttdeci">uint8_t tWDF_isLeaf(tWDF *const)</div><div class="ttdef"><b>Definition:</b> leaf-electrical.c:227</div></div>
+<div class="ttc" id="agroup__twdf_html_gaf88b3a106e610173e153c7e4ab3914c8"><div class="ttname"><a href="group__twdf.html#gaf88b3a106e610173e153c7e4ab3914c8">tWDF_getReflectedWaveDown</a></div><div class="ttdeci">float tWDF_getReflectedWaveDown(tWDF *const, float input, float incident_wave)</div><div class="ttdef"><b>Definition:</b> leaf-electrical.c:252</div></div>
+<div class="ttc" id="agroup__twdf_html_gaea4c5bf95c97f449b86e5e2371e048c0"><div class="ttname"><a href="group__twdf.html#gaea4c5bf95c97f449b86e5e2371e048c0">tWDF_setValue</a></div><div class="ttdeci">void tWDF_setValue(tWDF *const, float value)</div><div class="ttdef"><b>Definition:</b> leaf-electrical.c:215</div></div>
+<div class="ttc" id="agroup__twdf_html_ga8b1809a43641039fb095a2d5d1892b89"><div class="ttname"><a href="group__twdf.html#ga8b1809a43641039fb095a2d5d1892b89">tWDF_init</a></div><div class="ttdeci">void tWDF_init(tWDF *const, WDFComponentType type, float value, tWDF *const rL, tWDF *const rR, LEAF *const leaf)</div><div class="ttdoc">Initialize a tWDF to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-electrical.c:168</div></div>
+<div class="ttc" id="agroup__twdf_html_ga88589dcd1fe135010f251ac8e9e00b7b"><div class="ttname"><a href="group__twdf.html#ga88589dcd1fe135010f251ac8e9e00b7b">tWDF_initToPool</a></div><div class="ttdeci">void tWDF_initToPool(tWDF *const, WDFComponentType type, float value, tWDF *const rL, tWDF *const rR, tMempool *const)</div><div class="ttdoc">Initialize a tWDF to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-electrical.c:173</div></div>
+<div class="ttc" id="agroup__twdf_html_ga59e01adf3c85d097b41c7c12dc1da83c"><div class="ttname"><a href="group__twdf.html#ga59e01adf3c85d097b41c7c12dc1da83c">tWDF_getPortResistance</a></div><div class="ttdeci">float tWDF_getPortResistance(tWDF *const)</div><div class="ttdef"><b>Definition:</b> leaf-electrical.c:234</div></div>
+<div class="ttc" id="agroup__twdf_html_ga225e0816681d5a7bb733487bd4202bae"><div class="ttname"><a href="group__twdf.html#ga225e0816681d5a7bb733487bd4202bae">tWDF_getVoltage</a></div><div class="ttdeci">float tWDF_getVoltage(tWDF *const)</div><div class="ttdef"><b>Definition:</b> leaf-electrical.c:258</div></div>
+<div class="ttc" id="agroup__twdf_html_gac519b5869e0cc3eb08b328ee1eacf859"><div class="ttname"><a href="group__twdf.html#gac519b5869e0cc3eb08b328ee1eacf859">tWDF_setSampleRate</a></div><div class="ttdeci">void tWDF_setSampleRate(tWDF *const, float sample_rate)</div><div class="ttdef"><b>Definition:</b> leaf-electrical.c:221</div></div>
+<div class="ttc" id="agroup__twdf_html_gab6b8b9ae4786b3c185a22402d43c263c"><div class="ttname"><a href="group__twdf.html#gab6b8b9ae4786b3c185a22402d43c263c">tWDF_setIncidentWave</a></div><div class="ttdeci">void tWDF_setIncidentWave(tWDF *const, float incident_wave, float input)</div><div class="ttdef"><b>Definition:</b> leaf-electrical.c:240</div></div>
+<div class="ttc" id="agroup__twdf_html_gaa6ac38775cde5d0f859fbd007d5e4154"><div class="ttname"><a href="group__twdf.html#gaa6ac38775cde5d0f859fbd007d5e4154">tWDF_tick</a></div><div class="ttdeci">float tWDF_tick(tWDF *const, float sample, tWDF *const outputPoint, uint8_t paramsChanged)</div><div class="ttdef"><b>Definition:</b> leaf-electrical.c:188</div></div>
+<div class="ttc" id="agroup__twdf_html_ga286814ebe6a0757239c6403a0c9be9a4"><div class="ttname"><a href="group__twdf.html#ga286814ebe6a0757239c6403a0c9be9a4">tWDF_free</a></div><div class="ttdeci">void tWDF_free(tWDF *const)</div><div class="ttdoc">Free a tWDF from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-electrical.c:181</div></div>
+<div class="ttc" id="agroup__twdf_html_ga0419e60095b8caea022d117e2f51e902"><div class="ttname"><a href="group__twdf.html#ga0419e60095b8caea022d117e2f51e902">tWDF_getReflectedWaveUp</a></div><div class="ttdeci">float tWDF_getReflectedWaveUp(tWDF *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-electrical.c:246</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-envelopes_8h_source.html
@@ -1,0 +1,549 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-envelopes.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-envelopes.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> ==============================================================================</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> leaf-envelopes.h</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> Created: 20 Jan 2017 12:02:17pm</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> Author:  Michael R Mulshine</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> ==============================================================================</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#ifndef LEAF_ENVELOPES_H_INCLUDED</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#define LEAF_ENVELOPES_H_INCLUDED</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;leaf-filters.h&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;leaf-delay.h&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;leaf-analysis.h&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;leaf-envelopes.h&quot;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tEnvelope</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    {</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">float</span> *exp_buff;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">float</span> *inc_buff;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        uint32_t buff_size;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <span class="keywordtype">float</span> next;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        </div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        <span class="keywordtype">float</span> attackInc, decayInc, rampInc;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <span class="keywordtype">int</span> inAttack, inDecay, inRamp;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        <span class="keywordtype">int</span> loop;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <span class="keywordtype">float</span> gain, rampPeak;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        </div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        <span class="keywordtype">float</span> attackPhase, decayPhase, rampPhase;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    } _tEnvelope;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keyword">typedef</span> _tEnvelope* tEnvelope;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    </div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tenvelope.html#ga750a7c8d37cbe768f2392e93f71f926a">tEnvelope_init</a>          (tEnvelope* <span class="keyword">const</span>, <span class="keywordtype">float</span> attack, <span class="keywordtype">float</span> decay, <span class="keywordtype">int</span> loop, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tenvelope.html#gafb5292f686b84efd0d445a353bf4a37a">tEnvelope_initToPool</a>    (tEnvelope* <span class="keyword">const</span>, <span class="keywordtype">float</span> attack, <span class="keywordtype">float</span> decay, <span class="keywordtype">int</span> loop, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tenvelope.html#gac9babd2be1211097f9beee044ec4cdd9">tEnvelope_free</a>          (tEnvelope* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tenvelope.html#ga40beb9faaf417398361fe2c4699318f5">tEnvelope_tick</a>          (tEnvelope* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tenvelope.html#gad7cb0c772ac308884c50ce88eac76350">tEnvelope_setAttack</a>     (tEnvelope* <span class="keyword">const</span>, <span class="keywordtype">float</span> attack);</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tenvelope.html#gadadffd39e47ede9b25e1a9faad8c0bbc">tEnvelope_setDecay</a>      (tEnvelope* <span class="keyword">const</span>, <span class="keywordtype">float</span> decay);</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tenvelope.html#gafd5088139edc7b5630a7738efa7bac38">tEnvelope_loop</a>          (tEnvelope* <span class="keyword">const</span>, <span class="keywordtype">int</span> loop);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tenvelope.html#ga27ea23e65d88dee4361325bcb8cd7e23">tEnvelope_on</a>            (tEnvelope* <span class="keyword">const</span>, <span class="keywordtype">float</span> velocity);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    </div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tExpSmooth</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    {</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        <span class="keywordtype">float</span> factor, oneminusfactor;</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        <span class="keywordtype">float</span> curr,dest;</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    } _tExpSmooth;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="keyword">typedef</span> _tExpSmooth* tExpSmooth;</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    </div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__texpsmooth.html#ga9074f846bd87a7e9071ff7a0fc77412a">tExpSmooth_init</a>         (tExpSmooth* <span class="keyword">const</span>, <span class="keywordtype">float</span> val, <span class="keywordtype">float</span> factor, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__texpsmooth.html#ga8b8656a6b3b3f824a3a4b1ad06fc5e9e">tExpSmooth_initToPool</a>   (tExpSmooth* <span class="keyword">const</span>, <span class="keywordtype">float</span> val, <span class="keywordtype">float</span> factor, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__texpsmooth.html#gaf49340184c2380c43fd0cb990d9a6ea3">tExpSmooth_free</a>         (tExpSmooth* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__texpsmooth.html#ga9c772d0874085e260027716a6850c066">tExpSmooth_tick</a>         (tExpSmooth* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__texpsmooth.html#ga1f96e9a582c3bf85dd600f98eac11243">tExpSmooth_sample</a>       (tExpSmooth* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__texpsmooth.html#gaea5297fd207b49cecb42c583fe6549cc">tExpSmooth_setFactor</a>    (tExpSmooth* <span class="keyword">const</span>, <span class="keywordtype">float</span> factor);</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__texpsmooth.html#ga67d45ea3ba251bc651b06733bdd65e60">tExpSmooth_setDest</a>      (tExpSmooth* <span class="keyword">const</span>, <span class="keywordtype">float</span> dest);</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__texpsmooth.html#ga6e215e2d8a7e43e16d009f8eb805330e">tExpSmooth_setVal</a>       (tExpSmooth* <span class="keyword">const</span>, <span class="keywordtype">float</span> val);</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__texpsmooth.html#ga19fc6917c2d049c72b55f432ea24cfe5">tExpSmooth_setValAndDest</a>(tExpSmooth* <span class="keyword">const</span> expsmooth, <span class="keywordtype">float</span> val);</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    </div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    </div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    </div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <span class="comment">/* ADSR */</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tADSR</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    {</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        </div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;        </div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">float</span> *exp_buff;</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">float</span> *inc_buff;</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        uint32_t buff_size;</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;        </div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        <span class="keywordtype">float</span> next;</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;        </div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        <span class="keywordtype">float</span> attackInc, decayInc, releaseInc, rampInc;</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        </div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        <span class="keywordtype">int</span> inAttack, inDecay, inSustain, inRelease, inRamp;</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        <span class="keywordtype">float</span> sustain, gain, rampPeak, releasePeak;</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        <span class="keywordtype">float</span> attackPhase, decayPhase, releasePhase, rampPhase;</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <span class="keywordtype">float</span> leakFactor;</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    } _tADSR;</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    </div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    <span class="keyword">typedef</span> _tADSR* tADSR;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    </div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr.html#gafa76d2b76694362abf9cf0ed987b7106">tADSR_init</a>    (tADSR* <span class="keyword">const</span> adsrenv, <span class="keywordtype">float</span> attack, <span class="keywordtype">float</span> decay, <span class="keywordtype">float</span> sustain, <span class="keywordtype">float</span> release, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr.html#gada1d7d74e13cfddaba736b2920b79d9f">tADSR_initToPool</a>    (tADSR* <span class="keyword">const</span> adsrenv, <span class="keywordtype">float</span> attack, <span class="keywordtype">float</span> decay, <span class="keywordtype">float</span> sustain, <span class="keywordtype">float</span> release, tMempool* <span class="keyword">const</span> mp);</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr.html#gaccc3f988aaab5a39b495b1ccd21da608">tADSR_free</a>          (tADSR* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    </div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tadsr.html#gabbc3685eb6c47a49e657a1792d38dfc7">tADSR_tick</a>          (tADSR* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr.html#ga1cceb7951e999aa388bd72a7bb3901f6">tADSR_setAttack</a>     (tADSR* <span class="keyword">const</span>, <span class="keywordtype">float</span> attack);</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr.html#ga7f305ead6d014fbafcb132ebcc81dddb">tADSR_setDecay</a>      (tADSR* <span class="keyword">const</span>, <span class="keywordtype">float</span> decay);</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr.html#gac676d5a70fe7a8487d125e5aff250fd0">tADSR_setSustain</a>    (tADSR* <span class="keyword">const</span>, <span class="keywordtype">float</span> sustain);</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr.html#ga3d62827bbd4f058d07e6cb1a8b92cb9f">tADSR_setRelease</a>    (tADSR* <span class="keyword">const</span>, <span class="keywordtype">float</span> release);</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr.html#ga1802708b1a0c0ce324c3072554c01624">tADSR_setLeakFactor</a> (tADSR* <span class="keyword">const</span>, <span class="keywordtype">float</span> leakFactor);</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr.html#gaffd817040cc125f3b8204e756a16085c">tADSR_on</a>            (tADSR* <span class="keyword">const</span>, <span class="keywordtype">float</span> velocity);</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr.html#ga1a41adcdea81db09f04d008b9b8e62b8">tADSR_off</a>           (tADSR* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    </div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    </div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tADSR2</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    {</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        </div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        <span class="keywordtype">float</span> sampleRateInMs;</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        <span class="keywordtype">float</span> attack;</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        <span class="keywordtype">float</span> decay;</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;        <span class="keywordtype">float</span> release;</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;        <span class="keywordtype">float</span> attackLambda;</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;        <span class="keywordtype">float</span> decayLambda;</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        <span class="keywordtype">float</span> releaseLambda;</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;        <span class="keywordtype">float</span> sustain;</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;        <span class="keywordtype">float</span> leakGain;</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;        <span class="keywordtype">float</span> leakFactor;</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;        <span class="keywordtype">float</span> targetGainSquared;</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;        <span class="keywordtype">float</span> factor;</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;        <span class="keywordtype">float</span> oneMinusFactor;</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;        <span class="keywordtype">float</span> gain;</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;        uint8_t attacking;</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        uint8_t gate;</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        <span class="keywordtype">float</span> env;</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        <span class="keywordtype">float</span> envTarget;</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;    } _tADSR2;</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    </div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;    <span class="keyword">typedef</span> _tADSR2* tADSR2;</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;    </div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tasdr2.html#ga5b195997b8fc1934c6cb06cc13f09c13">tADSR2_init</a>          (tADSR2* <span class="keyword">const</span>, <span class="keywordtype">float</span> attack, <span class="keywordtype">float</span> decay, <span class="keywordtype">float</span> sustain, <span class="keywordtype">float</span> release, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tasdr2.html#ga15dbf5b654eb51489bef787f4c9c23b7">tADSR2_initToPool</a>    (tADSR2* <span class="keyword">const</span>, <span class="keywordtype">float</span> attack, <span class="keywordtype">float</span> decay, <span class="keywordtype">float</span> sustain, <span class="keywordtype">float</span> release, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tasdr2.html#ga3d78c0c766ca431b535d3adb0bc2f684">tADSR2_free</a>          (tADSR2* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;    </div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tasdr2.html#ga3033906b9b5a6688818059210b10799e">tADSR2_tick</a>          (tADSR2* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tasdr2.html#ga19f6d152bd5b351dcc4416f4a5f51555">tADSR2_setAttack</a>     (tADSR2* <span class="keyword">const</span>, <span class="keywordtype">float</span> attack);</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tasdr2.html#gab50e8fb5a053b908b69315cd83e1840a">tADSR2_setDecay</a>      (tADSR2* <span class="keyword">const</span>, <span class="keywordtype">float</span> decay);</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tasdr2.html#ga3910c7c0360e0d7859e4bcf5521b3e7d">tADSR2_setSustain</a>    (tADSR2* <span class="keyword">const</span>, <span class="keywordtype">float</span> sustain);</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tasdr2.html#gaf68f6a5e10f25998f33d65162f9eb583">tADSR2_setRelease</a>    (tADSR2* <span class="keyword">const</span>, <span class="keywordtype">float</span> release);</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tasdr2.html#ga8490472fff769f548a45739892a31758">tADSR2_setLeakFactor</a> (tADSR2* <span class="keyword">const</span>, <span class="keywordtype">float</span> leakFactor);</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tasdr2.html#ga2ba1656a4f5d1f8dcecde930ea54c7b7">tADSR2_on</a>            (tADSR2* <span class="keyword">const</span>, <span class="keywordtype">float</span> velocity);</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tasdr2.html#gadd6f357864babc27382363b314efd70d">tADSR2_off</a>           (tADSR2* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    </div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    </div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;    <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    </div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    <span class="keyword">enum</span> envState {</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;        env_idle = 0,</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;        env_attack,</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;        env_decay,</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;        env_sustain,</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;        env_release,</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;        env_ramp</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;    };</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    </div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tADSR3</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    {</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;        </div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;        <span class="keywordtype">float</span> sampleRateInMs;</div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;        <span class="keywordtype">int</span> state;</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;        <span class="keywordtype">float</span> output;</div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;        <span class="keywordtype">float</span> attackRate;</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;        <span class="keywordtype">float</span> decayRate;</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;        <span class="keywordtype">float</span> releaseRate;</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;        <span class="keywordtype">float</span> attackCoef;</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;        <span class="keywordtype">float</span> decayCoef;</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;        <span class="keywordtype">float</span> releaseCoef;</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;        <span class="keywordtype">float</span> sustainLevel;</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;        <span class="keywordtype">float</span> targetRatioA;</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;        <span class="keywordtype">float</span> targetRatioDR;</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        <span class="keywordtype">float</span> attackBase;</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;        <span class="keywordtype">float</span> decayBase;</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;        <span class="keywordtype">float</span> releaseBase;</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        <span class="keywordtype">float</span> leakFactor;</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        <span class="keywordtype">float</span> targetGainSquared;</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;        <span class="keywordtype">float</span> factor;</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;        <span class="keywordtype">float</span> oneMinusFactor;</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;        <span class="keywordtype">float</span> gain;</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;        </div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;    } _tADSR3;</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;    </div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;    <span class="keyword">typedef</span> _tADSR3* tADSR3;</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    </div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr3.html#ga61f1fd529df0d97a9a74b9523024b1fe">tADSR3_init</a>          (tADSR3* <span class="keyword">const</span>, <span class="keywordtype">float</span> attack, <span class="keywordtype">float</span> decay, <span class="keywordtype">float</span> sustain, <span class="keywordtype">float</span> release, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr3.html#ga7e0784b34c2fef54de2ed993d68f9b7c">tADSR3_initToPool</a>    (tADSR3* <span class="keyword">const</span>, <span class="keywordtype">float</span> attack, <span class="keywordtype">float</span> decay, <span class="keywordtype">float</span> sustain, <span class="keywordtype">float</span> release, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr3.html#gaf633a93865d4a9d4ba4840624f2b41bf">tADSR3_free</a>          (tADSR3* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    </div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tadsr3.html#ga3b959e263e7322d7876bdf5e9b633a16">tADSR3_tick</a>          (tADSR3* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr3.html#ga0a6a119590346ee356f486d8af00567a">tADSR3_setAttack</a>     (tADSR3* <span class="keyword">const</span>, <span class="keywordtype">float</span> attack);</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr3.html#ga325386ad4640ec898971fdedf87b3b49">tADSR3_setDecay</a>      (tADSR3* <span class="keyword">const</span>, <span class="keywordtype">float</span> decay);</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr3.html#gae5695ee654846bf4f3f092c3f2136ca8">tADSR3_setSustain</a>    (tADSR3* <span class="keyword">const</span>, <span class="keywordtype">float</span> sustain);</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr3.html#ga3ac9763101f9e3b5338ea92cc02a6032">tADSR3_setRelease</a>    (tADSR3* <span class="keyword">const</span>, <span class="keywordtype">float</span> release);</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr3.html#ga589972bef8fca1a6a99064b92968c9fc">tADSR3_setLeakFactor</a> (tADSR3* <span class="keyword">const</span>, <span class="keywordtype">float</span> leakFactor);</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr3.html#ga6054295d933bb2d27898664f4b6f067e">tADSR3_on</a>            (tADSR3* <span class="keyword">const</span>, <span class="keywordtype">float</span> velocity);</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr3.html#gad48b26429b4224b199b26690a0d480f1">tADSR3_off</a>           (tADSR3* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;    </div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    </div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tADSR4</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;    {</div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;        </div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">float</span> *exp_buff;</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;        uint32_t buff_size;</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;        uint32_t buff_sizeMinusOne;</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;        <span class="keywordtype">float</span> bufferSizeDividedBySampleRateInMs;</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;        <span class="keywordtype">float</span> next;</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;        </div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;        <span class="keywordtype">float</span> attackInc, decayInc, releaseInc, rampInc;</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;        </div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;        uint32_t whichStage;</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;        </div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;        <span class="keywordtype">float</span> sustain, gain, rampPeak, releasePeak;</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;        </div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;        <span class="keywordtype">float</span> attackPhase, decayPhase, releasePhase, rampPhase;</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;        </div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;        <span class="keywordtype">float</span> leakFactor;</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;    } _tADSR4;</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;    </div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;    <span class="keyword">typedef</span> _tADSR4* tADSR4;</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;    </div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr4.html#ga18f8440695a8f99ff6469ff9df6395c2">tADSR4_init</a>          (tADSR4* <span class="keyword">const</span>, <span class="keywordtype">float</span> attack, <span class="keywordtype">float</span> decay, <span class="keywordtype">float</span> sustain, <span class="keywordtype">float</span> release, <span class="keywordtype">float</span>* expBuffer, <span class="keywordtype">int</span> bufferSize, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr4.html#ga731d6838ae65373c787ecf977523c121">tADSR4_initToPool</a>    (tADSR4* <span class="keyword">const</span>, <span class="keywordtype">float</span> attack, <span class="keywordtype">float</span> decay, <span class="keywordtype">float</span> sustain, <span class="keywordtype">float</span> release, <span class="keywordtype">float</span>* expBuffer, <span class="keywordtype">int</span> bufferSize, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr4.html#ga2889f7a9596ba5e9d386c9913e51e62d">tADSR4_free</a>          (tADSR4* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;    </div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tadsr4.html#ga5f4cc4b20251f8240c0208b452b8eff3">tADSR4_tick</a>          (tADSR4* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tadsr4.html#ga32a5545ca2510d666b9c59d9106888c5">tADSR4_tickNoInterp</a>  (tADSR4* <span class="keyword">const</span> adsrenv);</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr4.html#ga5059a2109760aa0188c4769a52b4a4a3">tADSR4_setAttack</a>     (tADSR4* <span class="keyword">const</span>, <span class="keywordtype">float</span> attack);</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr4.html#gab5b58a1067454a87cdff5e09a86e4af3">tADSR4_setDecay</a>      (tADSR4* <span class="keyword">const</span>, <span class="keywordtype">float</span> decay);</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr4.html#ga691edaf4b254d1d44bee378312e370be">tADSR4_setSustain</a>    (tADSR4* <span class="keyword">const</span>, <span class="keywordtype">float</span> sustain);</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr4.html#ga7a53860240f681a65d90302145702697">tADSR4_setRelease</a>    (tADSR4* <span class="keyword">const</span>, <span class="keywordtype">float</span> release);</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr4.html#gad79710f31593ada4e3834ebefd67a388">tADSR4_setLeakFactor</a> (tADSR4* <span class="keyword">const</span>, <span class="keywordtype">float</span> leakFactor);</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr4.html#ga63a8a38f1f6f319d0103acf7d0fb21ad">tADSR4_on</a>            (tADSR4* <span class="keyword">const</span>, <span class="keywordtype">float</span> velocity);</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tadsr4.html#ga0271a2f741bed72edb08dc965433dade">tADSR4_off</a>           (tADSR4* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;    </div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;    <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;    </div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tRamp</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;    {</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;        </div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;        <span class="keywordtype">float</span> inc;</div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;        <span class="keywordtype">float</span> inv_sr_ms;</div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;        <span class="keywordtype">float</span> minimum_time;</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;        <span class="keywordtype">float</span> curr,dest;</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;        <span class="keywordtype">float</span> time;</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;        <span class="keywordtype">float</span> factor;</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;        <span class="keywordtype">int</span> samples_per_tick;</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;    } _tRamp;</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;    </div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;    <span class="keyword">typedef</span> _tRamp* tRamp;</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;    </div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tramp.html#ga44d22f890ed04cd061cfba963b1f9729">tRamp_init</a>          (tRamp* <span class="keyword">const</span>, <span class="keywordtype">float</span> time, <span class="keywordtype">int</span> samplesPerTick, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tramp.html#gac4d46bba12df2569f57bbdb9b407fe24">tRamp_initToPool</a>    (tRamp* <span class="keyword">const</span>, <span class="keywordtype">float</span> time, <span class="keywordtype">int</span> samplesPerTick, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tramp.html#ga155e473a79ce4b174fa468981bb13750">tRamp_free</a>          (tRamp* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;    </div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tramp.html#gadd8abe3a4b8f0f082d1a7f2c752f7980">tRamp_tick</a>          (tRamp* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tramp.html#ga4a3488c43e978d905080773353ce40f4">tRamp_sample</a>        (tRamp* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tramp.html#gada173eb52e34ee8fb16d79026014a4be">tRamp_setTime</a>       (tRamp* <span class="keyword">const</span>, <span class="keywordtype">float</span> time);</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tramp.html#gad348c3b0601d99326ce06ba017ef2508">tRamp_setDest</a>       (tRamp* <span class="keyword">const</span>, <span class="keywordtype">float</span> dest);</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tramp.html#gafe5e687461cdb8b7cd0714b9fdca4223">tRamp_setVal</a>        (tRamp* <span class="keyword">const</span>, <span class="keywordtype">float</span> val);</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;    </div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tRampUpDown</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;    {</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;        </div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;        <span class="keywordtype">float</span> upInc;</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;        <span class="keywordtype">float</span> downInc;</div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;        <span class="keywordtype">float</span> inv_sr_ms;</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;        <span class="keywordtype">float</span> minimum_time;</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;        <span class="keywordtype">float</span> curr,dest;</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;        <span class="keywordtype">float</span> upTime;</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;        <span class="keywordtype">float</span> downTime;</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;        <span class="keywordtype">int</span> samples_per_tick;</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;    } _tRampUpDown;</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;    </div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;    <span class="keyword">typedef</span> _tRampUpDown* tRampUpDown;</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;    </div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__trampupdown.html#ga10049078d9afde547db5345067355741">tRampUpDown_init</a>          (tRampUpDown* <span class="keyword">const</span>, <span class="keywordtype">float</span> upTime, <span class="keywordtype">float</span> downTime, <span class="keywordtype">int</span> samplesPerTick, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__trampupdown.html#ga971e5d4b58631194769d9ff29b09bab0">tRampUpDown_initToPool</a>    (tRampUpDown* <span class="keyword">const</span>, <span class="keywordtype">float</span> upTime, <span class="keywordtype">float</span> downTime, <span class="keywordtype">int</span> samplesPerTick, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__trampupdown.html#ga8eeaec61bbb73b00497dd5c62e43298e">tRampUpDown_free</a>          (tRampUpDown* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;    </div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__trampupdown.html#gae271d51d8270f50237f2b46b476930bf">tRampUpDown_tick</a>          (tRampUpDown* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__trampupdown.html#gacf9c6cad23c6fb79c002fdb60a132e69">tRampUpDown_sample</a>        (tRampUpDown* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__trampupdown.html#ga8d3a86e1a0937104788d63bafc34d37e">tRampUpDown_setUpTime</a>       (tRampUpDown* <span class="keyword">const</span>, <span class="keywordtype">float</span> upTime);</div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__trampupdown.html#ga15eca113d583ad81c71750cb13efb8f4">tRampUpDown_setDownTime</a>       (tRampUpDown* <span class="keyword">const</span>, <span class="keywordtype">float</span> downTime);</div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__trampupdown.html#ga3902f92b1057f9bd37ea24afe6ee93a0">tRampUpDown_setDest</a>       (tRampUpDown* <span class="keyword">const</span>, <span class="keywordtype">float</span> dest);</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__trampupdown.html#ga9c1bbd455bd922c8b51c1b5e8c50e885">tRampUpDown_setVal</a>        (tRampUpDown* <span class="keyword">const</span>, <span class="keywordtype">float</span> val);</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;    </div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;    </div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;    </div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tSlide</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;    {</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;        </div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;        <span class="keywordtype">float</span> prevOut;</div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;        <span class="keywordtype">float</span> currentOut;</div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;        <span class="keywordtype">float</span> prevIn;</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;        <span class="keywordtype">float</span> invUpSlide;</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;        <span class="keywordtype">float</span> invDownSlide;</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;        <span class="keywordtype">float</span> dest;</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;    } _tSlide;</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;    </div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;    <span class="keyword">typedef</span> _tSlide* tSlide;</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;    </div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tslide.html#ga8288a16662a7fa082c4fcad3cea0ab04">tSlide_init</a>          (tSlide* <span class="keyword">const</span>, <span class="keywordtype">float</span> upSlide, <span class="keywordtype">float</span> downSlide, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tslide.html#ga42a348c9028053e0ad3a22f1ac731430">tSlide_initToPool</a>    (tSlide* <span class="keyword">const</span>, <span class="keywordtype">float</span> upSlide, <span class="keywordtype">float</span> downSlide, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tslide.html#ga57ba71883af607aaf28f0292e0cee901">tSlide_free</a>          (tSlide* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;    </div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tslide.html#gacdddc23733eda912f51d57cc944062b0">tSlide_tick</a>         (tSlide* <span class="keyword">const</span>, <span class="keywordtype">float</span> in);</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tslide.html#ga0ba5fda0ed766d03ac97ad8d0f068ba1">tSlide_tickNoInput</a>    (tSlide* <span class="keyword">const</span> sl);</div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tslide.html#gaac39af0df494460bbc7170a2a34dd7e1">tSlide_setUpSlide</a>    (tSlide* <span class="keyword">const</span> sl, <span class="keywordtype">float</span> upSlide);</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tslide.html#ga86d8efa014a6428b1338d70603f1eb95">tSlide_setDownSlide</a>    (tSlide* <span class="keyword">const</span> sl, <span class="keywordtype">float</span> downSlide);</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tslide.html#ga381e81d6bcb9cba92acfe9a68df8c193">tSlide_setDest</a>        (tSlide* <span class="keyword">const</span> sl, <span class="keywordtype">float</span> dest);</div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;    </div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;}</div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160; </div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;<span class="preprocessor">#endif  // LEAF_ENVELOPES_H_INCLUDED</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160; </div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160; </div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160; </div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="agroup__tadsr4_html_ga5f4cc4b20251f8240c0208b452b8eff3"><div class="ttname"><a href="group__tadsr4.html#ga5f4cc4b20251f8240c0208b452b8eff3">tADSR4_tick</a></div><div class="ttdeci">float tADSR4_tick(tADSR4 *const)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:949</div></div>
+<div class="ttc" id="agroup__trampupdown_html_ga3902f92b1057f9bd37ea24afe6ee93a0"><div class="ttname"><a href="group__trampupdown.html#ga3902f92b1057f9bd37ea24afe6ee93a0">tRampUpDown_setDest</a></div><div class="ttdeci">void tRampUpDown_setDest(tRampUpDown *const, float dest)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1338</div></div>
+<div class="ttc" id="agroup__tramp_html_gadd8abe3a4b8f0f082d1a7f2c752f7980"><div class="ttname"><a href="group__tramp.html#gadd8abe3a4b8f0f082d1a7f2c752f7980">tRamp_tick</a></div><div class="ttdeci">float tRamp_tick(tRamp *const)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1225</div></div>
+<div class="ttc" id="agroup__tasdr2_html_ga5b195997b8fc1934c6cb06cc13f09c13"><div class="ttname"><a href="group__tasdr2.html#ga5b195997b8fc1934c6cb06cc13f09c13">tADSR2_init</a></div><div class="ttdeci">void tADSR2_init(tADSR2 *const, float attack, float decay, float sustain, float release, LEAF *const leaf)</div><div class="ttdoc">Initialize a tADSR2 to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:502</div></div>
+<div class="ttc" id="agroup__tslide_html_ga86d8efa014a6428b1338d70603f1eb95"><div class="ttname"><a href="group__tslide.html#ga86d8efa014a6428b1338d70603f1eb95">tSlide_setDownSlide</a></div><div class="ttdeci">void tSlide_setDownSlide(tSlide *const sl, float downSlide)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1514</div></div>
+<div class="ttc" id="agroup__tadsr4_html_gad79710f31593ada4e3834ebefd67a388"><div class="ttname"><a href="group__tadsr4.html#gad79710f31593ada4e3834ebefd67a388">tADSR4_setLeakFactor</a></div><div class="ttdeci">void tADSR4_setLeakFactor(tADSR4 *const, float leakFactor)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:905</div></div>
+<div class="ttc" id="agroup__tadsr3_html_ga61f1fd529df0d97a9a74b9523024b1fe"><div class="ttname"><a href="group__tadsr3.html#ga61f1fd529df0d97a9a74b9523024b1fe">tADSR3_init</a></div><div class="ttdeci">void tADSR3_init(tADSR3 *const, float attack, float decay, float sustain, float release, LEAF *const leaf)</div><div class="ttdoc">Initialize a tADSR3 to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:658</div></div>
+<div class="ttc" id="agroup__tslide_html_ga8288a16662a7fa082c4fcad3cea0ab04"><div class="ttname"><a href="group__tslide.html#ga8288a16662a7fa082c4fcad3cea0ab04">tSlide_init</a></div><div class="ttdeci">void tSlide_init(tSlide *const, float upSlide, float downSlide, LEAF *const leaf)</div><div class="ttdoc">Initialize a tSlide to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1473</div></div>
+<div class="ttc" id="agroup__tadsr_html_ga1cceb7951e999aa388bd72a7bb3901f6"><div class="ttname"><a href="group__tadsr.html#ga1cceb7951e999aa388bd72a7bb3901f6">tADSR_setAttack</a></div><div class="ttdeci">void tADSR_setAttack(tADSR *const, float attack)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:292</div></div>
+<div class="ttc" id="agroup__tadsr3_html_gad48b26429b4224b199b26690a0d480f1"><div class="ttname"><a href="group__tadsr3.html#gad48b26429b4224b199b26690a0d480f1">tADSR3_off</a></div><div class="ttdeci">void tADSR3_off(tADSR3 *const)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:754</div></div>
+<div class="ttc" id="agroup__tadsr3_html_ga3ac9763101f9e3b5338ea92cc02a6032"><div class="ttname"><a href="group__tadsr3.html#ga3ac9763101f9e3b5338ea92cc02a6032">tADSR3_setRelease</a></div><div class="ttdeci">void tADSR3_setRelease(tADSR3 *const, float release)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:730</div></div>
+<div class="ttc" id="agroup__texpsmooth_html_ga19fc6917c2d049c72b55f432ea24cfe5"><div class="ttname"><a href="group__texpsmooth.html#ga19fc6917c2d049c72b55f432ea24cfe5">tExpSmooth_setValAndDest</a></div><div class="ttdeci">void tExpSmooth_setValAndDest(tExpSmooth *const expsmooth, float val)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1450</div></div>
+<div class="ttc" id="agroup__tadsr4_html_gab5b58a1067454a87cdff5e09a86e4af3"><div class="ttname"><a href="group__tadsr4.html#gab5b58a1067454a87cdff5e09a86e4af3">tADSR4_setDecay</a></div><div class="ttdeci">void tADSR4_setDecay(tADSR4 *const, float decay)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:873</div></div>
+<div class="ttc" id="agroup__tasdr2_html_gaf68f6a5e10f25998f33d65162f9eb583"><div class="ttname"><a href="group__tasdr2.html#gaf68f6a5e10f25998f33d65162f9eb583">tADSR2_setRelease</a></div><div class="ttdeci">void tADSR2_setRelease(tADSR2 *const, float release)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:576</div></div>
+<div class="ttc" id="agroup__tadsr3_html_ga589972bef8fca1a6a99064b92968c9fc"><div class="ttname"><a href="group__tadsr3.html#ga589972bef8fca1a6a99064b92968c9fc">tADSR3_setLeakFactor</a></div><div class="ttdeci">void tADSR3_setLeakFactor(tADSR3 *const, float leakFactor)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:740</div></div>
+<div class="ttc" id="agroup__tadsr_html_ga1a41adcdea81db09f04d008b9b8e62b8"><div class="ttname"><a href="group__tadsr.html#ga1a41adcdea81db09f04d008b9b8e62b8">tADSR_off</a></div><div class="ttdeci">void tADSR_off(tADSR *const)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:385</div></div>
+<div class="ttc" id="agroup__tasdr2_html_ga8490472fff769f548a45739892a31758"><div class="ttname"><a href="group__tasdr2.html#ga8490472fff769f548a45739892a31758">tADSR2_setLeakFactor</a></div><div class="ttdeci">void tADSR2_setLeakFactor(tADSR2 *const, float leakFactor)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:584</div></div>
+<div class="ttc" id="agroup__texpsmooth_html_gaea5297fd207b49cecb42c583fe6549cc"><div class="ttname"><a href="group__texpsmooth.html#gaea5297fd207b49cecb42c583fe6549cc">tExpSmooth_setFactor</a></div><div class="ttdeci">void tExpSmooth_setFactor(tExpSmooth *const, float factor)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1426</div></div>
+<div class="ttc" id="agroup__tslide_html_ga42a348c9028053e0ad3a22f1ac731430"><div class="ttname"><a href="group__tslide.html#ga42a348c9028053e0ad3a22f1ac731430">tSlide_initToPool</a></div><div class="ttdeci">void tSlide_initToPool(tSlide *const, float upSlide, float downSlide, tMempool *const)</div><div class="ttdoc">Initialize a tSlide to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1478</div></div>
+<div class="ttc" id="agroup__trampupdown_html_ga8d3a86e1a0937104788d63bafc34d37e"><div class="ttname"><a href="group__trampupdown.html#ga8d3a86e1a0937104788d63bafc34d37e">tRampUpDown_setUpTime</a></div><div class="ttdeci">void tRampUpDown_setUpTime(tRampUpDown *const, float upTime)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1307</div></div>
+<div class="ttc" id="agroup__tenvelope_html_gafb5292f686b84efd0d445a353bf4a37a"><div class="ttname"><a href="group__tenvelope.html#gafb5292f686b84efd0d445a353bf4a37a">tEnvelope_initToPool</a></div><div class="ttdeci">void tEnvelope_initToPool(tEnvelope *const, float attack, float decay, int loop, tMempool *const)</div><div class="ttdoc">Initialize a tEnvelope to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:33</div></div>
+<div class="ttc" id="agroup__tadsr4_html_ga5059a2109760aa0188c4769a52b4a4a3"><div class="ttname"><a href="group__tadsr4.html#ga5059a2109760aa0188c4769a52b4a4a3">tADSR4_setAttack</a></div><div class="ttdeci">void tADSR4_setAttack(tADSR4 *const, float attack)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:861</div></div>
+<div class="ttc" id="agroup__trampupdown_html_ga9c1bbd455bd922c8b51c1b5e8c50e885"><div class="ttname"><a href="group__trampupdown.html#ga9c1bbd455bd922c8b51c1b5e8c50e885">tRampUpDown_setVal</a></div><div class="ttdeci">void tRampUpDown_setVal(tRampUpDown *const, float val)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1346</div></div>
+<div class="ttc" id="agroup__tadsr_html_ga3d62827bbd4f058d07e6cb1a8b92cb9f"><div class="ttname"><a href="group__tadsr.html#ga3d62827bbd4f058d07e6cb1a8b92cb9f">tADSR_setRelease</a></div><div class="ttdeci">void tADSR_setRelease(tADSR *const, float release)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:335</div></div>
+<div class="ttc" id="agroup__tramp_html_ga4a3488c43e978d905080773353ce40f4"><div class="ttname"><a href="group__tramp.html#ga4a3488c43e978d905080773353ce40f4">tRamp_sample</a></div><div class="ttdeci">float tRamp_sample(tRamp *const)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1240</div></div>
+<div class="ttc" id="agroup__tadsr3_html_ga3b959e263e7322d7876bdf5e9b633a16"><div class="ttname"><a href="group__tadsr3.html#ga3b959e263e7322d7876bdf5e9b633a16">tADSR3_tick</a></div><div class="ttdeci">float tADSR3_tick(tADSR3 *const)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:764</div></div>
+<div class="ttc" id="agroup__tslide_html_gaac39af0df494460bbc7170a2a34dd7e1"><div class="ttname"><a href="group__tslide.html#gaac39af0df494460bbc7170a2a34dd7e1">tSlide_setUpSlide</a></div><div class="ttdeci">void tSlide_setUpSlide(tSlide *const sl, float upSlide)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1508</div></div>
+<div class="ttc" id="agroup__texpsmooth_html_ga1f96e9a582c3bf85dd600f98eac11243"><div class="ttname"><a href="group__texpsmooth.html#ga1f96e9a582c3bf85dd600f98eac11243">tExpSmooth_sample</a></div><div class="ttdeci">float tExpSmooth_sample(tExpSmooth *const)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1464</div></div>
+<div class="ttc" id="agroup__tasdr2_html_ga3d78c0c766ca431b535d3adb0bc2f684"><div class="ttname"><a href="group__tasdr2.html#ga3d78c0c766ca431b535d3adb0bc2f684">tADSR2_free</a></div><div class="ttdeci">void tADSR2_free(tADSR2 *const)</div><div class="ttdoc">Free a tADSR2 from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:540</div></div>
+<div class="ttc" id="agroup__tslide_html_ga381e81d6bcb9cba92acfe9a68df8c193"><div class="ttname"><a href="group__tslide.html#ga381e81d6bcb9cba92acfe9a68df8c193">tSlide_setDest</a></div><div class="ttdeci">void tSlide_setDest(tSlide *const sl, float dest)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1520</div></div>
+<div class="ttc" id="agroup__tenvelope_html_ga40beb9faaf417398361fe2c4699318f5"><div class="ttname"><a href="group__tenvelope.html#ga40beb9faaf417398361fe2c4699318f5">tEnvelope_tick</a></div><div class="ttdeci">float tEnvelope_tick(tEnvelope *const)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:144</div></div>
+<div class="ttc" id="agroup__tadsr_html_gaffd817040cc125f3b8204e756a16085c"><div class="ttname"><a href="group__tadsr.html#gaffd817040cc125f3b8204e756a16085c">tADSR_on</a></div><div class="ttdeci">void tADSR_on(tADSR *const, float velocity)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:361</div></div>
+<div class="ttc" id="agroup__tslide_html_ga0ba5fda0ed766d03ac97ad8d0f068ba1"><div class="ttname"><a href="group__tslide.html#ga0ba5fda0ed766d03ac97ad8d0f068ba1">tSlide_tickNoInput</a></div><div class="ttdeci">float tSlide_tickNoInput(tSlide *const sl)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1526</div></div>
+<div class="ttc" id="agroup__tadsr4_html_ga691edaf4b254d1d44bee378312e370be"><div class="ttname"><a href="group__tadsr4.html#ga691edaf4b254d1d44bee378312e370be">tADSR4_setSustain</a></div><div class="ttdeci">void tADSR4_setSustain(tADSR4 *const, float sustain)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:884</div></div>
+<div class="ttc" id="agroup__tramp_html_ga44d22f890ed04cd061cfba963b1f9729"><div class="ttname"><a href="group__tramp.html#ga44d22f890ed04cd061cfba963b1f9729">tRamp_init</a></div><div class="ttdeci">void tRamp_init(tRamp *const, float time, int samplesPerTick, LEAF *const leaf)</div><div class="ttdoc">Initialize a tRamp to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1156</div></div>
+<div class="ttc" id="agroup__trampupdown_html_ga10049078d9afde547db5345067355741"><div class="ttname"><a href="group__trampupdown.html#ga10049078d9afde547db5345067355741">tRampUpDown_init</a></div><div class="ttdeci">void tRampUpDown_init(tRampUpDown *const, float upTime, float downTime, int samplesPerTick, LEAF *const leaf)</div><div class="ttdoc">Initialize a tRampUpDown to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1259</div></div>
+<div class="ttc" id="agroup__tasdr2_html_gadd6f357864babc27382363b314efd70d"><div class="ttname"><a href="group__tasdr2.html#gadd6f357864babc27382363b314efd70d">tADSR2_off</a></div><div class="ttdeci">void tADSR2_off(tADSR2 *const)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:601</div></div>
+<div class="ttc" id="agroup__trampupdown_html_ga15eca113d583ad81c71750cb13efb8f4"><div class="ttname"><a href="group__trampupdown.html#ga15eca113d583ad81c71750cb13efb8f4">tRampUpDown_setDownTime</a></div><div class="ttdeci">void tRampUpDown_setDownTime(tRampUpDown *const, float downTime)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1323</div></div>
+<div class="ttc" id="agroup__tenvelope_html_gadadffd39e47ede9b25e1a9faad8c0bbc"><div class="ttname"><a href="group__tenvelope.html#gadadffd39e47ede9b25e1a9faad8c0bbc">tEnvelope_setDecay</a></div><div class="ttdeci">void tEnvelope_setDecay(tEnvelope *const, float decay)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:98</div></div>
+<div class="ttc" id="agroup__tadsr4_html_ga18f8440695a8f99ff6469ff9df6395c2"><div class="ttname"><a href="group__tadsr4.html#ga18f8440695a8f99ff6469ff9df6395c2">tADSR4_init</a></div><div class="ttdeci">void tADSR4_init(tADSR4 *const, float attack, float decay, float sustain, float release, float *expBuffer, int bufferSize, LEAF *const leaf)</div><div class="ttdoc">Initialize a tADSR4 to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:806</div></div>
+<div class="ttc" id="agroup__tasdr2_html_ga3910c7c0360e0d7859e4bcf5521b3e7d"><div class="ttname"><a href="group__tasdr2.html#ga3910c7c0360e0d7859e4bcf5521b3e7d">tADSR2_setSustain</a></div><div class="ttdeci">void tADSR2_setSustain(tADSR2 *const, float sustain)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:562</div></div>
+<div class="ttc" id="agroup__tramp_html_gafe5e687461cdb8b7cd0714b9fdca4223"><div class="ttname"><a href="group__tramp.html#gafe5e687461cdb8b7cd0714b9fdca4223">tRamp_setVal</a></div><div class="ttdeci">void tRamp_setVal(tRamp *const, float val)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1218</div></div>
+<div class="ttc" id="agroup__trampupdown_html_ga8eeaec61bbb73b00497dd5c62e43298e"><div class="ttname"><a href="group__trampupdown.html#ga8eeaec61bbb73b00497dd5c62e43298e">tRampUpDown_free</a></div><div class="ttdeci">void tRampUpDown_free(tRampUpDown *const)</div><div class="ttdoc">Free a tRampUpDown from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1300</div></div>
+<div class="ttc" id="agroup__tadsr_html_ga7f305ead6d014fbafcb132ebcc81dddb"><div class="ttname"><a href="group__tadsr.html#ga7f305ead6d014fbafcb132ebcc81dddb">tADSR_setDecay</a></div><div class="ttdeci">void tADSR_setDecay(tADSR *const, float decay)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:309</div></div>
+<div class="ttc" id="agroup__tramp_html_ga155e473a79ce4b174fa468981bb13750"><div class="ttname"><a href="group__tramp.html#ga155e473a79ce4b174fa468981bb13750">tRamp_free</a></div><div class="ttdeci">void tRamp_free(tRamp *const)</div><div class="ttdoc">Free a tRamp from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1187</div></div>
+<div class="ttc" id="agroup__tramp_html_gada173eb52e34ee8fb16d79026014a4be"><div class="ttname"><a href="group__tramp.html#gada173eb52e34ee8fb16d79026014a4be">tRamp_setTime</a></div><div class="ttdeci">void tRamp_setTime(tRamp *const, float time)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1194</div></div>
+<div class="ttc" id="agroup__tadsr3_html_ga7e0784b34c2fef54de2ed993d68f9b7c"><div class="ttname"><a href="group__tadsr3.html#ga7e0784b34c2fef54de2ed993d68f9b7c">tADSR3_initToPool</a></div><div class="ttdeci">void tADSR3_initToPool(tADSR3 *const, float attack, float decay, float sustain, float release, tMempool *const)</div><div class="ttdoc">Initialize a tADSR3 to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:663</div></div>
+<div class="ttc" id="agroup__tadsr4_html_ga0271a2f741bed72edb08dc965433dade"><div class="ttname"><a href="group__tadsr4.html#ga0271a2f741bed72edb08dc965433dade">tADSR4_off</a></div><div class="ttdeci">void tADSR4_off(tADSR4 *const)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:934</div></div>
+<div class="ttc" id="agroup__tenvelope_html_gad7cb0c772ac308884c50ce88eac76350"><div class="ttname"><a href="group__tenvelope.html#gad7cb0c772ac308884c50ce88eac76350">tEnvelope_setAttack</a></div><div class="ttdeci">void tEnvelope_setAttack(tEnvelope *const, float attack)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:81</div></div>
+<div class="ttc" id="agroup__tadsr_html_gafa76d2b76694362abf9cf0ed987b7106"><div class="ttname"><a href="group__tadsr.html#gafa76d2b76694362abf9cf0ed987b7106">tADSR_init</a></div><div class="ttdeci">void tADSR_init(tADSR *const adsrenv, float attack, float decay, float sustain, float release, LEAF *const leaf)</div><div class="ttdoc">Initialize a tADSR to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:219</div></div>
+<div class="ttc" id="agroup__tslide_html_gacdddc23733eda912f51d57cc944062b0"><div class="ttname"><a href="group__tslide.html#gacdddc23733eda912f51d57cc944062b0">tSlide_tick</a></div><div class="ttdeci">float tSlide_tick(tSlide *const, float in)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1548</div></div>
+<div class="ttc" id="agroup__texpsmooth_html_ga6e215e2d8a7e43e16d009f8eb805330e"><div class="ttname"><a href="group__texpsmooth.html#ga6e215e2d8a7e43e16d009f8eb805330e">tExpSmooth_setVal</a></div><div class="ttdeci">void tExpSmooth_setVal(tExpSmooth *const, float val)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1444</div></div>
+<div class="ttc" id="agroup__trampupdown_html_ga971e5d4b58631194769d9ff29b09bab0"><div class="ttname"><a href="group__trampupdown.html#ga971e5d4b58631194769d9ff29b09bab0">tRampUpDown_initToPool</a></div><div class="ttdeci">void tRampUpDown_initToPool(tRampUpDown *const, float upTime, float downTime, int samplesPerTick, tMempool *const)</div><div class="ttdoc">Initialize a tRampUpDown to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1264</div></div>
+<div class="ttc" id="agroup__trampupdown_html_gae271d51d8270f50237f2b46b476930bf"><div class="ttname"><a href="group__trampupdown.html#gae271d51d8270f50237f2b46b476930bf">tRampUpDown_tick</a></div><div class="ttdeci">float tRampUpDown_tick(tRampUpDown *const)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1354</div></div>
+<div class="ttc" id="agroup__tadsr3_html_ga325386ad4640ec898971fdedf87b3b49"><div class="ttname"><a href="group__tadsr3.html#ga325386ad4640ec898971fdedf87b3b49">tADSR3_setDecay</a></div><div class="ttdeci">void tADSR3_setDecay(tADSR3 *const, float decay)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:713</div></div>
+<div class="ttc" id="agroup__tasdr2_html_ga15dbf5b654eb51489bef787f4c9c23b7"><div class="ttname"><a href="group__tasdr2.html#ga15dbf5b654eb51489bef787f4c9c23b7">tADSR2_initToPool</a></div><div class="ttdeci">void tADSR2_initToPool(tADSR2 *const, float attack, float decay, float sustain, float release, tMempool *const)</div><div class="ttdoc">Initialize a tADSR2 to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:507</div></div>
+<div class="ttc" id="agroup__tadsr_html_gabbc3685eb6c47a49e657a1792d38dfc7"><div class="ttname"><a href="group__tadsr.html#gabbc3685eb6c47a49e657a1792d38dfc7">tADSR_tick</a></div><div class="ttdeci">float tADSR_tick(tADSR *const)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:399</div></div>
+<div class="ttc" id="agroup__tadsr_html_gac676d5a70fe7a8487d125e5aff250fd0"><div class="ttname"><a href="group__tadsr.html#gac676d5a70fe7a8487d125e5aff250fd0">tADSR_setSustain</a></div><div class="ttdeci">void tADSR_setSustain(tADSR *const, float sustain)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:326</div></div>
+<div class="ttc" id="agroup__tenvelope_html_ga750a7c8d37cbe768f2392e93f71f926a"><div class="ttname"><a href="group__tenvelope.html#ga750a7c8d37cbe768f2392e93f71f926a">tEnvelope_init</a></div><div class="ttdeci">void tEnvelope_init(tEnvelope *const, float attack, float decay, int loop, LEAF *const leaf)</div><div class="ttdoc">Initialize a tEnvelope to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:28</div></div>
+<div class="ttc" id="agroup__tadsr_html_gaccc3f988aaab5a39b495b1ccd21da608"><div class="ttname"><a href="group__tadsr.html#gaccc3f988aaab5a39b495b1ccd21da608">tADSR_free</a></div><div class="ttdeci">void tADSR_free(tADSR *const)</div><div class="ttdoc">Free a tADSR from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:286</div></div>
+<div class="ttc" id="agroup__tadsr4_html_ga63a8a38f1f6f319d0103acf7d0fb21ad"><div class="ttname"><a href="group__tadsr4.html#ga63a8a38f1f6f319d0103acf7d0fb21ad">tADSR4_on</a></div><div class="ttdeci">void tADSR4_on(tADSR4 *const, float velocity)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:913</div></div>
+<div class="ttc" id="agroup__tadsr3_html_gaf633a93865d4a9d4ba4840624f2b41bf"><div class="ttname"><a href="group__tadsr3.html#gaf633a93865d4a9d4ba4840624f2b41bf">tADSR3_free</a></div><div class="ttdeci">void tADSR3_free(tADSR3 *const)</div><div class="ttdoc">Free a tADSR3 from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:698</div></div>
+<div class="ttc" id="agroup__texpsmooth_html_ga8b8656a6b3b3f824a3a4b1ad06fc5e9e"><div class="ttname"><a href="group__texpsmooth.html#ga8b8656a6b3b3f824a3a4b1ad06fc5e9e">tExpSmooth_initToPool</a></div><div class="ttdeci">void tExpSmooth_initToPool(tExpSmooth *const, float val, float factor, tMempool *const)</div><div class="ttdoc">Initialize a tExpSmooth to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1405</div></div>
+<div class="ttc" id="agroup__tadsr_html_gada1d7d74e13cfddaba736b2920b79d9f"><div class="ttname"><a href="group__tadsr.html#gada1d7d74e13cfddaba736b2920b79d9f">tADSR_initToPool</a></div><div class="ttdeci">void tADSR_initToPool(tADSR *const adsrenv, float attack, float decay, float sustain, float release, tMempool *const mp)</div><div class="ttdoc">Initialize a tADSR to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:224</div></div>
+<div class="ttc" id="agroup__texpsmooth_html_ga67d45ea3ba251bc651b06733bdd65e60"><div class="ttname"><a href="group__texpsmooth.html#ga67d45ea3ba251bc651b06733bdd65e60">tExpSmooth_setDest</a></div><div class="ttdeci">void tExpSmooth_setDest(tExpSmooth *const, float dest)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1438</div></div>
+<div class="ttc" id="agroup__tasdr2_html_ga3033906b9b5a6688818059210b10799e"><div class="ttname"><a href="group__tasdr2.html#ga3033906b9b5a6688818059210b10799e">tADSR2_tick</a></div><div class="ttdeci">float tADSR2_tick(tADSR2 *const)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:608</div></div>
+<div class="ttc" id="agroup__tasdr2_html_ga19f6d152bd5b351dcc4416f4a5f51555"><div class="ttname"><a href="group__tasdr2.html#ga19f6d152bd5b351dcc4416f4a5f51555">tADSR2_setAttack</a></div><div class="ttdeci">void tADSR2_setAttack(tADSR2 *const, float attack)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:546</div></div>
+<div class="ttc" id="agroup__tasdr2_html_gab50e8fb5a053b908b69315cd83e1840a"><div class="ttname"><a href="group__tasdr2.html#gab50e8fb5a053b908b69315cd83e1840a">tADSR2_setDecay</a></div><div class="ttdeci">void tADSR2_setDecay(tADSR2 *const, float decay)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:554</div></div>
+<div class="ttc" id="agroup__tramp_html_gad348c3b0601d99326ce06ba017ef2508"><div class="ttname"><a href="group__tramp.html#gad348c3b0601d99326ce06ba017ef2508">tRamp_setDest</a></div><div class="ttdeci">void tRamp_setDest(tRamp *const, float dest)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1211</div></div>
+<div class="ttc" id="agroup__tenvelope_html_gac9babd2be1211097f9beee044ec4cdd9"><div class="ttname"><a href="group__tenvelope.html#gac9babd2be1211097f9beee044ec4cdd9">tEnvelope_free</a></div><div class="ttdeci">void tEnvelope_free(tEnvelope *const)</div><div class="ttdoc">Free a tEnvelope from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:75</div></div>
+<div class="ttc" id="agroup__texpsmooth_html_ga9c772d0874085e260027716a6850c066"><div class="ttname"><a href="group__texpsmooth.html#ga9c772d0874085e260027716a6850c066">tExpSmooth_tick</a></div><div class="ttdeci">float tExpSmooth_tick(tExpSmooth *const)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1457</div></div>
+<div class="ttc" id="agroup__tadsr3_html_ga6054295d933bb2d27898664f4b6f067e"><div class="ttname"><a href="group__tadsr3.html#ga6054295d933bb2d27898664f4b6f067e">tADSR3_on</a></div><div class="ttdeci">void tADSR3_on(tADSR3 *const, float velocity)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:747</div></div>
+<div class="ttc" id="agroup__tramp_html_gac4d46bba12df2569f57bbdb9b407fe24"><div class="ttname"><a href="group__tramp.html#gac4d46bba12df2569f57bbdb9b407fe24">tRamp_initToPool</a></div><div class="ttdeci">void tRamp_initToPool(tRamp *const, float time, int samplesPerTick, tMempool *const)</div><div class="ttdoc">Initialize a tRamp to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1161</div></div>
+<div class="ttc" id="agroup__texpsmooth_html_ga9074f846bd87a7e9071ff7a0fc77412a"><div class="ttname"><a href="group__texpsmooth.html#ga9074f846bd87a7e9071ff7a0fc77412a">tExpSmooth_init</a></div><div class="ttdeci">void tExpSmooth_init(tExpSmooth *const, float val, float factor, LEAF *const leaf)</div><div class="ttdoc">Initialize a tExpSmooth to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1400</div></div>
+<div class="ttc" id="agroup__tadsr4_html_ga2889f7a9596ba5e9d386c9913e51e62d"><div class="ttname"><a href="group__tadsr4.html#ga2889f7a9596ba5e9d386c9913e51e62d">tADSR4_free</a></div><div class="ttdeci">void tADSR4_free(tADSR4 *const)</div><div class="ttdoc">Free a tADSR4 from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:855</div></div>
+<div class="ttc" id="agroup__tasdr2_html_ga2ba1656a4f5d1f8dcecde930ea54c7b7"><div class="ttname"><a href="group__tasdr2.html#ga2ba1656a4f5d1f8dcecde930ea54c7b7">tADSR2_on</a></div><div class="ttdeci">void tADSR2_on(tADSR2 *const, float velocity)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:591</div></div>
+<div class="ttc" id="agroup__tadsr4_html_ga731d6838ae65373c787ecf977523c121"><div class="ttname"><a href="group__tadsr4.html#ga731d6838ae65373c787ecf977523c121">tADSR4_initToPool</a></div><div class="ttdeci">void tADSR4_initToPool(tADSR4 *const, float attack, float decay, float sustain, float release, float *expBuffer, int bufferSize, tMempool *const)</div><div class="ttdoc">Initialize a tADSR4 to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:813</div></div>
+<div class="ttc" id="agroup__tadsr_html_ga1802708b1a0c0ce324c3072554c01624"><div class="ttname"><a href="group__tadsr.html#ga1802708b1a0c0ce324c3072554c01624">tADSR_setLeakFactor</a></div><div class="ttdeci">void tADSR_setLeakFactor(tADSR *const, float leakFactor)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:353</div></div>
+<div class="ttc" id="agroup__tadsr4_html_ga7a53860240f681a65d90302145702697"><div class="ttname"><a href="group__tadsr4.html#ga7a53860240f681a65d90302145702697">tADSR4_setRelease</a></div><div class="ttdeci">void tADSR4_setRelease(tADSR4 *const, float release)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:893</div></div>
+<div class="ttc" id="agroup__tenvelope_html_gafd5088139edc7b5630a7738efa7bac38"><div class="ttname"><a href="group__tenvelope.html#gafd5088139edc7b5630a7738efa7bac38">tEnvelope_loop</a></div><div class="ttdeci">void tEnvelope_loop(tEnvelope *const, int loop)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:115</div></div>
+<div class="ttc" id="agroup__trampupdown_html_gacf9c6cad23c6fb79c002fdb60a132e69"><div class="ttname"><a href="group__trampupdown.html#gacf9c6cad23c6fb79c002fdb60a132e69">tRampUpDown_sample</a></div><div class="ttdeci">float tRampUpDown_sample(tRampUpDown *const)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1388</div></div>
+<div class="ttc" id="agroup__tslide_html_ga57ba71883af607aaf28f0292e0cee901"><div class="ttname"><a href="group__tslide.html#ga57ba71883af607aaf28f0292e0cee901">tSlide_free</a></div><div class="ttdeci">void tSlide_free(tSlide *const)</div><div class="ttdoc">Free a tSlide from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1501</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<div class="ttc" id="agroup__tadsr4_html_ga32a5545ca2510d666b9c59d9106888c5"><div class="ttname"><a href="group__tadsr4.html#ga32a5545ca2510d666b9c59d9106888c5">tADSR4_tickNoInterp</a></div><div class="ttdeci">float tADSR4_tickNoInterp(tADSR4 *const adsrenv)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1074</div></div>
+<div class="ttc" id="agroup__tadsr3_html_ga0a6a119590346ee356f486d8af00567a"><div class="ttname"><a href="group__tadsr3.html#ga0a6a119590346ee356f486d8af00567a">tADSR3_setAttack</a></div><div class="ttdeci">void tADSR3_setAttack(tADSR3 *const, float attack)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:704</div></div>
+<div class="ttc" id="agroup__tenvelope_html_ga27ea23e65d88dee4361325bcb8cd7e23"><div class="ttname"><a href="group__tenvelope.html#ga27ea23e65d88dee4361325bcb8cd7e23">tEnvelope_on</a></div><div class="ttdeci">void tEnvelope_on(tEnvelope *const, float velocity)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:122</div></div>
+<div class="ttc" id="agroup__tadsr3_html_gae5695ee654846bf4f3f092c3f2136ca8"><div class="ttname"><a href="group__tadsr3.html#gae5695ee654846bf4f3f092c3f2136ca8">tADSR3_setSustain</a></div><div class="ttdeci">void tADSR3_setSustain(tADSR3 *const, float sustain)</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:722</div></div>
+<div class="ttc" id="agroup__texpsmooth_html_gaf49340184c2380c43fd0cb990d9a6ea3"><div class="ttname"><a href="group__texpsmooth.html#gaf49340184c2380c43fd0cb990d9a6ea3">tExpSmooth_free</a></div><div class="ttdeci">void tExpSmooth_free(tExpSmooth *const)</div><div class="ttdoc">Free a tExpSmooth from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-envelopes.c:1419</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-filters_8h_source.html
@@ -1,0 +1,700 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-filters.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-filters.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*==============================================================================</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> leaf-filters.h</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> Created: 20 Jan 2017 12:01:10pm</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> Author:  Michael R Mulshine</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> ==============================================================================*/</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#ifndef LEAF_FILTERS_H_INCLUDED</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define LEAF_FILTERS_H_INCLUDED</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;leaf-delay.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;leaf-tables.h&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tAllpass</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    {</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        </div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        <span class="keywordtype">float</span> gain;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        tLinearDelay delay;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        <span class="keywordtype">float</span> lastOut;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    } _tAllpass;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keyword">typedef</span> _tAllpass* tAllpass;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tallpass.html#ga49f8da193def13b70b2380288dbd96d2">tAllpass_init</a>           (tAllpass* <span class="keyword">const</span>, <span class="keywordtype">float</span> initDelay, uint32_t maxDelay, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tallpass.html#ga51e3ba1dedc220c6f466704870614ec7">tAllpass_initToPool</a>     (tAllpass* <span class="keyword">const</span>, <span class="keywordtype">float</span> initDelay, uint32_t maxDelay, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tallpass.html#ga177191c8cb437f2a255f02ee476d6ee0">tAllpass_free</a>           (tAllpass* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tallpass.html#gac0b56b4935f44e73e86566289d16aaa5">tAllpass_tick</a>           (tAllpass* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tallpass.html#gac301093f1c86a58e33f0d197e4f49719">tAllpass_setGain</a>        (tAllpass* <span class="keyword">const</span>, <span class="keywordtype">float</span> gain);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tallpass.html#gaa0e5e88f6000959b4a6146e0c1ce4553">tAllpass_setDelay</a>       (tAllpass* <span class="keyword">const</span>, <span class="keywordtype">float</span> delay);</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    </div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    </div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tOnePole</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    {</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        </div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        <span class="keywordtype">float</span> gain;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        <span class="keywordtype">float</span> a0,a1;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <span class="keywordtype">float</span> b0,b1;</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        <span class="keywordtype">float</span> lastIn, lastOut;</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    } _tOnePole;</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    </div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="keyword">typedef</span> _tOnePole* tOnePole;</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonepole.html#gabcdda318381d2d2dd314c3ec4399944d">tOnePole_init</a>           (tOnePole* <span class="keyword">const</span>, <span class="keywordtype">float</span> thePole, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonepole.html#ga08050cc38be920cf41bfdf4fc07fd81b">tOnePole_initToPool</a>     (tOnePole* <span class="keyword">const</span>, <span class="keywordtype">float</span> thePole, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonepole.html#gae62f76fc8009569f5dc89388d0598b62">tOnePole_free</a>           (tOnePole* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    </div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tonepole.html#gaf0f1f40fccb864cdf7310fffbdcfcf5f">tOnePole_tick</a>           (tOnePole* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonepole.html#gac83d1fd7167c1bd78cf4b44fa2d18562">tOnePole_setB0</a>          (tOnePole* <span class="keyword">const</span>, <span class="keywordtype">float</span> b0);</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonepole.html#ga255cd0e1e27c6dfced99c68ac352e57f">tOnePole_setA1</a>          (tOnePole* <span class="keyword">const</span>, <span class="keywordtype">float</span> a1);</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonepole.html#gac20aca828debbc4fae6b62ea6e085356">tOnePole_setPole</a>        (tOnePole* <span class="keyword">const</span>, <span class="keywordtype">float</span> thePole);</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonepole.html#gaa2fe72283746cd156766fd07f6604430">tOnePole_setFreq</a>        (tOnePole* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonepole.html#gad7a7e9061389b83a4efed8e9d30f9047">tOnePole_setCoefficients</a>(tOnePole* <span class="keyword">const</span>, <span class="keywordtype">float</span> b0, <span class="keywordtype">float</span> a1);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonepole.html#gab5abc7f67dc57d2475e3880c864c3717">tOnePole_setGain</a>        (tOnePole* <span class="keyword">const</span>, <span class="keywordtype">float</span> gain);</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tTwoPole</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    {</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        </div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        <span class="keywordtype">float</span> gain;</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        <span class="keywordtype">float</span> a0, a1, a2;</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        <span class="keywordtype">float</span> b0;</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        </div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        <span class="keywordtype">float</span> radius, frequency;</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        <span class="keywordtype">int</span> normalize;</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;        <span class="keywordtype">float</span> lastOut[2];</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    } _tTwoPole;</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    <span class="keyword">typedef</span> _tTwoPole* tTwoPole;</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    </div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwopole.html#ga437e9e3fd63636ab7fefcd58462278fa">tTwoPole_init</a>           (tTwoPole* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwopole.html#ga55ee401b5734305e263e0095d87e221b">tTwoPole_initToPool</a>     (tTwoPole* <span class="keyword">const</span>, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwopole.html#ga20e88350ffe6c751a0e2248bab393706">tTwoPole_free</a>           (tTwoPole* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    </div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__ttwopole.html#ga98456b845592b69f0088421c46d25e7c">tTwoPole_tick</a>           (tTwoPole* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwopole.html#gaa643934d1d292fcf856fc1be6b7eb3a8">tTwoPole_setB0</a>          (tTwoPole* <span class="keyword">const</span>, <span class="keywordtype">float</span> b0);</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwopole.html#ga914f59f7f7f48b948ac21f1dc76bbb30">tTwoPole_setA1</a>          (tTwoPole* <span class="keyword">const</span>, <span class="keywordtype">float</span> a1);</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwopole.html#ga8b1df900582e1961bab7ea00a6648c3d">tTwoPole_setA2</a>          (tTwoPole* <span class="keyword">const</span>, <span class="keywordtype">float</span> a2);</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwopole.html#gaef4a460381c662c98f60cce91a1f8924">tTwoPole_setResonance</a>   (tTwoPole* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> radius, <span class="keywordtype">int</span> normalize);</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwopole.html#ga2a70b13cb9039c9dd9c1a1407c26ff4c">tTwoPole_setCoefficients</a>(tTwoPole* <span class="keyword">const</span>, <span class="keywordtype">float</span> b0, <span class="keywordtype">float</span> a1, <span class="keywordtype">float</span> a2);</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwopole.html#gad1f982ce04f2d4d4505b77bbc70d5080">tTwoPole_setGain</a>        (tTwoPole* <span class="keyword">const</span>, <span class="keywordtype">float</span> gain);</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    </div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    </div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tOneZero</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    {</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        </div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        <span class="keywordtype">float</span> gain;</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        <span class="keywordtype">float</span> b0,b1;</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        <span class="keywordtype">float</span> lastIn, lastOut, frequency;</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    } _tOneZero;</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    </div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    <span class="keyword">typedef</span> _tOneZero* tOneZero;</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    </div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonezero.html#gabbd3ddafbab517a2c66e91d8e68f71f7">tOneZero_init</a>           (tOneZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> theZero, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonezero.html#ga8148897bb39a76c5368f740d532c774b">tOneZero_initToPool</a>     (tOneZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> theZero, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonezero.html#ga06bbbfdb22d7b291f73489981c311bc0">tOneZero_free</a>           (tOneZero* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    </div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tonezero.html#ga5d49fd94313454e219b43e1fa3175d12">tOneZero_tick</a>           (tOneZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonezero.html#ga98cda6f603769e6ad842f869c751b5b8">tOneZero_setB0</a>          (tOneZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> b0);</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonezero.html#ga02db3ca6e4e8d321a4730e4ea2b58f6c">tOneZero_setB1</a>          (tOneZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> b1);</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonezero.html#gaf0827232a84f1d39e418459d9d53c977">tOneZero_setZero</a>        (tOneZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> theZero);</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonezero.html#gaf460819e3f35c5759cc1f6707f2bda86">tOneZero_setCoefficients</a>(tOneZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> b0, <span class="keywordtype">float</span> b1);</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tonezero.html#ga6f7ad30df1a802a5db5b8b4f6465c993">tOneZero_setGain</a>        (tOneZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> gain);</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tonezero.html#gae93bd56798868c1022fa025c62126bfe">tOneZero_getPhaseDelay</a>  (tOneZero *f, <span class="keywordtype">float</span> frequency);</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    </div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    </div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tTwoZero</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    {</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        </div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;        </div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        <span class="keywordtype">float</span> gain;</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        <span class="keywordtype">float</span> b0, b1, b2;</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;        </div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        <span class="keywordtype">float</span> frequency, radius;</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;        </div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        <span class="keywordtype">float</span> lastIn[2];</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;    } _tTwoZero;</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    </div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    <span class="keyword">typedef</span> _tTwoZero* tTwoZero;</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    </div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwozero.html#gacebbb6bc52b6f785d3209369366f4932">tTwoZero_init</a>           (tTwoZero* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwozero.html#ga1a327119904fbcdb8f71f28629bb14d4">tTwoZero_initToPool</a>     (tTwoZero* <span class="keyword">const</span>, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwozero.html#gadc24b26d9a21905fe56a42a6eeec70a1">tTwoZero_free</a>           (tTwoZero* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    </div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__ttwozero.html#gaa717ce92df413200e3dfe7f5322cdd41">tTwoZero_tick</a>           (tTwoZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwozero.html#gae344592b94dcf9493aa9fdb9b363b8ac">tTwoZero_setB0</a>          (tTwoZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> b0);</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwozero.html#ga8f7eea8cd31ae96e300d8398ee988c8b">tTwoZero_setB1</a>          (tTwoZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> b1);</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwozero.html#ga57cfdc780478243c74335fb85fdc2620">tTwoZero_setB2</a>          (tTwoZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> b2);</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwozero.html#gafbcfc71b7c4eccc53cc104c3ceb83eba">tTwoZero_setNotch</a>       (tTwoZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> frequency, <span class="keywordtype">float</span> radius);</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwozero.html#ga0875c43313e952ee2dcd86247efef096">tTwoZero_setCoefficients</a>(tTwoZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> b0, <span class="keywordtype">float</span> b1, <span class="keywordtype">float</span> b2);</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttwozero.html#gaaeeb223d8133a3b4d6e249b1a9cbae05">tTwoZero_setGain</a>        (tTwoZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> gain);</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    </div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    </div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tPoleZero</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;    {</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        </div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;        </div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;        <span class="keywordtype">float</span> gain;</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;        <span class="keywordtype">float</span> a0,a1;</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        <span class="keywordtype">float</span> b0,b1;</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        </div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;        <span class="keywordtype">float</span> lastIn, lastOut;</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    } _tPoleZero;</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;    </div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    <span class="keyword">typedef</span> _tPoleZero* tPoleZero;</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    </div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpolezero.html#ga6b6829aefeb5180022ae0b7e8d5b9b1c">tPoleZero_init</a>              (tPoleZero* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpolezero.html#gadb9f2207e2217190013543ce210c5dda">tPoleZero_initToPool</a>        (tPoleZero* <span class="keyword">const</span>, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpolezero.html#gaf66d289f3a48e83eb6d77acedd7cea74">tPoleZero_free</a>              (tPoleZero* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;    </div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tpolezero.html#ga4e024338fe577882f52494f525488d32">tPoleZero_tick</a>              (tPoleZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpolezero.html#ga896a83342ee3ea486f171d872b9809b0">tPoleZero_setB0</a>             (tPoleZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> b0);</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpolezero.html#ga4c6d29a676d98f4d57e0f8078ab61279">tPoleZero_setB1</a>             (tPoleZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> b1);</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpolezero.html#ga118daf1002dcd0d5c24b2d86af9196fb">tPoleZero_setA1</a>             (tPoleZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> a1);</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpolezero.html#ga9b72bcea9b5912e4ecd62c7ea7d99b86">tPoleZero_setCoefficients</a>   (tPoleZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> b0, <span class="keywordtype">float</span> b1, <span class="keywordtype">float</span> a1);</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpolezero.html#gab978639dd9badc640b1f3a8b6a945b06">tPoleZero_setAllpass</a>        (tPoleZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> coeff);</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpolezero.html#ga863c1114d2a571d158fc74dd7f1ec06c">tPoleZero_setBlockZero</a>      (tPoleZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> thePole);</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpolezero.html#ga8bdd8dfb8e5c22c7ec820bea559e2fa7">tPoleZero_setGain</a>           (tPoleZero* <span class="keyword">const</span>, <span class="keywordtype">float</span> gain);</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    </div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    </div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tBiQuad</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;    {</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;        </div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;        </div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;        <span class="keywordtype">float</span> gain;</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;        <span class="keywordtype">float</span> a0, a1, a2;</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;        <span class="keywordtype">float</span> b0, b1, b2;</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;        </div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;        <span class="keywordtype">float</span> lastIn[2];</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;        <span class="keywordtype">float</span> lastOut[2];</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;        </div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;        <span class="keywordtype">float</span> frequency, radius;</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;        <span class="keywordtype">int</span> normalize;</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;    } _tBiQuad;</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;    </div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;    <span class="keyword">typedef</span> _tBiQuad* tBiQuad;</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;    </div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbiquad.html#ga7a8d9261b37e588479b6a9548a28a2ae">tBiQuad_init</a>           (tBiQuad* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbiquad.html#gab56ac6460715286ab98439dd8e7e346c">tBiQuad_initToPool</a>     (tBiQuad* <span class="keyword">const</span>, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbiquad.html#gaa73dd0d8efd4d147184a3af3243f50db">tBiQuad_free</a>           (tBiQuad* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;    </div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tbiquad.html#ga2acfc9097aa260ff141d79199f64fc88">tBiQuad_tick</a>           (tBiQuad* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbiquad.html#ga2f804ac8c8ccea56bbb3dae661b82692">tBiQuad_setB0</a>          (tBiQuad* <span class="keyword">const</span>, <span class="keywordtype">float</span> b0);</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbiquad.html#ga6a2d07723a0652c959c529274b1ca783">tBiQuad_setB1</a>          (tBiQuad* <span class="keyword">const</span>, <span class="keywordtype">float</span> b1);</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbiquad.html#gab3602dd88664599839ea67c6797cc4c2">tBiQuad_setB2</a>          (tBiQuad* <span class="keyword">const</span>, <span class="keywordtype">float</span> b2);</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbiquad.html#ga18eef101bdb03775d51acec6c6eebdaa">tBiQuad_setA1</a>          (tBiQuad* <span class="keyword">const</span>, <span class="keywordtype">float</span> a1);</div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbiquad.html#ga1583768209208a3f9d9135636fb505e6">tBiQuad_setA2</a>          (tBiQuad* <span class="keyword">const</span>, <span class="keywordtype">float</span> a2);</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbiquad.html#gad74e2504b0128119213eceba36f92879">tBiQuad_setNotch</a>       (tBiQuad* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> radius);</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbiquad.html#gaab73d7a7a79dccd112ec4d130b8e6d64">tBiQuad_setResonance</a>   (tBiQuad* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> radius, <span class="keywordtype">int</span> normalize);</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbiquad.html#gac0b42b1f3660dd1827b0e0a4150aadcd">tBiQuad_setCoefficients</a>(tBiQuad* <span class="keyword">const</span>, <span class="keywordtype">float</span> b0, <span class="keywordtype">float</span> b1, <span class="keywordtype">float</span> b2, <span class="keywordtype">float</span> a1, <span class="keywordtype">float</span> a2);</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbiquad.html#ga181c340eed069d92eacaadc8466f3218">tBiQuad_setGain</a>        (tBiQuad* <span class="keyword">const</span>, <span class="keywordtype">float</span> gain);</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;    </div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    </div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">enum</span> SVFType</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    {</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;        SVFTypeHighpass = 0,</div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;        SVFTypeLowpass,</div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;        SVFTypeBandpass,</div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;        SVFTypeNotch,</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;        SVFTypePeak,</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;        SVFTypeLowShelf,</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;        SVFTypeHighShelf</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;    } SVFType;</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;    </div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tSVF</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;    {</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;        </div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;        SVFType type;</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;        <span class="keywordtype">float</span> cutoff, Q;</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;        <span class="keywordtype">float</span> ic1eq,ic2eq;</div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;        <span class="keywordtype">float</span> g,k,a1,a2,a3,cH,cB,cL,cBK;</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    } _tSVF;</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;    </div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;    <span class="keyword">typedef</span> _tSVF* tSVF;</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;    </div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsvf.html#gaec95a0aaf02ed9170ea1a4e968acd82d">tSVF_init</a>           (tSVF* <span class="keyword">const</span>, SVFType type, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> Q, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsvf.html#gabcf663debbb880724f1c423c9d37d143">tSVF_initToPool</a>     (tSVF* <span class="keyword">const</span>, SVFType type, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> Q, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsvf.html#ga364e2d82cc7d843ccf63c32f6b6f6c28">tSVF_free</a>           (tSVF* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;    </div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tsvf.html#gaef34c602f1f798b4e3200c02a09e193b">tSVF_tick</a>           (tSVF* <span class="keyword">const</span>, <span class="keywordtype">float</span> v0);</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsvf.html#ga3b3d320a8d7991a002fa344d23780c78">tSVF_setFreq</a>        (tSVF* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsvf.html#ga29e6205846d379ffdd4131d0174c8784">tSVF_setQ</a>           (tSVF* <span class="keyword">const</span>, <span class="keywordtype">float</span> Q);</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsvf.html#gaf86bb651efd0ad3c7e782c71719e7a0f">tSVF_setFreqAndQ</a>    (tSVF* <span class="keyword">const</span> svff, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> Q);</div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;    </div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;    </div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tEfficientSVF</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    {</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;        </div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;        SVFType type;</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;        <span class="keywordtype">float</span> cutoff, Q;</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;        <span class="keywordtype">float</span> ic1eq,ic2eq;</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;        <span class="keywordtype">float</span> g,k,a1,a2,a3;</div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;    } _tEfficientSVF;</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;    </div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;    <span class="keyword">typedef</span> _tEfficientSVF* tEfficientSVF;</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;    </div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tefficientsvf.html#gaac44c74387fbeb20dff0c9f72e5a94ae">tEfficientSVF_init</a>          (tEfficientSVF* <span class="keyword">const</span>, SVFType type, uint16_t input, <span class="keywordtype">float</span> Q, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tefficientsvf.html#ga467f74b33e51b8a1dd4e87d0ee71b11a">tEfficientSVF_initToPool</a>    (tEfficientSVF* <span class="keyword">const</span>, SVFType type, uint16_t input, <span class="keywordtype">float</span> Q, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tefficientsvf.html#gaa5bc149b9e60cb47235a2e0dc68e2c89">tEfficientSVF_free</a>          (tEfficientSVF* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;    </div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tefficientsvf.html#ga6e00079f0b5094972741342dfdc0e7bf">tEfficientSVF_tick</a>          (tEfficientSVF* <span class="keyword">const</span>, <span class="keywordtype">float</span> v0);</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tefficientsvf.html#gad9da8495e569aa12165d804b2368147e">tEfficientSVF_setFreq</a>       (tEfficientSVF* <span class="keyword">const</span>, uint16_t controlFreq);</div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tefficientsvf.html#ga441c8da00fed2cb9397cbfe6e39f6ed0">tEfficientSVF_setQ</a>          (tEfficientSVF* <span class="keyword">const</span>, <span class="keywordtype">float</span> Q);</div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    </div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;    </div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tHighpass</div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;    {</div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;        </div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;        <span class="keywordtype">float</span> xs, ys, R;</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;        <span class="keywordtype">float</span> frequency;</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;    } _tHighpass;</div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;    </div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;    <span class="keyword">typedef</span> _tHighpass* tHighpass;</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;    </div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__thighpass.html#ga02cc06dfedbbde5c3746b5238c6c80e7">tHighpass_init</a>          (tHighpass* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__thighpass.html#gaaff0f966ed6e69d21d62bc49d3cd7d0a">tHighpass_initToPool</a>    (tHighpass* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__thighpass.html#gaaf2a848e9c9f1aa0130cdc8a4de88c2a">tHighpass_free</a>          (tHighpass* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;    </div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__thighpass.html#gaed6612747075529362ee1e5a984819a2">tHighpass_tick</a>          (tHighpass* <span class="keyword">const</span>, <span class="keywordtype">float</span> x);</div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__thighpass.html#ga94dddc9bae136df8933a82214ce2f1e3">tHighpass_setFreq</a>       (tHighpass* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__thighpass.html#ga52802836559273d666031bd33b7ad254">tHighpass_getFreq</a>       (tHighpass* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;    </div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;    </div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;<span class="preprocessor">#define NUM_SVF_BW 16</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tButterworth</div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;    {</div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;        </div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;        <span class="keywordtype">float</span> gain;</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;        <span class="keywordtype">int</span> order;</div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;        <span class="keywordtype">int</span> numSVF;</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;        </div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;        tSVF* svf;</div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;        </div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;        <span class="keywordtype">float</span> f1,f2;</div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;    } _tButterworth;</div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;    </div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;    <span class="keyword">typedef</span> _tButterworth* tButterworth;</div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;    </div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;    <span class="keywordtype">void</span>    tButterworth_init           (tButterworth* <span class="keyword">const</span>, <span class="keywordtype">int</span> N, <span class="keywordtype">float</span> f1, <span class="keywordtype">float</span> f2, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbutterworth.html#ga567582dd961193c6a49ebcb5f78db211">tButterworth_initToPool</a>     (tButterworth* <span class="keyword">const</span>, <span class="keywordtype">int</span> N, <span class="keywordtype">float</span> f1, <span class="keywordtype">float</span> f2, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbutterworth.html#ga340f64a2f39d6a75dddbff0664c6a0c2">tButterworth_free</a>           (tButterworth* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;    </div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tbutterworth.html#gac4729b8e622da0d570efe80ac1c54707">tButterworth_tick</a>           (tButterworth* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbutterworth.html#ga12a4c927d24d1664d0beb425cf64e284">tButterworth_setF1</a>          (tButterworth* <span class="keyword">const</span>, <span class="keywordtype">float</span> in);</div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbutterworth.html#ga86218245c60fb73eec98edcdce565a1c">tButterworth_setF2</a>          (tButterworth* <span class="keyword">const</span>, <span class="keywordtype">float</span> in);</div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tbutterworth.html#ga5cde91a986d40a6764d07ffde532a1a7">tButterworth_setFreqs</a>       (tButterworth* <span class="keyword">const</span>, <span class="keywordtype">float</span> f1, <span class="keywordtype">float</span> f2);</div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;    </div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;    </div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tFIR</div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;    {</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;        </div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;        <span class="keywordtype">float</span>* past;</div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;        <span class="keywordtype">float</span>* coeff;</div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;        <span class="keywordtype">int</span> numTaps;</div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;    } _tFIR;</div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;    </div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;    <span class="keyword">typedef</span> _tFIR* tFIR;</div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;    </div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tfir.html#ga333f1b826e10b14d932f1282ff72d7fe">tFIR_init</a>           (tFIR* <span class="keyword">const</span>, <span class="keywordtype">float</span>* coeffs, <span class="keywordtype">int</span> numTaps, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tfir.html#ga814a59f7c1179b717ce5985ed545004f">tFIR_initToPool</a>     (tFIR* <span class="keyword">const</span>, <span class="keywordtype">float</span>* coeffs, <span class="keywordtype">int</span> numTaps, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tfir.html#gac45d2e019b45dcd2a62ebe0b4bc1ec50">tFIR_free</a>           (tFIR* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;    </div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tfir.html#ga6ed11191124b872639e12cbe9dcc76e9">tFIR_tick</a>           (tFIR* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;    </div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;    </div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;    </div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tMedianFilter</div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;    {</div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;        </div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;        <span class="keywordtype">float</span>* val;</div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;        <span class="keywordtype">int</span>* age;</div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;        <span class="keywordtype">int</span> m;</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;        <span class="keywordtype">int</span> size;</div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;        <span class="keywordtype">int</span> middlePosition;</div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;        <span class="keywordtype">int</span> last;</div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;        <span class="keywordtype">int</span> pos;</div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;    } _tMedianFilter;</div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;    </div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;    <span class="keyword">typedef</span> _tMedianFilter* tMedianFilter;</div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;    </div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tmedianfilter.html#ga681edc6f80e60403e48d6228010242c7">tMedianFilter_init</a>           (tMedianFilter* <span class="keyword">const</span>, <span class="keywordtype">int</span> size, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tmedianfilter.html#ga11aa8d228031cd4b493ea22cb56fc7fd">tMedianFilter_initToPool</a>     (tMedianFilter* <span class="keyword">const</span>, <span class="keywordtype">int</span> size, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tmedianfilter.html#ga8f504c9799e7d7c782df97b8d104bca8">tMedianFilter_free</a>           (tMedianFilter* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;    </div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tmedianfilter.html#ga07f8bc00264d3e544a2172e5a9bd5420">tMedianFilter_tick</a>           (tMedianFilter* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;    </div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;    </div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">enum</span> VZFilterType</div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;    {</div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;        Highpass = 0,</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;        Lowpass,</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;        BandpassSkirt,</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;        BandpassPeak,</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;        BandReject,</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;        Bell,</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;        Lowshelf,</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;        Highshelf,</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;        Morph,</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;        Bypass,</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;        Allpass</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;    } VZFilterType;</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;    </div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;    </div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tVZFilter</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;    {</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;        </div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;        </div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;        VZFilterType type;</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;        <span class="comment">// state:</span></div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;        <span class="keywordtype">float</span> s1, s2;</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;        </div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;        <span class="comment">// filter coefficients:</span></div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;        <span class="keywordtype">float</span> g;          <span class="comment">// embedded integrator gain</span></div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;        <span class="keywordtype">float</span> R2;         <span class="comment">// twice the damping coefficient (R2 == 2*R == 1/Q)</span></div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;        <span class="keywordtype">float</span> h;          <span class="comment">// factor for feedback (== 1/(1+2*R*g+g*g))</span></div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;        <span class="keywordtype">float</span> cL, cB, cH; <span class="comment">// coefficients for low-, band-, and highpass signals</span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;        </div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;        <span class="comment">// parameters:</span></div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;        <span class="keywordtype">float</span> fc;    <span class="comment">// characteristic frequency</span></div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;        <span class="keywordtype">float</span> G;     <span class="comment">// gain</span></div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;        <span class="keywordtype">float</span> invG;        <span class="comment">//1/gain</span></div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;        <span class="keywordtype">float</span> B;     <span class="comment">// bandwidth (in octaves)</span></div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;        <span class="keywordtype">float</span> m;     <span class="comment">// morph parameter (0...1)</span></div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;        </div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;        <span class="keywordtype">float</span> sr;    <span class="comment">//local sampling rate of filter (may be different from leaf sr if oversampled)</span></div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;        <span class="keywordtype">float</span> inv_sr;</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;    } _tVZFilter;</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;    </div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;    <span class="keyword">typedef</span> _tVZFilter* tVZFilter;</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;    </div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tvzfilter.html#ga3c5672bd2d229be5201a8d4f6e81c9cf">tVZFilter_init</a>           (tVZFilter* <span class="keyword">const</span>, VZFilterType type, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> Q, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tvzfilter.html#gadefd89eb319135397cd2aebe9d92ae19">tVZFilter_initToPool</a>     (tVZFilter* <span class="keyword">const</span>, VZFilterType type, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> Q, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tvzfilter.html#gac4bda1af30d4e883b2de0d7f35067a45">tVZFilter_free</a>           (tVZFilter* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;    </div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tvzfilter.html#ga2e4af322ef20fe128fddec1e30315a78">tVZFilter_setSampleRate</a>  (tVZFilter* <span class="keyword">const</span>, <span class="keywordtype">float</span> sampleRate);</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tvzfilter.html#ga0fbbf089b751d1e31c796a3a4bdd3d64">tVZFilter_tick</a>               (tVZFilter* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tvzfilter.html#gaa8b8a7061d00b6d4a507115f015a76cc">tVZFilter_tickEfficient</a>               (tVZFilter* <span class="keyword">const</span> vf, <span class="keywordtype">float</span> in);</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tvzfilter.html#ga9b926d729e03680d876a0c1e44603ccb">tVZFilter_calcCoeffs</a>           (tVZFilter* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;    <span class="keywordtype">void</span>    tVZFilter_calcCoeffsEfficientBP           (tVZFilter* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tvzfilter.html#ga1a3a1fb6f92dd3ba35144337781c0fe2">tVZFilter_setBandwidth</a>            (tVZFilter* <span class="keyword">const</span>, <span class="keywordtype">float</span> bandWidth);</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tvzfilter.html#ga2dcd4668daf45ce81c7dc4b1a5477c71">tVZFilter_setFreq</a>           (tVZFilter* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tvzfilter.html#gace98499c6b229162b8eb23d1df8dbb28">tVZFilter_setFreqAndBandwidth</a>    (tVZFilter* <span class="keyword">const</span> vf, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> bw);</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;    <span class="keywordtype">void</span>    tVZFilter_setFreqAndBandwidthEfficientBP    (tVZFilter* <span class="keyword">const</span> vf, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> bw);</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tvzfilter.html#ga516f54dd1403fcba60aa1ba2b5d0f35d">tVZFilter_setGain</a>                  (tVZFilter* <span class="keyword">const</span>, <span class="keywordtype">float</span> gain);</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; </div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tvzfilter.html#gaa7239af935c13f07e92f817c0a53c3d7">tVZFilter_setType</a>                  (tVZFilter* <span class="keyword">const</span>, VZFilterType type);</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tvzfilter.html#gac639e85aa70295332ba927c8d9b99a73">tVZFilter_BandwidthToR</a>        (tVZFilter* <span class="keyword">const</span> vf, <span class="keywordtype">float</span> B);</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;    <span class="keywordtype">float</span>   tVZFilter_BandwidthToREfficientBP(tVZFilter* <span class="keyword">const</span> vf, <span class="keywordtype">float</span> B);</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;    </div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;    <span class="comment">//diode ladder filter</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tDiodeFilter</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;    {</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;        </div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;        <span class="keywordtype">float</span> f;</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;        <span class="keywordtype">float</span> r;</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;        <span class="keywordtype">float</span> Vt;</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;        <span class="keywordtype">float</span> n;</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;        <span class="keywordtype">float</span> gamma;</div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;        <span class="keywordtype">float</span> zi;</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;        <span class="keywordtype">float</span> g0inv;</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;        <span class="keywordtype">float</span> g1inv;</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;        <span class="keywordtype">float</span> g2inv;</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;        <span class="keywordtype">float</span> s0, s1, s2, s3;</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    } _tDiodeFilter;</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;    </div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;    <span class="keyword">typedef</span> _tDiodeFilter* tDiodeFilter;</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;    </div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdiodefilter.html#ga279cd7e6bbaf37ee42a679680e13ff3b">tDiodeFilter_init</a>           (tDiodeFilter* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> Q, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdiodefilter.html#gaf485c66d9505471775fecc3405321b7b">tDiodeFilter_initToPool</a>     (tDiodeFilter* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> Q, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdiodefilter.html#gaa945fd56abedc7829784cc76e5876b84">tDiodeFilter_free</a>           (tDiodeFilter* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;    </div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tdiodefilter.html#gabbb00b79ceaf9b1b3b028d01218a738b">tDiodeFilter_tick</a>               (tDiodeFilter* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdiodefilter.html#ga2854b7be078fb842f6e9c3c2a0f22151">tDiodeFilter_setFreq</a>     (tDiodeFilter* <span class="keyword">const</span> vf, <span class="keywordtype">float</span> cutoff);</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdiodefilter.html#ga386a8e90939c6bd22d467e33317e0e04">tDiodeFilter_setQ</a>     (tDiodeFilter* <span class="keyword">const</span> vf, <span class="keywordtype">float</span> resonance);</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;    </div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;    </div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;}</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; </div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;<span class="preprocessor">#endif  // LEAF_FILTERS_H_INCLUDED</span></div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; </div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; </div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="agroup__tbiquad_html_ga6a2d07723a0652c959c529274b1ca783"><div class="ttname"><a href="group__tbiquad.html#ga6a2d07723a0652c959c529274b1ca783">tBiQuad_setB1</a></div><div class="ttdeci">void tBiQuad_setB1(tBiQuad *const, float b1)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:706</div></div>
+<div class="ttc" id="agroup__tonepole_html_gaa2fe72283746cd156766fd07f6604430"><div class="ttname"><a href="group__tonepole.html#gaa2fe72283746cd156766fd07f6604430">tOnePole_setFreq</a></div><div class="ttdeci">void tOnePole_setFreq(tOnePole *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:131</div></div>
+<div class="ttc" id="agroup__tbiquad_html_ga2f804ac8c8ccea56bbb3dae661b82692"><div class="ttname"><a href="group__tbiquad.html#ga2f804ac8c8ccea56bbb3dae661b82692">tBiQuad_setB0</a></div><div class="ttdeci">void tBiQuad_setB0(tBiQuad *const, float b0)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:700</div></div>
+<div class="ttc" id="agroup__tonepole_html_ga255cd0e1e27c6dfced99c68ac352e57f"><div class="ttname"><a href="group__tonepole.html#ga255cd0e1e27c6dfced99c68ac352e57f">tOnePole_setA1</a></div><div class="ttdeci">void tOnePole_setA1(tOnePole *const, float a1)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:111</div></div>
+<div class="ttc" id="agroup__tbiquad_html_gaa73dd0d8efd4d147184a3af3243f50db"><div class="ttname"><a href="group__tbiquad.html#gaa73dd0d8efd4d147184a3af3243f50db">tBiQuad_free</a></div><div class="ttdeci">void tBiQuad_free(tBiQuad *const)</div><div class="ttdoc">Free a tBiQuad from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:626</div></div>
+<div class="ttc" id="agroup__tdiodefilter_html_ga279cd7e6bbaf37ee42a679680e13ff3b"><div class="ttname"><a href="group__tdiodefilter.html#ga279cd7e6bbaf37ee42a679680e13ff3b">tDiodeFilter_init</a></div><div class="ttdeci">void tDiodeFilter_init(tDiodeFilter *const, float freq, float Q, LEAF *const leaf)</div><div class="ttdoc">Initialize a tDiodeFilter to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1545</div></div>
+<div class="ttc" id="agroup__ttwozero_html_gafbcfc71b7c4eccc53cc104c3ceb83eba"><div class="ttname"><a href="group__ttwozero.html#gafbcfc71b7c4eccc53cc104c3ceb83eba">tTwoZero_setNotch</a></div><div class="ttdeci">void tTwoZero_setNotch(tTwoZero *const, float frequency, float radius)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:431</div></div>
+<div class="ttc" id="agroup__tbiquad_html_ga2acfc9097aa260ff141d79199f64fc88"><div class="ttname"><a href="group__tbiquad.html#ga2acfc9097aa260ff141d79199f64fc88">tBiQuad_tick</a></div><div class="ttdeci">float tBiQuad_tick(tBiQuad *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:633</div></div>
+<div class="ttc" id="agroup__tonezero_html_ga5d49fd94313454e219b43e1fa3175d12"><div class="ttname"><a href="group__tonezero.html#ga5d49fd94313454e219b43e1fa3175d12">tOneZero_tick</a></div><div class="ttdeci">float tOneZero_tick(tOneZero *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:314</div></div>
+<div class="ttc" id="agroup__tvzfilter_html_ga516f54dd1403fcba60aa1ba2b5d0f35d"><div class="ttname"><a href="group__tvzfilter.html#ga516f54dd1403fcba60aa1ba2b5d0f35d">tVZFilter_setGain</a></div><div class="ttdeci">void tVZFilter_setGain(tVZFilter *const, float gain)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1496</div></div>
+<div class="ttc" id="agroup__ttwozero_html_ga57cfdc780478243c74335fb85fdc2620"><div class="ttname"><a href="group__ttwozero.html#ga57cfdc780478243c74335fb85fdc2620">tTwoZero_setB2</a></div><div class="ttdeci">void tTwoZero_setB2(tTwoZero *const, float b2)</div></div>
+<div class="ttc" id="agroup__ttwopole_html_ga8b1df900582e1961bab7ea00a6648c3d"><div class="ttname"><a href="group__ttwopole.html#ga8b1df900582e1961bab7ea00a6648c3d">tTwoPole_setA2</a></div><div class="ttdeci">void tTwoPole_setA2(tTwoPole *const, float a2)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:220</div></div>
+<div class="ttc" id="agroup__tonepole_html_gad7a7e9061389b83a4efed8e9d30f9047"><div class="ttname"><a href="group__tonepole.html#gad7a7e9061389b83a4efed8e9d30f9047">tOnePole_setCoefficients</a></div><div class="ttdeci">void tOnePole_setCoefficients(tOnePole *const, float b0, float a1)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:141</div></div>
+<div class="ttc" id="agroup__tonepole_html_gac83d1fd7167c1bd78cf4b44fa2d18562"><div class="ttname"><a href="group__tonepole.html#gac83d1fd7167c1bd78cf4b44fa2d18562">tOnePole_setB0</a></div><div class="ttdeci">void tOnePole_setB0(tOnePole *const, float b0)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:105</div></div>
+<div class="ttc" id="agroup__ttwozero_html_gaa717ce92df413200e3dfe7f5322cdd41"><div class="ttname"><a href="group__ttwozero.html#gaa717ce92df413200e3dfe7f5322cdd41">tTwoZero_tick</a></div><div class="ttdeci">float tTwoZero_tick(tTwoZero *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:418</div></div>
+<div class="ttc" id="agroup__tonepole_html_gabcdda318381d2d2dd314c3ec4399944d"><div class="ttname"><a href="group__tonepole.html#gabcdda318381d2d2dd314c3ec4399944d">tOnePole_init</a></div><div class="ttdeci">void tOnePole_init(tOnePole *const, float thePole, LEAF *const leaf)</div><div class="ttdoc">Initialize a tOnePole to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:78</div></div>
+<div class="ttc" id="agroup__tonezero_html_ga06bbbfdb22d7b291f73489981c311bc0"><div class="ttname"><a href="group__tonezero.html#ga06bbbfdb22d7b291f73489981c311bc0">tOneZero_free</a></div><div class="ttdeci">void tOneZero_free(tOneZero *const)</div><div class="ttdoc">Free a tOneZero from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:307</div></div>
+<div class="ttc" id="agroup__tbutterworth_html_ga12a4c927d24d1664d0beb425cf64e284"><div class="ttname"><a href="group__tbutterworth.html#ga12a4c927d24d1664d0beb425cf64e284">tButterworth_setF1</a></div><div class="ttdeci">void tButterworth_setF1(tButterworth *const, float in)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1088</div></div>
+<div class="ttc" id="agroup__tfir_html_ga6ed11191124b872639e12cbe9dcc76e9"><div class="ttname"><a href="group__tfir.html#ga6ed11191124b872639e12cbe9dcc76e9">tFIR_tick</a></div><div class="ttdeci">float tFIR_tick(tFIR *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1149</div></div>
+<div class="ttc" id="agroup__tfir_html_ga333f1b826e10b14d932f1282ff72d7fe"><div class="ttname"><a href="group__tfir.html#ga333f1b826e10b14d932f1282ff72d7fe">tFIR_init</a></div><div class="ttdeci">void tFIR_init(tFIR *const, float *coeffs, int numTaps, LEAF *const leaf)</div><div class="ttdoc">Initialize a tFIR to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1124</div></div>
+<div class="ttc" id="agroup__tonepole_html_gab5abc7f67dc57d2475e3880c864c3717"><div class="ttname"><a href="group__tonepole.html#gab5abc7f67dc57d2475e3880c864c3717">tOnePole_setGain</a></div><div class="ttdeci">void tOnePole_setGain(tOnePole *const, float gain)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:149</div></div>
+<div class="ttc" id="agroup__tefficientsvf_html_gaa5bc149b9e60cb47235a2e0dc68e2c89"><div class="ttname"><a href="group__tefficientsvf.html#gaa5bc149b9e60cb47235a2e0dc68e2c89">tEfficientSVF_free</a></div><div class="ttdeci">void tEfficientSVF_free(tEfficientSVF *const)</div><div class="ttdoc">Free a tEfficientSVF from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:927</div></div>
+<div class="ttc" id="agroup__tpolezero_html_gadb9f2207e2217190013543ce210c5dda"><div class="ttname"><a href="group__tpolezero.html#gadb9f2207e2217190013543ce210c5dda">tPoleZero_initToPool</a></div><div class="ttdeci">void tPoleZero_initToPool(tPoleZero *const, tMempool *const)</div><div class="ttdoc">Initialize a tPoleZero to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:495</div></div>
+<div class="ttc" id="agroup__thighpass_html_gaed6612747075529362ee1e5a984819a2"><div class="ttname"><a href="group__thighpass.html#gaed6612747075529362ee1e5a984819a2">tHighpass_tick</a></div><div class="ttdeci">float tHighpass_tick(tHighpass *const, float x)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1020</div></div>
+<div class="ttc" id="agroup__tsvf_html_ga364e2d82cc7d843ccf63c32f6b6f6c28"><div class="ttname"><a href="group__tsvf.html#ga364e2d82cc7d843ccf63c32f6b6f6c28">tSVF_free</a></div><div class="ttdeci">void tSVF_free(tSVF *const)</div><div class="ttdoc">Free a tSVF from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:840</div></div>
+<div class="ttc" id="agroup__tonepole_html_ga08050cc38be920cf41bfdf4fc07fd81b"><div class="ttname"><a href="group__tonepole.html#ga08050cc38be920cf41bfdf4fc07fd81b">tOnePole_initToPool</a></div><div class="ttdeci">void tOnePole_initToPool(tOnePole *const, float thePole, tMempool *const)</div><div class="ttdoc">Initialize a tOnePole to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:83</div></div>
+<div class="ttc" id="agroup__tvzfilter_html_ga1a3a1fb6f92dd3ba35144337781c0fe2"><div class="ttname"><a href="group__tvzfilter.html#ga1a3a1fb6f92dd3ba35144337781c0fe2">tVZFilter_setBandwidth</a></div><div class="ttdeci">void tVZFilter_setBandwidth(tVZFilter *const, float bandWidth)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1460</div></div>
+<div class="ttc" id="agroup__tvzfilter_html_ga9b926d729e03680d876a0c1e44603ccb"><div class="ttname"><a href="group__tvzfilter.html#ga9b926d729e03680d876a0c1e44603ccb">tVZFilter_calcCoeffs</a></div><div class="ttdeci">void tVZFilter_calcCoeffs(tVZFilter *const)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1342</div></div>
+<div class="ttc" id="agroup__tallpass_html_gac0b56b4935f44e73e86566289d16aaa5"><div class="ttname"><a href="group__tallpass.html#gac0b56b4935f44e73e86566289d16aaa5">tAllpass_tick</a></div><div class="ttdeci">float tAllpass_tick(tAllpass *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:64</div></div>
+<div class="ttc" id="agroup__tbiquad_html_ga181c340eed069d92eacaadc8466f3218"><div class="ttname"><a href="group__tbiquad.html#ga181c340eed069d92eacaadc8466f3218">tBiQuad_setGain</a></div><div class="ttdeci">void tBiQuad_setGain(tBiQuad *const, float gain)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:740</div></div>
+<div class="ttc" id="agroup__tpolezero_html_ga118daf1002dcd0d5c24b2d86af9196fb"><div class="ttname"><a href="group__tpolezero.html#ga118daf1002dcd0d5c24b2d86af9196fb">tPoleZero_setA1</a></div><div class="ttdeci">void tPoleZero_setA1(tPoleZero *const, float a1)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:528</div></div>
+<div class="ttc" id="agroup__ttwozero_html_gadc24b26d9a21905fe56a42a6eeec70a1"><div class="ttname"><a href="group__ttwozero.html#gadc24b26d9a21905fe56a42a6eeec70a1">tTwoZero_free</a></div><div class="ttdeci">void tTwoZero_free(tTwoZero *const)</div><div class="ttdoc">Free a tTwoZero from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:411</div></div>
+<div class="ttc" id="agroup__tsvf_html_gaf86bb651efd0ad3c7e782c71719e7a0f"><div class="ttname"><a href="group__tsvf.html#gaf86bb651efd0ad3c7e782c71719e7a0f">tSVF_setFreqAndQ</a></div><div class="ttdeci">void tSVF_setFreqAndQ(tSVF *const svff, float freq, float Q)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:889</div></div>
+<div class="ttc" id="agroup__tbiquad_html_ga18eef101bdb03775d51acec6c6eebdaa"><div class="ttname"><a href="group__tbiquad.html#ga18eef101bdb03775d51acec6c6eebdaa">tBiQuad_setA1</a></div><div class="ttdeci">void tBiQuad_setA1(tBiQuad *const, float a1)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:718</div></div>
+<div class="ttc" id="agroup__tonezero_html_ga02db3ca6e4e8d321a4730e4ea2b58f6c"><div class="ttname"><a href="group__tonezero.html#ga02db3ca6e4e8d321a4730e4ea2b58f6c">tOneZero_setB1</a></div><div class="ttdeci">void tOneZero_setB1(tOneZero *const, float b1)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:344</div></div>
+<div class="ttc" id="agroup__tefficientsvf_html_ga467f74b33e51b8a1dd4e87d0ee71b11a"><div class="ttname"><a href="group__tefficientsvf.html#ga467f74b33e51b8a1dd4e87d0ee71b11a">tEfficientSVF_initToPool</a></div><div class="ttdeci">void tEfficientSVF_initToPool(tEfficientSVF *const, SVFType type, uint16_t input, float Q, tMempool *const)</div><div class="ttdoc">Initialize a tEfficientSVF to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:909</div></div>
+<div class="ttc" id="agroup__ttwopole_html_gaef4a460381c662c98f60cce91a1f8924"><div class="ttname"><a href="group__ttwopole.html#gaef4a460381c662c98f60cce91a1f8924">tTwoPole_setResonance</a></div><div class="ttdeci">void tTwoPole_setResonance(tTwoPole *const, float freq, float radius, int normalize)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:227</div></div>
+<div class="ttc" id="agroup__tbiquad_html_gab3602dd88664599839ea67c6797cc4c2"><div class="ttname"><a href="group__tbiquad.html#gab3602dd88664599839ea67c6797cc4c2">tBiQuad_setB2</a></div><div class="ttdeci">void tBiQuad_setB2(tBiQuad *const, float b2)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:712</div></div>
+<div class="ttc" id="agroup__tbiquad_html_gad74e2504b0128119213eceba36f92879"><div class="ttname"><a href="group__tbiquad.html#gad74e2504b0128119213eceba36f92879">tBiQuad_setNotch</a></div><div class="ttdeci">void tBiQuad_setNotch(tBiQuad *const, float freq, float radius)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:676</div></div>
+<div class="ttc" id="agroup__tpolezero_html_ga6b6829aefeb5180022ae0b7e8d5b9b1c"><div class="ttname"><a href="group__tpolezero.html#ga6b6829aefeb5180022ae0b7e8d5b9b1c">tPoleZero_init</a></div><div class="ttdeci">void tPoleZero_init(tPoleZero *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a tPoleZero to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:490</div></div>
+<div class="ttc" id="agroup__tsvf_html_gaef34c602f1f798b4e3200c02a09e193b"><div class="ttname"><a href="group__tsvf.html#gaef34c602f1f798b4e3200c02a09e193b">tSVF_tick</a></div><div class="ttdeci">float tSVF_tick(tSVF *const, float v0)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:847</div></div>
+<div class="ttc" id="agroup__thighpass_html_gaaff0f966ed6e69d21d62bc49d3cd7d0a"><div class="ttname"><a href="group__thighpass.html#gaaff0f966ed6e69d21d62bc49d3cd7d0a">tHighpass_initToPool</a></div><div class="ttdeci">void tHighpass_initToPool(tHighpass *const, float freq, tMempool *const)</div><div class="ttdoc">Initialize a tHighpass to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:981</div></div>
+<div class="ttc" id="agroup__tbutterworth_html_ga86218245c60fb73eec98edcdce565a1c"><div class="ttname"><a href="group__tbutterworth.html#ga86218245c60fb73eec98edcdce565a1c">tButterworth_setF2</a></div><div class="ttdeci">void tButterworth_setF2(tButterworth *const, float in)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1098</div></div>
+<div class="ttc" id="agroup__thighpass_html_ga94dddc9bae136df8933a82214ce2f1e3"><div class="ttname"><a href="group__thighpass.html#ga94dddc9bae136df8933a82214ce2f1e3">tHighpass_setFreq</a></div><div class="ttdeci">void tHighpass_setFreq(tHighpass *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1003</div></div>
+<div class="ttc" id="agroup__tdiodefilter_html_ga386a8e90939c6bd22d467e33317e0e04"><div class="ttname"><a href="group__tdiodefilter.html#ga386a8e90939c6bd22d467e33317e0e04">tDiodeFilter_setQ</a></div><div class="ttdeci">void tDiodeFilter_setQ(tDiodeFilter *const vf, float resonance)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1682</div></div>
+<div class="ttc" id="agroup__ttwozero_html_gacebbb6bc52b6f785d3209369366f4932"><div class="ttname"><a href="group__ttwozero.html#gacebbb6bc52b6f785d3209369366f4932">tTwoZero_init</a></div><div class="ttdeci">void tTwoZero_init(tTwoZero *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a tTwoZero to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:395</div></div>
+<div class="ttc" id="agroup__tsvf_html_ga29e6205846d379ffdd4131d0174c8784"><div class="ttname"><a href="group__tsvf.html#ga29e6205846d379ffdd4131d0174c8784">tSVF_setQ</a></div><div class="ttdeci">void tSVF_setQ(tSVF *const, float Q)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:878</div></div>
+<div class="ttc" id="agroup__tpolezero_html_ga9b72bcea9b5912e4ecd62c7ea7d99b86"><div class="ttname"><a href="group__tpolezero.html#ga9b72bcea9b5912e4ecd62c7ea7d99b86">tPoleZero_setCoefficients</a></div><div class="ttdeci">void tPoleZero_setCoefficients(tPoleZero *const, float b0, float b1, float a1)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:540</div></div>
+<div class="ttc" id="agroup__tmedianfilter_html_ga07f8bc00264d3e544a2172e5a9bd5420"><div class="ttname"><a href="group__tmedianfilter.html#ga07f8bc00264d3e544a2172e5a9bd5420">tMedianFilter_tick</a></div><div class="ttdeci">float tMedianFilter_tick(tMedianFilter *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1199</div></div>
+<div class="ttc" id="agroup__tonezero_html_ga6f7ad30df1a802a5db5b8b4f6465c993"><div class="ttname"><a href="group__tonezero.html#ga6f7ad30df1a802a5db5b8b4f6465c993">tOneZero_setGain</a></div><div class="ttdeci">void tOneZero_setGain(tOneZero *const, float gain)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:357</div></div>
+<div class="ttc" id="agroup__tallpass_html_ga51e3ba1dedc220c6f466704870614ec7"><div class="ttname"><a href="group__tallpass.html#ga51e3ba1dedc220c6f466704870614ec7">tAllpass_initToPool</a></div><div class="ttdeci">void tAllpass_initToPool(tAllpass *const, float initDelay, uint32_t maxDelay, tMempool *const)</div><div class="ttdoc">Initialize a tAllpass to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:29</div></div>
+<div class="ttc" id="agroup__tpolezero_html_gab978639dd9badc640b1f3a8b6a945b06"><div class="ttname"><a href="group__tpolezero.html#gab978639dd9badc640b1f3a8b6a945b06">tPoleZero_setAllpass</a></div><div class="ttdeci">void tPoleZero_setAllpass(tPoleZero *const, float coeff)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:554</div></div>
+<div class="ttc" id="agroup__tvzfilter_html_gace98499c6b229162b8eb23d1df8dbb28"><div class="ttname"><a href="group__tvzfilter.html#gace98499c6b229162b8eb23d1df8dbb28">tVZFilter_setFreqAndBandwidth</a></div><div class="ttdeci">void tVZFilter_setFreqAndBandwidth(tVZFilter *const vf, float freq, float bw)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1474</div></div>
+<div class="ttc" id="agroup__tdiodefilter_html_gaa945fd56abedc7829784cc76e5876b84"><div class="ttname"><a href="group__tdiodefilter.html#gaa945fd56abedc7829784cc76e5876b84">tDiodeFilter_free</a></div><div class="ttdeci">void tDiodeFilter_free(tDiodeFilter *const)</div><div class="ttdoc">Free a tDiodeFilter from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1574</div></div>
+<div class="ttc" id="agroup__ttwopole_html_ga914f59f7f7f48b948ac21f1dc76bbb30"><div class="ttname"><a href="group__ttwopole.html#ga914f59f7f7f48b948ac21f1dc76bbb30">tTwoPole_setA1</a></div><div class="ttdeci">void tTwoPole_setA1(tTwoPole *const, float a1)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:214</div></div>
+<div class="ttc" id="agroup__tpolezero_html_ga8bdd8dfb8e5c22c7ec820bea559e2fa7"><div class="ttname"><a href="group__tpolezero.html#ga8bdd8dfb8e5c22c7ec820bea559e2fa7">tPoleZero_setGain</a></div><div class="ttdeci">void tPoleZero_setGain(tPoleZero *const, float gain)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:584</div></div>
+<div class="ttc" id="agroup__tbiquad_html_gac0b42b1f3660dd1827b0e0a4150aadcd"><div class="ttname"><a href="group__tbiquad.html#gac0b42b1f3660dd1827b0e0a4150aadcd">tBiQuad_setCoefficients</a></div><div class="ttdeci">void tBiQuad_setCoefficients(tBiQuad *const, float b0, float b1, float b2, float a1, float a2)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:730</div></div>
+<div class="ttc" id="agroup__tbiquad_html_ga1583768209208a3f9d9135636fb505e6"><div class="ttname"><a href="group__tbiquad.html#ga1583768209208a3f9d9135636fb505e6">tBiQuad_setA2</a></div><div class="ttdeci">void tBiQuad_setA2(tBiQuad *const, float a2)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:724</div></div>
+<div class="ttc" id="agroup__tonezero_html_gabbd3ddafbab517a2c66e91d8e68f71f7"><div class="ttname"><a href="group__tonezero.html#gabbd3ddafbab517a2c66e91d8e68f71f7">tOneZero_init</a></div><div class="ttdeci">void tOneZero_init(tOneZero *const, float theZero, LEAF *const leaf)</div><div class="ttdoc">Initialize a tOneZero to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:290</div></div>
+<div class="ttc" id="agroup__tsvf_html_gabcf663debbb880724f1c423c9d37d143"><div class="ttname"><a href="group__tsvf.html#gabcf663debbb880724f1c423c9d37d143">tSVF_initToPool</a></div><div class="ttdeci">void tSVF_initToPool(tSVF *const, SVFType type, float freq, float Q, tMempool *const)</div><div class="ttdoc">Initialize a tSVF to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:775</div></div>
+<div class="ttc" id="agroup__ttwopole_html_ga437e9e3fd63636ab7fefcd58462278fa"><div class="ttname"><a href="group__ttwopole.html#ga437e9e3fd63636ab7fefcd58462278fa">tTwoPole_init</a></div><div class="ttdeci">void tTwoPole_init(tTwoPole *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a tTwoPole to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:169</div></div>
+<div class="ttc" id="agroup__tsvf_html_gaec95a0aaf02ed9170ea1a4e968acd82d"><div class="ttname"><a href="group__tsvf.html#gaec95a0aaf02ed9170ea1a4e968acd82d">tSVF_init</a></div><div class="ttdeci">void tSVF_init(tSVF *const, SVFType type, float freq, float Q, LEAF *const leaf)</div><div class="ttdoc">Initialize a tSVF to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:764</div></div>
+<div class="ttc" id="agroup__tefficientsvf_html_gaac44c74387fbeb20dff0c9f72e5a94ae"><div class="ttname"><a href="group__tefficientsvf.html#gaac44c74387fbeb20dff0c9f72e5a94ae">tEfficientSVF_init</a></div><div class="ttdeci">void tEfficientSVF_init(tEfficientSVF *const, SVFType type, uint16_t input, float Q, LEAF *const leaf)</div><div class="ttdoc">Initialize a tEfficientSVF to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:904</div></div>
+<div class="ttc" id="agroup__tonezero_html_ga98cda6f603769e6ad842f869c751b5b8"><div class="ttname"><a href="group__tonezero.html#ga98cda6f603769e6ad842f869c751b5b8">tOneZero_setB0</a></div><div class="ttdeci">void tOneZero_setB0(tOneZero *const, float b0)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:337</div></div>
+<div class="ttc" id="agroup__tmedianfilter_html_ga681edc6f80e60403e48d6228010242c7"><div class="ttname"><a href="group__tmedianfilter.html#ga681edc6f80e60403e48d6228010242c7">tMedianFilter_init</a></div><div class="ttdeci">void tMedianFilter_init(tMedianFilter *const, int size, LEAF *const leaf)</div><div class="ttdoc">Initialize a tMedianFilter to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1166</div></div>
+<div class="ttc" id="agroup__ttwozero_html_gaaeeb223d8133a3b4d6e249b1a9cbae05"><div class="ttname"><a href="group__ttwozero.html#gaaeeb223d8133a3b4d6e249b1a9cbae05">tTwoZero_setGain</a></div><div class="ttdeci">void tTwoZero_setGain(tTwoZero *const, float gain)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:476</div></div>
+<div class="ttc" id="agroup__ttwozero_html_ga8f7eea8cd31ae96e300d8398ee988c8b"><div class="ttname"><a href="group__ttwozero.html#ga8f7eea8cd31ae96e300d8398ee988c8b">tTwoZero_setB1</a></div><div class="ttdeci">void tTwoZero_setB1(tTwoZero *const, float b1)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:462</div></div>
+<div class="ttc" id="agroup__tmedianfilter_html_ga11aa8d228031cd4b493ea22cb56fc7fd"><div class="ttname"><a href="group__tmedianfilter.html#ga11aa8d228031cd4b493ea22cb56fc7fd">tMedianFilter_initToPool</a></div><div class="ttdeci">void tMedianFilter_initToPool(tMedianFilter *const, int size, tMempool *const)</div><div class="ttdoc">Initialize a tMedianFilter to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1171</div></div>
+<div class="ttc" id="agroup__tonepole_html_gae62f76fc8009569f5dc89388d0598b62"><div class="ttname"><a href="group__tonepole.html#gae62f76fc8009569f5dc89388d0598b62">tOnePole_free</a></div><div class="ttdeci">void tOnePole_free(tOnePole *const)</div><div class="ttdoc">Free a tOnePole from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:98</div></div>
+<div class="ttc" id="agroup__tbutterworth_html_ga567582dd961193c6a49ebcb5f78db211"><div class="ttname"><a href="group__tbutterworth.html#ga567582dd961193c6a49ebcb5f78db211">tButterworth_initToPool</a></div><div class="ttdeci">void tButterworth_initToPool(tButterworth *const, int N, float f1, float f2, tMempool *const)</div><div class="ttdoc">Initialize a tButterworth to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1041</div></div>
+<div class="ttc" id="agroup__tdiodefilter_html_gaf485c66d9505471775fecc3405321b7b"><div class="ttname"><a href="group__tdiodefilter.html#gaf485c66d9505471775fecc3405321b7b">tDiodeFilter_initToPool</a></div><div class="ttdeci">void tDiodeFilter_initToPool(tDiodeFilter *const, float freq, float Q, tMempool *const)</div><div class="ttdoc">Initialize a tDiodeFilter to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1550</div></div>
+<div class="ttc" id="agroup__tonezero_html_ga8148897bb39a76c5368f740d532c774b"><div class="ttname"><a href="group__tonezero.html#ga8148897bb39a76c5368f740d532c774b">tOneZero_initToPool</a></div><div class="ttdeci">void tOneZero_initToPool(tOneZero *const, float theZero, tMempool *const)</div><div class="ttdoc">Initialize a tOneZero to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:295</div></div>
+<div class="ttc" id="agroup__tbiquad_html_gaab73d7a7a79dccd112ec4d130b8e6d64"><div class="ttname"><a href="group__tbiquad.html#gaab73d7a7a79dccd112ec4d130b8e6d64">tBiQuad_setResonance</a></div><div class="ttdeci">void tBiQuad_setResonance(tBiQuad *const, float freq, float radius, int normalize)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:650</div></div>
+<div class="ttc" id="agroup__tdiodefilter_html_gabbb00b79ceaf9b1b3b028d01218a738b"><div class="ttname"><a href="group__tdiodefilter.html#gabbb00b79ceaf9b1b3b028d01218a738b">tDiodeFilter_tick</a></div><div class="ttdeci">float tDiodeFilter_tick(tDiodeFilter *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1595</div></div>
+<div class="ttc" id="agroup__tfir_html_ga814a59f7c1179b717ce5985ed545004f"><div class="ttname"><a href="group__tfir.html#ga814a59f7c1179b717ce5985ed545004f">tFIR_initToPool</a></div><div class="ttdeci">void tFIR_initToPool(tFIR *const, float *coeffs, int numTaps, tMempool *const)</div><div class="ttdoc">Initialize a tFIR to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1129</div></div>
+<div class="ttc" id="agroup__tvzfilter_html_gadefd89eb319135397cd2aebe9d92ae19"><div class="ttname"><a href="group__tvzfilter.html#gadefd89eb319135397cd2aebe9d92ae19">tVZFilter_initToPool</a></div><div class="ttdeci">void tVZFilter_initToPool(tVZFilter *const, VZFilterType type, float freq, float Q, tMempool *const)</div><div class="ttdoc">Initialize a tVZFilter to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1245</div></div>
+<div class="ttc" id="agroup__tvzfilter_html_gac4bda1af30d4e883b2de0d7f35067a45"><div class="ttname"><a href="group__tvzfilter.html#gac4bda1af30d4e883b2de0d7f35067a45">tVZFilter_free</a></div><div class="ttdeci">void tVZFilter_free(tVZFilter *const)</div><div class="ttdoc">Free a tVZFilter from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1266</div></div>
+<div class="ttc" id="agroup__ttwopole_html_ga98456b845592b69f0088421c46d25e7c"><div class="ttname"><a href="group__ttwopole.html#ga98456b845592b69f0088421c46d25e7c">tTwoPole_tick</a></div><div class="ttdeci">float tTwoPole_tick(tTwoPole *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:195</div></div>
+<div class="ttc" id="agroup__tpolezero_html_ga896a83342ee3ea486f171d872b9809b0"><div class="ttname"><a href="group__tpolezero.html#ga896a83342ee3ea486f171d872b9809b0">tPoleZero_setB0</a></div><div class="ttdeci">void tPoleZero_setB0(tPoleZero *const, float b0)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:516</div></div>
+<div class="ttc" id="agroup__tonezero_html_gaf0827232a84f1d39e418459d9d53c977"><div class="ttname"><a href="group__tonezero.html#gaf0827232a84f1d39e418459d9d53c977">tOneZero_setZero</a></div><div class="ttdeci">void tOneZero_setZero(tOneZero *const, float theZero)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:326</div></div>
+<div class="ttc" id="agroup__tonezero_html_gae93bd56798868c1022fa025c62126bfe"><div class="ttname"><a href="group__tonezero.html#gae93bd56798868c1022fa025c62126bfe">tOneZero_getPhaseDelay</a></div><div class="ttdeci">float tOneZero_getPhaseDelay(tOneZero *f, float frequency)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:363</div></div>
+<div class="ttc" id="agroup__ttwopole_html_ga2a70b13cb9039c9dd9c1a1407c26ff4c"><div class="ttname"><a href="group__ttwopole.html#ga2a70b13cb9039c9dd9c1a1407c26ff4c">tTwoPole_setCoefficients</a></div><div class="ttdeci">void tTwoPole_setCoefficients(tTwoPole *const, float b0, float a1, float a2)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:256</div></div>
+<div class="ttc" id="agroup__tvzfilter_html_gaa8b8a7061d00b6d4a507115f015a76cc"><div class="ttname"><a href="group__tvzfilter.html#gaa8b8a7061d00b6d4a507115f015a76cc">tVZFilter_tickEfficient</a></div><div class="ttdeci">float tVZFilter_tickEfficient(tVZFilter *const vf, float in)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1310</div></div>
+<div class="ttc" id="agroup__tvzfilter_html_ga0fbbf089b751d1e31c796a3a4bdd3d64"><div class="ttname"><a href="group__tvzfilter.html#ga0fbbf089b751d1e31c796a3a4bdd3d64">tVZFilter_tick</a></div><div class="ttdeci">float tVZFilter_tick(tVZFilter *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1279</div></div>
+<div class="ttc" id="agroup__tbutterworth_html_ga340f64a2f39d6a75dddbff0664c6a0c2"><div class="ttname"><a href="group__tbutterworth.html#ga340f64a2f39d6a75dddbff0664c6a0c2">tButterworth_free</a></div><div class="ttdeci">void tButterworth_free(tButterworth *const)</div><div class="ttdoc">Free a tButterworth from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1067</div></div>
+<div class="ttc" id="agroup__tpolezero_html_gaf66d289f3a48e83eb6d77acedd7cea74"><div class="ttname"><a href="group__tpolezero.html#gaf66d289f3a48e83eb6d77acedd7cea74">tPoleZero_free</a></div><div class="ttdeci">void tPoleZero_free(tPoleZero *const)</div><div class="ttdoc">Free a tPoleZero from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:509</div></div>
+<div class="ttc" id="agroup__tbiquad_html_gab56ac6460715286ab98439dd8e7e346c"><div class="ttname"><a href="group__tbiquad.html#gab56ac6460715286ab98439dd8e7e346c">tBiQuad_initToPool</a></div><div class="ttdeci">void tBiQuad_initToPool(tBiQuad *const, tMempool *const)</div><div class="ttdoc">Initialize a tBiQuad to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:609</div></div>
+<div class="ttc" id="agroup__thighpass_html_ga02cc06dfedbbde5c3746b5238c6c80e7"><div class="ttname"><a href="group__thighpass.html#ga02cc06dfedbbde5c3746b5238c6c80e7">tHighpass_init</a></div><div class="ttdeci">void tHighpass_init(tHighpass *const, float freq, LEAF *const leaf)</div><div class="ttdoc">Initialize a tHighpass to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:976</div></div>
+<div class="ttc" id="agroup__tefficientsvf_html_ga441c8da00fed2cb9397cbfe6e39f6ed0"><div class="ttname"><a href="group__tefficientsvf.html#ga441c8da00fed2cb9397cbfe6e39f6ed0">tEfficientSVF_setQ</a></div><div class="ttdeci">void tEfficientSVF_setQ(tEfficientSVF *const, float Q)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:964</div></div>
+<div class="ttc" id="agroup__tonepole_html_gac20aca828debbc4fae6b62ea6e085356"><div class="ttname"><a href="group__tonepole.html#gac20aca828debbc4fae6b62ea6e085356">tOnePole_setPole</a></div><div class="ttdeci">void tOnePole_setPole(tOnePole *const, float thePole)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:118</div></div>
+<div class="ttc" id="agroup__ttwozero_html_ga1a327119904fbcdb8f71f28629bb14d4"><div class="ttname"><a href="group__ttwozero.html#ga1a327119904fbcdb8f71f28629bb14d4">tTwoZero_initToPool</a></div><div class="ttdeci">void tTwoZero_initToPool(tTwoZero *const, tMempool *const)</div><div class="ttdoc">Initialize a tTwoZero to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:400</div></div>
+<div class="ttc" id="agroup__tonepole_html_gaf0f1f40fccb864cdf7310fffbdcfcf5f"><div class="ttname"><a href="group__tonepole.html#gaf0f1f40fccb864cdf7310fffbdcfcf5f">tOnePole_tick</a></div><div class="ttdeci">float tOnePole_tick(tOnePole *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:155</div></div>
+<div class="ttc" id="agroup__tallpass_html_ga177191c8cb437f2a255f02ee476d6ee0"><div class="ttname"><a href="group__tallpass.html#ga177191c8cb437f2a255f02ee476d6ee0">tAllpass_free</a></div><div class="ttdeci">void tAllpass_free(tAllpass *const)</div><div class="ttdoc">Free a tAllpass from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:42</div></div>
+<div class="ttc" id="agroup__thighpass_html_ga52802836559273d666031bd33b7ad254"><div class="ttname"><a href="group__thighpass.html#ga52802836559273d666031bd33b7ad254">tHighpass_getFreq</a></div><div class="ttdeci">float tHighpass_getFreq(tHighpass *const)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1013</div></div>
+<div class="ttc" id="agroup__tpolezero_html_ga863c1114d2a571d158fc74dd7f1ec06c"><div class="ttname"><a href="group__tpolezero.html#ga863c1114d2a571d158fc74dd7f1ec06c">tPoleZero_setBlockZero</a></div><div class="ttdeci">void tPoleZero_setBlockZero(tPoleZero *const, float thePole)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:569</div></div>
+<div class="ttc" id="agroup__tvzfilter_html_ga3c5672bd2d229be5201a8d4f6e81c9cf"><div class="ttname"><a href="group__tvzfilter.html#ga3c5672bd2d229be5201a8d4f6e81c9cf">tVZFilter_init</a></div><div class="ttdeci">void tVZFilter_init(tVZFilter *const, VZFilterType type, float freq, float Q, LEAF *const leaf)</div><div class="ttdoc">Initialize a tVZFilter to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1240</div></div>
+<div class="ttc" id="agroup__ttwozero_html_ga0875c43313e952ee2dcd86247efef096"><div class="ttname"><a href="group__ttwozero.html#ga0875c43313e952ee2dcd86247efef096">tTwoZero_setCoefficients</a></div><div class="ttdeci">void tTwoZero_setCoefficients(tTwoZero *const, float b0, float b1, float b2)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:468</div></div>
+<div class="ttc" id="agroup__tvzfilter_html_ga2dcd4668daf45ce81c7dc4b1a5477c71"><div class="ttname"><a href="group__tvzfilter.html#ga2dcd4668daf45ce81c7dc4b1a5477c71">tVZFilter_setFreq</a></div><div class="ttdeci">void tVZFilter_setFreq(tVZFilter *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1466</div></div>
+<div class="ttc" id="agroup__tallpass_html_ga49f8da193def13b70b2380288dbd96d2"><div class="ttname"><a href="group__tallpass.html#ga49f8da193def13b70b2380288dbd96d2">tAllpass_init</a></div><div class="ttdeci">void tAllpass_init(tAllpass *const, float initDelay, uint32_t maxDelay, LEAF *const leaf)</div><div class="ttdoc">Initialize a tAllpass to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:24</div></div>
+<div class="ttc" id="agroup__tefficientsvf_html_ga6e00079f0b5094972741342dfdc0e7bf"><div class="ttname"><a href="group__tefficientsvf.html#ga6e00079f0b5094972741342dfdc0e7bf">tEfficientSVF_tick</a></div><div class="ttdeci">float tEfficientSVF_tick(tEfficientSVF *const, float v0)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:934</div></div>
+<div class="ttc" id="agroup__tbiquad_html_ga7a8d9261b37e588479b6a9548a28a2ae"><div class="ttname"><a href="group__tbiquad.html#ga7a8d9261b37e588479b6a9548a28a2ae">tBiQuad_init</a></div><div class="ttdeci">void tBiQuad_init(tBiQuad *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a tBiQuad to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:604</div></div>
+<div class="ttc" id="agroup__ttwopole_html_ga55ee401b5734305e263e0095d87e221b"><div class="ttname"><a href="group__ttwopole.html#ga55ee401b5734305e263e0095d87e221b">tTwoPole_initToPool</a></div><div class="ttdeci">void tTwoPole_initToPool(tTwoPole *const, tMempool *const)</div><div class="ttdoc">Initialize a tTwoPole to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:174</div></div>
+<div class="ttc" id="agroup__tpolezero_html_ga4c6d29a676d98f4d57e0f8078ab61279"><div class="ttname"><a href="group__tpolezero.html#ga4c6d29a676d98f4d57e0f8078ab61279">tPoleZero_setB1</a></div><div class="ttdeci">void tPoleZero_setB1(tPoleZero *const, float b1)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:522</div></div>
+<div class="ttc" id="agroup__tvzfilter_html_gaa7239af935c13f07e92f817c0a53c3d7"><div class="ttname"><a href="group__tvzfilter.html#gaa7239af935c13f07e92f817c0a53c3d7">tVZFilter_setType</a></div><div class="ttdeci">void tVZFilter_setType(tVZFilter *const, VZFilterType type)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1513</div></div>
+<div class="ttc" id="agroup__tvzfilter_html_ga2e4af322ef20fe128fddec1e30315a78"><div class="ttname"><a href="group__tvzfilter.html#ga2e4af322ef20fe128fddec1e30315a78">tVZFilter_setSampleRate</a></div><div class="ttdeci">void tVZFilter_setSampleRate(tVZFilter *const, float sampleRate)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1272</div></div>
+<div class="ttc" id="agroup__tdiodefilter_html_ga2854b7be078fb842f6e9c3c2a0f22151"><div class="ttname"><a href="group__tdiodefilter.html#ga2854b7be078fb842f6e9c3c2a0f22151">tDiodeFilter_setFreq</a></div><div class="ttdeci">void tDiodeFilter_setFreq(tDiodeFilter *const vf, float cutoff)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1673</div></div>
+<div class="ttc" id="agroup__tmedianfilter_html_ga8f504c9799e7d7c782df97b8d104bca8"><div class="ttname"><a href="group__tmedianfilter.html#ga8f504c9799e7d7c782df97b8d104bca8">tMedianFilter_free</a></div><div class="ttdeci">void tMedianFilter_free(tMedianFilter *const)</div><div class="ttdoc">Free a tMedianFilter from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1190</div></div>
+<div class="ttc" id="agroup__tsvf_html_ga3b3d320a8d7991a002fa344d23780c78"><div class="ttname"><a href="group__tsvf.html#ga3b3d320a8d7991a002fa344d23780c78">tSVF_setFreq</a></div><div class="ttdeci">void tSVF_setFreq(tSVF *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:866</div></div>
+<div class="ttc" id="agroup__tfir_html_gac45d2e019b45dcd2a62ebe0b4bc1ec50"><div class="ttname"><a href="group__tfir.html#gac45d2e019b45dcd2a62ebe0b4bc1ec50">tFIR_free</a></div><div class="ttdeci">void tFIR_free(tFIR *const)</div><div class="ttdoc">Free a tFIR from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1141</div></div>
+<div class="ttc" id="agroup__ttwopole_html_gad1f982ce04f2d4d4505b77bbc70d5080"><div class="ttname"><a href="group__ttwopole.html#gad1f982ce04f2d4d4505b77bbc70d5080">tTwoPole_setGain</a></div><div class="ttdeci">void tTwoPole_setGain(tTwoPole *const, float gain)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:264</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<div class="ttc" id="agroup__thighpass_html_gaaf2a848e9c9f1aa0130cdc8a4de88c2a"><div class="ttname"><a href="group__thighpass.html#gaaf2a848e9c9f1aa0130cdc8a4de88c2a">tHighpass_free</a></div><div class="ttdeci">void tHighpass_free(tHighpass *const)</div><div class="ttdoc">Free a tHighpass from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:996</div></div>
+<div class="ttc" id="agroup__tbutterworth_html_ga5cde91a986d40a6764d07ffde532a1a7"><div class="ttname"><a href="group__tbutterworth.html#ga5cde91a986d40a6764d07ffde532a1a7">tButterworth_setFreqs</a></div><div class="ttdeci">void tButterworth_setFreqs(tButterworth *const, float f1, float f2)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1110</div></div>
+<div class="ttc" id="agroup__ttwopole_html_ga20e88350ffe6c751a0e2248bab393706"><div class="ttname"><a href="group__ttwopole.html#ga20e88350ffe6c751a0e2248bab393706">tTwoPole_free</a></div><div class="ttdeci">void tTwoPole_free(tTwoPole *const)</div><div class="ttdoc">Free a tTwoPole from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:188</div></div>
+<div class="ttc" id="agroup__tallpass_html_gaa0e5e88f6000959b4a6146e0c1ce4553"><div class="ttname"><a href="group__tallpass.html#gaa0e5e88f6000959b4a6146e0c1ce4553">tAllpass_setDelay</a></div><div class="ttdeci">void tAllpass_setDelay(tAllpass *const, float delay)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:50</div></div>
+<div class="ttc" id="agroup__tbutterworth_html_gac4729b8e622da0d570efe80ac1c54707"><div class="ttname"><a href="group__tbutterworth.html#gac4729b8e622da0d570efe80ac1c54707">tButterworth_tick</a></div><div class="ttdeci">float tButterworth_tick(tButterworth *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1078</div></div>
+<div class="ttc" id="agroup__tonezero_html_gaf460819e3f35c5759cc1f6707f2bda86"><div class="ttname"><a href="group__tonezero.html#gaf460819e3f35c5759cc1f6707f2bda86">tOneZero_setCoefficients</a></div><div class="ttdeci">void tOneZero_setCoefficients(tOneZero *const, float b0, float b1)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:350</div></div>
+<div class="ttc" id="agroup__ttwopole_html_gaa643934d1d292fcf856fc1be6b7eb3a8"><div class="ttname"><a href="group__ttwopole.html#gaa643934d1d292fcf856fc1be6b7eb3a8">tTwoPole_setB0</a></div><div class="ttdeci">void tTwoPole_setB0(tTwoPole *const, float b0)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:208</div></div>
+<div class="ttc" id="agroup__tefficientsvf_html_gad9da8495e569aa12165d804b2368147e"><div class="ttname"><a href="group__tefficientsvf.html#gad9da8495e569aa12165d804b2368147e">tEfficientSVF_setFreq</a></div><div class="ttdeci">void tEfficientSVF_setFreq(tEfficientSVF *const, uint16_t controlFreq)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:954</div></div>
+<div class="ttc" id="agroup__tallpass_html_gac301093f1c86a58e33f0d197e4f49719"><div class="ttname"><a href="group__tallpass.html#gac301093f1c86a58e33f0d197e4f49719">tAllpass_setGain</a></div><div class="ttdeci">void tAllpass_setGain(tAllpass *const, float gain)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:57</div></div>
+<div class="ttc" id="agroup__tpolezero_html_ga4e024338fe577882f52494f525488d32"><div class="ttname"><a href="group__tpolezero.html#ga4e024338fe577882f52494f525488d32">tPoleZero_tick</a></div><div class="ttdeci">float tPoleZero_tick(tPoleZero *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:590</div></div>
+<div class="ttc" id="agroup__tvzfilter_html_gac639e85aa70295332ba927c8d9b99a73"><div class="ttname"><a href="group__tvzfilter.html#gac639e85aa70295332ba927c8d9b99a73">tVZFilter_BandwidthToR</a></div><div class="ttdeci">float tVZFilter_BandwidthToR(tVZFilter *const vf, float B)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:1520</div></div>
+<div class="ttc" id="agroup__ttwozero_html_gae344592b94dcf9493aa9fdb9b363b8ac"><div class="ttname"><a href="group__ttwozero.html#gae344592b94dcf9493aa9fdb9b363b8ac">tTwoZero_setB0</a></div><div class="ttdeci">void tTwoZero_setB0(tTwoZero *const, float b0)</div><div class="ttdef"><b>Definition:</b> leaf-filters.c:456</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-global_8h_source.html
@@ -1,0 +1,171 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-global.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-global.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> ==============================================================================</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> leaf-global.h</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> Created: 24 Oct 2019 2:24:38pm</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> Author:  Matthew Wang</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> ==============================================================================</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#ifndef LEAF_GLOBAL_H_INCLUDED</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#define LEAF_GLOBAL_H_INCLUDED</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#if _WIN32 || _WIN64</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;..\leaf-config.h&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;../leaf-config.h&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    </div>
+<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="struct_l_e_a_f.html">   31</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="struct_l_e_a_f.html">LEAF</a></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    {</div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="struct_l_e_a_f.html#af6a61da668f2188e2850eba261e217c4">   34</a></span>&#160;        <span class="keywordtype">float</span>   <a class="code" href="struct_l_e_a_f.html#af6a61da668f2188e2850eba261e217c4">sampleRate</a>; </div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="struct_l_e_a_f.html#ae4c744f56f561ff4acc66ba4bd3ed201">   35</a></span>&#160;        <span class="keywordtype">float</span>   <a class="code" href="struct_l_e_a_f.html#ae4c744f56f561ff4acc66ba4bd3ed201">invSampleRate</a>; </div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="struct_l_e_a_f.html#a4aaa73e329d20f35039fa5cdd2e6f648">   36</a></span>&#160;        <span class="keywordtype">int</span>     <a class="code" href="struct_l_e_a_f.html#a4aaa73e329d20f35039fa5cdd2e6f648">blockSize</a>; </div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="struct_l_e_a_f.html#aabd759d3fcb8411249ab4813424e6b29">   37</a></span>&#160;        <span class="keywordtype">float</span>   <a class="code" href="struct_l_e_a_f.html#aabd759d3fcb8411249ab4813424e6b29">twoPiTimesInvSampleRate</a>; </div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="struct_l_e_a_f.html#a8b5a79e58a190779d202a188f82e9e86">   38</a></span>&#160;        float   (*<a class="code" href="struct_l_e_a_f.html#a8b5a79e58a190779d202a188f82e9e86">random</a>)(void); </div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="struct_l_e_a_f.html#ad65a59f4aa73365d2e77aeddfca7a449">   39</a></span>&#160;        <span class="keywordtype">int</span>     <a class="code" href="struct_l_e_a_f.html#ad65a59f4aa73365d2e77aeddfca7a449">clearOnAllocation</a>; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="struct_l_e_a_f.html#a8bcf1ce65df673f85688cca6f0883723">   40</a></span>&#160;        tMempool <a class="code" href="struct_l_e_a_f.html#a8bcf1ce65df673f85688cca6f0883723">mempool</a>; </div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        _tMempool _internal_mempool;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="struct_l_e_a_f.html#a64f1d0c53909f30b0aac882348cd32f2">   42</a></span>&#160;        <span class="keywordtype">size_t</span> <a class="code" href="struct_l_e_a_f.html#a64f1d0c53909f30b0aac882348cd32f2">header_size</a>; </div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_l_e_a_f.html#a7c7ae1db705b3fdea2bec18add896856">   43</a></span>&#160;        void (*<a class="code" href="struct_l_e_a_f.html#a7c7ae1db705b3fdea2bec18add896856">errorCallback</a>)(<a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span>, LEAFErrorType); </div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="struct_l_e_a_f.html#afdc66be5b816adc061930cf832328a44">   44</a></span>&#160;        <span class="keywordtype">int</span>     <a class="code" href="struct_l_e_a_f.html#afdc66be5b816adc061930cf832328a44">errorState</a>[LEAFErrorNil]; </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        </div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    };</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;}</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160; </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#endif  // LEAF_GLOBAL_H_INCLUDED</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astruct_l_e_a_f_html_a4aaa73e329d20f35039fa5cdd2e6f648"><div class="ttname"><a href="struct_l_e_a_f.html#a4aaa73e329d20f35039fa5cdd2e6f648">LEAF::blockSize</a></div><div class="ttdeci">int blockSize</div><div class="ttdoc">The audio block size.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:36</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html_afdc66be5b816adc061930cf832328a44"><div class="ttname"><a href="struct_l_e_a_f.html#afdc66be5b816adc061930cf832328a44">LEAF::errorState</a></div><div class="ttdeci">int errorState[LEAFErrorNil]</div><div class="ttdoc">An array of flags that indicate which errors have occurred.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:44</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html_a8b5a79e58a190779d202a188f82e9e86"><div class="ttname"><a href="struct_l_e_a_f.html#a8b5a79e58a190779d202a188f82e9e86">LEAF::random</a></div><div class="ttdeci">float(* random)(void)</div><div class="ttdoc">A pointer to the random() function provided on initialization.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:38</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html_ad65a59f4aa73365d2e77aeddfca7a449"><div class="ttname"><a href="struct_l_e_a_f.html#ad65a59f4aa73365d2e77aeddfca7a449">LEAF::clearOnAllocation</a></div><div class="ttdeci">int clearOnAllocation</div><div class="ttdoc">A flag that determines whether memory allocated from the LEAF memory pool will be cleared.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:39</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html_aabd759d3fcb8411249ab4813424e6b29"><div class="ttname"><a href="struct_l_e_a_f.html#aabd759d3fcb8411249ab4813424e6b29">LEAF::twoPiTimesInvSampleRate</a></div><div class="ttdeci">float twoPiTimesInvSampleRate</div><div class="ttdoc">Two-pi times the inverse of the current sample rate.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:37</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html_a7c7ae1db705b3fdea2bec18add896856"><div class="ttname"><a href="struct_l_e_a_f.html#a7c7ae1db705b3fdea2bec18add896856">LEAF::errorCallback</a></div><div class="ttdeci">void(* errorCallback)(LEAF *const, LEAFErrorType)</div><div class="ttdoc">A pointer to the callback function for LEAF errors. Can be set by the user.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:43</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html_a8bcf1ce65df673f85688cca6f0883723"><div class="ttname"><a href="struct_l_e_a_f.html#a8bcf1ce65df673f85688cca6f0883723">LEAF::mempool</a></div><div class="ttdeci">tMempool mempool</div><div class="ttdoc">The default LEAF mempool object.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:40</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html_af6a61da668f2188e2850eba261e217c4"><div class="ttname"><a href="struct_l_e_a_f.html#af6a61da668f2188e2850eba261e217c4">LEAF::sampleRate</a></div><div class="ttdeci">float sampleRate</div><div class="ttdoc">The current audio sample rate. Set with LEAF_setSampleRate().</div><div class="ttdef"><b>Definition:</b> leaf-global.h:34</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html_a64f1d0c53909f30b0aac882348cd32f2"><div class="ttname"><a href="struct_l_e_a_f.html#a64f1d0c53909f30b0aac882348cd32f2">LEAF::header_size</a></div><div class="ttdeci">size_t header_size</div><div class="ttdoc">The size in bytes of memory region headers within mempools.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:42</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html_ae4c744f56f561ff4acc66ba4bd3ed201"><div class="ttname"><a href="struct_l_e_a_f.html#ae4c744f56f561ff4acc66ba4bd3ed201">LEAF::invSampleRate</a></div><div class="ttdeci">float invSampleRate</div><div class="ttdoc">The inverse of the current sample rate.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:35</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-instruments_8h_source.html
@@ -1,0 +1,357 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-instruments.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-instruments.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*==============================================================================</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> leaf-instruments.h</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> Created: 30 Nov 2018 10:24:44am</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> Author:  airship</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> ==============================================================================*/</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#ifndef LEAF_INSTRUMENTS_H_INCLUDED</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define LEAF_INSTRUMENTS_H_INCLUDED</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;leaf-oscillators.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;leaf-filters.h&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;leaf-envelopes.h&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_t808Cowbell</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    {</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        tSquare p[2];</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        tNoise stick;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        tSVF bandpassOsc;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        tSVF bandpassStick;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        tEnvelope envGain;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        tEnvelope envStick;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        tEnvelope envFilter;</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        tHighpass highpass;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <span class="keywordtype">float</span> oscMix;</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <span class="keywordtype">float</span> filterCutoff;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        uint8_t useStick;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    } _t808Cowbell;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    </div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keyword">typedef</span> _t808Cowbell* t808Cowbell;</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808cowbell.html#gad73082119a3ea30b5531c683617d007b">t808Cowbell_init</a>            (t808Cowbell* <span class="keyword">const</span>, <span class="keywordtype">int</span> useStick, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808cowbell.html#ga99059721c541953474999ddd3bb59913">t808Cowbell_initToPool</a>      (t808Cowbell* <span class="keyword">const</span>, <span class="keywordtype">int</span> useStick, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808cowbell.html#gaf582d380f2b6af70344a3a8b4ae04d09">t808Cowbell_free</a>            (t808Cowbell* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__t808cowbell.html#ga58c18da70d7dbe34f5074dd3864950ec">t808Cowbell_tick</a>            (t808Cowbell* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808cowbell.html#ga0345c870253d83d7328ddcaa8cd5962f">t808Cowbell_on</a>              (t808Cowbell* <span class="keyword">const</span>, <span class="keywordtype">float</span> vel);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808cowbell.html#gaa7f1e2a1ce97bb32cba4c8c55ea23ccd">t808Cowbell_setDecay</a>        (t808Cowbell* <span class="keyword">const</span>, <span class="keywordtype">float</span> decay);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808cowbell.html#ga7d3ae5159a1e71f7a48e2888b931d6a6">t808Cowbell_setHighpassFreq</a> (t808Cowbell* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808cowbell.html#gab2b2eb374bdd28d96dc91e279cf7f8c8">t808Cowbell_setBandpassFreq</a> (t808Cowbell* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808cowbell.html#ga231f7ba0e351caf6989db61a37229c49">t808Cowbell_setFreq</a>         (t808Cowbell* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808cowbell.html#ga8547ef62c511459d58c1c10636a4ff0e">t808Cowbell_setOscMix</a>       (t808Cowbell* <span class="keyword">const</span>, <span class="keywordtype">float</span> oscMix);</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808cowbell.html#ga2da4c28c28924e77adb14a477bc2b099">t808Cowbell_setStick</a>        (t808Cowbell* <span class="keyword">const</span>, <span class="keywordtype">int</span> useStick);</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    </div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    </div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_t808Hihat</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    {</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        </div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        <span class="comment">// 6 Square waves</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        tSquare p[6];</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        tNoise n;</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        tSVF bandpassOsc;</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        tSVF bandpassStick;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        tEnvelope envGain;</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        tEnvelope envStick;</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        tEnvelope noiseFMGain;</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        tHighpass highpass;</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        tNoise stick;</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        </div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        <span class="keywordtype">float</span> freq;</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        <span class="keywordtype">float</span> stretch;</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        <span class="keywordtype">float</span> FM_amount;</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        <span class="keywordtype">float</span> oscNoiseMix;</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    } _t808Hihat;</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    </div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    <span class="keyword">typedef</span> _t808Hihat* t808Hihat;</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808hihat.html#ga90cf7603e94540308461463f738d120a">t808Hihat_init</a>                  (t808Hihat* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808hihat.html#ga1aa220309fb3475977ea7878105a8d1d">t808Hihat_initToPool</a>            (t808Hihat* <span class="keyword">const</span>, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808hihat.html#gacdf51e9c89696dfe6347bbf5bd750795">t808Hihat_free</a>                  (t808Hihat* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__t808hihat.html#gacd110ae0db13491f0eb4aa27b75b3cc0">t808Hihat_tick</a>                  (t808Hihat* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808hihat.html#gae906b0f89ba9a5ec113512e943b06762">t808Hihat_on</a>                    (t808Hihat* <span class="keyword">const</span>, <span class="keywordtype">float</span> vel);</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808hihat.html#ga450a85981e478ea7bf7990b7867dfa7c">t808Hihat_setOscNoiseMix</a>        (t808Hihat* <span class="keyword">const</span>, <span class="keywordtype">float</span> oscNoiseMix);</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808hihat.html#gafe362829712b47febbc622a133c978eb">t808Hihat_setDecay</a>              (t808Hihat* <span class="keyword">const</span>, <span class="keywordtype">float</span> decay);</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808hihat.html#gacece6ca1e3cc6bfe0b5b1ba1ef310a4d">t808Hihat_setHighpassFreq</a>       (t808Hihat* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808hihat.html#ga86f81ed83bf120be74b1d49c8e409ba9">t808Hihat_setOscBandpassFreq</a>    (t808Hihat* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808hihat.html#gacfd6ccfd7606aa878c6b5a2b4abb646c">t808Hihat_setOscBandpassQ</a>       (t808Hihat* <span class="keyword">const</span> hihat, <span class="keywordtype">float</span> Q);</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808hihat.html#gac877fd8a5108ee60ce9bc9629c673749">t808Hihat_setStickBandPassFreq</a>  (t808Hihat* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808hihat.html#ga554517ecfcd8d7c4f46d97a2be3d11ee">t808Hihat_setStickBandPassQ</a>     (t808Hihat* <span class="keyword">const</span> hihat, <span class="keywordtype">float</span> Q);</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808hihat.html#gad9633cc3f51a6ce583c1941309582427">t808Hihat_setOscFreq</a>            (t808Hihat* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808hihat.html#gae236e3f43e6099c9b6047bac2b72ab9a">t808Hihat_setStretch</a>            (t808Hihat* <span class="keyword">const</span> hihat, <span class="keywordtype">float</span> stretch);</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808hihat.html#gaa2611ffc113296265543a92ebcb1b772">t808Hihat_setFM</a>                 (t808Hihat* <span class="keyword">const</span> hihat, <span class="keywordtype">float</span> FM_amount);</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    </div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_t808Snare</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    {</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        </div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;        <span class="comment">// Tone 1, Tone 2, Noise</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        tTriangle tone[2]; <span class="comment">// Tri (not yet antialiased or wavetabled)</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        tNoise noiseOsc;</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        tSVF toneLowpass[2];</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        tSVF noiseLowpass; <span class="comment">// Lowpass from SVF filter</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        tEnvelope toneEnvOsc[2];</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        tEnvelope toneEnvGain[2];</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        tEnvelope noiseEnvGain;</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        tEnvelope toneEnvFilter[2];</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        tEnvelope noiseEnvFilter;</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;        </div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        <span class="keywordtype">float</span> toneGain[2];</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        <span class="keywordtype">float</span> noiseGain;</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;        </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;        <span class="keywordtype">float</span> toneNoiseMix;</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        </div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        <span class="keywordtype">float</span> tone1Freq, tone2Freq;</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        </div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        <span class="keywordtype">float</span> noiseFilterFreq;</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    } _t808Snare;</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    </div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    <span class="keyword">typedef</span> _t808Snare* t808Snare;</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    </div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808snare.html#gacd0d752096b9eb8c14b7bd5e7088f6df">t808Snare_init</a>                  (t808Snare* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808snare.html#ga2aca77d2a4474881901ede4e03bd6209">t808Snare_initToPool</a>            (t808Snare* <span class="keyword">const</span>, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808snare.html#ga61d0f7d53b904cf9919a767abe274d10">t808Snare_free</a>                  (t808Snare* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    </div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__t808snare.html#ga517c3b4cfe9e4d362b37d897b852243c">t808Snare_tick</a>                  (t808Snare* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808snare.html#gae053deab7660527b10d71b087e880565">t808Snare_on</a>                    (t808Snare* <span class="keyword">const</span>, <span class="keywordtype">float</span> vel);</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808snare.html#gac2203aab6623948c0516eac99caff599">t808Snare_setTone1Freq</a>          (t808Snare* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808snare.html#gae29d81ddb62b86a01e9d9f91af2727ae">t808Snare_setTone2Freq</a>          (t808Snare* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808snare.html#ga2428f86cd194304d8473720dde039964">t808Snare_setTone1Decay</a>         (t808Snare* <span class="keyword">const</span>, <span class="keywordtype">float</span> decay);</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808snare.html#ga9fd3b086cf100b54d044f8a4be211ffe">t808Snare_setTone2Decay</a>         (t808Snare* <span class="keyword">const</span>, <span class="keywordtype">float</span> decay);</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808snare.html#gac4d1025b896f471d4eaa28a00332ffd7">t808Snare_setNoiseDecay</a>         (t808Snare* <span class="keyword">const</span>, <span class="keywordtype">float</span> decay);</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808snare.html#gac2d85920c25919c4d647243f32453229">t808Snare_setToneNoiseMix</a>       (t808Snare* <span class="keyword">const</span>, <span class="keywordtype">float</span> toneNoiseMix);</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808snare.html#gafaee814013dd2d593d88edb94760f4ab">t808Snare_setNoiseFilterFreq</a>    (t808Snare* <span class="keyword">const</span>, <span class="keywordtype">float</span> noiseFilterFreq);</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808snare.html#ga6777f759f2d5969d1ce54337e85f00f2">t808Snare_setNoiseFilterQ</a>       (t808Snare* <span class="keyword">const</span>, <span class="keywordtype">float</span> noiseFilterQ);</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;    </div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    </div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_t808Kick</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    {</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        </div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        </div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        tCycle tone; <span class="comment">// Tri</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        tNoise noiseOsc;</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;        tSVF toneLowpass;</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;        tEnvelope toneEnvOscChirp;</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;        tEnvelope toneEnvOscSigh;</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;        tEnvelope toneEnvGain;</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;        tEnvelope noiseEnvGain;</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;        tEnvelope toneEnvFilter;</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;        </div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;        <span class="keywordtype">float</span> toneGain;</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;        <span class="keywordtype">float</span> noiseGain;</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;        </div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;        <span class="keywordtype">float</span> toneInitialFreq;</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        <span class="keywordtype">float</span> sighAmountInHz;</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;        <span class="keywordtype">float</span> chirpRatioMinusOne;</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;        <span class="keywordtype">float</span> noiseFilterFreq;</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    } _t808Kick;</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    </div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="keyword">typedef</span> _t808Kick* t808Kick;</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    </div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808kick.html#gadf0610a6f55caa8fe2bce29be8ae5866">t808Kick_init</a>               (t808Kick* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808kick.html#ga0126a59483e835ffb84686ded5ffe4db">t808Kick_initToPool</a>         (t808Kick* <span class="keyword">const</span>, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808kick.html#ga29c6085b72a735d53c2112d574b53019">t808Kick_free</a>               (t808Kick* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    </div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__t808kick.html#ga3bba7e177c2b54fadb802277ee4df1d1">t808Kick_tick</a>               (t808Kick* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808kick.html#ga412fef7686fb7b6a6f9a545de1dd66c6">t808Kick_on</a>                 (t808Kick* <span class="keyword">const</span>, <span class="keywordtype">float</span> vel);</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808kick.html#gabb6ccbf278eacb145026c24591a0d37c">t808Kick_setToneFreq</a>        (t808Kick* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808kick.html#ga5c40b2f7ee8815cd3b50a52f33f69e50">t808Kick_setToneDecay</a>       (t808Kick* <span class="keyword">const</span>, <span class="keywordtype">float</span> decay);</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808kick.html#gaf7d43ae5eeb2f104773e33f128d04ad7">t808Kick_setNoiseDecay</a>      (t808Kick* <span class="keyword">const</span>, <span class="keywordtype">float</span> decay);</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808kick.html#gacc0caa60a523b68eec29d7a6391021ba">t808Kick_setSighAmount</a>      (t808Kick* <span class="keyword">const</span>, <span class="keywordtype">float</span> sigh);</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808kick.html#ga5d87bb00168c68eb2c818bcb215998a4">t808Kick_setChirpAmount</a>     (t808Kick* <span class="keyword">const</span>, <span class="keywordtype">float</span> chirp);</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808kick.html#ga8f8bf7a1fcd13931e431e7adf073de68">t808Kick_setToneNoiseMix</a>    (t808Kick* <span class="keyword">const</span>, <span class="keywordtype">float</span> toneNoiseMix);</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808kick.html#ga8595d5622afa9ca641b082f016969d25">t808Kick_setNoiseFilterFreq</a> (t808Kick* <span class="keyword">const</span>, <span class="keywordtype">float</span> noiseFilterFreq);</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t808kick.html#gafccd007bf99d7997189694ae37ec568e">t808Kick_setNoiseFilterQ</a>    (t808Kick* <span class="keyword">const</span>, <span class="keywordtype">float</span> noiseFilterQ);</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;    </div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    </div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;}</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160; </div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;<span class="preprocessor">#endif // LEAF_INSTRUMENTS_H_INCLUDED</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160; </div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160; </div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160; </div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="agroup__t808hihat_html_gae906b0f89ba9a5ec113512e943b06762"><div class="ttname"><a href="group__t808hihat.html#gae906b0f89ba9a5ec113512e943b06762">t808Hihat_on</a></div><div class="ttdeci">void t808Hihat_on(t808Hihat *const, float vel)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:209</div></div>
+<div class="ttc" id="agroup__t808hihat_html_ga1aa220309fb3475977ea7878105a8d1d"><div class="ttname"><a href="group__t808hihat.html#ga1aa220309fb3475977ea7878105a8d1d">t808Hihat_initToPool</a></div><div class="ttdeci">void t808Hihat_initToPool(t808Hihat *const, tMempool *const)</div><div class="ttdoc">Initialize a t808Hihat to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:151</div></div>
+<div class="ttc" id="agroup__t808snare_html_ga2428f86cd194304d8473720dde039964"><div class="ttname"><a href="group__t808snare.html#ga2428f86cd194304d8473720dde039964">t808Snare_setTone1Decay</a></div><div class="ttdeci">void t808Snare_setTone1Decay(t808Snare *const, float decay)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:399</div></div>
+<div class="ttc" id="agroup__t808hihat_html_gad9633cc3f51a6ce583c1941309582427"><div class="ttname"><a href="group__t808hihat.html#gad9633cc3f51a6ce583c1941309582427">t808Hihat_setOscFreq</a></div><div class="ttdeci">void t808Hihat_setOscFreq(t808Hihat *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:306</div></div>
+<div class="ttc" id="agroup__t808kick_html_gaf7d43ae5eeb2f104773e33f128d04ad7"><div class="ttname"><a href="group__t808kick.html#gaf7d43ae5eeb2f104773e33f128d04ad7">t808Kick_setNoiseDecay</a></div><div class="ttdeci">void t808Kick_setNoiseDecay(t808Kick *const, float decay)</div></div>
+<div class="ttc" id="agroup__t808hihat_html_gae236e3f43e6099c9b6047bac2b72ab9a"><div class="ttname"><a href="group__t808hihat.html#gae236e3f43e6099c9b6047bac2b72ab9a">t808Hihat_setStretch</a></div><div class="ttdeci">void t808Hihat_setStretch(t808Hihat *const hihat, float stretch)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:270</div></div>
+<div class="ttc" id="agroup__t808cowbell_html_ga8547ef62c511459d58c1c10636a4ff0e"><div class="ttname"><a href="group__t808cowbell.html#ga8547ef62c511459d58c1c10636a4ff0e">t808Cowbell_setOscMix</a></div><div class="ttdeci">void t808Cowbell_setOscMix(t808Cowbell *const, float oscMix)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:132</div></div>
+<div class="ttc" id="agroup__t808cowbell_html_gab2b2eb374bdd28d96dc91e279cf7f8c8"><div class="ttname"><a href="group__t808cowbell.html#gab2b2eb374bdd28d96dc91e279cf7f8c8">t808Cowbell_setBandpassFreq</a></div><div class="ttdeci">void t808Cowbell_setBandpassFreq(t808Cowbell *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:119</div></div>
+<div class="ttc" id="agroup__t808kick_html_ga8595d5622afa9ca641b082f016969d25"><div class="ttname"><a href="group__t808kick.html#ga8595d5622afa9ca641b082f016969d25">t808Kick_setNoiseFilterFreq</a></div><div class="ttdeci">void t808Kick_setNoiseFilterFreq(t808Kick *const, float noiseFilterFreq)</div></div>
+<div class="ttc" id="agroup__t808kick_html_ga412fef7686fb7b6a6f9a545de1dd66c6"><div class="ttname"><a href="group__t808kick.html#ga412fef7686fb7b6a6f9a545de1dd66c6">t808Kick_on</a></div><div class="ttdeci">void t808Kick_on(t808Kick *const, float vel)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:513</div></div>
+<div class="ttc" id="agroup__t808kick_html_ga29c6085b72a735d53c2112d574b53019"><div class="ttname"><a href="group__t808kick.html#ga29c6085b72a735d53c2112d574b53019">t808Kick_free</a></div><div class="ttdeci">void t808Kick_free(t808Kick *const)</div><div class="ttdoc">Free a t808Kick from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:486</div></div>
+<div class="ttc" id="agroup__t808kick_html_ga0126a59483e835ffb84686ded5ffe4db"><div class="ttname"><a href="group__t808kick.html#ga0126a59483e835ffb84686ded5ffe4db">t808Kick_initToPool</a></div><div class="ttdeci">void t808Kick_initToPool(t808Kick *const, tMempool *const)</div><div class="ttdoc">Initialize a t808Kick to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:466</div></div>
+<div class="ttc" id="agroup__t808hihat_html_ga450a85981e478ea7bf7990b7867dfa7c"><div class="ttname"><a href="group__t808hihat.html#ga450a85981e478ea7bf7990b7867dfa7c">t808Hihat_setOscNoiseMix</a></div><div class="ttdeci">void t808Hihat_setOscNoiseMix(t808Hihat *const, float oscNoiseMix)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:216</div></div>
+<div class="ttc" id="agroup__t808hihat_html_ga554517ecfcd8d7c4f46d97a2be3d11ee"><div class="ttname"><a href="group__t808hihat.html#ga554517ecfcd8d7c4f46d97a2be3d11ee">t808Hihat_setStickBandPassQ</a></div><div class="ttdeci">void t808Hihat_setStickBandPassQ(t808Hihat *const hihat, float Q)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:300</div></div>
+<div class="ttc" id="agroup__t808kick_html_ga8f8bf7a1fcd13931e431e7adf073de68"><div class="ttname"><a href="group__t808kick.html#ga8f8bf7a1fcd13931e431e7adf073de68">t808Kick_setToneNoiseMix</a></div><div class="ttdeci">void t808Kick_setToneNoiseMix(t808Kick *const, float toneNoiseMix)</div></div>
+<div class="ttc" id="agroup__t808hihat_html_gacdf51e9c89696dfe6347bbf5bd750795"><div class="ttname"><a href="group__t808hihat.html#gacdf51e9c89696dfe6347bbf5bd750795">t808Hihat_free</a></div><div class="ttdeci">void t808Hihat_free(t808Hihat *const)</div><div class="ttdoc">Free a t808Hihat from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:186</div></div>
+<div class="ttc" id="agroup__t808cowbell_html_ga231f7ba0e351caf6989db61a37229c49"><div class="ttname"><a href="group__t808cowbell.html#ga231f7ba0e351caf6989db61a37229c49">t808Cowbell_setFreq</a></div><div class="ttdeci">void t808Cowbell_setFreq(t808Cowbell *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:125</div></div>
+<div class="ttc" id="agroup__t808snare_html_gac4d1025b896f471d4eaa28a00332ffd7"><div class="ttname"><a href="group__t808snare.html#gac4d1025b896f471d4eaa28a00332ffd7">t808Snare_setNoiseDecay</a></div><div class="ttdeci">void t808Snare_setNoiseDecay(t808Snare *const, float decay)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:411</div></div>
+<div class="ttc" id="agroup__t808snare_html_gac2d85920c25919c4d647243f32453229"><div class="ttname"><a href="group__t808snare.html#gac2d85920c25919c4d647243f32453229">t808Snare_setToneNoiseMix</a></div><div class="ttdeci">void t808Snare_setToneNoiseMix(t808Snare *const, float toneNoiseMix)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:417</div></div>
+<div class="ttc" id="agroup__t808hihat_html_gacd110ae0db13491f0eb4aa27b75b3cc0"><div class="ttname"><a href="group__t808hihat.html#gacd110ae0db13491f0eb4aa27b75b3cc0">t808Hihat_tick</a></div><div class="ttdeci">float t808Hihat_tick(t808Hihat *const)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:222</div></div>
+<div class="ttc" id="agroup__t808snare_html_ga9fd3b086cf100b54d044f8a4be211ffe"><div class="ttname"><a href="group__t808snare.html#ga9fd3b086cf100b54d044f8a4be211ffe">t808Snare_setTone2Decay</a></div><div class="ttdeci">void t808Snare_setTone2Decay(t808Snare *const, float decay)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:405</div></div>
+<div class="ttc" id="agroup__t808hihat_html_gacfd6ccfd7606aa878c6b5a2b4abb646c"><div class="ttname"><a href="group__t808hihat.html#gacfd6ccfd7606aa878c6b5a2b4abb646c">t808Hihat_setOscBandpassQ</a></div><div class="ttdeci">void t808Hihat_setOscBandpassQ(t808Hihat *const hihat, float Q)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:288</div></div>
+<div class="ttc" id="agroup__t808kick_html_gadf0610a6f55caa8fe2bce29be8ae5866"><div class="ttname"><a href="group__t808kick.html#gadf0610a6f55caa8fe2bce29be8ae5866">t808Kick_init</a></div><div class="ttdeci">void t808Kick_init(t808Kick *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a t808Kick to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:461</div></div>
+<div class="ttc" id="agroup__t808kick_html_ga5d87bb00168c68eb2c818bcb215998a4"><div class="ttname"><a href="group__t808kick.html#ga5d87bb00168c68eb2c818bcb215998a4">t808Kick_setChirpAmount</a></div><div class="ttdeci">void t808Kick_setChirpAmount(t808Kick *const, float chirp)</div></div>
+<div class="ttc" id="agroup__t808hihat_html_ga86f81ed83bf120be74b1d49c8e409ba9"><div class="ttname"><a href="group__t808hihat.html#ga86f81ed83bf120be74b1d49c8e409ba9">t808Hihat_setOscBandpassFreq</a></div><div class="ttdeci">void t808Hihat_setOscBandpassFreq(t808Hihat *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:282</div></div>
+<div class="ttc" id="agroup__t808cowbell_html_ga2da4c28c28924e77adb14a477bc2b099"><div class="ttname"><a href="group__t808cowbell.html#ga2da4c28c28924e77adb14a477bc2b099">t808Cowbell_setStick</a></div><div class="ttdeci">void t808Cowbell_setStick(t808Cowbell *const, int useStick)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:138</div></div>
+<div class="ttc" id="agroup__t808snare_html_gac2203aab6623948c0516eac99caff599"><div class="ttname"><a href="group__t808snare.html#gac2203aab6623948c0516eac99caff599">t808Snare_setTone1Freq</a></div><div class="ttdeci">void t808Snare_setTone1Freq(t808Snare *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:385</div></div>
+<div class="ttc" id="agroup__t808snare_html_ga2aca77d2a4474881901ede4e03bd6209"><div class="ttname"><a href="group__t808snare.html#ga2aca77d2a4474881901ede4e03bd6209">t808Snare_initToPool</a></div><div class="ttdeci">void t808Snare_initToPool(t808Snare *const, tMempool *const)</div><div class="ttdoc">Initialize a t808Snare to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:319</div></div>
+<div class="ttc" id="agroup__t808hihat_html_ga90cf7603e94540308461463f738d120a"><div class="ttname"><a href="group__t808hihat.html#ga90cf7603e94540308461463f738d120a">t808Hihat_init</a></div><div class="ttdeci">void t808Hihat_init(t808Hihat *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a t808Hihat to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:146</div></div>
+<div class="ttc" id="agroup__t808kick_html_gabb6ccbf278eacb145026c24591a0d37c"><div class="ttname"><a href="group__t808kick.html#gabb6ccbf278eacb145026c24591a0d37c">t808Kick_setToneFreq</a></div><div class="ttdeci">void t808Kick_setToneFreq(t808Kick *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:522</div></div>
+<div class="ttc" id="agroup__t808cowbell_html_ga7d3ae5159a1e71f7a48e2888b931d6a6"><div class="ttname"><a href="group__t808cowbell.html#ga7d3ae5159a1e71f7a48e2888b931d6a6">t808Cowbell_setHighpassFreq</a></div><div class="ttdeci">void t808Cowbell_setHighpassFreq(t808Cowbell *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:113</div></div>
+<div class="ttc" id="agroup__t808hihat_html_gaa2611ffc113296265543a92ebcb1b772"><div class="ttname"><a href="group__t808hihat.html#gaa2611ffc113296265543a92ebcb1b772">t808Hihat_setFM</a></div><div class="ttdeci">void t808Hihat_setFM(t808Hihat *const hihat, float FM_amount)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:276</div></div>
+<div class="ttc" id="agroup__t808cowbell_html_ga99059721c541953474999ddd3bb59913"><div class="ttname"><a href="group__t808cowbell.html#ga99059721c541953474999ddd3bb59913">t808Cowbell_initToPool</a></div><div class="ttdeci">void t808Cowbell_initToPool(t808Cowbell *const, int useStick, tMempool *const)</div><div class="ttdoc">Initialize a t808Cowbell to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:26</div></div>
+<div class="ttc" id="agroup__t808cowbell_html_ga58c18da70d7dbe34f5074dd3864950ec"><div class="ttname"><a href="group__t808cowbell.html#ga58c18da70d7dbe34f5074dd3864950ec">t808Cowbell_tick</a></div><div class="ttdeci">float t808Cowbell_tick(t808Cowbell *const)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:83</div></div>
+<div class="ttc" id="agroup__t808snare_html_gafaee814013dd2d593d88edb94760f4ab"><div class="ttname"><a href="group__t808snare.html#gafaee814013dd2d593d88edb94760f4ab">t808Snare_setNoiseFilterFreq</a></div><div class="ttdeci">void t808Snare_setNoiseFilterFreq(t808Snare *const, float noiseFilterFreq)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:423</div></div>
+<div class="ttc" id="agroup__t808cowbell_html_ga0345c870253d83d7328ddcaa8cd5962f"><div class="ttname"><a href="group__t808cowbell.html#ga0345c870253d83d7328ddcaa8cd5962f">t808Cowbell_on</a></div><div class="ttdeci">void t808Cowbell_on(t808Cowbell *const, float vel)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:73</div></div>
+<div class="ttc" id="agroup__t808cowbell_html_gad73082119a3ea30b5531c683617d007b"><div class="ttname"><a href="group__t808cowbell.html#gad73082119a3ea30b5531c683617d007b">t808Cowbell_init</a></div><div class="ttdeci">void t808Cowbell_init(t808Cowbell *const, int useStick, LEAF *const leaf)</div><div class="ttdoc">Initialize a t808Cowbell to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:21</div></div>
+<div class="ttc" id="agroup__t808cowbell_html_gaf582d380f2b6af70344a3a8b4ae04d09"><div class="ttname"><a href="group__t808cowbell.html#gaf582d380f2b6af70344a3a8b4ae04d09">t808Cowbell_free</a></div><div class="ttdeci">void t808Cowbell_free(t808Cowbell *const)</div><div class="ttdoc">Free a t808Cowbell from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:57</div></div>
+<div class="ttc" id="agroup__t808snare_html_ga61d0f7d53b904cf9919a767abe274d10"><div class="ttname"><a href="group__t808snare.html#ga61d0f7d53b904cf9919a767abe274d10">t808Snare_free</a></div><div class="ttdeci">void t808Snare_free(t808Snare *const)</div><div class="ttdoc">Free a t808Snare from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:349</div></div>
+<div class="ttc" id="agroup__t808kick_html_ga5c40b2f7ee8815cd3b50a52f33f69e50"><div class="ttname"><a href="group__t808kick.html#ga5c40b2f7ee8815cd3b50a52f33f69e50">t808Kick_setToneDecay</a></div><div class="ttdeci">void t808Kick_setToneDecay(t808Kick *const, float decay)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:529</div></div>
+<div class="ttc" id="agroup__t808kick_html_gacc0caa60a523b68eec29d7a6391021ba"><div class="ttname"><a href="group__t808kick.html#gacc0caa60a523b68eec29d7a6391021ba">t808Kick_setSighAmount</a></div><div class="ttdeci">void t808Kick_setSighAmount(t808Kick *const, float sigh)</div></div>
+<div class="ttc" id="agroup__t808hihat_html_gac877fd8a5108ee60ce9bc9629c673749"><div class="ttname"><a href="group__t808hihat.html#gac877fd8a5108ee60ce9bc9629c673749">t808Hihat_setStickBandPassFreq</a></div><div class="ttdeci">void t808Hihat_setStickBandPassFreq(t808Hihat *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:294</div></div>
+<div class="ttc" id="agroup__t808snare_html_ga6777f759f2d5969d1ce54337e85f00f2"><div class="ttname"><a href="group__t808snare.html#ga6777f759f2d5969d1ce54337e85f00f2">t808Snare_setNoiseFilterQ</a></div><div class="ttdeci">void t808Snare_setNoiseFilterQ(t808Snare *const, float noiseFilterQ)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:429</div></div>
+<div class="ttc" id="agroup__t808snare_html_gacd0d752096b9eb8c14b7bd5e7088f6df"><div class="ttname"><a href="group__t808snare.html#gacd0d752096b9eb8c14b7bd5e7088f6df">t808Snare_init</a></div><div class="ttdeci">void t808Snare_init(t808Snare *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a t808Snare to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:314</div></div>
+<div class="ttc" id="agroup__t808kick_html_ga3bba7e177c2b54fadb802277ee4df1d1"><div class="ttname"><a href="group__t808kick.html#ga3bba7e177c2b54fadb802277ee4df1d1">t808Kick_tick</a></div><div class="ttdeci">float t808Kick_tick(t808Kick *const)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:501</div></div>
+<div class="ttc" id="agroup__t808snare_html_gae29d81ddb62b86a01e9d9f91af2727ae"><div class="ttname"><a href="group__t808snare.html#gae29d81ddb62b86a01e9d9f91af2727ae">t808Snare_setTone2Freq</a></div><div class="ttdeci">void t808Snare_setTone2Freq(t808Snare *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:392</div></div>
+<div class="ttc" id="agroup__t808snare_html_gae053deab7660527b10d71b087e880565"><div class="ttname"><a href="group__t808snare.html#gae053deab7660527b10d71b087e880565">t808Snare_on</a></div><div class="ttdeci">void t808Snare_on(t808Snare *const, float vel)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:370</div></div>
+<div class="ttc" id="agroup__t808hihat_html_gafe362829712b47febbc622a133c978eb"><div class="ttname"><a href="group__t808hihat.html#gafe362829712b47febbc622a133c978eb">t808Hihat_setDecay</a></div><div class="ttdeci">void t808Hihat_setDecay(t808Hihat *const, float decay)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:258</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<div class="ttc" id="agroup__t808cowbell_html_gaa7f1e2a1ce97bb32cba4c8c55ea23ccd"><div class="ttname"><a href="group__t808cowbell.html#gaa7f1e2a1ce97bb32cba4c8c55ea23ccd">t808Cowbell_setDecay</a></div><div class="ttdeci">void t808Cowbell_setDecay(t808Cowbell *const, float decay)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:107</div></div>
+<div class="ttc" id="agroup__t808kick_html_gafccd007bf99d7997189694ae37ec568e"><div class="ttname"><a href="group__t808kick.html#gafccd007bf99d7997189694ae37ec568e">t808Kick_setNoiseFilterQ</a></div><div class="ttdeci">void t808Kick_setNoiseFilterQ(t808Kick *const, float noiseFilterQ)</div></div>
+<div class="ttc" id="agroup__t808snare_html_ga517c3b4cfe9e4d362b37d897b852243c"><div class="ttname"><a href="group__t808snare.html#ga517c3b4cfe9e4d362b37d897b852243c">t808Snare_tick</a></div><div class="ttdeci">float t808Snare_tick(t808Snare *const)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:437</div></div>
+<div class="ttc" id="agroup__t808hihat_html_gacece6ca1e3cc6bfe0b5b1ba1ef310a4d"><div class="ttname"><a href="group__t808hihat.html#gacece6ca1e3cc6bfe0b5b1ba1ef310a4d">t808Hihat_setHighpassFreq</a></div><div class="ttdeci">void t808Hihat_setHighpassFreq(t808Hihat *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-instruments.c:264</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-math_8h_source.html
@@ -1,0 +1,350 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-math.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-math.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*==============================================================================</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> leaf-math.h</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> Created: 22 Jan 2017 7:02:56pm</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> Author:  Michael R Mulshine</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> ==============================================================================*/</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#ifndef LEAF_MATH_H_INCLUDED</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define LEAF_MATH_H_INCLUDED</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;leaf-global.h&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;math.h&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;stdint.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;stdlib.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;limits.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="comment">// Allows for bitwise operations on floats</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="keyword">union </span>unholy_t { <span class="comment">/* a union between a float and an integer */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <span class="keywordtype">float</span> f;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    };</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#define SQRT8 2.82842712475f</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define LEAF_SQRT2 1.41421356237f</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#define WSCALE 1.30612244898f</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#define PI              (3.14159265358979f)</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#define TWO_PI          (6.28318530717958f)</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#define HALF_PI         (1.570796326794897f)</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160; </div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#define VSF             1.0e-38f</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#define MAX_DELAY       8192</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#define INV_128         0.0078125f</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#define INV_20         0.05f</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#define INV_40         0.025f</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#define INV_80         0.0125f</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#define INV_160        0.00625f</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#define INV_320        0.003125f</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#define INV_640        0.0015625f</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#define INV_1280       0.00078125f</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#define INV_2560       0.000390625f</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#define INV_5120       0.0001953125f</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#define INV_10240      0.00009765625f</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#define INV_20480      0.000048828125f</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="preprocessor">#define INV_TWELVE                 0.0833333333f</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#define INV_440                     0.0022727273f</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#define LOG2                             0.3010299957f</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor">#define INV_LOG2                     3.321928095f</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    </div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">#define SOS_M                         343.0f</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#define TWO_TO_5                     32.0f</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">#define INV_TWO_TO_5             0.03125f</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#define TWO_TO_7                     128.f</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#define INV_TWO_TO_7             0.0078125f</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#define TWO_TO_8                     256.f</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#define INV_TWO_TO_8             0.00390625f</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">#define TWO_TO_9                     512.f</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#define INV_TWO_TO_9             0.001953125f</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#define TWO_TO_10                 1024.f</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#define INV_TWO_TO_10         0.0009765625f</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#define TWO_TO_11                 2048.f</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor">#define INV_TWO_TO_11         0.00048828125f</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#define TWO_TO_12                 4096.f</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#define INV_TWO_TO_12         0.00024414062f</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor">#define TWO_TO_15                 32768.f</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor">#define TWO_TO_16                 65536.f</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">#define INV_TWO_TO_15         0.00003051757f</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor">#define INV_TWO_TO_16         0.00001525878f</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#define TWO_TO_16_MINUS_ONE 65535.0f</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="preprocessor">#define TWO_TO_23        8388608.0f</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="preprocessor">#define INV_TWO_TO_23    0.00000011920929f</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="preprocessor">#define TWO_TO_31        2147483648.0f</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="preprocessor">#define INV_TWO_TO_31    0.000000000465661f</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="preprocessor">#define TWO_TO_32        4294967296.0f</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#define INV_TWO_TO_32    0.000000000232831f</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="preprocessor">#define ONE_OVER_SQRT2  0.707106781186548f</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160; </div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="preprocessor">#define LOGTEN 2.302585092994</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keywordtype">float</span> log2f_approx(<span class="keywordtype">float</span> X);</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="keywordtype">float</span> log2f_approx2(<span class="keywordtype">float</span> x);</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="comment">// Jones shaper</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordtype">float</span> LEAF_shaper     (<span class="keywordtype">float</span> input, <span class="keywordtype">float</span> m_drive);</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="keywordtype">float</span> LEAF_reedTable  (<span class="keywordtype">float</span> input, <span class="keywordtype">float</span> offset, <span class="keywordtype">float</span> slope);</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keywordtype">float</span> LEAF_reduct (<span class="keywordtype">float</span> input, <span class="keywordtype">float</span> ratio);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="keywordtype">float</span> LEAF_round (<span class="keywordtype">float</span> input, <span class="keywordtype">float</span> rnd);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordtype">float</span> LEAF_bitwise_xor(<span class="keywordtype">float</span> input, uint32_t op);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordtype">float</span> LEAF_reduct (<span class="keywordtype">float</span> input, <span class="keywordtype">float</span> ratio);</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="keywordtype">float</span> LEAF_round (<span class="keywordtype">float</span> input, <span class="keywordtype">float</span> rnd);</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordtype">float</span> LEAF_bitwise_xor(<span class="keywordtype">float</span> input, uint32_t op);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keywordtype">float</span>       LEAF_clip               (<span class="keywordtype">float</span> min, <span class="keywordtype">float</span> val, <span class="keywordtype">float</span> max);</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keywordtype">int</span>         LEAF_clipInt            (<span class="keywordtype">int</span> min, <span class="keywordtype">int</span> val, <span class="keywordtype">int</span> max);</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="keywordtype">float</span>       LEAF_softClip           (<span class="keywordtype">float</span> val, <span class="keywordtype">float</span> thresh);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keywordtype">int</span>         LEAF_isPrime            (uint64_t number );</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    </div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keywordtype">float</span>       LEAF_midiToFrequency    (<span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="keywordtype">float</span>       LEAF_frequencyToMidi(<span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keywordtype">void</span>        LEAF_generate_sine     (<span class="keywordtype">float</span>* buffer, <span class="keywordtype">int</span> size);</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="keywordtype">void</span>        LEAF_generate_sawtooth (<span class="keywordtype">float</span>* buffer, <span class="keywordtype">float</span> basefreq, <span class="keywordtype">int</span> size, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keywordtype">void</span>        LEAF_generate_triangle (<span class="keywordtype">float</span>* buffer, <span class="keywordtype">float</span> basefreq, <span class="keywordtype">int</span> size, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keywordtype">void</span>        LEAF_generate_square   (<span class="keywordtype">float</span>* buffer, <span class="keywordtype">float</span> basefreq, <span class="keywordtype">int</span> size, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    </div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="comment">// dope af</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordtype">float</span>       LEAF_chebyshevT(<span class="keywordtype">float</span> in, <span class="keywordtype">int</span> n);</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="keywordtype">float</span>       LEAF_CompoundChebyshevT(<span class="keywordtype">float</span> in, <span class="keywordtype">int</span> n, <span class="keywordtype">float</span>* amps);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    </div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="comment">// Hermite interpolation</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordtype">float</span> LEAF_interpolate_hermite (<span class="keywordtype">float</span> A, <span class="keywordtype">float</span> B, <span class="keywordtype">float</span> C, <span class="keywordtype">float</span> D, <span class="keywordtype">float</span> t);</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordtype">float</span> LEAF_interpolate_hermite_x(<span class="keywordtype">float</span> yy0, <span class="keywordtype">float</span> yy1, <span class="keywordtype">float</span> yy2, <span class="keywordtype">float</span> yy3, <span class="keywordtype">float</span> xx);</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="keywordtype">float</span> LEAF_interpolation_linear (<span class="keywordtype">float</span> A, <span class="keywordtype">float</span> B, <span class="keywordtype">float</span> t);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    </div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="keywordtype">float</span> interpolate3max(<span class="keywordtype">float</span> *buf, <span class="keyword">const</span> <span class="keywordtype">int</span> peakindex);</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="keywordtype">float</span> interpolate3phase(<span class="keywordtype">float</span> *buf, <span class="keyword">const</span> <span class="keywordtype">int</span> peakindex);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    </div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keywordtype">float</span> fastcosf(<span class="keywordtype">float</span> fAngle);</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160; </div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordtype">float</span> fastercosf(<span class="keywordtype">float</span> fAngle);</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="keywordtype">float</span> fasttanf (<span class="keywordtype">float</span> fAngle);</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160; </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <span class="keywordtype">float</span> fastertanf(<span class="keywordtype">float</span> fAngle);</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160; </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="comment">// alternative implementation for abs()</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="comment">// REQUIRES: 32 bit integers</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keywordtype">int</span> fastabs_int(<span class="keywordtype">int</span> in);</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    </div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="comment">// alternative implementation for abs()</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="comment">// REQUIRES: 32 bit floats</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="keywordtype">float</span> fastabsf(<span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    </div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="keywordtype">float</span> fastexp2f(<span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="keywordtype">float</span> fastPowf(<span class="keywordtype">float</span> a, <span class="keywordtype">float</span> b) ;</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="keywordtype">double</span> fastPow(<span class="keywordtype">double</span> a, <span class="keywordtype">double</span> b);</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160; </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keywordtype">void</span> LEAF_crossfade(<span class="keywordtype">float</span> fade, <span class="keywordtype">float</span>* volumes);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <span class="keywordtype">float</span> LEAF_tanh(<span class="keywordtype">float</span> x);</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keywordtype">float</span> LEAF_tanhNoClip(<span class="keywordtype">float</span> x);</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordtype">float</span> fast_tanh(<span class="keywordtype">float</span> x);</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    <span class="keywordtype">float</span> fast_tanh2(<span class="keywordtype">float</span> x);</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    <span class="keywordtype">float</span> fast_tanh3(<span class="keywordtype">float</span> x);</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="keywordtype">float</span> fast_tanh4(<span class="keywordtype">float</span> x);</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160; </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="comment">//0.001 base gives a good curve that goes from 1 to near zero</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    <span class="comment">//1000 gives a good curve from -1.0 to 0.0</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <span class="keywordtype">void</span> LEAF_generate_exp(<span class="keywordtype">float</span>* buffer, <span class="keywordtype">float</span> base, <span class="keywordtype">float</span> start, <span class="keywordtype">float</span> end, <span class="keywordtype">float</span> offset, <span class="keywordtype">int</span> size);</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160; </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160; </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="keywordtype">void</span> LEAF_generate_atodb(<span class="keywordtype">float</span>* buffer, <span class="keywordtype">int</span> size);</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <span class="keywordtype">void</span> LEAF_generate_atodbPositiveClipped(<span class="keywordtype">float</span>* buffer, <span class="keywordtype">float</span> lowerThreshold, <span class="keywordtype">float</span> range, <span class="keywordtype">int</span> size);</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160; </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    </div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="keywordtype">float</span> LEAF_poly_blep(<span class="keywordtype">float</span> t, <span class="keywordtype">float</span> dt);</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <span class="keywordtype">float</span> LEAF_midiToFrequency(<span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160; </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160; </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    <span class="keywordtype">float</span> fast_mtof(<span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160; </div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <span class="keywordtype">double</span> fastexp(<span class="keywordtype">double</span> x);</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160; </div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="keywordtype">float</span> fastexpf(<span class="keywordtype">float</span> x);</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160; </div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <span class="keywordtype">double</span> fasterexp(<span class="keywordtype">double</span> x);</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160; </div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <span class="keywordtype">float</span> fasterexpf(<span class="keywordtype">float</span> x);</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="keywordtype">float</span> fastsqrtf(<span class="keywordtype">float</span> x);</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160; </div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <span class="keywordtype">float</span> mtof(<span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    </div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="keywordtype">float</span> fast_mtof(<span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160; </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <span class="keywordtype">float</span> faster_mtof(<span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160; </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <span class="keywordtype">float</span> ftom(<span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="keywordtype">float</span> powtodb(<span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="keywordtype">float</span> rmstodb(<span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keywordtype">float</span> dbtopow(<span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    </div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="keywordtype">float</span> dbtorms(<span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    </div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    <span class="keywordtype">float</span> atodb(<span class="keywordtype">float</span> a);</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160; </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    <span class="keywordtype">float</span> dbtoa(<span class="keywordtype">float</span> db);</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160; </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="keywordtype">float</span> fastdbtoa(<span class="keywordtype">float</span> db);</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160; </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="keywordtype">float</span> fasterdbtoa(<span class="keywordtype">float</span> db);</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160; </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <span class="keywordtype">float</span> maximum (<span class="keywordtype">float</span> num1, <span class="keywordtype">float</span> num2);</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160; </div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <span class="keywordtype">float</span> minimum (<span class="keywordtype">float</span> num1, <span class="keywordtype">float</span> num2);</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    </div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    <span class="comment">// built in compiler popcount functions should be faster but we want this to be portable</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="comment">// could try to add some define that call the correct function depending on compiler</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <span class="comment">// or let the user pointer popcount() to whatever they want</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <span class="comment">// something to look into...</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <span class="keywordtype">int</span> popcount(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x);</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <span class="keywordtype">float</span> median3f(<span class="keywordtype">float</span> a, <span class="keywordtype">float</span> b, <span class="keywordtype">float</span> c);</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160; </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    <span class="keywordtype">void</span> place_step_dd(<span class="keywordtype">float</span> *buffer, <span class="keywordtype">int</span> index, <span class="keywordtype">float</span> phase, <span class="keywordtype">float</span> w, <span class="keywordtype">float</span> scale);</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160; </div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <span class="keywordtype">void</span> place_slope_dd(<span class="keywordtype">float</span> *buffer, <span class="keywordtype">int</span> index, <span class="keywordtype">float</span> phase, <span class="keywordtype">float</span> w, <span class="keywordtype">float</span> slope_delta);</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160; </div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    </div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;}</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160; </div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="preprocessor">#endif  // LEAF_MATH_H_INCLUDED</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160; </div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-mempool_8h_source.html
@@ -1,0 +1,248 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-mempool.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-mempool.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*==============================================================================</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> In short, mpool is distributed under so called &quot;BSD license&quot;,</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> Copyright (c) 2009-2010 Tatsuhiko Kubo &lt;cubicdaiya@gmail.com&gt;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> All rights reserved.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> Redistribution and use in source and binary forms, with or without modification,</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> are permitted provided that the following conditions are met:</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * Redistributions of source code must retain the above copyright notice,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * Redistributions in binary form must reproduce the above copyright notice,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> this list of conditions and the following disclaimer in the documentation</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> and/or other materials provided with the distribution.</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * Neither the name of the authors nor the names of its contributors</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> may be used to endorse or promote products derived from this software</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> without specific prior written permission.</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment"> written by C99 style</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment"> ==============================================================================*/</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#ifndef LEAF_MPOOL_H_INCLUDED</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define LEAF_MPOOL_H_INCLUDED</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    </div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    </div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#define MPOOL_ALIGN_SIZE (8)</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_l_e_a_f.html">LEAF</a> <a class="code" href="struct_l_e_a_f.html">LEAF</a>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    </div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">enum</span> LEAFErrorType</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    {</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        LEAFMempoolOverrun = 0,</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        LEAFMempoolFragmentation,</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        LEAFInvalidFree,</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        LEAFErrorNil</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    } LEAFErrorType;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <span class="comment">// node of free list</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>mpool_node_t {</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <span class="keywordtype">char</span>                *pool;     <span class="comment">// memory pool field</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        <span class="keyword">struct </span>mpool_node_t *next;     <span class="comment">// next node pointer</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        <span class="keyword">struct </span>mpool_node_t *prev;     <span class="comment">// prev node pointer</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        <span class="keywordtype">size_t</span> size;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    } mpool_node_t;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tMempool _tMempool;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="keyword">typedef</span> _tMempool* tMempool;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keyword">struct </span>_tMempool</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    {</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        tMempool      mempool;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <a class="code" href="struct_l_e_a_f.html">LEAF</a>*         leaf;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <span class="keywordtype">char</span>*         mpool;       <span class="comment">// start of the mpool</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        <span class="keywordtype">size_t</span>        usize;       <span class="comment">// used size of the pool</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <span class="keywordtype">size_t</span>        msize;       <span class="comment">// max size of the pool</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        mpool_node_t* head;        <span class="comment">// first node of memory pool free list</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    };</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tmempool.html#ga7d57d178dbc5f510e139a303ff82f950">tMempool_init</a>           (tMempool* <span class="keyword">const</span> pool, <span class="keywordtype">char</span>* memory, <span class="keywordtype">size_t</span> size, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    </div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    </div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160; </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tmempool.html#ga374f00b950bef471dce439c54de88c6b">tMempool_free</a>           (tMempool* <span class="keyword">const</span> pool);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tmempool.html#ga74e9d1987d7e4f680dfc091c96ffbcce">tMempool_initToPool</a>     (tMempool* <span class="keyword">const</span> mp, <span class="keywordtype">char</span>* memory, <span class="keywordtype">size_t</span> size, tMempool* <span class="keyword">const</span> mem);</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="comment">//    typedef struct mpool_t {</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="comment">//        char*         mpool;       // start of the mpool</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="comment">//        size_t        usize;       // used size of the pool</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="comment">//        size_t        msize;       // max size of the pool</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="comment">//        mpool_node_t* head;        // first node of memory pool free list</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="comment">//    } mpool_t;</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    </div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordtype">void</span> mpool_create (<span class="keywordtype">char</span>* memory, <span class="keywordtype">size_t</span> size, _tMempool* pool);</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordtype">char</span>* mpool_alloc(<span class="keywordtype">size_t</span> size, _tMempool* pool);</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="keywordtype">char</span>* mpool_calloc(<span class="keywordtype">size_t</span> asize, _tMempool* pool);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    </div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="keywordtype">void</span> mpool_free(<span class="keywordtype">char</span>* ptr, _tMempool* pool);</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="keywordtype">size_t</span> mpool_get_size(_tMempool* pool);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="keywordtype">size_t</span> mpool_get_used(_tMempool* pool);</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    </div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    <span class="keywordtype">void</span> leaf_pool_init(<a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf, <span class="keywordtype">char</span>* memory, <span class="keywordtype">size_t</span> size);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="keywordtype">char</span>* leaf_alloc(<a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf, <span class="keywordtype">size_t</span> size);</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="keywordtype">char</span>* leaf_calloc(<a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf, <span class="keywordtype">size_t</span> size);</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    </div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <span class="keywordtype">void</span> leaf_free(<a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf, <span class="keywordtype">char</span>* ptr);</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    </div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="keywordtype">size_t</span> leaf_pool_get_size(<a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="keywordtype">size_t</span> leaf_pool_get_used(<a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="keywordtype">char</span>* leaf_pool_get_pool(<a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    </div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;}</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160; </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="preprocessor">#endif // LEAF_MPOOL_H</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; </div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160; </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="agroup__tmempool_html_ga74e9d1987d7e4f680dfc091c96ffbcce"><div class="ttname"><a href="group__tmempool.html#ga74e9d1987d7e4f680dfc091c96ffbcce">tMempool_initToPool</a></div><div class="ttdeci">void tMempool_initToPool(tMempool *const mp, char *memory, size_t size, tMempool *const mem)</div><div class="ttdoc">Initialize a tMempool for a given memory location and size to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-mempool.c:422</div></div>
+<div class="ttc" id="agroup__tmempool_html_ga7d57d178dbc5f510e139a303ff82f950"><div class="ttname"><a href="group__tmempool.html#ga7d57d178dbc5f510e139a303ff82f950">tMempool_init</a></div><div class="ttdeci">void tMempool_init(tMempool *const pool, char *memory, size_t size, LEAF *const leaf)</div><div class="ttdoc">Initialize a tMempool for a given memory location and size to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-mempool.c:410</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<div class="ttc" id="agroup__tmempool_html_ga374f00b950bef471dce439c54de88c6b"><div class="ttname"><a href="group__tmempool.html#ga374f00b950bef471dce439c54de88c6b">tMempool_free</a></div><div class="ttdeci">void tMempool_free(tMempool *const pool)</div><div class="ttdoc">Free a tMempool from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-mempool.c:415</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-midi_8h_source.html
@@ -1,0 +1,322 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-midi.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-midi.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*==============================================================================</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> leaf-midi.h</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> Created: 30 Nov 2018 11:29:26am</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> Author:  airship</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> ==============================================================================*/</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#ifndef LEAF_MIDI_H_INCLUDED</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define LEAF_MIDI_H_INCLUDED</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;leaf-global.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;leaf-envelopes.h&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="preprocessor">#define STACK_SIZE 128</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tStack</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    {</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        </div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <span class="keywordtype">int</span> data[STACK_SIZE];</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        uint16_t pos;</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        uint16_t size;</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        uint16_t capacity;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="keywordtype">int</span> ordered;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    } _tStack;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keyword">typedef</span> _tStack* tStack;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    </div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tstack.html#ga0f59d25b2a62af281cb7e5a6337a662a">tStack_init</a>                 (tStack* <span class="keyword">const</span> stack, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tstack.html#gac6a330c5c8f6fc6138b22c157e527c81">tStack_initToPool</a>           (tStack* <span class="keyword">const</span> stack, tMempool* <span class="keyword">const</span> pool);</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tstack.html#gabf348064227f55c30cd2bcac3d899881">tStack_free</a>                 (tStack* <span class="keyword">const</span> stack);</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    </div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tstack.html#ga3b5483c9a7cd996e3c62ea9f0895437c">tStack_setCapacity</a>          (tStack* <span class="keyword">const</span> stack, uint16_t cap);</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tstack.html#ga909528e236aa47978e91227961841ab5">tStack_addIfNotAlreadyThere</a> (tStack* <span class="keyword">const</span> stack, uint16_t item);</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tstack.html#gabd861307ff5e290b4ae8e45507b9903b">tStack_add</a>                  (tStack* <span class="keyword">const</span> stack, uint16_t item);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tstack.html#ga559464a399b9606909f9f57e190ead7b">tStack_remove</a>               (tStack* <span class="keyword">const</span> stack, uint16_t item);</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tstack.html#ga3d053d583ed2c643a1a4ea00818d4f8a">tStack_clear</a>                (tStack* <span class="keyword">const</span> stack);</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tstack.html#ga1684ca55f7c9d42e2994eed03b329700">tStack_first</a>                (tStack* <span class="keyword">const</span> stack);</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tstack.html#ga995a3cb4b43476c387f4fd431af923ef">tStack_getSize</a>              (tStack* <span class="keyword">const</span> stack);</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tstack.html#ga8ca0bdad1bce63d0da4cfa6e233ece98">tStack_contains</a>             (tStack* <span class="keyword">const</span> stack, uint16_t item);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tstack.html#ga6e0aef2c8bc0f9432b7a2a6541f21550">tStack_next</a>                 (tStack* <span class="keyword">const</span> stack);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tstack.html#ga15d80c513c339ff2c87fb96fcfca9353">tStack_get</a>                  (tStack* <span class="keyword">const</span> stack, <span class="keywordtype">int</span> index);</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    </div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tPoly</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    {</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        </div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        </div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        tStack stack;</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        tStack orderStack;</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        tRamp* ramps;</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        <span class="keywordtype">float</span>* rampVals;</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        <span class="keywordtype">int</span>* firstReceived;</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        <span class="keywordtype">float</span> glideTime;</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <span class="keywordtype">int</span> pitchGlideIsActive;</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        </div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        <span class="keywordtype">int</span> numVoices;</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        <span class="keywordtype">int</span> maxNumVoices;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        </div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <span class="comment">//int voices[POLY_NUM_MAX_VOICES][2];</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        <span class="keywordtype">int</span>** voices;</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        </div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        <span class="keywordtype">int</span> notes[128][2];</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        </div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        <span class="keywordtype">int</span> CCs[128];</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        </div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        uint8_t CCsRaw[128];</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        </div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <span class="keywordtype">int</span> lastVoiceToChange;</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;        </div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        <span class="keywordtype">float</span> pitchBend;</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        tRamp pitchBendRamp;</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        <span class="keywordtype">int</span> currentNote;</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        <span class="keywordtype">int</span> currentVoice;</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        <span class="keywordtype">int</span> currentVelocity;</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        <span class="keywordtype">int</span> maxLength;</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    } _tPoly;</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    </div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    <span class="keyword">typedef</span> _tPoly* tPoly;</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    </div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpoly.html#gaf530a73c1d8d8d3e20403c9f33c0ab2e">tPoly_init</a>                  (tPoly* <span class="keyword">const</span> poly, <span class="keywordtype">int</span> maxNumVoices, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpoly.html#ga9a3b088e0d32366b6d5f675794becf15">tPoly_initToPool</a>            (tPoly* <span class="keyword">const</span> poly, <span class="keywordtype">int</span> maxNumVoices, tMempool* <span class="keyword">const</span> pool);</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpoly.html#ga03c02b27b16f700b55d8536256d310b5">tPoly_free</a>                  (tPoly* <span class="keyword">const</span> poly);</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    </div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tpoly.html#ga0a52befe767ed6ea96b26d53952a37ea">tPoly_noteOn</a>                (tPoly* <span class="keyword">const</span> poly, <span class="keywordtype">int</span> note, uint8_t vel);</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tpoly.html#gaad8376b6c55995e763ce26d084d23a67">tPoly_noteOff</a>               (tPoly* <span class="keyword">const</span> poly, uint8_t note);</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpoly.html#ga5abdfc6cd4b26b74647cb23a822b0f38">tPoly_orderedAddToStack</a>     (tPoly* <span class="keyword">const</span> poly, uint8_t note);</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpoly.html#gaf3aae31d4b20eb71be39351989bc06d1">tPoly_setNumVoices</a>          (tPoly* <span class="keyword">const</span> poly, uint8_t numVoices);</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpoly.html#ga9ddfc026e440e208064ce48d655ee317">tPoly_setPitchGlideActive</a>   (tPoly* <span class="keyword">const</span> poly, <span class="keywordtype">int</span> isActive);</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpoly.html#ga12e5fba9072b6e7d91d50a2e3c82bc87">tPoly_setPitchGlideTime</a>     (tPoly* <span class="keyword">const</span> poly, <span class="keywordtype">float</span> t);</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpoly.html#ga8608941b79fe9ba1b8e92b5a8046a915">tPoly_setPitchBend</a>          (tPoly* <span class="keyword">const</span> poly, <span class="keywordtype">float</span> pitchBend);</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpoly.html#ga8dad5daee7f10d0bb59e96ad55ec0402">tPoly_setBendGlideTime</a>      (tPoly* <span class="keyword">const</span> poly, <span class="keywordtype">float</span> t);</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpoly.html#ga1f6a93b108ac8654eaa860575d2f1cd5">tPoly_setBendSamplesPerTick</a> (tPoly* <span class="keyword">const</span> poly, <span class="keywordtype">float</span> t);</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpoly.html#gaf30b4a4aabd43c297d49258acf8e0cb3">tPoly_tickPitch</a>             (tPoly* <span class="keyword">const</span> poly);</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpoly.html#ga4391da808d7e621ac86944f745a2f729">tPoly_tickPitchGlide</a>        (tPoly* <span class="keyword">const</span> poly);</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpoly.html#gaf1bfa43e0337d0e090d3aa5b074b7825">tPoly_tickPitchBend</a>         (tPoly* <span class="keyword">const</span> poly);</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tpoly.html#gad85e4d10bb7e8fa66797ad632186459b">tPoly_getNumVoices</a>          (tPoly* <span class="keyword">const</span> poly);</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tpoly.html#ga45962abd5bf3321cedfdb64ab05fd0d7">tPoly_getNumActiveVoices</a>    (tPoly* <span class="keyword">const</span> poly);</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tpoly.html#ga39f47e13c92644d07852a7794fe896c4">tPoly_getPitch</a>              (tPoly* <span class="keyword">const</span> poly, uint8_t voice);</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tpoly.html#gaec4318990ce680cc96df942fd9bd5473">tPoly_getKey</a>                (tPoly* <span class="keyword">const</span> poly, uint8_t voice);</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tpoly.html#ga1f946c78feaa7db4f443bd105e4c7310">tPoly_getVelocity</a>           (tPoly* <span class="keyword">const</span> poly, uint8_t voice);</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tpoly.html#ga328c5f9e8f8fb7f521298676ab6c5944">tPoly_isOn</a>                  (tPoly* <span class="keyword">const</span> poly, uint8_t voice);</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160; </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160; </div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tSimplePoly</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    {</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;        </div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;        tStack stack;</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160; </div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        <span class="keywordtype">int</span> numVoices;</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        <span class="keywordtype">int</span> maxNumVoices;</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        <span class="keywordtype">int</span>** voices;</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        <span class="keywordtype">int</span> stealing_on;</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;        <span class="keywordtype">int</span> recover_stolen;</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160; </div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;        <span class="keywordtype">int</span> notes[128][2];</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    } _tSimplePoly;</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160; </div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    <span class="keyword">typedef</span> _tSimplePoly* tSimplePoly;</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160; </div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimplepoly.html#gaad03d289d4860fd6fc570e359da13f15">tSimplePoly_init</a>                  (tSimplePoly* <span class="keyword">const</span> poly, <span class="keywordtype">int</span> maxNumVoices, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimplepoly.html#ga67391919fd2cf8b80b80b9a74f0a2f02">tSimplePoly_initToPool</a>            (tSimplePoly* <span class="keyword">const</span> poly, <span class="keywordtype">int</span> maxNumVoices, tMempool* <span class="keyword">const</span> pool);</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimplepoly.html#gae112285fcb27b1b6822b5db474b892d7">tSimplePoly_free</a>                  (tSimplePoly* <span class="keyword">const</span> poly);</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    </div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tsimplepoly.html#ga704023c95d0eef34c4746a4489626bd9">tSimplePoly_noteOn</a>                (tSimplePoly* <span class="keyword">const</span> poly, <span class="keywordtype">int</span> note, uint8_t vel);</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tsimplepoly.html#ga12fc7c78f1e2fcd0016a438374eb4ec3">tSimplePoly_noteOff</a>               (tSimplePoly* <span class="keyword">const</span> poly, uint8_t note);</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimplepoly.html#ga6d801960d20e16f81eff12b420a904c8">tSimplePoly_deactivateVoice</a>         (tSimplePoly* <span class="keyword">const</span> polyh, uint8_t voice);</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tsimplepoly.html#ga668c915adab45224835268b08c7f4c80">tSimplePoly_markPendingNoteOff</a>      (tSimplePoly* <span class="keyword">const</span> polyh, uint8_t note);</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tsimplepoly.html#ga9a78b4407716cd48468420194f39d811">tSimplePoly_findVoiceAssignedToNote</a> (tSimplePoly* <span class="keyword">const</span> polyh, uint8_t note);</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimplepoly.html#gae11bb769f332621148bfe4e9e966cc1d">tSimplePoly_setNumVoices</a>          (tSimplePoly* <span class="keyword">const</span> poly, uint8_t numVoices);</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tsimplepoly.html#ga574023fdcde9863f60a88c5171595628">tSimplePoly_getNumVoices</a>          (tSimplePoly* <span class="keyword">const</span> poly);</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tsimplepoly.html#ga7927a37f0b05301c58923ee0bd9b1376">tSimplePoly_getNumActiveVoices</a>    (tSimplePoly* <span class="keyword">const</span> poly);</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tsimplepoly.html#ga04edeaf26303e4fd57988b3144063590">tSimplePoly_getPitch</a>              (tSimplePoly* <span class="keyword">const</span> poly, uint8_t voice);</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tsimplepoly.html#gae147f59b6da64f3af94407da5a6ec3db">tSimplePoly_getPitchAndCheckActive</a>(tSimplePoly* <span class="keyword">const</span> polyh, uint8_t voice);</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tsimplepoly.html#ga85311b798b65407dcd4de68a8ed7d52d">tSimplePoly_getVelocity</a>           (tSimplePoly* <span class="keyword">const</span> poly, uint8_t voice);</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tsimplepoly.html#ga1a55f7b4f9e8926acb9f6126c8e80633">tSimplePoly_isOn</a>                  (tSimplePoly* <span class="keyword">const</span> poly, uint8_t voice);</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160; </div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    </div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;}</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160; </div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;<span class="preprocessor">#endif // LEAF_MIDI_H_INCLUDED</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160; </div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160; </div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="agroup__tstack_html_gabd861307ff5e290b4ae8e45507b9903b"><div class="ttname"><a href="group__tstack.html#gabd861307ff5e290b4ae8e45507b9903b">tStack_add</a></div><div class="ttdeci">void tStack_add(tStack *const stack, uint16_t item)</div><div class="ttdoc">Add a value to the stack.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:60</div></div>
+<div class="ttc" id="agroup__tpoly_html_ga03c02b27b16f700b55d8536256d310b5"><div class="ttname"><a href="group__tpoly.html#ga03c02b27b16f700b55d8536256d310b5">tPoly_free</a></div><div class="ttdeci">void tPoly_free(tPoly *const poly)</div><div class="ttdoc">Free a tPoly from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:311</div></div>
+<div class="ttc" id="agroup__tpoly_html_ga39f47e13c92644d07852a7794fe896c4"><div class="ttname"><a href="group__tpoly.html#ga39f47e13c92644d07852a7794fe896c4">tPoly_getPitch</a></div><div class="ttdeci">float tPoly_getPitch(tPoly *const poly, uint8_t voice)</div><div class="ttdoc">Get the current pitch of a given voice.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:584</div></div>
+<div class="ttc" id="agroup__tpoly_html_ga328c5f9e8f8fb7f521298676ab6c5944"><div class="ttname"><a href="group__tpoly.html#ga328c5f9e8f8fb7f521298676ab6c5944">tPoly_isOn</a></div><div class="ttdeci">int tPoly_isOn(tPoly *const poly, uint8_t voice)</div><div class="ttdoc">Get the current play state of a given voice.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:602</div></div>
+<div class="ttc" id="agroup__tstack_html_ga0f59d25b2a62af281cb7e5a6337a662a"><div class="ttname"><a href="group__tstack.html#ga0f59d25b2a62af281cb7e5a6337a662a">tStack_init</a></div><div class="ttdeci">void tStack_init(tStack *const stack, LEAF *const leaf)</div><div class="ttdoc">Initialize a tStack to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:23</div></div>
+<div class="ttc" id="agroup__tsimplepoly_html_ga574023fdcde9863f60a88c5171595628"><div class="ttname"><a href="group__tsimplepoly.html#ga574023fdcde9863f60a88c5171595628">tSimplePoly_getNumVoices</a></div><div class="ttdeci">int tSimplePoly_getNumVoices(tSimplePoly *const poly)</div><div class="ttdoc">Get the current number of voices available to play notes.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:864</div></div>
+<div class="ttc" id="agroup__tstack_html_ga3b5483c9a7cd996e3c62ea9f0895437c"><div class="ttname"><a href="group__tstack.html#ga3b5483c9a7cd996e3c62ea9f0895437c">tStack_setCapacity</a></div><div class="ttdeci">void tStack_setCapacity(tStack *const stack, uint16_t cap)</div><div class="ttdoc">Set the capacity of the stack.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:174</div></div>
+<div class="ttc" id="agroup__tsimplepoly_html_ga704023c95d0eef34c4746a4489626bd9"><div class="ttname"><a href="group__tsimplepoly.html#ga704023c95d0eef34c4746a4489626bd9">tSimplePoly_noteOn</a></div><div class="ttdeci">int tSimplePoly_noteOn(tSimplePoly *const poly, int note, uint8_t vel)</div><div class="ttdoc">Add a note with a given velocity to the poly handler.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:660</div></div>
+<div class="ttc" id="agroup__tpoly_html_ga9ddfc026e440e208064ce48d655ee317"><div class="ttname"><a href="group__tpoly.html#ga9ddfc026e440e208064ce48d655ee317">tPoly_setPitchGlideActive</a></div><div class="ttdeci">void tPoly_setPitchGlideActive(tPoly *const poly, int isActive)</div><div class="ttdoc">Set whether pitch glide over note changes in voices is active.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:544</div></div>
+<div class="ttc" id="agroup__tpoly_html_gaf30b4a4aabd43c297d49258acf8e0cb3"><div class="ttname"><a href="group__tpoly.html#gaf30b4a4aabd43c297d49258acf8e0cb3">tPoly_tickPitch</a></div><div class="ttdeci">void tPoly_tickPitch(tPoly *const poly)</div><div class="ttdoc">Execute all tick-rate changes in the poly handler's pitch, including glide and bend.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:332</div></div>
+<div class="ttc" id="agroup__tpoly_html_gaad8376b6c55995e763ce26d084d23a67"><div class="ttname"><a href="group__tpoly.html#gaad8376b6c55995e763ce26d084d23a67">tPoly_noteOff</a></div><div class="ttdeci">int tPoly_noteOff(tPoly *const poly, uint8_t note)</div><div class="ttdoc">Remove a note from the poly handler.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:438</div></div>
+<div class="ttc" id="agroup__tpoly_html_ga8dad5daee7f10d0bb59e96ad55ec0402"><div class="ttname"><a href="group__tpoly.html#ga8dad5daee7f10d0bb59e96ad55ec0402">tPoly_setBendGlideTime</a></div><div class="ttdeci">void tPoly_setBendGlideTime(tPoly *const poly, float t)</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:560</div></div>
+<div class="ttc" id="agroup__tstack_html_ga995a3cb4b43476c387f4fd431af923ef"><div class="ttname"><a href="group__tstack.html#ga995a3cb4b43476c387f4fd431af923ef">tStack_getSize</a></div><div class="ttdeci">int tStack_getSize(tStack *const stack)</div><div class="ttdoc">Get the current size of the stack.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:200</div></div>
+<div class="ttc" id="agroup__tpoly_html_ga9a3b088e0d32366b6d5f675794becf15"><div class="ttname"><a href="group__tpoly.html#ga9a3b088e0d32366b6d5f675794becf15">tPoly_initToPool</a></div><div class="ttdeci">void tPoly_initToPool(tPoly *const poly, int maxNumVoices, tMempool *const pool)</div><div class="ttdoc">Initialize a tPoly to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:264</div></div>
+<div class="ttc" id="agroup__tsimplepoly_html_ga1a55f7b4f9e8926acb9f6126c8e80633"><div class="ttname"><a href="group__tsimplepoly.html#ga1a55f7b4f9e8926acb9f6126c8e80633">tSimplePoly_isOn</a></div><div class="ttdeci">int tSimplePoly_isOn(tSimplePoly *const poly, uint8_t voice)</div><div class="ttdoc">Get the current play state of a given voice.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:896</div></div>
+<div class="ttc" id="agroup__tsimplepoly_html_gaad03d289d4860fd6fc570e359da13f15"><div class="ttname"><a href="group__tsimplepoly.html#gaad03d289d4860fd6fc570e359da13f15">tSimplePoly_init</a></div><div class="ttdeci">void tSimplePoly_init(tSimplePoly *const poly, int maxNumVoices, LEAF *const leaf)</div><div class="ttdoc">Initialize a tSimplePoly to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:615</div></div>
+<div class="ttc" id="agroup__tpoly_html_ga1f6a93b108ac8654eaa860575d2f1cd5"><div class="ttname"><a href="group__tpoly.html#ga1f6a93b108ac8654eaa860575d2f1cd5">tPoly_setBendSamplesPerTick</a></div><div class="ttdeci">void tPoly_setBendSamplesPerTick(tPoly *const poly, float t)</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:566</div></div>
+<div class="ttc" id="agroup__tpoly_html_ga0a52befe767ed6ea96b26d53952a37ea"><div class="ttname"><a href="group__tpoly.html#ga0a52befe767ed6ea96b26d53952a37ea">tPoly_noteOn</a></div><div class="ttdeci">int tPoly_noteOn(tPoly *const poly, int note, uint8_t vel)</div><div class="ttdoc">Add a note with a given velocity to the poly handler.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:360</div></div>
+<div class="ttc" id="agroup__tsimplepoly_html_gae147f59b6da64f3af94407da5a6ec3db"><div class="ttname"><a href="group__tsimplepoly.html#gae147f59b6da64f3af94407da5a6ec3db">tSimplePoly_getPitchAndCheckActive</a></div><div class="ttdeci">int tSimplePoly_getPitchAndCheckActive(tSimplePoly *const polyh, uint8_t voice)</div><div class="ttdoc">Returns negative one if the voice is inactive.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:884</div></div>
+<div class="ttc" id="agroup__tsimplepoly_html_ga9a78b4407716cd48468420194f39d811"><div class="ttname"><a href="group__tsimplepoly.html#ga9a78b4407716cd48468420194f39d811">tSimplePoly_findVoiceAssignedToNote</a></div><div class="ttdeci">int tSimplePoly_findVoiceAssignedToNote(tSimplePoly *const polyh, uint8_t note)</div><div class="ttdoc">Find if there is a voice with that note – useful for note offs where you want to wait to remove it fr...</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:810</div></div>
+<div class="ttc" id="agroup__tpoly_html_ga1f946c78feaa7db4f443bd105e4c7310"><div class="ttname"><a href="group__tpoly.html#ga1f946c78feaa7db4f443bd105e4c7310">tPoly_getVelocity</a></div><div class="ttdeci">int tPoly_getVelocity(tPoly *const poly, uint8_t voice)</div><div class="ttdoc">Get the current MIDI velocity of a given voice.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:596</div></div>
+<div class="ttc" id="agroup__tstack_html_gac6a330c5c8f6fc6138b22c157e527c81"><div class="ttname"><a href="group__tstack.html#gac6a330c5c8f6fc6138b22c157e527c81">tStack_initToPool</a></div><div class="ttdeci">void tStack_initToPool(tStack *const stack, tMempool *const pool)</div><div class="ttdoc">Initialize a tStack to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:28</div></div>
+<div class="ttc" id="agroup__tsimplepoly_html_ga6d801960d20e16f81eff12b420a904c8"><div class="ttname"><a href="group__tsimplepoly.html#ga6d801960d20e16f81eff12b420a904c8">tSimplePoly_deactivateVoice</a></div><div class="ttdeci">void tSimplePoly_deactivateVoice(tSimplePoly *const polyh, uint8_t voice)</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:783</div></div>
+<div class="ttc" id="agroup__tsimplepoly_html_ga12fc7c78f1e2fcd0016a438374eb4ec3"><div class="ttname"><a href="group__tsimplepoly.html#ga12fc7c78f1e2fcd0016a438374eb4ec3">tSimplePoly_noteOff</a></div><div class="ttdeci">int tSimplePoly_noteOff(tSimplePoly *const poly, uint8_t note)</div><div class="ttdoc">Remove a note from the poly handler.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:739</div></div>
+<div class="ttc" id="agroup__tsimplepoly_html_ga85311b798b65407dcd4de68a8ed7d52d"><div class="ttname"><a href="group__tsimplepoly.html#ga85311b798b65407dcd4de68a8ed7d52d">tSimplePoly_getVelocity</a></div><div class="ttdeci">int tSimplePoly_getVelocity(tSimplePoly *const poly, uint8_t voice)</div><div class="ttdoc">Get the current MIDI velocity of a given voice.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:890</div></div>
+<div class="ttc" id="agroup__tstack_html_ga559464a399b9606909f9f57e190ead7b"><div class="ttname"><a href="group__tstack.html#ga559464a399b9606909f9f57e190ead7b">tStack_remove</a></div><div class="ttdeci">int tStack_remove(tStack *const stack, uint16_t item)</div><div class="ttdoc">Remove a single instance of a value from the stack.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:138</div></div>
+<div class="ttc" id="agroup__tsimplepoly_html_ga7927a37f0b05301c58923ee0bd9b1376"><div class="ttname"><a href="group__tsimplepoly.html#ga7927a37f0b05301c58923ee0bd9b1376">tSimplePoly_getNumActiveVoices</a></div><div class="ttdeci">int tSimplePoly_getNumActiveVoices(tSimplePoly *const poly)</div><div class="ttdoc">Get the number of voices currently playing notes.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:870</div></div>
+<div class="ttc" id="agroup__tpoly_html_ga45962abd5bf3321cedfdb64ab05fd0d7"><div class="ttname"><a href="group__tpoly.html#ga45962abd5bf3321cedfdb64ab05fd0d7">tPoly_getNumActiveVoices</a></div><div class="ttdeci">int tPoly_getNumActiveVoices(tPoly *const poly)</div><div class="ttdoc">Get the number of voices currently playing notes.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:578</div></div>
+<div class="ttc" id="agroup__tpoly_html_ga12e5fba9072b6e7d91d50a2e3c82bc87"><div class="ttname"><a href="group__tpoly.html#ga12e5fba9072b6e7d91d50a2e3c82bc87">tPoly_setPitchGlideTime</a></div><div class="ttdeci">void tPoly_setPitchGlideTime(tPoly *const poly, float t)</div><div class="ttdoc">Set how long pitch glide over note changes in voices takes.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:550</div></div>
+<div class="ttc" id="agroup__tpoly_html_gaf3aae31d4b20eb71be39351989bc06d1"><div class="ttname"><a href="group__tpoly.html#gaf3aae31d4b20eb71be39351989bc06d1">tPoly_setNumVoices</a></div><div class="ttdeci">void tPoly_setNumVoices(tPoly *const poly, uint8_t numVoices)</div><div class="ttdoc">Set the number of voices available to play notes.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:538</div></div>
+<div class="ttc" id="agroup__tpoly_html_gaf1bfa43e0337d0e090d3aa5b074b7825"><div class="ttname"><a href="group__tpoly.html#gaf1bfa43e0337d0e090d3aa5b074b7825">tPoly_tickPitchBend</a></div><div class="ttdeci">void tPoly_tickPitchBend(tPoly *const poly)</div><div class="ttdoc">Execute the tick-rate change of the poly handler's pitch bend.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:347</div></div>
+<div class="ttc" id="agroup__tpoly_html_ga4391da808d7e621ac86944f745a2f729"><div class="ttname"><a href="group__tpoly.html#ga4391da808d7e621ac86944f745a2f729">tPoly_tickPitchGlide</a></div><div class="ttdeci">void tPoly_tickPitchGlide(tPoly *const poly)</div><div class="ttdoc">Execute the tick-rate change of the poly handler's pitch glide.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:338</div></div>
+<div class="ttc" id="agroup__tpoly_html_gad85e4d10bb7e8fa66797ad632186459b"><div class="ttname"><a href="group__tpoly.html#gad85e4d10bb7e8fa66797ad632186459b">tPoly_getNumVoices</a></div><div class="ttdeci">int tPoly_getNumVoices(tPoly *const poly)</div><div class="ttdoc">Get the current number of voices available to play notes.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:572</div></div>
+<div class="ttc" id="agroup__tstack_html_ga1684ca55f7c9d42e2994eed03b329700"><div class="ttname"><a href="group__tstack.html#ga1684ca55f7c9d42e2994eed03b329700">tStack_first</a></div><div class="ttdeci">int tStack_first(tStack *const stack)</div><div class="ttdoc">Get the first value in the stack.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:251</div></div>
+<div class="ttc" id="agroup__tpoly_html_ga8608941b79fe9ba1b8e92b5a8046a915"><div class="ttname"><a href="group__tpoly.html#ga8608941b79fe9ba1b8e92b5a8046a915">tPoly_setPitchBend</a></div><div class="ttdeci">void tPoly_setPitchBend(tPoly *const poly, float pitchBend)</div><div class="ttdoc">Set the amount of pitch bend.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:353</div></div>
+<div class="ttc" id="agroup__tsimplepoly_html_ga04edeaf26303e4fd57988b3144063590"><div class="ttname"><a href="group__tsimplepoly.html#ga04edeaf26303e4fd57988b3144063590">tSimplePoly_getPitch</a></div><div class="ttdeci">int tSimplePoly_getPitch(tSimplePoly *const poly, uint8_t voice)</div><div class="ttdoc">Get the current MIDI note number of a given voice.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:877</div></div>
+<div class="ttc" id="agroup__tstack_html_ga3d053d583ed2c643a1a4ea00818d4f8a"><div class="ttname"><a href="group__tstack.html#ga3d053d583ed2c643a1a4ea00818d4f8a">tStack_clear</a></div><div class="ttdeci">void tStack_clear(tStack *const stack)</div><div class="ttdoc">Clear the stack.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:207</div></div>
+<div class="ttc" id="agroup__tstack_html_ga15d80c513c339ff2c87fb96fcfca9353"><div class="ttname"><a href="group__tstack.html#ga15d80c513c339ff2c87fb96fcfca9353">tStack_get</a></div><div class="ttdeci">int tStack_get(tStack *const stack, int index)</div><div class="ttdoc">Get the value at a given index of the stack.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:245</div></div>
+<div class="ttc" id="agroup__tstack_html_ga909528e236aa47978e91227961841ab5"><div class="ttname"><a href="group__tstack.html#ga909528e236aa47978e91227961841ab5">tStack_addIfNotAlreadyThere</a></div><div class="ttdeci">int tStack_addIfNotAlreadyThere(tStack *const stack, uint16_t item)</div><div class="ttdoc">Add a value to the stack only if that value is not already in the stack.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:94</div></div>
+<div class="ttc" id="agroup__tsimplepoly_html_ga67391919fd2cf8b80b80b9a74f0a2f02"><div class="ttname"><a href="group__tsimplepoly.html#ga67391919fd2cf8b80b80b9a74f0a2f02">tSimplePoly_initToPool</a></div><div class="ttdeci">void tSimplePoly_initToPool(tSimplePoly *const poly, int maxNumVoices, tMempool *const pool)</div><div class="ttdoc">Initialize a tSimplePoly to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:620</div></div>
+<div class="ttc" id="agroup__tpoly_html_gaf530a73c1d8d8d3e20403c9f33c0ab2e"><div class="ttname"><a href="group__tpoly.html#gaf530a73c1d8d8d3e20403c9f33c0ab2e">tPoly_init</a></div><div class="ttdeci">void tPoly_init(tPoly *const poly, int maxNumVoices, LEAF *const leaf)</div><div class="ttdoc">Initialize a tPoly to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:259</div></div>
+<div class="ttc" id="agroup__tpoly_html_gaec4318990ce680cc96df942fd9bd5473"><div class="ttname"><a href="group__tpoly.html#gaec4318990ce680cc96df942fd9bd5473">tPoly_getKey</a></div><div class="ttdeci">int tPoly_getKey(tPoly *const poly, uint8_t voice)</div><div class="ttdoc">Get the current MIDI note number of a given voice.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:590</div></div>
+<div class="ttc" id="agroup__tstack_html_gabf348064227f55c30cd2bcac3d899881"><div class="ttname"><a href="group__tstack.html#gabf348064227f55c30cd2bcac3d899881">tStack_free</a></div><div class="ttdeci">void tStack_free(tStack *const stack)</div><div class="ttdoc">Free a tStack from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:42</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<div class="ttc" id="agroup__tsimplepoly_html_gae112285fcb27b1b6822b5db474b892d7"><div class="ttname"><a href="group__tsimplepoly.html#gae112285fcb27b1b6822b5db474b892d7">tSimplePoly_free</a></div><div class="ttdeci">void tSimplePoly_free(tSimplePoly *const poly)</div><div class="ttdoc">Free a tSimplePoly from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:647</div></div>
+<div class="ttc" id="agroup__tsimplepoly_html_gae11bb769f332621148bfe4e9e966cc1d"><div class="ttname"><a href="group__tsimplepoly.html#gae11bb769f332621148bfe4e9e966cc1d">tSimplePoly_setNumVoices</a></div><div class="ttdeci">void tSimplePoly_setNumVoices(tSimplePoly *const poly, uint8_t numVoices)</div><div class="ttdoc">Set the number of voices available to play notes.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:857</div></div>
+<div class="ttc" id="agroup__tsimplepoly_html_ga668c915adab45224835268b08c7f4c80"><div class="ttname"><a href="group__tsimplepoly.html#ga668c915adab45224835268b08c7f4c80">tSimplePoly_markPendingNoteOff</a></div><div class="ttdeci">int tSimplePoly_markPendingNoteOff(tSimplePoly *const polyh, uint8_t note)</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:828</div></div>
+<div class="ttc" id="agroup__tstack_html_ga6e0aef2c8bc0f9432b7a2a6541f21550"><div class="ttname"><a href="group__tstack.html#ga6e0aef2c8bc0f9432b7a2a6541f21550">tStack_next</a></div><div class="ttdeci">int tStack_next(tStack *const stack)</div><div class="ttdoc">Get the next value in the stack, starting from the earliest added values.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:220</div></div>
+<div class="ttc" id="agroup__tpoly_html_ga5abdfc6cd4b26b74647cb23a822b0f38"><div class="ttname"><a href="group__tpoly.html#ga5abdfc6cd4b26b74647cb23a822b0f38">tPoly_orderedAddToStack</a></div><div class="ttdeci">void tPoly_orderedAddToStack(tPoly *const poly, uint8_t note)</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:498</div></div>
+<div class="ttc" id="agroup__tstack_html_ga8ca0bdad1bce63d0da4cfa6e233ece98"><div class="ttname"><a href="group__tstack.html#ga8ca0bdad1bce63d0da4cfa6e233ece98">tStack_contains</a></div><div class="ttdeci">int tStack_contains(tStack *const stack, uint16_t item)</div><div class="ttdoc">Check if the stack contains a value, and if it does, get the index of that value.</div><div class="ttdef"><b>Definition:</b> leaf-midi.c:50</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-oscillators_8h_source.html
@@ -1,0 +1,670 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-oscillators.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-oscillators.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*==============================================================================</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> leaf-oscillators.h</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> Created: 20 Jan 2017 12:00:58pm</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> Author:  Michael R Mulshine</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> ==============================================================================*/</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#ifndef LEAF_OSCILLATORS_H_INCLUDED</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#define LEAF_OSCILLATORS_H_INCLUDED</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;leaf-tables.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;leaf-filters.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;leaf-distortion.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tTable</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    {</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        <span class="keywordtype">float</span>* waveTable;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        <span class="keywordtype">int</span> size;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        <span class="keywordtype">float</span> inc, freq;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <span class="keywordtype">float</span> phase;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    } _tTable;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    </div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keyword">typedef</span> _tTable* tTable;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160; </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;     <span class="keywordtype">void</span>    <a class="code" href="group__ttable.html#ga34f0802957415853e9dc64b7fa9355eb">tTable_init</a>(tTable* <span class="keyword">const</span> osc, <span class="keywordtype">float</span>* table, <span class="keywordtype">int</span> size, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;     <span class="keywordtype">void</span>    <a class="code" href="group__ttable.html#gae75a6c3468ae7801c86867860152117b">tTable_initToPool</a>(tTable* <span class="keyword">const</span> osc, <span class="keywordtype">float</span>* table, <span class="keywordtype">int</span> size, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;     <span class="keywordtype">void</span>    <a class="code" href="group__ttable.html#ga23c68eb02b6f856e4cabd793f386ef3d">tTable_free</a>(tTable* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    </div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;     <span class="keywordtype">float</span>   <a class="code" href="group__ttable.html#ga59f59db52bf98cf1852d7dcd6f09122c">tTable_tick</a>(tTable* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;     <span class="keywordtype">void</span>    <a class="code" href="group__ttable.html#ga2dcff23d9b0e98fd706d4880c766320a">tTable_setFreq</a>(tTable* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    </div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tWavetable</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    {</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        </div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        <span class="keywordtype">float</span>** tables;</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        <span class="keywordtype">int</span> size;</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        <span class="keywordtype">int</span> numTables;</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <span class="keywordtype">float</span> baseFreq, invBaseFreq;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        <span class="keywordtype">float</span> inc, freq;</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        <span class="keywordtype">float</span> phase;</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        <span class="keywordtype">int</span> oct;</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <span class="keywordtype">float</span> w;</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <span class="keywordtype">float</span> aa;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        </div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        tButterworth bl;</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    } _tWavetable;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    </div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <span class="keyword">typedef</span> _tWavetable* tWavetable;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <span class="keywordtype">void</span>    tWavetable_init(tWavetable* <span class="keyword">const</span> osc, <span class="keyword">const</span> <span class="keywordtype">float</span>* table, <span class="keywordtype">int</span> size, <span class="keywordtype">float</span> maxFreq, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="keywordtype">void</span>    tWavetable_initToPool(tWavetable* <span class="keyword">const</span> osc, <span class="keyword">const</span> <span class="keywordtype">float</span>* table, <span class="keywordtype">int</span> size, <span class="keywordtype">float</span> maxFreq, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__twavetable.html#ga54957a54c5f86392dc8b3105668425e5">tWavetable_free</a>(tWavetable* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__twavetable.html#gad22ca7b75e09dd860286215aed1711b9">tWavetable_tick</a>(tWavetable* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__twavetable.html#gaf397a73fa707667cb0038b1be42896f1">tWavetable_setFreq</a>(tWavetable* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="keywordtype">void</span>    tWavetable_setAntiAliasing(tWavetable* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> aa);</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    </div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tCompactWavetable</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    {</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        </div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        <span class="keywordtype">float</span>** tables;</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        <span class="keywordtype">int</span> numTables;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        <span class="keywordtype">int</span>* sizes;</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        <span class="keywordtype">float</span> baseFreq, invBaseFreq;</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        <span class="keywordtype">float</span> inc, freq;</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        <span class="keywordtype">float</span> phase;</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        <span class="keywordtype">int</span> oct;</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        <span class="keywordtype">float</span> w;</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        <span class="keywordtype">float</span> aa;</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        tButterworth bl;</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        </div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        <span class="keywordtype">float</span> dsBuffer[2];</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        tOversampler ds;</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    } _tCompactWavetable;</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    <span class="keyword">typedef</span> _tCompactWavetable* tCompactWavetable;</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="keywordtype">void</span>    tCompactWavetable_init(tCompactWavetable* <span class="keyword">const</span> osc, <span class="keyword">const</span> <span class="keywordtype">float</span>* table, <span class="keywordtype">int</span> size, <span class="keywordtype">float</span> maxFreq, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    <span class="keywordtype">void</span>    tCompactWavetable_initToPool(tCompactWavetable* <span class="keyword">const</span> osc, <span class="keyword">const</span> <span class="keywordtype">float</span>* table, <span class="keywordtype">int</span> size, <span class="keywordtype">float</span> maxFreq, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcompactwavetable.html#ga31c71e150c921c9c2a6b99b47ed995f5">tCompactWavetable_free</a>(tCompactWavetable* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tcompactwavetable.html#ga3057038710e1b064968f8d290e753e5f">tCompactWavetable_tick</a>(tCompactWavetable* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcompactwavetable.html#ga49955d040284b3e1a40f2288cb89c54d">tCompactWavetable_setFreq</a>(tCompactWavetable* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <span class="keywordtype">void</span>    tCompactWavetable_setAntiAliasing(tCompactWavetable* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> aa);</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    </div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    </div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tCycle</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    {</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        <span class="comment">// Underlying phasor</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        <span class="keywordtype">float</span> phase;</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        <span class="keywordtype">float</span> inc,freq;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    } _tCycle;</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    </div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    <span class="keyword">typedef</span> _tCycle* tCycle;</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    </div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcycle.html#ga3ae2b653f390bdacdfe952e22a7aa5c4">tCycle_init</a>         (tCycle* <span class="keyword">const</span> osc, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcycle.html#gacbd4afb6c3307d92e19a8e308ba7540b">tCycle_initToPool</a>   (tCycle* <span class="keyword">const</span> osc, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcycle.html#gacb267508910aefc3686366ba7f296938">tCycle_free</a>         (tCycle* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    </div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tcycle.html#ga4fd599981f6caf87720db3a9811716cf">tCycle_tick</a>         (tCycle* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcycle.html#ga7eeb58e2292483416474bf83bf313deb">tCycle_setFreq</a>      (tCycle* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    </div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tTriangle</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    {</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        </div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        <span class="comment">// Underlying phasor</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        <span class="keywordtype">float</span> phase;</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;        <span class="keywordtype">float</span> inc,freq;</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;        <span class="keywordtype">int</span> oct;</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        <span class="keywordtype">float</span> w;</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    } _tTriangle;</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    </div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    <span class="keyword">typedef</span> _tTriangle* tTriangle;</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160; </div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttriangle.html#ga50f2f0c7a69471479484560a94a11fbb">tTriangle_init</a>          (tTriangle* <span class="keyword">const</span> osc, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttriangle.html#gac50568ee121737e782e495e9afd0d523">tTriangle_initToPool</a>    (tTriangle* <span class="keyword">const</span> osc, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttriangle.html#gabb07623117c0d448839b808df2ea6f35">tTriangle_free</a>          (tTriangle* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;    </div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__ttriangle.html#ga036ec99241852ea7336a3a7e8bcd2fc7">tTriangle_tick</a>          (tTriangle* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttriangle.html#ga02f6034d5442b55d1beda63fe7918fcb">tTriangle_setFreq</a>       (tTriangle* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160; </div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    </div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tSquare</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;    {</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        </div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        <span class="comment">// Underlying phasor</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        <span class="keywordtype">float</span> phase;</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <span class="keywordtype">float</span> inc,freq;</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        <span class="keywordtype">int</span> oct;</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        <span class="keywordtype">float</span> w;</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    } _tSquare;</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;    </div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    <span class="keyword">typedef</span> _tSquare* tSquare;</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160; </div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsquare.html#gacaaa2bf1d76371d9b4aeda286a09560f">tSquare_init</a>        (tSquare* <span class="keyword">const</span> osc, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsquare.html#gad9c41ce10b6b0c821360f43743544c89">tSquare_initToPool</a>  (tSquare* <span class="keyword">const</span> osc, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsquare.html#ga1f6fac5cb92fcbca09970b95a2d05d7d">tSquare_free</a>        (tSquare* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160; </div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tsquare.html#ga00053831170c826962e4f1aa9d6696e2">tSquare_tick</a>        (tSquare* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsquare.html#ga4453bd8e23b1b88ec944c93b8cb575f6">tSquare_setFreq</a>     (tSquare* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;    </div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    </div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tSawtooth</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    {</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;        </div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;        <span class="comment">// Underlying phasor</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;        <span class="keywordtype">float</span> phase;</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        <span class="keywordtype">float</span> inc,freq;</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;        <span class="keywordtype">int</span> oct;</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;        <span class="keywordtype">float</span> w;</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    } _tSawtooth;</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;    </div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    <span class="keyword">typedef</span> _tSawtooth* tSawtooth;</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160; </div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsawtooth.html#gaa052c9d8e62a198bbaeac892b0d11a7f">tSawtooth_init</a>          (tSawtooth* <span class="keyword">const</span> osc, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsawtooth.html#ga63ee3403c200358511ffb049a3a93bf2">tSawtooth_initToPool</a>    (tSawtooth* <span class="keyword">const</span> osc, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsawtooth.html#ga32ba208b6c4745587d267598702aaf02">tSawtooth_free</a>          (tSawtooth* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160; </div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tsawtooth.html#ga55fd2d0b1572fc8a67fffc7531fced69">tSawtooth_tick</a>          (tSawtooth* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsawtooth.html#gab096cb0c5c0384b47959d0161d8432e4">tSawtooth_setFreq</a>       (tSawtooth* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    </div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    </div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tTri</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;    {</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;        </div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;        <span class="keywordtype">float</span> phase;</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;        <span class="keywordtype">float</span> inc,freq;</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        <span class="keywordtype">float</span> skew;</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;        <span class="keywordtype">float</span> lastOut;</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    } _tTri;</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    </div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    <span class="keyword">typedef</span> _tTri* tTri;</div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;    </div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttri.html#ga84143634f91977f6617ca0b7e50b649d">tTri_init</a>          (tTri* <span class="keyword">const</span> osc, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttri.html#gabad427341c15462ec3fe9f0b36f3e26c">tTri_initToPool</a>    (tTri* <span class="keyword">const</span> osc, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttri.html#ga49739309d127ae64ee2854d771b04fe2">tTri_free</a>          (tTri* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;    </div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__ttri.html#gabf569fb94b1ed5d1695e8c09f9b0f09d">tTri_tick</a>          (tTri* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttri.html#gab77b067320cc0124252fdd92d0bcdef0">tTri_setFreq</a>       (tTri* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__ttri.html#gab6740de0f9cfdfe60f03c4bcb72482f8">tTri_setSkew</a>       (tTri* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> skew);</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    </div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;    </div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tPulse</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;    {</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;        </div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;        <span class="keywordtype">float</span> phase;</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;        <span class="keywordtype">float</span> inc,freq;</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;        <span class="keywordtype">float</span> width;</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;    } _tPulse;</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    </div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;    <span class="keyword">typedef</span> _tPulse* tPulse;</div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;    </div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpulse.html#ga2a3b923294ee215553937f1446932eda">tPulse_init</a>        (tPulse* <span class="keyword">const</span> osc, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpulse.html#gace53f4a8731bcbf6f7c265ba4ec375c7">tPulse_initToPool</a>  (tPulse* <span class="keyword">const</span> osc, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpulse.html#gad2c554f90ebb55227d28dd18f42be760">tPulse_free</a>        (tPulse* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    </div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tpulse.html#ga4af3bc706a792a541d16cde22a335f7e">tPulse_tick</a>        (tPulse* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpulse.html#gaf553bb8ff573c7d503f4bcb01cfb3117">tPulse_setFreq</a>     (tPulse* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpulse.html#ga554255385caeaaefddab51c258c45b74">tPulse_setWidth</a>    (tPulse* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> width);</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;    </div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;    </div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tSaw</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;    {</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;        </div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;        <span class="keywordtype">float</span> phase;</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;        <span class="keywordtype">float</span> inc,freq;</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;    } _tSaw;</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    </div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;    <span class="keyword">typedef</span> _tSaw* tSaw;</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;    </div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsaw.html#ga47c944a22090ff9f8f810b0ec7c87523">tSaw_init</a>          (tSaw* <span class="keyword">const</span> osc, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsaw.html#ga67f8a442de376d042a98e300952f39f2">tSaw_initToPool</a>    (tSaw* <span class="keyword">const</span> osc, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsaw.html#ga8a0086ee2a90f4e62a0313de8fe485d5">tSaw_free</a>          (tSaw* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;    </div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tsaw.html#ga6aa69769acd51715899d60b0f581796d">tSaw_tick</a>          (tSaw* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsaw.html#ga665577c990c9112d70d42b859abc93dd">tSaw_setFreq</a>       (tSaw* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;    </div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;    </div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tPhasor</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;    {</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;        </div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;        <span class="keywordtype">float</span> phase;</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;        <span class="keywordtype">float</span> inc,freq;</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;        uint8_t phaseDidReset;</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;    } _tPhasor;</div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;    </div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    <span class="keyword">typedef</span> _tPhasor* tPhasor;</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;    </div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tphasor.html#gaef54a192792ded6d1e53a0839b55bb4a">tPhasor_init</a>        (tPhasor* <span class="keyword">const</span> osc, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tphasor.html#ga7b98ada7d63395e6796a9ddeb1dd69d2">tPhasor_initToPool</a>  (tPhasor* <span class="keyword">const</span> osc, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tphasor.html#gae86aae9fa656c303dc02fabacd4bf9a9">tPhasor_free</a>        (tPhasor* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;    </div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tphasor.html#ga9a1e7b8a8f9bbcb74d52b95cf0ec1d6e">tPhasor_tick</a>        (tPhasor* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tphasor.html#gab19f35f26a5de1353623ed2ecd8c92b7">tPhasor_setFreq</a>     (tPhasor* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;    </div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;    </div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;    <span class="comment">/* tNoise. WhiteNoise, PinkNoise. */</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="group__tnoise.html#ga9253d111035d4a83996ec5bbfd3d8963">  685</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="group__tnoise.html#ga9253d111035d4a83996ec5bbfd3d8963">NoiseType</a></div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;    {</div>
+<div class="line"><a name="l00687"></a><span class="lineno"><a class="line" href="group__tnoise.html#gga9253d111035d4a83996ec5bbfd3d8963a7c87739bebf0e95f4e6b8d9e5432b8f1">  687</a></span>&#160;        <a class="code" href="group__tnoise.html#gga9253d111035d4a83996ec5bbfd3d8963a7c87739bebf0e95f4e6b8d9e5432b8f1">WhiteNoise</a>, </div>
+<div class="line"><a name="l00688"></a><span class="lineno"><a class="line" href="group__tnoise.html#gga9253d111035d4a83996ec5bbfd3d8963a0793318314019dbf241d6de4e8fcf310">  688</a></span>&#160;        <a class="code" href="group__tnoise.html#gga9253d111035d4a83996ec5bbfd3d8963a0793318314019dbf241d6de4e8fcf310">PinkNoise</a>, </div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;        NoiseTypeNil,</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;    };</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;    </div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group__tnoise.html#ga9253d111035d4a83996ec5bbfd3d8963">NoiseType</a> <a class="code" href="group__tnoise.html#ga9253d111035d4a83996ec5bbfd3d8963">NoiseType</a>;</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    </div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tNoise</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;    {</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;        </div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;        <a class="code" href="group__tnoise.html#ga9253d111035d4a83996ec5bbfd3d8963">NoiseType</a> type;</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;        <span class="keywordtype">float</span> pinkb0, pinkb1, pinkb2;</div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;        float(*rand)(void);</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;    } _tNoise;</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;    </div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;    <span class="keyword">typedef</span> _tNoise* tNoise;</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160; </div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tnoise.html#ga4e30b8b212200e17e73b0fb96293c386">tNoise_init</a>         (tNoise* <span class="keyword">const</span> noise, <a class="code" href="group__tnoise.html#ga9253d111035d4a83996ec5bbfd3d8963">NoiseType</a> type, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tnoise.html#ga6eec0a5fbc79f448a89258d9b956dfa4">tNoise_initToPool</a>   (tNoise* <span class="keyword">const</span> noise, <a class="code" href="group__tnoise.html#ga9253d111035d4a83996ec5bbfd3d8963">NoiseType</a> type, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tnoise.html#gab51a77f9ab3888d706ed0fb30cdf217d">tNoise_free</a>         (tNoise* <span class="keyword">const</span> noise);</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;    </div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tnoise.html#ga867c2ace286c8fdd886f7f9357821330">tNoise_tick</a>         (tNoise* <span class="keyword">const</span> noise);</div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;    </div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;    </div>
+<div class="line"><a name="l00796"></a><span class="lineno"><a class="line" href="group__tneuron.html#ga39c8ad8b35bf050f69b21ca34b56cc01">  796</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="group__tneuron.html#ga39c8ad8b35bf050f69b21ca34b56cc01">NeuronMode</a></div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;    {</div>
+<div class="line"><a name="l00798"></a><span class="lineno"><a class="line" href="group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01acedc049c7a14e2b30b266d88d46b3f76">  798</a></span>&#160;        <a class="code" href="group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01acedc049c7a14e2b30b266d88d46b3f76">NeuronNormal</a>, </div>
+<div class="line"><a name="l00799"></a><span class="lineno"><a class="line" href="group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01a0f637d7316b91b66dfea6ef832b1d178">  799</a></span>&#160;        <a class="code" href="group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01a0f637d7316b91b66dfea6ef832b1d178">NeuronTanh</a>, </div>
+<div class="line"><a name="l00800"></a><span class="lineno"><a class="line" href="group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01acdbcb725e463ccad89f2384b1254ab0c">  800</a></span>&#160;        <a class="code" href="group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01acdbcb725e463ccad89f2384b1254ab0c">NeuronAaltoShaper</a>, </div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;        NeuronModeNil</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;    };</div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;    </div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group__tneuron.html#ga39c8ad8b35bf050f69b21ca34b56cc01">NeuronMode</a> <a class="code" href="group__tneuron.html#ga39c8ad8b35bf050f69b21ca34b56cc01">NeuronMode</a>;</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;    </div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tNeuron</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    {</div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;        </div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;        tPoleZero f;</div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;        </div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;        <a class="code" href="group__tneuron.html#ga39c8ad8b35bf050f69b21ca34b56cc01">NeuronMode</a> mode;</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;        </div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;        <span class="keywordtype">float</span> voltage, current;</div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;        <span class="keywordtype">float</span> timeStep;</div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;        </div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;        <span class="keywordtype">float</span> alpha[3];</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;        <span class="keywordtype">float</span> beta[3];</div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;        <span class="keywordtype">float</span> rate[3];</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;        <span class="keywordtype">float</span> V[3];</div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;        <span class="keywordtype">float</span> P[3];</div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;        <span class="keywordtype">float</span> gK, gN, gL, C;</div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;    } _tNeuron;</div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;    </div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;    <span class="keyword">typedef</span> _tNeuron* tNeuron;</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;    </div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tneuron.html#gaaf7fb0a50cde5d02085bae982f355d98">tNeuron_init</a>        (tNeuron* <span class="keyword">const</span> neuron, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tneuron.html#ga64ec0be41011ffc7fdea5c03359a032c">tNeuron_initToPool</a>  (tNeuron* <span class="keyword">const</span> neuron, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tneuron.html#ga8e7767ba34797b6e41cd47fee21a674b">tNeuron_free</a>        (tNeuron* <span class="keyword">const</span> neuron);</div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;    </div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tneuron.html#ga3e37f3a7de15a04e697f52cb72a5b094">tNeuron_reset</a>       (tNeuron* <span class="keyword">const</span> neuron);</div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tneuron.html#gacbbb031eee9c36e21e24e54b43290bc0">tNeuron_tick</a>        (tNeuron* <span class="keyword">const</span> neuron);</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tneuron.html#gad69adcd45e4dabc947fabbc9baf7d849">tNeuron_setMode</a>     (tNeuron* <span class="keyword">const</span> neuron, <a class="code" href="group__tneuron.html#ga39c8ad8b35bf050f69b21ca34b56cc01">NeuronMode</a> mode);</div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tneuron.html#gad683dcc57adbc4e94baedae51005f5a9">tNeuron_setCurrent</a>  (tNeuron* <span class="keyword">const</span> neuron, <span class="keywordtype">float</span> current);</div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tneuron.html#ga933040791b44ff8d7ada7aa825c48935">tNeuron_setK</a>        (tNeuron* <span class="keyword">const</span> neuron, <span class="keywordtype">float</span> K);</div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tneuron.html#ga0813977adaef8fa375c5b0f5e59908b6">tNeuron_setL</a>        (tNeuron* <span class="keyword">const</span> neuron, <span class="keywordtype">float</span> L);</div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tneuron.html#ga1969098711805e2b8a68bc115bb113d5">tNeuron_setN</a>        (tNeuron* <span class="keyword">const</span> neuron, <span class="keywordtype">float</span> N);</div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tneuron.html#gad67b6b0f22c03de1995e07bbf422c111">tNeuron_setC</a>        (tNeuron* <span class="keyword">const</span> neuron, <span class="keywordtype">float</span> C);</div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tneuron.html#ga0f4241ab21570d8accef6cdb468f24c1">tNeuron_setV1</a>       (tNeuron* <span class="keyword">const</span> neuron, <span class="keywordtype">float</span> V1);</div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tneuron.html#ga7bc12acf05b0763e80945808cf76102d">tNeuron_setV2</a>       (tNeuron* <span class="keyword">const</span> neuron, <span class="keywordtype">float</span> V2);</div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tneuron.html#ga49e7f07a28b9e12d1fd9ed9dda6fd88d">tNeuron_setV3</a>       (tNeuron* <span class="keyword">const</span> neuron, <span class="keywordtype">float</span> V3);</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tneuron.html#ga92c05fe0216beaf2a430bf45898c46d5">tNeuron_setTimeStep</a> (tNeuron* <span class="keyword">const</span> neuron, <span class="keywordtype">float</span> timestep);</div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;    </div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160; </div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;    </div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;    </div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;    </div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;<span class="preprocessor">#define FILLEN 256</span></div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;    </div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tMBPulse</div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;    {</div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;        </div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;        <span class="keywordtype">float</span>    out;</div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;        <span class="keywordtype">float</span>    amp;</div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;        <span class="keywordtype">float</span>    last_amp;</div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;        <span class="keywordtype">float</span>    freq;</div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;        <span class="keywordtype">float</span>    waveform;    <span class="comment">// duty cycle, must be in [-1, 1]</span></div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;        <span class="keywordtype">float</span>    syncin;</div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;        <span class="keywordtype">float</span>    syncout;</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;        <span class="keywordtype">float</span>   _p, _w, _b, _x, _z;</div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;        <span class="keywordtype">float</span>   _f [FILLEN + STEP_DD_PULSE_LENGTH];</div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;        <span class="keywordtype">int</span>     _j, _k;</div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;        <span class="keywordtype">bool</span>    _init;</div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;    } _tMBPulse;</div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;    </div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;    <span class="keyword">typedef</span> _tMBPulse* tMBPulse;</div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;    </div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbpulse.html#gabd7bb2639349323c56d8e49e1e242a4c">tMBPulse_init</a>(tMBPulse* <span class="keyword">const</span> osc, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbpulse.html#gaa36a0b547fef520a9ba55df50b7bbb70">tMBPulse_initToPool</a>(tMBPulse* <span class="keyword">const</span> osc, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbpulse.html#gac07d7bffe4cc28fb90825b2b1692bd85">tMBPulse_free</a>(tMBPulse* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;    </div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="group__tmbpulse.html#ga710dd6a7764807029c193cf44c923737">tMBPulse_tick</a>(tMBPulse* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbpulse.html#gacda622592ebee8942e11209e62ee33bc">tMBPulse_setFreq</a>(tMBPulse* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbpulse.html#ga071f98a4a4981b2d9c2e917c5c5fdb40">tMBPulse_setWidth</a>(tMBPulse* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> w);</div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbpulse.html#gad963722a79ea1c5b240e97405f3a8451">tMBPulse_syncIn</a>(tMBPulse* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> sync);</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="group__tmbpulse.html#ga199661893e765676a0c53c6d3661711b">tMBPulse_syncOut</a>(tMBPulse* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;    </div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tMBTriangle</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;    {</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;        </div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;        <span class="keywordtype">float</span>    out;</div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;        <span class="keywordtype">float</span>    amp;</div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;        <span class="keywordtype">float</span>    last_amp;</div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;        <span class="keywordtype">float</span>    freq;</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;        <span class="keywordtype">float</span>    waveform;    <span class="comment">// duty cycle, must be in [-1, 1]</span></div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;        <span class="keywordtype">float</span>    syncin;</div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;        <span class="keywordtype">float</span>    syncout;</div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;        <span class="keywordtype">float</span>   _p, _w, _b, _z;</div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;        <span class="keywordtype">float</span>   _f [FILLEN + LONGEST_DD_PULSE_LENGTH];</div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;        <span class="keywordtype">int</span>     _j, _k;</div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;        <span class="keywordtype">bool</span>    _init;</div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;    } _tMBTriangle;</div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;    </div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;    <span class="keyword">typedef</span> _tMBTriangle* tMBTriangle;</div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;    </div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbtriangle.html#gaaa43deb9cb1263b048346ddced186ae1">tMBTriangle_init</a>(tMBTriangle* <span class="keyword">const</span> osc, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbtriangle.html#ga1059c905fff781ffc59ffed1fefc3733">tMBTriangle_initToPool</a>(tMBTriangle* <span class="keyword">const</span> osc, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbtriangle.html#ga4a398681a83d517465c1f1373ecdff58">tMBTriangle_free</a>(tMBTriangle* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;    </div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="group__tmbtriangle.html#gad01e9918a433aae65ec099301edc9e42">tMBTriangle_tick</a>(tMBTriangle* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbtriangle.html#ga2d5a172cbfc2df0d71e9c8732fbe949e">tMBTriangle_setFreq</a>(tMBTriangle* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbtriangle.html#ga3d1220d479ab00cfdf07eda2bacd6eb6">tMBTriangle_setWidth</a>(tMBTriangle* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> w);</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbtriangle.html#gae3ebade6ea067daf671c06a45c7159ab">tMBTriangle_syncIn</a>(tMBTriangle* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> sync);</div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="group__tmbtriangle.html#gad0326131f43ef1a605faa75d2b1ff793">tMBTriangle_syncOut</a>(tMBTriangle* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;    </div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;    </div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tMBSaw</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;    {</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;        </div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;        <span class="keywordtype">float</span>    out;</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;        <span class="keywordtype">float</span>    amp;</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;        <span class="keywordtype">float</span>    last_amp;</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;        <span class="keywordtype">float</span>    freq;</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;        <span class="keywordtype">float</span>    syncin;</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;        <span class="keywordtype">float</span>    syncout;</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;        <span class="keywordtype">float</span>   _p, _w, _z;</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;        <span class="keywordtype">float</span>   _f [FILLEN + STEP_DD_PULSE_LENGTH];</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;        <span class="keywordtype">int</span>     _j;</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;        <span class="keywordtype">bool</span>    _init;</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;    } _tMBSaw;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;    </div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;    <span class="keyword">typedef</span> _tMBSaw* tMBSaw;</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;    </div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbsaw.html#ga4792d509595b94f20e515b077b476884">tMBSaw_init</a>(tMBSaw* <span class="keyword">const</span> osc, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbsaw.html#ga9405dbc7af1c8687690e7d31f8e105b5">tMBSaw_initToPool</a>(tMBSaw* <span class="keyword">const</span> osc, tMempool* <span class="keyword">const</span> mempool);</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbsaw.html#gabf4312918312e89cc6cf9f116ec48a94">tMBSaw_free</a>(tMBSaw* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;    </div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="group__tmbsaw.html#ga200361c3174c419e413a2b8b4e988fc4">tMBSaw_tick</a>(tMBSaw* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbsaw.html#gaa7e8996e6780f64c5530600d13e68dfa">tMBSaw_setFreq</a>(tMBSaw* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> f);</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__tmbsaw.html#gaf8c1832d4612b09186f039dae141c55e">tMBSaw_syncIn</a>(tMBSaw* <span class="keyword">const</span> osc, <span class="keywordtype">float</span> sync);</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="group__tmbsaw.html#ga7a3f14f56043adf51d48b8a3c6aebf77">tMBSaw_syncOut</a>(tMBSaw* <span class="keyword">const</span> osc);</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;    </div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;    </div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;    </div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;    </div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;}</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; </div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;<span class="preprocessor">#endif  // LEAF_OSCILLATORS_H_INCLUDED</span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; </div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; </div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; </div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="agroup__tneuron_html_ga1969098711805e2b8a68bc115bb113d5"><div class="ttname"><a href="group__tneuron.html#ga1969098711805e2b8a68bc115bb113d5">tNeuron_setN</a></div><div class="ttdeci">void tNeuron_setN(tNeuron *const neuron, float N)</div><div class="ttdoc">Set the sodium value.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1142</div></div>
+<div class="ttc" id="agroup__ttriangle_html_gac50568ee121737e782e495e9afd0d523"><div class="ttname"><a href="group__ttriangle.html#gac50568ee121737e782e495e9afd0d523">tTriangle_initToPool</a></div><div class="ttdeci">void tTriangle_initToPool(tTriangle *const osc, tMempool *const mempool)</div><div class="ttdoc">Initialize a tTriangle to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:465</div></div>
+<div class="ttc" id="agroup__tneuron_html_ga39c8ad8b35bf050f69b21ca34b56cc01"><div class="ttname"><a href="group__tneuron.html#ga39c8ad8b35bf050f69b21ca34b56cc01">NeuronMode</a></div><div class="ttdeci">NeuronMode</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.h:796</div></div>
+<div class="ttc" id="agroup__tmbsaw_html_ga9405dbc7af1c8687690e7d31f8e105b5"><div class="ttname"><a href="group__tmbsaw.html#ga9405dbc7af1c8687690e7d31f8e105b5">tMBSaw_initToPool</a></div><div class="ttdeci">void tMBSaw_initToPool(tMBSaw *const osc, tMempool *const mempool)</div><div class="ttdoc">Initialize a tMBSaw to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1921</div></div>
+<div class="ttc" id="agroup__tnoise_html_ga4e30b8b212200e17e73b0fb96293c386"><div class="ttname"><a href="group__tnoise.html#ga4e30b8b212200e17e73b0fb96293c386">tNoise_init</a></div><div class="ttdeci">void tNoise_init(tNoise *const noise, NoiseType type, LEAF *const leaf)</div><div class="ttdoc">Initialize a tNoise to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:977</div></div>
+<div class="ttc" id="agroup__tsaw_html_ga6aa69769acd51715899d60b0f581796d"><div class="ttname"><a href="group__tsaw.html#ga6aa69769acd51715899d60b0f581796d">tSaw_tick</a></div><div class="ttdeci">float tSaw_tick(tSaw *const osc)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:890</div></div>
+<div class="ttc" id="agroup__tnoise_html_ga6eec0a5fbc79f448a89258d9b956dfa4"><div class="ttname"><a href="group__tnoise.html#ga6eec0a5fbc79f448a89258d9b956dfa4">tNoise_initToPool</a></div><div class="ttdeci">void tNoise_initToPool(tNoise *const noise, NoiseType type, tMempool *const)</div><div class="ttdoc">Initialize a tNoise to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:982</div></div>
+<div class="ttc" id="agroup__tsawtooth_html_ga32ba208b6c4745587d267598702aaf02"><div class="ttname"><a href="group__tsawtooth.html#ga32ba208b6c4745587d267598702aaf02">tSawtooth_free</a></div><div class="ttdeci">void tSawtooth_free(tSawtooth *const osc)</div><div class="ttdoc">Free a tSawtooth from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:657</div></div>
+<div class="ttc" id="agroup__ttable_html_ga34f0802957415853e9dc64b7fa9355eb"><div class="ttname"><a href="group__ttable.html#ga34f0802957415853e9dc64b7fa9355eb">tTable_init</a></div><div class="ttdeci">void tTable_init(tTable *const osc, float *table, int size, LEAF *const leaf)</div><div class="ttdoc">Initialize a tTable to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:20</div></div>
+<div class="ttc" id="agroup__tpulse_html_ga4af3bc706a792a541d16cde22a335f7e"><div class="ttname"><a href="group__tpulse.html#ga4af3bc706a792a541d16cde22a335f7e">tPulse_tick</a></div><div class="ttdeci">float tPulse_tick(tPulse *const osc)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:830</div></div>
+<div class="ttc" id="agroup__ttri_html_gab6740de0f9cfdfe60f03c4bcb72482f8"><div class="ttname"><a href="group__ttri.html#gab6740de0f9cfdfe60f03c4bcb72482f8">tTri_setSkew</a></div><div class="ttdeci">void tTri_setSkew(tTri *const osc, float skew)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:797</div></div>
+<div class="ttc" id="agroup__tsquare_html_gacaaa2bf1d76371d9b4aeda286a09560f"><div class="ttname"><a href="group__tsquare.html#gacaaa2bf1d76371d9b4aeda286a09560f">tSquare_init</a></div><div class="ttdeci">void tSquare_init(tSquare *const osc, LEAF *const leaf)</div><div class="ttdoc">Initialize a tSquare to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:551</div></div>
+<div class="ttc" id="agroup__tsaw_html_ga67f8a442de376d042a98e300952f39f2"><div class="ttname"><a href="group__tsaw.html#ga67f8a442de376d042a98e300952f39f2">tSaw_initToPool</a></div><div class="ttdeci">void tSaw_initToPool(tSaw *const osc, tMempool *const mempool)</div><div class="ttdoc">Initialize a tSaw to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:873</div></div>
+<div class="ttc" id="agroup__ttriangle_html_ga036ec99241852ea7336a3a7e8bcd2fc7"><div class="ttname"><a href="group__ttriangle.html#ga036ec99241852ea7336a3a7e8bcd2fc7">tTriangle_tick</a></div><div class="ttdeci">float tTriangle_tick(tTriangle *const osc)</div><div class="ttdoc">Tick a tTriangle oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:503</div></div>
+<div class="ttc" id="agroup__tsaw_html_ga665577c990c9112d70d42b859abc93dd"><div class="ttname"><a href="group__tsaw.html#ga665577c990c9112d70d42b859abc93dd">tSaw_setFreq</a></div><div class="ttdeci">void tSaw_setFreq(tSaw *const osc, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:906</div></div>
+<div class="ttc" id="agroup__tneuron_html_ga64ec0be41011ffc7fdea5c03359a032c"><div class="ttname"><a href="group__tneuron.html#ga64ec0be41011ffc7fdea5c03359a032c">tNeuron_initToPool</a></div><div class="ttdeci">void tNeuron_initToPool(tNeuron *const neuron, tMempool *const mempool)</div><div class="ttdoc">Initialize a tNeuron to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1034</div></div>
+<div class="ttc" id="agroup__tneuron_html_gad67b6b0f22c03de1995e07bbf422c111"><div class="ttname"><a href="group__tneuron.html#gad67b6b0f22c03de1995e07bbf422c111">tNeuron_setC</a></div><div class="ttdeci">void tNeuron_setC(tNeuron *const neuron, float C)</div><div class="ttdoc">Set the calcium value.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1148</div></div>
+<div class="ttc" id="agroup__tmbpulse_html_gad963722a79ea1c5b240e97405f3a8451"><div class="ttname"><a href="group__tmbpulse.html#gad963722a79ea1c5b240e97405f3a8451">tMBPulse_syncIn</a></div><div class="ttdeci">void tMBPulse_syncIn(tMBPulse *const osc, float sync)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1567</div></div>
+<div class="ttc" id="agroup__tneuron_html_ga7bc12acf05b0763e80945808cf76102d"><div class="ttname"><a href="group__tneuron.html#ga7bc12acf05b0763e80945808cf76102d">tNeuron_setV2</a></div><div class="ttdeci">void tNeuron_setV2(tNeuron *const neuron, float V2)</div><div class="ttdoc">Set the V2 value.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1111</div></div>
+<div class="ttc" id="agroup__tpulse_html_gaf553bb8ff573c7d503f4bcb01cfb3117"><div class="ttname"><a href="group__tpulse.html#gaf553bb8ff573c7d503f4bcb01cfb3117">tPulse_setFreq</a></div><div class="ttdeci">void tPulse_setFreq(tPulse *const osc, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:849</div></div>
+<div class="ttc" id="agroup__tneuron_html_ga3e37f3a7de15a04e697f52cb72a5b094"><div class="ttname"><a href="group__tneuron.html#ga3e37f3a7de15a04e697f52cb72a5b094">tNeuron_reset</a></div><div class="ttdeci">void tNeuron_reset(tNeuron *const neuron)</div><div class="ttdoc">Reset the neuron model.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1075</div></div>
+<div class="ttc" id="agroup__tneuron_html_gad683dcc57adbc4e94baedae51005f5a9"><div class="ttname"><a href="group__tneuron.html#gad683dcc57adbc4e94baedae51005f5a9">tNeuron_setCurrent</a></div><div class="ttdeci">void tNeuron_setCurrent(tNeuron *const neuron, float current)</div><div class="ttdoc">Set the current.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1237</div></div>
+<div class="ttc" id="agroup__tphasor_html_ga7b98ada7d63395e6796a9ddeb1dd69d2"><div class="ttname"><a href="group__tphasor.html#ga7b98ada7d63395e6796a9ddeb1dd69d2">tPhasor_initToPool</a></div><div class="ttdeci">void tPhasor_initToPool(tPhasor *const osc, tMempool *const)</div><div class="ttdoc">Initialize a tPhasor to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:931</div></div>
+<div class="ttc" id="agroup__tneuron_html_ga0f4241ab21570d8accef6cdb468f24c1"><div class="ttname"><a href="group__tneuron.html#ga0f4241ab21570d8accef6cdb468f24c1">tNeuron_setV1</a></div><div class="ttdeci">void tNeuron_setV1(tNeuron *const neuron, float V1)</div><div class="ttdoc">Set the V1 value.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1104</div></div>
+<div class="ttc" id="agroup__tphasor_html_ga9a1e7b8a8f9bbcb74d52b95cf0ec1d6e"><div class="ttname"><a href="group__tphasor.html#ga9a1e7b8a8f9bbcb74d52b95cf0ec1d6e">tPhasor_tick</a></div><div class="ttdeci">float tPhasor_tick(tPhasor *const osc)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:959</div></div>
+<div class="ttc" id="agroup__tcycle_html_ga3ae2b653f390bdacdfe952e22a7aa5c4"><div class="ttname"><a href="group__tcycle.html#ga3ae2b653f390bdacdfe952e22a7aa5c4">tCycle_init</a></div><div class="ttdeci">void tCycle_init(tCycle *const osc, LEAF *const leaf)</div><div class="ttdoc">Initialize a tCycle to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:387</div></div>
+<div class="ttc" id="agroup__tsquare_html_ga4453bd8e23b1b88ec944c93b8cb575f6"><div class="ttname"><a href="group__tsquare.html#ga4453bd8e23b1b88ec944c93b8cb575f6">tSquare_setFreq</a></div><div class="ttdeci">void tSquare_setFreq(tSquare *const osc, float freq)</div><div class="ttdoc">Set the frequency of a tSquare oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:574</div></div>
+<div class="ttc" id="agroup__tcompactwavetable_html_ga49955d040284b3e1a40f2288cb89c54d"><div class="ttname"><a href="group__tcompactwavetable.html#ga49955d040284b3e1a40f2288cb89c54d">tCompactWavetable_setFreq</a></div><div class="ttdeci">void tCompactWavetable_setFreq(tCompactWavetable *const osc, float freq)</div><div class="ttdoc">Set the frequency of a tCompactWavetable oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:356</div></div>
+<div class="ttc" id="agroup__tmbtriangle_html_ga2d5a172cbfc2df0d71e9c8732fbe949e"><div class="ttname"><a href="group__tmbtriangle.html#ga2d5a172cbfc2df0d71e9c8732fbe949e">tMBTriangle_setFreq</a></div><div class="ttdeci">void tMBTriangle_setFreq(tMBTriangle *const osc, float f)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1889</div></div>
+<div class="ttc" id="agroup__tmbpulse_html_gaa36a0b547fef520a9ba55df50b7bbb70"><div class="ttname"><a href="group__tmbpulse.html#gaa36a0b547fef520a9ba55df50b7bbb70">tMBPulse_initToPool</a></div><div class="ttdeci">void tMBPulse_initToPool(tMBPulse *const osc, tMempool *const mempool)</div><div class="ttdoc">Initialize a tMBPulse to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1252</div></div>
+<div class="ttc" id="agroup__twavetable_html_gad22ca7b75e09dd860286215aed1711b9"><div class="ttname"><a href="group__twavetable.html#gad22ca7b75e09dd860286215aed1711b9">tWavetable_tick</a></div><div class="ttdeci">float tWavetable_tick(tWavetable *const osc)</div><div class="ttdoc">Tick a tWavetable oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:170</div></div>
+<div class="ttc" id="agroup__ttable_html_gae75a6c3468ae7801c86867860152117b"><div class="ttname"><a href="group__ttable.html#gae75a6c3468ae7801c86867860152117b">tTable_initToPool</a></div><div class="ttdeci">void tTable_initToPool(tTable *const osc, float *table, int size, tMempool *const mempool)</div><div class="ttdoc">Initialize a tTable to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:25</div></div>
+<div class="ttc" id="agroup__tmbsaw_html_gabf4312918312e89cc6cf9f116ec48a94"><div class="ttname"><a href="group__tmbsaw.html#gabf4312918312e89cc6cf9f116ec48a94">tMBSaw_free</a></div><div class="ttdeci">void tMBSaw_free(tMBSaw *const osc)</div><div class="ttdoc">Free a tMBSaw from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1936</div></div>
+<div class="ttc" id="agroup__tmbtriangle_html_ga3d1220d479ab00cfdf07eda2bacd6eb6"><div class="ttname"><a href="group__tmbtriangle.html#ga3d1220d479ab00cfdf07eda2bacd6eb6">tMBTriangle_setWidth</a></div><div class="ttdeci">void tMBTriangle_setWidth(tMBTriangle *const osc, float w)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1895</div></div>
+<div class="ttc" id="agroup__tsawtooth_html_gab096cb0c5c0384b47959d0161d8432e4"><div class="ttname"><a href="group__tsawtooth.html#gab096cb0c5c0384b47959d0161d8432e4">tSawtooth_setFreq</a></div><div class="ttdeci">void tSawtooth_setFreq(tSawtooth *const osc, float freq)</div><div class="ttdoc">Set the frequency of a tSawtooth oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:664</div></div>
+<div class="ttc" id="agroup__tsawtooth_html_ga63ee3403c200358511ffb049a3a93bf2"><div class="ttname"><a href="group__tsawtooth.html#ga63ee3403c200358511ffb049a3a93bf2">tSawtooth_initToPool</a></div><div class="ttdeci">void tSawtooth_initToPool(tSawtooth *const osc, tMempool *const mempool)</div><div class="ttdoc">Initialize a tSawtooth to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:646</div></div>
+<div class="ttc" id="agroup__tneuron_html_ga8e7767ba34797b6e41cd47fee21a674b"><div class="ttname"><a href="group__tneuron.html#ga8e7767ba34797b6e41cd47fee21a674b">tNeuron_free</a></div><div class="ttdeci">void tNeuron_free(tNeuron *const neuron)</div><div class="ttdoc">Free a tNeuron from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1067</div></div>
+<div class="ttc" id="agroup__tsaw_html_ga8a0086ee2a90f4e62a0313de8fe485d5"><div class="ttname"><a href="group__tsaw.html#ga8a0086ee2a90f4e62a0313de8fe485d5">tSaw_free</a></div><div class="ttdeci">void tSaw_free(tSaw *const osc)</div><div class="ttdoc">Free a tSaw from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:883</div></div>
+<div class="ttc" id="agroup__tcycle_html_ga7eeb58e2292483416474bf83bf313deb"><div class="ttname"><a href="group__tcycle.html#ga7eeb58e2292483416474bf83bf313deb">tCycle_setFreq</a></div><div class="ttdeci">void tCycle_setFreq(tCycle *const osc, float freq)</div><div class="ttdoc">Set the frequency of a tCycle oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:409</div></div>
+<div class="ttc" id="agroup__tmbpulse_html_ga199661893e765676a0c53c6d3661711b"><div class="ttname"><a href="group__tmbpulse.html#ga199661893e765676a0c53c6d3661711b">tMBPulse_syncOut</a></div><div class="ttdeci">float tMBPulse_syncOut(tMBPulse *const osc)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1573</div></div>
+<div class="ttc" id="agroup__ttriangle_html_ga50f2f0c7a69471479484560a94a11fbb"><div class="ttname"><a href="group__ttriangle.html#ga50f2f0c7a69471479484560a94a11fbb">tTriangle_init</a></div><div class="ttdeci">void tTriangle_init(tTriangle *const osc, LEAF *const leaf)</div><div class="ttdoc">Initialize a tTriangle to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:460</div></div>
+<div class="ttc" id="agroup__tneuron_html_gaaf7fb0a50cde5d02085bae982f355d98"><div class="ttname"><a href="group__tneuron.html#gaaf7fb0a50cde5d02085bae982f355d98">tNeuron_init</a></div><div class="ttdeci">void tNeuron_init(tNeuron *const neuron, LEAF *const leaf)</div><div class="ttdoc">Initialize a tNeuron to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1029</div></div>
+<div class="ttc" id="agroup__tmbtriangle_html_ga4a398681a83d517465c1f1373ecdff58"><div class="ttname"><a href="group__tmbtriangle.html#ga4a398681a83d517465c1f1373ecdff58">tMBTriangle_free</a></div><div class="ttdeci">void tMBTriangle_free(tMBTriangle *const osc)</div><div class="ttdoc">Free a tMBTriangle from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1602</div></div>
+<div class="ttc" id="agroup__tsawtooth_html_gaa052c9d8e62a198bbaeac892b0d11a7f"><div class="ttname"><a href="group__tsawtooth.html#gaa052c9d8e62a198bbaeac892b0d11a7f">tSawtooth_init</a></div><div class="ttdeci">void tSawtooth_init(tSawtooth *const osc, LEAF *const leaf)</div><div class="ttdoc">Initialize a tSawtooth to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:641</div></div>
+<div class="ttc" id="agroup__tneuron_html_ga0813977adaef8fa375c5b0f5e59908b6"><div class="ttname"><a href="group__tneuron.html#ga0813977adaef8fa375c5b0f5e59908b6">tNeuron_setL</a></div><div class="ttdeci">void tNeuron_setL(tNeuron *const neuron, float L)</div><div class="ttdoc">Set the chloride value.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1135</div></div>
+<div class="ttc" id="agroup__tmbsaw_html_ga200361c3174c419e413a2b8b4e988fc4"><div class="ttname"><a href="group__tmbsaw.html#ga200361c3174c419e413a2b8b4e988fc4">tMBSaw_tick</a></div><div class="ttdeci">float tMBSaw_tick(tMBSaw *const osc)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1942</div></div>
+<div class="ttc" id="agroup__tmbtriangle_html_gad0326131f43ef1a605faa75d2b1ff793"><div class="ttname"><a href="group__tmbtriangle.html#gad0326131f43ef1a605faa75d2b1ff793">tMBTriangle_syncOut</a></div><div class="ttdeci">float tMBTriangle_syncOut(tMBTriangle *const osc)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1907</div></div>
+<div class="ttc" id="agroup__tcycle_html_gacbd4afb6c3307d92e19a8e308ba7540b"><div class="ttname"><a href="group__tcycle.html#gacbd4afb6c3307d92e19a8e308ba7540b">tCycle_initToPool</a></div><div class="ttdeci">void tCycle_initToPool(tCycle *const osc, tMempool *const mempool)</div><div class="ttdoc">Initialize a tCycle to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:392</div></div>
+<div class="ttc" id="agroup__ttable_html_ga2dcff23d9b0e98fd706d4880c766320a"><div class="ttname"><a href="group__ttable.html#ga2dcff23d9b0e98fd706d4880c766320a">tTable_setFreq</a></div><div class="ttdeci">void tTable_setFreq(tTable *const osc, float freq)</div><div class="ttdoc">Set the frequency of a tTable oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:44</div></div>
+<div class="ttc" id="agroup__ttri_html_gab77b067320cc0124252fdd92d0bcdef0"><div class="ttname"><a href="group__ttri.html#gab77b067320cc0124252fdd92d0bcdef0">tTri_setFreq</a></div><div class="ttdeci">void tTri_setFreq(tTri *const osc, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:788</div></div>
+<div class="ttc" id="agroup__tcompactwavetable_html_ga31c71e150c921c9c2a6b99b47ed995f5"><div class="ttname"><a href="group__tcompactwavetable.html#ga31c71e150c921c9c2a6b99b47ed995f5">tCompactWavetable_free</a></div><div class="ttdeci">void tCompactWavetable_free(tCompactWavetable *const osc)</div><div class="ttdoc">Free a tCompactWavetable from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:306</div></div>
+<div class="ttc" id="agroup__twavetable_html_gaf397a73fa707667cb0038b1be42896f1"><div class="ttname"><a href="group__twavetable.html#gaf397a73fa707667cb0038b1be42896f1">tWavetable_setFreq</a></div><div class="ttdeci">void tWavetable_setFreq(tWavetable *const osc, float freq)</div><div class="ttdoc">Set the frequency of a tWavetable oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:206</div></div>
+<div class="ttc" id="agroup__tcycle_html_ga4fd599981f6caf87720db3a9811716cf"><div class="ttname"><a href="group__tcycle.html#ga4fd599981f6caf87720db3a9811716cf">tCycle_tick</a></div><div class="ttdeci">float tCycle_tick(tCycle *const osc)</div><div class="ttdoc">Tick a tCycle oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:422</div></div>
+<div class="ttc" id="agroup__twavetable_html_ga54957a54c5f86392dc8b3105668425e5"><div class="ttname"><a href="group__twavetable.html#ga54957a54c5f86392dc8b3105668425e5">tWavetable_free</a></div><div class="ttdeci">void tWavetable_free(tWavetable *const osc)</div><div class="ttdoc">Free a tWavetable from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:158</div></div>
+<div class="ttc" id="agroup__tneuron_html_gacbbb031eee9c36e21e24e54b43290bc0"><div class="ttname"><a href="group__tneuron.html#gacbbb031eee9c36e21e24e54b43290bc0">tNeuron_tick</a></div><div class="ttdeci">float tNeuron_tick(tNeuron *const neuron)</div><div class="ttdoc">Tick a tNeuron oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1155</div></div>
+<div class="ttc" id="agroup__tnoise_html_gga9253d111035d4a83996ec5bbfd3d8963a0793318314019dbf241d6de4e8fcf310"><div class="ttname"><a href="group__tnoise.html#gga9253d111035d4a83996ec5bbfd3d8963a0793318314019dbf241d6de4e8fcf310">PinkNoise</a></div><div class="ttdoc">Pink noise. Inverse frequency-proportional spectrum.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.h:688</div></div>
+<div class="ttc" id="agroup__tsquare_html_gad9c41ce10b6b0c821360f43743544c89"><div class="ttname"><a href="group__tsquare.html#gad9c41ce10b6b0c821360f43743544c89">tSquare_initToPool</a></div><div class="ttdeci">void tSquare_initToPool(tSquare *const osc, tMempool *const)</div><div class="ttdoc">Initialize a tSquare to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:556</div></div>
+<div class="ttc" id="agroup__tmbpulse_html_gabd7bb2639349323c56d8e49e1e242a4c"><div class="ttname"><a href="group__tmbpulse.html#gabd7bb2639349323c56d8e49e1e242a4c">tMBPulse_init</a></div><div class="ttdeci">void tMBPulse_init(tMBPulse *const osc, LEAF *const leaf)</div><div class="ttdoc">Initialize a tMBPulse to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1247</div></div>
+<div class="ttc" id="agroup__tneuron_html_gga39c8ad8b35bf050f69b21ca34b56cc01acdbcb725e463ccad89f2384b1254ab0c"><div class="ttname"><a href="group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01acdbcb725e463ccad89f2384b1254ab0c">NeuronAaltoShaper</a></div><div class="ttdoc">Aalto voltage shaping.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.h:800</div></div>
+<div class="ttc" id="agroup__tmbpulse_html_ga071f98a4a4981b2d9c2e917c5c5fdb40"><div class="ttname"><a href="group__tmbpulse.html#ga071f98a4a4981b2d9c2e917c5c5fdb40">tMBPulse_setWidth</a></div><div class="ttdeci">void tMBPulse_setWidth(tMBPulse *const osc, float w)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1561</div></div>
+<div class="ttc" id="agroup__ttri_html_ga84143634f91977f6617ca0b7e50b649d"><div class="ttname"><a href="group__ttri.html#ga84143634f91977f6617ca0b7e50b649d">tTri_init</a></div><div class="ttdeci">void tTri_init(tTri *const osc, LEAF *const leaf)</div><div class="ttdoc">Initialize a tTri to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:731</div></div>
+<div class="ttc" id="agroup__tnoise_html_gab51a77f9ab3888d706ed0fb30cdf217d"><div class="ttname"><a href="group__tnoise.html#gab51a77f9ab3888d706ed0fb30cdf217d">tNoise_free</a></div><div class="ttdeci">void tNoise_free(tNoise *const noise)</div><div class="ttdoc">Free a tNoise from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:993</div></div>
+<div class="ttc" id="agroup__tneuron_html_ga933040791b44ff8d7ada7aa825c48935"><div class="ttname"><a href="group__tneuron.html#ga933040791b44ff8d7ada7aa825c48935">tNeuron_setK</a></div><div class="ttdeci">void tNeuron_setK(tNeuron *const neuron, float K)</div><div class="ttdoc">Set the potassium value.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1129</div></div>
+<div class="ttc" id="agroup__ttriangle_html_ga02f6034d5442b55d1beda63fe7918fcb"><div class="ttname"><a href="group__ttriangle.html#ga02f6034d5442b55d1beda63fe7918fcb">tTriangle_setFreq</a></div><div class="ttdeci">void tTriangle_setFreq(tTriangle *const osc, float freq)</div><div class="ttdoc">Set the frequency of a tTriangle oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:483</div></div>
+<div class="ttc" id="agroup__tneuron_html_gad69adcd45e4dabc947fabbc9baf7d849"><div class="ttname"><a href="group__tneuron.html#gad69adcd45e4dabc947fabbc9baf7d849">tNeuron_setMode</a></div><div class="ttdeci">void tNeuron_setMode(tNeuron *const neuron, NeuronMode mode)</div><div class="ttdoc">Set the tNeuron shaping mode.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1231</div></div>
+<div class="ttc" id="agroup__tneuron_html_gga39c8ad8b35bf050f69b21ca34b56cc01a0f637d7316b91b66dfea6ef832b1d178"><div class="ttname"><a href="group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01a0f637d7316b91b66dfea6ef832b1d178">NeuronTanh</a></div><div class="ttdoc">Tanh voltage shaping.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.h:799</div></div>
+<div class="ttc" id="agroup__tmbtriangle_html_gaaa43deb9cb1263b048346ddced186ae1"><div class="ttname"><a href="group__tmbtriangle.html#gaaa43deb9cb1263b048346ddced186ae1">tMBTriangle_init</a></div><div class="ttdeci">void tMBTriangle_init(tMBTriangle *const osc, LEAF *const leaf)</div><div class="ttdoc">Initialize a tMBTriangle to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1581</div></div>
+<div class="ttc" id="agroup__tmbpulse_html_ga710dd6a7764807029c193cf44c923737"><div class="ttname"><a href="group__tmbpulse.html#ga710dd6a7764807029c193cf44c923737">tMBPulse_tick</a></div><div class="ttdeci">float tMBPulse_tick(tMBPulse *const osc)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1274</div></div>
+<div class="ttc" id="agroup__tcompactwavetable_html_ga3057038710e1b064968f8d290e753e5f"><div class="ttname"><a href="group__tcompactwavetable.html#ga3057038710e1b064968f8d290e753e5f">tCompactWavetable_tick</a></div><div class="ttdeci">float tCompactWavetable_tick(tCompactWavetable *const osc)</div><div class="ttdoc">Tick a tCompactWavetable oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:319</div></div>
+<div class="ttc" id="agroup__tphasor_html_gae86aae9fa656c303dc02fabacd4bf9a9"><div class="ttname"><a href="group__tphasor.html#gae86aae9fa656c303dc02fabacd4bf9a9">tPhasor_free</a></div><div class="ttdeci">void tPhasor_free(tPhasor *const osc)</div><div class="ttdoc">Free a tPhasor from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:942</div></div>
+<div class="ttc" id="agroup__tpulse_html_gad2c554f90ebb55227d28dd18f42be760"><div class="ttname"><a href="group__tpulse.html#gad2c554f90ebb55227d28dd18f42be760">tPulse_free</a></div><div class="ttdeci">void tPulse_free(tPulse *const osc)</div><div class="ttdoc">Free a tPulse from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:823</div></div>
+<div class="ttc" id="agroup__tpulse_html_ga2a3b923294ee215553937f1446932eda"><div class="ttname"><a href="group__tpulse.html#ga2a3b923294ee215553937f1446932eda">tPulse_init</a></div><div class="ttdeci">void tPulse_init(tPulse *const osc, LEAF *const leaf)</div><div class="ttdoc">Initialize a tPulse to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:807</div></div>
+<div class="ttc" id="agroup__tmbsaw_html_ga7a3f14f56043adf51d48b8a3c6aebf77"><div class="ttname"><a href="group__tmbsaw.html#ga7a3f14f56043adf51d48b8a3c6aebf77">tMBSaw_syncOut</a></div><div class="ttdeci">float tMBSaw_syncOut(tMBSaw *const osc)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:2071</div></div>
+<div class="ttc" id="agroup__tsquare_html_ga00053831170c826962e4f1aa9d6696e2"><div class="ttname"><a href="group__tsquare.html#ga00053831170c826962e4f1aa9d6696e2">tSquare_tick</a></div><div class="ttdeci">float tSquare_tick(tSquare *const osc)</div><div class="ttdoc">Tick a tSquare oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:593</div></div>
+<div class="ttc" id="agroup__tmbtriangle_html_gad01e9918a433aae65ec099301edc9e42"><div class="ttname"><a href="group__tmbtriangle.html#gad01e9918a433aae65ec099301edc9e42">tMBTriangle_tick</a></div><div class="ttdeci">float tMBTriangle_tick(tMBTriangle *const osc)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1608</div></div>
+<div class="ttc" id="agroup__tmbtriangle_html_ga1059c905fff781ffc59ffed1fefc3733"><div class="ttname"><a href="group__tmbtriangle.html#ga1059c905fff781ffc59ffed1fefc3733">tMBTriangle_initToPool</a></div><div class="ttdeci">void tMBTriangle_initToPool(tMBTriangle *const osc, tMempool *const mempool)</div><div class="ttdoc">Initialize a tMBTriangle to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1586</div></div>
+<div class="ttc" id="agroup__tmbpulse_html_gacda622592ebee8942e11209e62ee33bc"><div class="ttname"><a href="group__tmbpulse.html#gacda622592ebee8942e11209e62ee33bc">tMBPulse_setFreq</a></div><div class="ttdeci">void tMBPulse_setFreq(tMBPulse *const osc, float f)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1555</div></div>
+<div class="ttc" id="agroup__tmbsaw_html_ga4792d509595b94f20e515b077b476884"><div class="ttname"><a href="group__tmbsaw.html#ga4792d509595b94f20e515b077b476884">tMBSaw_init</a></div><div class="ttdeci">void tMBSaw_init(tMBSaw *const osc, LEAF *const leaf)</div><div class="ttdoc">Initialize a tMBSaw to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1916</div></div>
+<div class="ttc" id="agroup__tcycle_html_gacb267508910aefc3686366ba7f296938"><div class="ttname"><a href="group__tcycle.html#gacb267508910aefc3686366ba7f296938">tCycle_free</a></div><div class="ttdeci">void tCycle_free(tCycle *const osc)</div><div class="ttdoc">Free a tCycle from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:402</div></div>
+<div class="ttc" id="agroup__tneuron_html_gga39c8ad8b35bf050f69b21ca34b56cc01acedc049c7a14e2b30b266d88d46b3f76"><div class="ttname"><a href="group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01acedc049c7a14e2b30b266d88d46b3f76">NeuronNormal</a></div><div class="ttdoc">Normal operation.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.h:798</div></div>
+<div class="ttc" id="agroup__ttri_html_ga49739309d127ae64ee2854d771b04fe2"><div class="ttname"><a href="group__ttri.html#ga49739309d127ae64ee2854d771b04fe2">tTri_free</a></div><div class="ttdeci">void tTri_free(tTri *const osc)</div><div class="ttdoc">Free a tTri from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:748</div></div>
+<div class="ttc" id="agroup__ttable_html_ga59f59db52bf98cf1852d7dcd6f09122c"><div class="ttname"><a href="group__ttable.html#ga59f59db52bf98cf1852d7dcd6f09122c">tTable_tick</a></div><div class="ttdeci">float tTable_tick(tTable *const osc)</div><div class="ttdoc">Tick a tTable oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:55</div></div>
+<div class="ttc" id="agroup__tsquare_html_ga1f6fac5cb92fcbca09970b95a2d05d7d"><div class="ttname"><a href="group__tsquare.html#ga1f6fac5cb92fcbca09970b95a2d05d7d">tSquare_free</a></div><div class="ttdeci">void tSquare_free(tSquare *const osc)</div><div class="ttdoc">Free a tSquare from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:567</div></div>
+<div class="ttc" id="agroup__tneuron_html_ga49e7f07a28b9e12d1fd9ed9dda6fd88d"><div class="ttname"><a href="group__tneuron.html#ga49e7f07a28b9e12d1fd9ed9dda6fd88d">tNeuron_setV3</a></div><div class="ttdeci">void tNeuron_setV3(tNeuron *const neuron, float V3)</div><div class="ttdoc">Set the V3 value.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1117</div></div>
+<div class="ttc" id="agroup__tmbsaw_html_gaa7e8996e6780f64c5530600d13e68dfa"><div class="ttname"><a href="group__tmbsaw.html#gaa7e8996e6780f64c5530600d13e68dfa">tMBSaw_setFreq</a></div><div class="ttdeci">void tMBSaw_setFreq(tMBSaw *const osc, float f)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:2059</div></div>
+<div class="ttc" id="agroup__tneuron_html_ga92c05fe0216beaf2a430bf45898c46d5"><div class="ttname"><a href="group__tneuron.html#ga92c05fe0216beaf2a430bf45898c46d5">tNeuron_setTimeStep</a></div><div class="ttdeci">void tNeuron_setTimeStep(tNeuron *const neuron, float timestep)</div><div class="ttdoc">Set the time step of the model.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1123</div></div>
+<div class="ttc" id="agroup__tpulse_html_ga554255385caeaaefddab51c258c45b74"><div class="ttname"><a href="group__tpulse.html#ga554255385caeaaefddab51c258c45b74">tPulse_setWidth</a></div><div class="ttdeci">void tPulse_setWidth(tPulse *const osc, float width)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:858</div></div>
+<div class="ttc" id="agroup__tphasor_html_gaef54a192792ded6d1e53a0839b55bb4a"><div class="ttname"><a href="group__tphasor.html#gaef54a192792ded6d1e53a0839b55bb4a">tPhasor_init</a></div><div class="ttdeci">void tPhasor_init(tPhasor *const osc, LEAF *const leaf)</div><div class="ttdoc">Initialize a tPhasor to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:926</div></div>
+<div class="ttc" id="agroup__ttriangle_html_gabb07623117c0d448839b808df2ea6f35"><div class="ttname"><a href="group__ttriangle.html#gabb07623117c0d448839b808df2ea6f35">tTriangle_free</a></div><div class="ttdeci">void tTriangle_free(tTriangle *const osc)</div><div class="ttdoc">Free a tTriangle from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:476</div></div>
+<div class="ttc" id="agroup__tpulse_html_gace53f4a8731bcbf6f7c265ba4ec375c7"><div class="ttname"><a href="group__tpulse.html#gace53f4a8731bcbf6f7c265ba4ec375c7">tPulse_initToPool</a></div><div class="ttdeci">void tPulse_initToPool(tPulse *const osc, tMempool *const)</div><div class="ttdoc">Initialize a tPulse to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:812</div></div>
+<div class="ttc" id="agroup__tmbtriangle_html_gae3ebade6ea067daf671c06a45c7159ab"><div class="ttname"><a href="group__tmbtriangle.html#gae3ebade6ea067daf671c06a45c7159ab">tMBTriangle_syncIn</a></div><div class="ttdeci">void tMBTriangle_syncIn(tMBTriangle *const osc, float sync)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1901</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<div class="ttc" id="agroup__tmbsaw_html_gaf8c1832d4612b09186f039dae141c55e"><div class="ttname"><a href="group__tmbsaw.html#gaf8c1832d4612b09186f039dae141c55e">tMBSaw_syncIn</a></div><div class="ttdeci">void tMBSaw_syncIn(tMBSaw *const osc, float sync)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:2065</div></div>
+<div class="ttc" id="agroup__ttri_html_gabad427341c15462ec3fe9f0b36f3e26c"><div class="ttname"><a href="group__ttri.html#gabad427341c15462ec3fe9f0b36f3e26c">tTri_initToPool</a></div><div class="ttdeci">void tTri_initToPool(tTri *const osc, tMempool *const mempool)</div><div class="ttdoc">Initialize a tTri to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:736</div></div>
+<div class="ttc" id="agroup__ttable_html_ga23c68eb02b6f856e4cabd793f386ef3d"><div class="ttname"><a href="group__ttable.html#ga23c68eb02b6f856e4cabd793f386ef3d">tTable_free</a></div><div class="ttdeci">void tTable_free(tTable *const osc)</div><div class="ttdoc">Free a tTable from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:37</div></div>
+<div class="ttc" id="agroup__ttri_html_gabf569fb94b1ed5d1695e8c09f9b0f09d"><div class="ttname"><a href="group__ttri.html#gabf569fb94b1ed5d1695e8c09f9b0f09d">tTri_tick</a></div><div class="ttdeci">float tTri_tick(tTri *const osc)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:755</div></div>
+<div class="ttc" id="agroup__tnoise_html_ga867c2ace286c8fdd886f7f9357821330"><div class="ttname"><a href="group__tnoise.html#ga867c2ace286c8fdd886f7f9357821330">tNoise_tick</a></div><div class="ttdeci">float tNoise_tick(tNoise *const noise)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1000</div></div>
+<div class="ttc" id="agroup__tsawtooth_html_ga55fd2d0b1572fc8a67fffc7531fced69"><div class="ttname"><a href="group__tsawtooth.html#ga55fd2d0b1572fc8a67fffc7531fced69">tSawtooth_tick</a></div><div class="ttdeci">float tSawtooth_tick(tSawtooth *const osc)</div><div class="ttdoc">Tick a tSawtooth oscillator.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:683</div></div>
+<div class="ttc" id="agroup__tmbpulse_html_gac07d7bffe4cc28fb90825b2b1692bd85"><div class="ttname"><a href="group__tmbpulse.html#gac07d7bffe4cc28fb90825b2b1692bd85">tMBPulse_free</a></div><div class="ttdeci">void tMBPulse_free(tMBPulse *const osc)</div><div class="ttdoc">Free a tMBPulse from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:1268</div></div>
+<div class="ttc" id="agroup__tphasor_html_gab19f35f26a5de1353623ed2ecd8c92b7"><div class="ttname"><a href="group__tphasor.html#gab19f35f26a5de1353623ed2ecd8c92b7">tPhasor_setFreq</a></div><div class="ttdeci">void tPhasor_setFreq(tPhasor *const osc, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:949</div></div>
+<div class="ttc" id="agroup__tnoise_html_gga9253d111035d4a83996ec5bbfd3d8963a7c87739bebf0e95f4e6b8d9e5432b8f1"><div class="ttname"><a href="group__tnoise.html#gga9253d111035d4a83996ec5bbfd3d8963a7c87739bebf0e95f4e6b8d9e5432b8f1">WhiteNoise</a></div><div class="ttdoc">White noise. Full spectrum.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.h:687</div></div>
+<div class="ttc" id="agroup__tsaw_html_ga47c944a22090ff9f8f810b0ec7c87523"><div class="ttname"><a href="group__tsaw.html#ga47c944a22090ff9f8f810b0ec7c87523">tSaw_init</a></div><div class="ttdeci">void tSaw_init(tSaw *const osc, LEAF *const leaf)</div><div class="ttdoc">Initialize a tSaw to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.c:868</div></div>
+<div class="ttc" id="agroup__tnoise_html_ga9253d111035d4a83996ec5bbfd3d8963"><div class="ttname"><a href="group__tnoise.html#ga9253d111035d4a83996ec5bbfd3d8963">NoiseType</a></div><div class="ttdeci">NoiseType</div><div class="ttdef"><b>Definition:</b> leaf-oscillators.h:685</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-physical_8h_source.html
@@ -1,0 +1,457 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-physical.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-physical.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> ==============================================================================</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> leaf-physical.h</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> Created: 30 Nov 2018 10:41:55am</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> Author:  airship</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> ==============================================================================</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#ifndef LEAF_PHYSICAL_H_INCLUDED</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#define LEAF_PHYSICAL_H_INCLUDED</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;leaf-global.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;leaf-delay.h&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;leaf-filters.h&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;leaf-oscillators.h&quot;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &quot;leaf-envelopes.h&quot;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;leaf-dynamics.h&quot;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    </div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tPluck</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    {</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        tAllpassDelay     delayLine; <span class="comment">// Allpass or Linear??  big difference...</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        tOneZero    loopFilter;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        tOnePole    pickFilter;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        tNoise      noise;</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <span class="keywordtype">float</span> lastOut;</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <span class="keywordtype">float</span> loopGain;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        <span class="keywordtype">float</span> lastFreq;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        </div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keywordtype">float</span> sr;</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    } _tPluck;</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="keyword">typedef</span> _tPluck* tPluck;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpluck.html#gac7b5e386d09e10b097545b7f9ee3d161">tPluck_init</a>          (tPluck* <span class="keyword">const</span>, <span class="keywordtype">float</span> lowestFrequency, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf); <span class="comment">//float delayBuff[DELAY_LENGTH]);</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpluck.html#ga6fce342b82d04d5b30ebeadc0ac2102d">tPluck_initToPool</a>    (tPluck* <span class="keyword">const</span>, <span class="keywordtype">float</span> lowestFrequency, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpluck.html#gab05fa8211c49e8e1301882ba0dfb4933">tPluck_free</a>          (tPluck* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    </div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tpluck.html#ga5abd143bdbe1ff441491b4a09218e967">tPluck_tick</a>          (tPluck* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpluck.html#ga4e23f3d5ec42910130c176662e9d7e91">tPluck_pluck</a>         (tPluck* <span class="keyword">const</span>, <span class="keywordtype">float</span> amplitude);</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpluck.html#ga4aa769eb18600d5f777a2d33e18fb7cb">tPluck_noteOn</a>        (tPluck* <span class="keyword">const</span>, <span class="keywordtype">float</span> frequency, <span class="keywordtype">float</span> amplitude );</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpluck.html#ga215b593535f5bff5a6887ce905bc7602">tPluck_noteOff</a>       (tPluck* <span class="keyword">const</span>, <span class="keywordtype">float</span> amplitude );</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpluck.html#ga9f20651baa36041ba43836dbe7c1de5b">tPluck_setFrequency</a>  (tPluck* <span class="keyword">const</span>, <span class="keywordtype">float</span> frequency );</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tpluck.html#ga371e8ab225a043b3415979766647d155">tPluck_controlChange</a> (tPluck* <span class="keyword">const</span>, <span class="keywordtype">int</span> number, <span class="keywordtype">float</span> value);</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tpluck.html#ga8a2365d67f4b17a4f578fbb14f280e74">tPluck_getLastOut</a>    (tPluck* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">enum</span> SKControlType</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    {</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        SKPickPosition = 0,</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        SKStringDamping,</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        SKDetune,</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        SKControlTypeNil</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    } SKControlType;</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    </div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tKarplusStrong</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    {</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        </div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        tAllpassDelay  delayLine;</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        tLinearDelay combDelay;</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        tOneZero filter;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        tNoise   noise;</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        tBiQuad  biquad[4];</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        uint32_t length;</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        <span class="keywordtype">float</span> loopGain;</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        <span class="keywordtype">float</span> baseLoopGain;</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        <span class="keywordtype">float</span> lastFrequency;</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        <span class="keywordtype">float</span> lastLength;</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        <span class="keywordtype">float</span> stretching;</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        <span class="keywordtype">float</span> pluckAmplitude;</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="keywordtype">float</span> pickupPosition;</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        </div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        <span class="keywordtype">float</span> lastOut;</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    } _tKarplusStrong;</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    <span class="keyword">typedef</span> _tKarplusStrong* tKarplusStrong;</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tkarplusstrong.html#ga186d7205bac18c523abee2ebc076e341">tKarplusStrong_init</a>               (tKarplusStrong* <span class="keyword">const</span>, <span class="keywordtype">float</span> lowestFrequency, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf); <span class="comment">// float delayBuff[2][DELAY_LENGTH]);</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tkarplusstrong.html#ga77d0a866dda8f75f5d587e8167d9c245">tKarplusStrong_initToPool</a>         (tKarplusStrong* <span class="keyword">const</span>, <span class="keywordtype">float</span> lowestFrequency, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tkarplusstrong.html#ga0d98da9c7a0a458d0871399e3235bce5">tKarplusStrong_free</a>               (tKarplusStrong* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tkarplusstrong.html#gacda457f47786fdca8b06a30a01ffc135">tKarplusStrong_tick</a>               (tKarplusStrong* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tkarplusstrong.html#ga3fe232ca203991c000ad17ea41abc5b3">tKarplusStrong_pluck</a>              (tKarplusStrong* <span class="keyword">const</span>, <span class="keywordtype">float</span> amplitude);</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tkarplusstrong.html#ga5b29e0e05ad35914453d732b4978e572">tKarplusStrong_noteOn</a>             (tKarplusStrong* <span class="keyword">const</span>, <span class="keywordtype">float</span> frequency, <span class="keywordtype">float</span> amplitude );</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tkarplusstrong.html#gad1d984d1439ed44fa749bc6bb30d93a4">tKarplusStrong_noteOff</a>            (tKarplusStrong* <span class="keyword">const</span>, <span class="keywordtype">float</span> amplitude );</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tkarplusstrong.html#ga5082c474d8ec5885fde227cfa67f180b">tKarplusStrong_setFrequency</a>       (tKarplusStrong* <span class="keyword">const</span>, <span class="keywordtype">float</span> frequency );</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tkarplusstrong.html#ga6d0d8aaefcb4a3322aeee85ebcd6f19e">tKarplusStrong_controlChange</a>      (tKarplusStrong* <span class="keyword">const</span>, SKControlType type, <span class="keywordtype">float</span> value);</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tkarplusstrong.html#gadade0b8de0fddb719156b9940d72f8ff">tKarplusStrong_setStretch</a>         (tKarplusStrong* <span class="keyword">const</span>, <span class="keywordtype">float</span> stretch );</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tkarplusstrong.html#ga59bc5175836ad9aaf59dd13eb8a23581">tKarplusStrong_setPickupPosition</a>  (tKarplusStrong* <span class="keyword">const</span>, <span class="keywordtype">float</span> position );</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tkarplusstrong.html#gab0d9395a53c6df4699f7cb1b242abf04">tKarplusStrong_setBaseLoopGain</a>    (tKarplusStrong* <span class="keyword">const</span>, <span class="keywordtype">float</span> aGain );</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tkarplusstrong.html#ga32e83815fd063966411e48eaff2a23b8">tKarplusStrong_getLastOut</a>         (tKarplusStrong* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    </div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    </div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tSimpleLivingString</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    {</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;        </div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        <span class="keywordtype">float</span> freq, waveLengthInSamples;        <span class="comment">// the frequency of the string, determining delay length</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        <span class="keywordtype">float</span> dampFreq;    <span class="comment">// frequency for the bridge LP filter, in Hz</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <span class="keywordtype">float</span> decay; <span class="comment">// amplitude damping factor for the string (only active in mode 0)</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        <span class="keywordtype">int</span> levMode;</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        <span class="keywordtype">float</span> curr;</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        tLinearDelay delayLine;</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        tOnePole bridgeFilter;</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        tHighpass DCblocker;</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        tFeedbackLeveler fbLev;</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;        tExpSmooth wlSmooth;</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;    } _tSimpleLivingString;</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    </div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    <span class="keyword">typedef</span> _tSimpleLivingString* tSimpleLivingString;</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    </div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimplelivingstring.html#ga9c905b5e7e42d86fb1565fc7bebe7489">tSimpleLivingString_init</a>                (tSimpleLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> dampFreq,</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;                                                     <span class="keywordtype">float</span> decay, <span class="keywordtype">float</span> targetLev, <span class="keywordtype">float</span> levSmoothFactor,</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;                                                     <span class="keywordtype">float</span> levStrength, <span class="keywordtype">int</span> levMode, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimplelivingstring.html#ga87d9705a3cf73b73aecf42083eb3d921">tSimpleLivingString_initToPool</a>          (tSimpleLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> dampFreq,</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;                                                     <span class="keywordtype">float</span> decay, <span class="keywordtype">float</span> targetLev, <span class="keywordtype">float</span> levSmoothFactor,</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;                                                     <span class="keywordtype">float</span> levStrength, <span class="keywordtype">int</span> levMode, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimplelivingstring.html#ga9d08fedb273f78dfe7dc468736faee1c">tSimpleLivingString_free</a>                (tSimpleLivingString* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    </div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tsimplelivingstring.html#gae4a6c036a53365af66a92dac9d86f3c3">tSimpleLivingString_tick</a>                (tSimpleLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tsimplelivingstring.html#ga86a53b69513ad23136a75ed338deca3d">tSimpleLivingString_sample</a>              (tSimpleLivingString* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimplelivingstring.html#ga474a710fddae2d86bf79b11384f3709b">tSimpleLivingString_setFreq</a>             (tSimpleLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimplelivingstring.html#ga84804ae6c66949069c185fbc8d8f2ae9">tSimpleLivingString_setWaveLength</a>       (tSimpleLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> waveLength); <span class="comment">// in samples</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimplelivingstring.html#gafbeb5b41ab1d03c57bdc93e785a6adb7">tSimpleLivingString_setDampFreq</a>         (tSimpleLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> dampFreq);</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimplelivingstring.html#gad66e79ac86857f2c5c9af831254dcf66">tSimpleLivingString_setDecay</a>            (tSimpleLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> decay); <span class="comment">// should be near 1.0</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimplelivingstring.html#ga2d58bf73c0e7e92ddac30eece502e2be">tSimpleLivingString_setTargetLev</a>        (tSimpleLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> targetLev);</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimplelivingstring.html#gaeb957c0478dc7181b074dd51505b6f0d">tSimpleLivingString_setLevSmoothFactor</a>  (tSimpleLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> levSmoothFactor);</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimplelivingstring.html#gac76ca3acde529dcae1336fdbfccd498d">tSimpleLivingString_setLevStrength</a>      (tSimpleLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> levStrength);</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsimplelivingstring.html#ga951524437c11b10c1023ea5bf922e50e">tSimpleLivingString_setLevMode</a>          (tSimpleLivingString* <span class="keyword">const</span>, <span class="keywordtype">int</span> levMode);</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    </div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tLivingString</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    {</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        </div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;        <span class="keywordtype">float</span> freq, waveLengthInSamples;        <span class="comment">// the frequency of the whole string, determining delay length</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;        <span class="keywordtype">float</span> pickPos;    <span class="comment">// the pick position, dividing the string in two, in ratio</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;        <span class="keywordtype">float</span> prepIndex;    <span class="comment">// the amount of pressure on the pickpoint of the string (near 0=soft obj, near 1=hard obj)</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;        <span class="keywordtype">float</span> dampFreq;    <span class="comment">// frequency for the bridge LP filter, in Hz</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;        <span class="keywordtype">float</span> decay; <span class="comment">// amplitude damping factor for the string (only active in mode 0)</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;        <span class="keywordtype">int</span> levMode;</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;        <span class="keywordtype">float</span> curr;</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;        tLinearDelay delLF,delUF,delUB,delLB;    <span class="comment">// delay for lower/upper/forward/backward part of the waveguide model</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;        tOnePole bridgeFilter, nutFilter, prepFilterU, prepFilterL;</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;        tHighpass DCblockerL, DCblockerU;</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        tFeedbackLeveler fbLevU, fbLevL;</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;        tExpSmooth wlSmooth, ppSmooth;</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    } _tLivingString;</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    </div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    <span class="keyword">typedef</span> _tLivingString* tLivingString;</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    </div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlivingstring.html#ga7f29c68e9b01878aa3e0bf1d2029e617">tLivingString_init</a>                  (tLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> pickPos, <span class="keywordtype">float</span> prepIndex,</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;                                                 <span class="keywordtype">float</span> dampFreq, <span class="keywordtype">float</span> decay, <span class="keywordtype">float</span> targetLev, <span class="keywordtype">float</span> levSmoothFactor,</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;                                                 <span class="keywordtype">float</span> levStrength, <span class="keywordtype">int</span> levMode, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlivingstring.html#ga1d4d5b8511cbd1242e63b9eb1310a27c">tLivingString_initToPool</a>            (tLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> pickPos, <span class="keywordtype">float</span> prepIndex,</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;                                                 <span class="keywordtype">float</span> dampFreq, <span class="keywordtype">float</span> decay, <span class="keywordtype">float</span> targetLev, <span class="keywordtype">float</span> levSmoothFactor,</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;                                                 <span class="keywordtype">float</span> levStrength, <span class="keywordtype">int</span> levMode, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlivingstring.html#ga218b97b43f8b5183be6f64bd48c33363">tLivingString_free</a>                  (tLivingString* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    </div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tlivingstring.html#gab97180cbfaebe42696eaa6e4d60f18a8">tLivingString_tick</a>                  (tLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tlivingstring.html#gac1740a1f1c9c8f319d0317b21343bfa2">tLivingString_sample</a>                (tLivingString* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlivingstring.html#ga27d918a9c2031fb6e08a3ceb1cd40be8">tLivingString_setFreq</a>               (tLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlivingstring.html#ga58b626a71daeec65a9ddf3f6925a767e">tLivingString_setWaveLength</a>         (tLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> waveLength); <span class="comment">// in samples</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlivingstring.html#ga894b268e4c994e87ecfa92ebc6098453">tLivingString_setPickPos</a>            (tLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> pickPos);</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlivingstring.html#ga60dff1ade447e15dfb3d4f07dc04020e">tLivingString_setPrepIndex</a>          (tLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> prepIndex);</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlivingstring.html#ga4bb7183baf3014d12ca553b2238ba4da">tLivingString_setDampFreq</a>           (tLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> dampFreq);</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlivingstring.html#gaf0bd03d4756f67c29bedfed6ae8a2462">tLivingString_setDecay</a>              (tLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> decay); <span class="comment">// should be near 1.0</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlivingstring.html#ga53912452a30d9bcf1a7981487b98e7b9">tLivingString_setTargetLev</a>          (tLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> targetLev);</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlivingstring.html#gac5e7d1412dd4ffa46fae5e77f64437aa">tLivingString_setLevSmoothFactor</a>    (tLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> levSmoothFactor);</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlivingstring.html#ga0be415268ce535555db9b48c7a6c3bbb">tLivingString_setLevStrength</a>        (tLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> levStrength);</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tlivingstring.html#gab589985207a6de71c6ef03b7fe8aa5cb">tLivingString_setLevMode</a>            (tLivingString* <span class="keyword">const</span>, <span class="keywordtype">int</span> levMode);</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    </div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160; </div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160; </div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;        <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160; </div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tComplexLivingString</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;    {</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;        </div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;        <span class="keywordtype">float</span> freq, waveLengthInSamples;        <span class="comment">// the frequency of the whole string, determining delay length</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;        <span class="keywordtype">float</span> pickPos;    <span class="comment">// the pick position, dividing the string, in ratio</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        <span class="keywordtype">float</span> prepPos;    <span class="comment">// preparation position, in ratio</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        <span class="keywordtype">int</span> prepLower;</div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;        <span class="keywordtype">float</span> prepIndex;    <span class="comment">// the amount of pressure on the pickpoint of the string (near 0=soft obj, near 1=hard obj)</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        <span class="keywordtype">float</span> dampFreq;    <span class="comment">// frequency for the bridge LP filter, in Hz</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;        <span class="keywordtype">float</span> decay; <span class="comment">// amplitude damping factor for the string (only active in mode 0)</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;        <span class="keywordtype">int</span> levMode;</div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;        <span class="keywordtype">float</span> curr;</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;        tLinearDelay delLF,delUF, delMF, delMB, delUB,delLB;    <span class="comment">// delay for lower/upper/forward/backward part of the waveguide model</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;        tOnePole bridgeFilter, nutFilter, prepFilterU, prepFilterL;</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;        tHighpass DCblockerL, DCblockerU;</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;        tFeedbackLeveler fbLevU, fbLevL;</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;        tExpSmooth wlSmooth, pickPosSmooth, prepPosSmooth;</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;    } _tComplexLivingString;</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160; </div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    <span class="keyword">typedef</span> _tComplexLivingString* tComplexLivingString;</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160; </div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcomplexlivingstring.html#gabdc7c63658712975d512e17a82f96b26">tComplexLivingString_init</a>                  (tComplexLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> pickPos,</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;                                                        <span class="keywordtype">float</span> prepPos, <span class="keywordtype">float</span> prepIndex, <span class="keywordtype">float</span> dampFreq,</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;                                                        <span class="keywordtype">float</span> decay, <span class="keywordtype">float</span> targetLev, <span class="keywordtype">float</span> levSmoothFactor,</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;                                                        <span class="keywordtype">float</span> levStrength, <span class="keywordtype">int</span> levMode, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcomplexlivingstring.html#gaf8d2d61f57a0b916002dafc427a8b092">tComplexLivingString_initToPool</a>            (tComplexLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq, <span class="keywordtype">float</span> pickPos,</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;                                                        <span class="keywordtype">float</span> prepPos, <span class="keywordtype">float</span> prepIndex, <span class="keywordtype">float</span> dampFreq,</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;                                                        <span class="keywordtype">float</span> decay, <span class="keywordtype">float</span> targetLev, <span class="keywordtype">float</span> levSmoothFactor,</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;                                                        <span class="keywordtype">float</span> levStrength, <span class="keywordtype">int</span> levMode, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcomplexlivingstring.html#ga3a7b657a97195d44907de707485d25cb">tComplexLivingString_free</a>                  (tComplexLivingString* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160; </div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tcomplexlivingstring.html#gaf65d7ea89eff0c65bd81573f83506808">tComplexLivingString_tick</a>                  (tComplexLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tcomplexlivingstring.html#ga87ae54f64d1dacee2ba06639cfd30ba6">tComplexLivingString_sample</a>                (tComplexLivingString* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcomplexlivingstring.html#gabb770494f478d48ab52e44bd3c4f2ecc">tComplexLivingString_setFreq</a>               (tComplexLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcomplexlivingstring.html#ga567590c59dcaee1bfe8261fdef6bf6a3">tComplexLivingString_setWaveLength</a>         (tComplexLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> waveLength); <span class="comment">// in samples</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcomplexlivingstring.html#ga845a6f0ff9a7ee28bd8bfc72c31fd847">tComplexLivingString_setPickPos</a>            (tComplexLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> pickPos);</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcomplexlivingstring.html#ga59d258180890d388614b8e9d55e6dc91">tComplexLivingString_setPrepPos</a>            (tComplexLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> prepPos);</div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcomplexlivingstring.html#ga520c912a5c42bfb9a6d8b25bdcbbcf7a">tComplexLivingString_setPrepIndex</a>          (tComplexLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> prepIndex);</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcomplexlivingstring.html#ga08b249830479e2981d3653728f8a138b">tComplexLivingString_setDampFreq</a>           (tComplexLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> dampFreq);</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcomplexlivingstring.html#ga130cac764eb32901429fe3225e1a7094">tComplexLivingString_setDecay</a>              (tComplexLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> decay); <span class="comment">// should be near 1.0</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcomplexlivingstring.html#ga92d9f6282c0bed639d853f61e19bca83">tComplexLivingString_setTargetLev</a>          (tComplexLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> targetLev);</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcomplexlivingstring.html#gabc0a4196ec94ca64c223560ddadf17c6">tComplexLivingString_setLevSmoothFactor</a>    (tComplexLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> levSmoothFactor);</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcomplexlivingstring.html#gaa2798083851981b869ad0439bfcbcab2">tComplexLivingString_setLevStrength</a>        (tComplexLivingString* <span class="keyword">const</span>, <span class="keywordtype">float</span> levStrength);</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tcomplexlivingstring.html#ga2883cb67acc06cc1580702b3635e9780">tComplexLivingString_setLevMode</a>            (tComplexLivingString* <span class="keyword">const</span>, <span class="keywordtype">int</span> levMode);</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;    </div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;    <span class="comment">// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160; </div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;    </div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tReedTable</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;    {</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;        </div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;        <span class="keywordtype">float</span> offset, slope;</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;    } _tReedTable;</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;    </div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;    <span class="keyword">typedef</span> _tReedTable* tReedTable;</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;    </div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__treedtable.html#ga42424fceb88dd8a10b289ec1f1e2681b">tReedTable_init</a>         (tReedTable* <span class="keyword">const</span>, <span class="keywordtype">float</span> offset, <span class="keywordtype">float</span> slope, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__treedtable.html#ga7a3243fafaac0957fab59ab0fd105b87">tReedTable_initToPool</a>   (tReedTable* <span class="keyword">const</span>, <span class="keywordtype">float</span> offset, <span class="keywordtype">float</span> slope, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__treedtable.html#ga255b99f7e6c9a17d0a35c001d5fcb0e3">tReedTable_free</a>         (tReedTable* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;    </div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__treedtable.html#gac698936fdfe9bc1948f9dbc8e08c0316">tReedTable_tick</a>         (tReedTable* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__treedtable.html#ga90644dc2bd0a5c4c828e57efa3e056c1">tReedTable_tanh_tick</a>    (tReedTable* <span class="keyword">const</span>, <span class="keywordtype">float</span> input); <span class="comment">//tanh softclip version of reed table - replacing the hard clip in original stk code</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__treedtable.html#ga8a79fd2691b668dc835d3c1a904ead98">tReedTable_setOffset</a>    (tReedTable* <span class="keyword">const</span>, <span class="keywordtype">float</span> offset);</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__treedtable.html#gadce4a01b418b01d45f7fe8c59a72bd19">tReedTable_setSlope</a>     (tReedTable* <span class="keyword">const</span>, <span class="keywordtype">float</span> slope);</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;    </div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;    </div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;}</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160; </div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;<span class="preprocessor">#endif // LEAF_PHYSICAL_H_INCLUDED</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160; </div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="agroup__tcomplexlivingstring_html_gaa2798083851981b869ad0439bfcbcab2"><div class="ttname"><a href="group__tcomplexlivingstring.html#gaa2798083851981b869ad0439bfcbcab2">tComplexLivingString_setLevStrength</a></div><div class="ttdeci">void tComplexLivingString_setLevStrength(tComplexLivingString *const, float levStrength)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:820</div></div>
+<div class="ttc" id="agroup__treedtable_html_ga8a79fd2691b668dc835d3c1a904ead98"><div class="ttname"><a href="group__treedtable.html#ga8a79fd2691b668dc835d3c1a904ead98">tReedTable_setOffset</a></div><div class="ttdeci">void tReedTable_setOffset(tReedTable *const, float offset)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:961</div></div>
+<div class="ttc" id="agroup__tkarplusstrong_html_gadade0b8de0fddb719156b9940d72f8ff"><div class="ttname"><a href="group__tkarplusstrong.html#gadade0b8de0fddb719156b9940d72f8ff">tKarplusStrong_setStretch</a></div><div class="ttdeci">void tKarplusStrong_setStretch(tKarplusStrong *const, float stretch)</div><div class="ttdoc">Set the stretch &quot;factor&quot; of the string (0.0 - 1.0).</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:277</div></div>
+<div class="ttc" id="agroup__tlivingstring_html_ga218b97b43f8b5183be6f64bd48c33363"><div class="ttname"><a href="group__tlivingstring.html#ga218b97b43f8b5183be6f64bd48c33363">tLivingString_free</a></div><div class="ttdeci">void tLivingString_free(tLivingString *const)</div><div class="ttdoc">Free a tLivingString from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:516</div></div>
+<div class="ttc" id="agroup__tpluck_html_gab05fa8211c49e8e1301882ba0dfb4933"><div class="ttname"><a href="group__tpluck.html#gab05fa8211c49e8e1301882ba0dfb4933">tPluck_free</a></div><div class="ttdeci">void tPluck_free(tPluck *const)</div><div class="ttdoc">Free a tPluck from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:46</div></div>
+<div class="ttc" id="agroup__tkarplusstrong_html_ga6d0d8aaefcb4a3322aeee85ebcd6f19e"><div class="ttname"><a href="group__tkarplusstrong.html#ga6d0d8aaefcb4a3322aeee85ebcd6f19e">tKarplusStrong_controlChange</a></div><div class="ttdeci">void tKarplusStrong_controlChange(tKarplusStrong *const, SKControlType type, float value)</div><div class="ttdoc">Perform the control change specified by number and value (0.0 - 128.0). Use SKPickPosition,...</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:327</div></div>
+<div class="ttc" id="agroup__tkarplusstrong_html_ga186d7205bac18c523abee2ebc076e341"><div class="ttname"><a href="group__tkarplusstrong.html#ga186d7205bac18c523abee2ebc076e341">tKarplusStrong_init</a></div><div class="ttdeci">void tKarplusStrong_init(tKarplusStrong *const, float lowestFrequency, LEAF *const leaf)</div><div class="ttdoc">Initialize a tKarplusStrong to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:137</div></div>
+<div class="ttc" id="agroup__tcomplexlivingstring_html_ga3a7b657a97195d44907de707485d25cb"><div class="ttname"><a href="group__tcomplexlivingstring.html#ga3a7b657a97195d44907de707485d25cb">tComplexLivingString_free</a></div><div class="ttdeci">void tComplexLivingString_free(tComplexLivingString *const)</div><div class="ttdoc">Free a tComplexLivingString from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:720</div></div>
+<div class="ttc" id="agroup__tpluck_html_ga215b593535f5bff5a6887ce905bc7602"><div class="ttname"><a href="group__tpluck.html#ga215b593535f5bff5a6887ce905bc7602">tPluck_noteOff</a></div><div class="ttdeci">void tPluck_noteOff(tPluck *const, float amplitude)</div><div class="ttdoc">Stop a note with the given amplitude (speed of decay)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:95</div></div>
+<div class="ttc" id="agroup__treedtable_html_ga42424fceb88dd8a10b289ec1f1e2681b"><div class="ttname"><a href="group__treedtable.html#ga42424fceb88dd8a10b289ec1f1e2681b">tReedTable_init</a></div><div class="ttdeci">void tReedTable_init(tReedTable *const, float offset, float slope, LEAF *const leaf)</div><div class="ttdoc">Initialize a tReedTable to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:908</div></div>
+<div class="ttc" id="agroup__treedtable_html_gadce4a01b418b01d45f7fe8c59a72bd19"><div class="ttname"><a href="group__treedtable.html#gadce4a01b418b01d45f7fe8c59a72bd19">tReedTable_setSlope</a></div><div class="ttdeci">void tReedTable_setSlope(tReedTable *const, float slope)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:967</div></div>
+<div class="ttc" id="agroup__tcomplexlivingstring_html_gaf8d2d61f57a0b916002dafc427a8b092"><div class="ttname"><a href="group__tcomplexlivingstring.html#gaf8d2d61f57a0b916002dafc427a8b092">tComplexLivingString_initToPool</a></div><div class="ttdeci">void tComplexLivingString_initToPool(tComplexLivingString *const, float freq, float pickPos, float prepPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const)</div><div class="ttdoc">Initialize a tComplexLivingString to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:673</div></div>
+<div class="ttc" id="agroup__tsimplelivingstring_html_gafbeb5b41ab1d03c57bdc93e785a6adb7"><div class="ttname"><a href="group__tsimplelivingstring.html#gafbeb5b41ab1d03c57bdc93e785a6adb7">tSimpleLivingString_setDampFreq</a></div><div class="ttdeci">void tSimpleLivingString_setDampFreq(tSimpleLivingString *const, float dampFreq)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:414</div></div>
+<div class="ttc" id="agroup__tlivingstring_html_ga53912452a30d9bcf1a7981487b98e7b9"><div class="ttname"><a href="group__tlivingstring.html#ga53912452a30d9bcf1a7981487b98e7b9">tLivingString_setTargetLev</a></div><div class="ttdeci">void tLivingString_setTargetLev(tLivingString *const, float targetLev)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:590</div></div>
+<div class="ttc" id="agroup__tcomplexlivingstring_html_ga520c912a5c42bfb9a6d8b25bdcbbcf7a"><div class="ttname"><a href="group__tcomplexlivingstring.html#ga520c912a5c42bfb9a6d8b25bdcbbcf7a">tComplexLivingString_setPrepIndex</a></div><div class="ttdeci">void tComplexLivingString_setPrepIndex(tComplexLivingString *const, float prepIndex)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:783</div></div>
+<div class="ttc" id="agroup__tcomplexlivingstring_html_ga845a6f0ff9a7ee28bd8bfc72c31fd847"><div class="ttname"><a href="group__tcomplexlivingstring.html#ga845a6f0ff9a7ee28bd8bfc72c31fd847">tComplexLivingString_setPickPos</a></div><div class="ttdeci">void tComplexLivingString_setPickPos(tComplexLivingString *const, float pickPos)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:765</div></div>
+<div class="ttc" id="agroup__tlivingstring_html_ga1d4d5b8511cbd1242e63b9eb1310a27c"><div class="ttname"><a href="group__tlivingstring.html#ga1d4d5b8511cbd1242e63b9eb1310a27c">tLivingString_initToPool</a></div><div class="ttdeci">void tLivingString_initToPool(tLivingString *const, float freq, float pickPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const)</div><div class="ttdoc">Initialize a tLivingString to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:478</div></div>
+<div class="ttc" id="agroup__treedtable_html_ga90644dc2bd0a5c4c828e57efa3e056c1"><div class="ttname"><a href="group__treedtable.html#ga90644dc2bd0a5c4c828e57efa3e056c1">tReedTable_tanh_tick</a></div><div class="ttdeci">float tReedTable_tanh_tick(tReedTable *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:949</div></div>
+<div class="ttc" id="agroup__tsimplelivingstring_html_ga2d58bf73c0e7e92ddac30eece502e2be"><div class="ttname"><a href="group__tsimplelivingstring.html#ga2d58bf73c0e7e92ddac30eece502e2be">tSimpleLivingString_setTargetLev</a></div><div class="ttdeci">void tSimpleLivingString_setTargetLev(tSimpleLivingString *const, float targetLev)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:426</div></div>
+<div class="ttc" id="agroup__tkarplusstrong_html_ga5082c474d8ec5885fde227cfa67f180b"><div class="ttname"><a href="group__tkarplusstrong.html#ga5082c474d8ec5885fde227cfa67f180b">tKarplusStrong_setFrequency</a></div><div class="ttdeci">void tKarplusStrong_setFrequency(tKarplusStrong *const, float frequency)</div><div class="ttdoc">Set instrument parameters for a particular frequency.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:254</div></div>
+<div class="ttc" id="agroup__tsimplelivingstring_html_gaeb957c0478dc7181b074dd51505b6f0d"><div class="ttname"><a href="group__tsimplelivingstring.html#gaeb957c0478dc7181b074dd51505b6f0d">tSimpleLivingString_setLevSmoothFactor</a></div><div class="ttdeci">void tSimpleLivingString_setLevSmoothFactor(tSimpleLivingString *const, float levSmoothFactor)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:432</div></div>
+<div class="ttc" id="agroup__tlivingstring_html_ga27d918a9c2031fb6e08a3ceb1cd40be8"><div class="ttname"><a href="group__tlivingstring.html#ga27d918a9c2031fb6e08a3ceb1cd40be8">tLivingString_setFreq</a></div><div class="ttdeci">void tLivingString_setFreq(tLivingString *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:538</div></div>
+<div class="ttc" id="agroup__tkarplusstrong_html_gacda457f47786fdca8b06a30a01ffc135"><div class="ttname"><a href="group__tkarplusstrong.html#gacda457f47786fdca8b06a30a01ffc135">tKarplusStrong_tick</a></div><div class="ttdeci">float tKarplusStrong_tick(tKarplusStrong *const)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:199</div></div>
+<div class="ttc" id="agroup__tlivingstring_html_gab589985207a6de71c6ef03b7fe8aa5cb"><div class="ttname"><a href="group__tlivingstring.html#gab589985207a6de71c6ef03b7fe8aa5cb">tLivingString_setLevMode</a></div><div class="ttdeci">void tLivingString_setLevMode(tLivingString *const, int levMode)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:611</div></div>
+<div class="ttc" id="agroup__tcomplexlivingstring_html_ga92d9f6282c0bed639d853f61e19bca83"><div class="ttname"><a href="group__tcomplexlivingstring.html#ga92d9f6282c0bed639d853f61e19bca83">tComplexLivingString_setTargetLev</a></div><div class="ttdeci">void tComplexLivingString_setTargetLev(tComplexLivingString *const, float targetLev)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:806</div></div>
+<div class="ttc" id="agroup__tcomplexlivingstring_html_ga567590c59dcaee1bfe8261fdef6bf6a3"><div class="ttname"><a href="group__tcomplexlivingstring.html#ga567590c59dcaee1bfe8261fdef6bf6a3">tComplexLivingString_setWaveLength</a></div><div class="ttdeci">void tComplexLivingString_setWaveLength(tComplexLivingString *const, float waveLength)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:756</div></div>
+<div class="ttc" id="agroup__tpluck_html_ga5abd143bdbe1ff441491b4a09218e967"><div class="ttname"><a href="group__tpluck.html#ga5abd143bdbe1ff441491b4a09218e967">tPluck_tick</a></div><div class="ttdeci">float tPluck_tick(tPluck *const)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:64</div></div>
+<div class="ttc" id="agroup__tkarplusstrong_html_gab0d9395a53c6df4699f7cb1b242abf04"><div class="ttname"><a href="group__tkarplusstrong.html#gab0d9395a53c6df4699f7cb1b242abf04">tKarplusStrong_setBaseLoopGain</a></div><div class="ttdeci">void tKarplusStrong_setBaseLoopGain(tKarplusStrong *const, float aGain)</div><div class="ttdoc">Set the base loop gain.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:317</div></div>
+<div class="ttc" id="agroup__tlivingstring_html_gac5e7d1412dd4ffa46fae5e77f64437aa"><div class="ttname"><a href="group__tlivingstring.html#gac5e7d1412dd4ffa46fae5e77f64437aa">tLivingString_setLevSmoothFactor</a></div><div class="ttdeci">void tLivingString_setLevSmoothFactor(tLivingString *const, float levSmoothFactor)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:597</div></div>
+<div class="ttc" id="agroup__tkarplusstrong_html_gad1d984d1439ed44fa749bc6bb30d93a4"><div class="ttname"><a href="group__tkarplusstrong.html#gad1d984d1439ed44fa749bc6bb30d93a4">tKarplusStrong_noteOff</a></div><div class="ttdeci">void tKarplusStrong_noteOff(tKarplusStrong *const, float amplitude)</div><div class="ttdoc">Stop a note with the given amplitude (speed of decay).</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:243</div></div>
+<div class="ttc" id="agroup__tpluck_html_gac7b5e386d09e10b097545b7f9ee3d161"><div class="ttname"><a href="group__tpluck.html#gac7b5e386d09e10b097545b7f9ee3d161">tPluck_init</a></div><div class="ttdeci">void tPluck_init(tPluck *const, float lowestFrequency, LEAF *const leaf)</div><div class="ttdoc">Initialize a tPluck to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:20</div></div>
+<div class="ttc" id="agroup__tsimplelivingstring_html_gac76ca3acde529dcae1336fdbfccd498d"><div class="ttname"><a href="group__tsimplelivingstring.html#gac76ca3acde529dcae1336fdbfccd498d">tSimpleLivingString_setLevStrength</a></div><div class="ttdeci">void tSimpleLivingString_setLevStrength(tSimpleLivingString *const, float levStrength)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:438</div></div>
+<div class="ttc" id="agroup__tlivingstring_html_ga7f29c68e9b01878aa3e0bf1d2029e617"><div class="ttname"><a href="group__tlivingstring.html#ga7f29c68e9b01878aa3e0bf1d2029e617">tLivingString_init</a></div><div class="ttdeci">void tLivingString_init(tLivingString *const, float freq, float pickPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, LEAF *const leaf)</div><div class="ttdoc">Initialize a tLivingString to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:471</div></div>
+<div class="ttc" id="agroup__tpluck_html_ga4e23f3d5ec42910130c176662e9d7e91"><div class="ttname"><a href="group__tpluck.html#ga4e23f3d5ec42910130c176662e9d7e91">tPluck_pluck</a></div><div class="ttdeci">void tPluck_pluck(tPluck *const, float amplitude)</div><div class="ttdoc">Pluck the string.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:70</div></div>
+<div class="ttc" id="agroup__tsimplelivingstring_html_gae4a6c036a53365af66a92dac9d86f3c3"><div class="ttname"><a href="group__tsimplelivingstring.html#gae4a6c036a53365af66a92dac9d86f3c3">tSimpleLivingString_tick</a></div><div class="ttdeci">float tSimpleLivingString_tick(tSimpleLivingString *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:451</div></div>
+<div class="ttc" id="agroup__tlivingstring_html_ga0be415268ce535555db9b48c7a6c3bbb"><div class="ttname"><a href="group__tlivingstring.html#ga0be415268ce535555db9b48c7a6c3bbb">tLivingString_setLevStrength</a></div><div class="ttdeci">void tLivingString_setLevStrength(tLivingString *const, float levStrength)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:604</div></div>
+<div class="ttc" id="agroup__treedtable_html_ga255b99f7e6c9a17d0a35c001d5fcb0e3"><div class="ttname"><a href="group__treedtable.html#ga255b99f7e6c9a17d0a35c001d5fcb0e3">tReedTable_free</a></div><div class="ttdeci">void tReedTable_free(tReedTable *const)</div><div class="ttdoc">Free a tReedTable from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:923</div></div>
+<div class="ttc" id="agroup__tsimplelivingstring_html_ga86a53b69513ad23136a75ed338deca3d"><div class="ttname"><a href="group__tsimplelivingstring.html#ga86a53b69513ad23136a75ed338deca3d">tSimpleLivingString_sample</a></div><div class="ttdeci">float tSimpleLivingString_sample(tSimpleLivingString *const)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:463</div></div>
+<div class="ttc" id="agroup__tcomplexlivingstring_html_ga2883cb67acc06cc1580702b3635e9780"><div class="ttname"><a href="group__tcomplexlivingstring.html#ga2883cb67acc06cc1580702b3635e9780">tComplexLivingString_setLevMode</a></div><div class="ttdeci">void tComplexLivingString_setLevMode(tComplexLivingString *const, int levMode)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:827</div></div>
+<div class="ttc" id="agroup__tsimplelivingstring_html_ga951524437c11b10c1023ea5bf922e50e"><div class="ttname"><a href="group__tsimplelivingstring.html#ga951524437c11b10c1023ea5bf922e50e">tSimpleLivingString_setLevMode</a></div><div class="ttdeci">void tSimpleLivingString_setLevMode(tSimpleLivingString *const, int levMode)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:444</div></div>
+<div class="ttc" id="agroup__tpluck_html_ga8a2365d67f4b17a4f578fbb14f280e74"><div class="ttname"><a href="group__tpluck.html#ga8a2365d67f4b17a4f578fbb14f280e74">tPluck_getLastOut</a></div><div class="ttdeci">float tPluck_getLastOut(tPluck *const)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:58</div></div>
+<div class="ttc" id="agroup__tcomplexlivingstring_html_ga59d258180890d388614b8e9d55e6dc91"><div class="ttname"><a href="group__tcomplexlivingstring.html#ga59d258180890d388614b8e9d55e6dc91">tComplexLivingString_setPrepPos</a></div><div class="ttdeci">void tComplexLivingString_setPrepPos(tComplexLivingString *const, float prepPos)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:774</div></div>
+<div class="ttc" id="agroup__tkarplusstrong_html_ga0d98da9c7a0a458d0871399e3235bce5"><div class="ttname"><a href="group__tkarplusstrong.html#ga0d98da9c7a0a458d0871399e3235bce5">tKarplusStrong_free</a></div><div class="ttdeci">void tKarplusStrong_free(tKarplusStrong *const)</div><div class="ttdoc">Free a tKarplusStrong from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:176</div></div>
+<div class="ttc" id="agroup__tsimplelivingstring_html_ga87d9705a3cf73b73aecf42083eb3d921"><div class="ttname"><a href="group__tsimplelivingstring.html#ga87d9705a3cf73b73aecf42083eb3d921">tSimpleLivingString_initToPool</a></div><div class="ttdeci">void tSimpleLivingString_initToPool(tSimpleLivingString *const, float freq, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const)</div><div class="ttdoc">Initialize a tSimpleLivingString to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:359</div></div>
+<div class="ttc" id="agroup__tsimplelivingstring_html_ga9d08fedb273f78dfe7dc468736faee1c"><div class="ttname"><a href="group__tsimplelivingstring.html#ga9d08fedb273f78dfe7dc468736faee1c">tSimpleLivingString_free</a></div><div class="ttdeci">void tSimpleLivingString_free(tSimpleLivingString *const)</div><div class="ttdoc">Free a tSimpleLivingString from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:380</div></div>
+<div class="ttc" id="agroup__tlivingstring_html_gab97180cbfaebe42696eaa6e4d60f18a8"><div class="ttname"><a href="group__tlivingstring.html#gab97180cbfaebe42696eaa6e4d60f18a8">tLivingString_tick</a></div><div class="ttdeci">float tLivingString_tick(tLivingString *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:619</div></div>
+<div class="ttc" id="agroup__treedtable_html_ga7a3243fafaac0957fab59ab0fd105b87"><div class="ttname"><a href="group__treedtable.html#ga7a3243fafaac0957fab59ab0fd105b87">tReedTable_initToPool</a></div><div class="ttdeci">void tReedTable_initToPool(tReedTable *const, float offset, float slope, tMempool *const)</div><div class="ttdoc">Initialize a tReedTable to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:913</div></div>
+<div class="ttc" id="agroup__tpluck_html_ga371e8ab225a043b3415979766647d155"><div class="ttname"><a href="group__tpluck.html#ga371e8ab225a043b3415979766647d155">tPluck_controlChange</a></div><div class="ttdeci">void tPluck_controlChange(tPluck *const, int number, float value)</div><div class="ttdoc">Perform the control change specified by number and value (0.0 - 128.0).</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:125</div></div>
+<div class="ttc" id="agroup__tkarplusstrong_html_ga5b29e0e05ad35914453d732b4978e572"><div class="ttname"><a href="group__tkarplusstrong.html#ga5b29e0e05ad35914453d732b4978e572">tKarplusStrong_noteOn</a></div><div class="ttdeci">void tKarplusStrong_noteOn(tKarplusStrong *const, float frequency, float amplitude)</div><div class="ttdoc">Start a note with the given frequency and amplitude.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:236</div></div>
+<div class="ttc" id="agroup__tsimplelivingstring_html_ga84804ae6c66949069c185fbc8d8f2ae9"><div class="ttname"><a href="group__tsimplelivingstring.html#ga84804ae6c66949069c185fbc8d8f2ae9">tSimpleLivingString_setWaveLength</a></div><div class="ttdeci">void tSimpleLivingString_setWaveLength(tSimpleLivingString *const, float waveLength)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:404</div></div>
+<div class="ttc" id="agroup__tkarplusstrong_html_ga32e83815fd063966411e48eaff2a23b8"><div class="ttname"><a href="group__tkarplusstrong.html#ga32e83815fd063966411e48eaff2a23b8">tKarplusStrong_getLastOut</a></div><div class="ttdeci">float tKarplusStrong_getLastOut(tKarplusStrong *const)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:193</div></div>
+<div class="ttc" id="agroup__tkarplusstrong_html_ga77d0a866dda8f75f5d587e8167d9c245"><div class="ttname"><a href="group__tkarplusstrong.html#ga77d0a866dda8f75f5d587e8167d9c245">tKarplusStrong_initToPool</a></div><div class="ttdeci">void tKarplusStrong_initToPool(tKarplusStrong *const, float lowestFrequency, tMempool *const)</div><div class="ttdoc">Initialize a tKarplusStrong to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:142</div></div>
+<div class="ttc" id="agroup__treedtable_html_gac698936fdfe9bc1948f9dbc8e08c0316"><div class="ttname"><a href="group__treedtable.html#gac698936fdfe9bc1948f9dbc8e08c0316">tReedTable_tick</a></div><div class="ttdeci">float tReedTable_tick(tReedTable *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:930</div></div>
+<div class="ttc" id="agroup__tcomplexlivingstring_html_ga130cac764eb32901429fe3225e1a7094"><div class="ttname"><a href="group__tcomplexlivingstring.html#ga130cac764eb32901429fe3225e1a7094">tComplexLivingString_setDecay</a></div><div class="ttdeci">void tComplexLivingString_setDecay(tComplexLivingString *const, float decay)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:800</div></div>
+<div class="ttc" id="agroup__tpluck_html_ga9f20651baa36041ba43836dbe7c1de5b"><div class="ttname"><a href="group__tpluck.html#ga9f20651baa36041ba43836dbe7c1de5b">tPluck_setFrequency</a></div><div class="ttdeci">void tPluck_setFrequency(tPluck *const, float frequency)</div><div class="ttdoc">Set instrument parameters for a particular frequency.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:106</div></div>
+<div class="ttc" id="agroup__tcomplexlivingstring_html_gaf65d7ea89eff0c65bd81573f83506808"><div class="ttname"><a href="group__tcomplexlivingstring.html#gaf65d7ea89eff0c65bd81573f83506808">tComplexLivingString_tick</a></div><div class="ttdeci">float tComplexLivingString_tick(tComplexLivingString *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:835</div></div>
+<div class="ttc" id="agroup__tlivingstring_html_ga894b268e4c994e87ecfa92ebc6098453"><div class="ttname"><a href="group__tlivingstring.html#ga894b268e4c994e87ecfa92ebc6098453">tLivingString_setPickPos</a></div><div class="ttdeci">void tLivingString_setPickPos(tLivingString *const, float pickPos)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:558</div></div>
+<div class="ttc" id="agroup__tcomplexlivingstring_html_gabb770494f478d48ab52e44bd3c4f2ecc"><div class="ttname"><a href="group__tcomplexlivingstring.html#gabb770494f478d48ab52e44bd3c4f2ecc">tComplexLivingString_setFreq</a></div><div class="ttdeci">void tComplexLivingString_setFreq(tComplexLivingString *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:745</div></div>
+<div class="ttc" id="agroup__tlivingstring_html_gac1740a1f1c9c8f319d0317b21343bfa2"><div class="ttname"><a href="group__tlivingstring.html#gac1740a1f1c9c8f319d0317b21343bfa2">tLivingString_sample</a></div><div class="ttdeci">float tLivingString_sample(tLivingString *const)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:655</div></div>
+<div class="ttc" id="agroup__tcomplexlivingstring_html_gabdc7c63658712975d512e17a82f96b26"><div class="ttname"><a href="group__tcomplexlivingstring.html#gabdc7c63658712975d512e17a82f96b26">tComplexLivingString_init</a></div><div class="ttdeci">void tComplexLivingString_init(tComplexLivingString *const, float freq, float pickPos, float prepPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, LEAF *const leaf)</div><div class="ttdoc">Initialize a tComplexLivingString to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:666</div></div>
+<div class="ttc" id="agroup__tlivingstring_html_ga4bb7183baf3014d12ca553b2238ba4da"><div class="ttname"><a href="group__tlivingstring.html#ga4bb7183baf3014d12ca553b2238ba4da">tLivingString_setDampFreq</a></div><div class="ttdeci">void tLivingString_setDampFreq(tLivingString *const, float dampFreq)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:575</div></div>
+<div class="ttc" id="agroup__tcomplexlivingstring_html_gabc0a4196ec94ca64c223560ddadf17c6"><div class="ttname"><a href="group__tcomplexlivingstring.html#gabc0a4196ec94ca64c223560ddadf17c6">tComplexLivingString_setLevSmoothFactor</a></div><div class="ttdeci">void tComplexLivingString_setLevSmoothFactor(tComplexLivingString *const, float levSmoothFactor)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:813</div></div>
+<div class="ttc" id="agroup__tsimplelivingstring_html_gad66e79ac86857f2c5c9af831254dcf66"><div class="ttname"><a href="group__tsimplelivingstring.html#gad66e79ac86857f2c5c9af831254dcf66">tSimpleLivingString_setDecay</a></div><div class="ttdeci">void tSimpleLivingString_setDecay(tSimpleLivingString *const, float decay)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:420</div></div>
+<div class="ttc" id="agroup__tlivingstring_html_ga58b626a71daeec65a9ddf3f6925a767e"><div class="ttname"><a href="group__tlivingstring.html#ga58b626a71daeec65a9ddf3f6925a767e">tLivingString_setWaveLength</a></div><div class="ttdeci">void tLivingString_setWaveLength(tLivingString *const, float waveLength)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:549</div></div>
+<div class="ttc" id="agroup__tlivingstring_html_ga60dff1ade447e15dfb3d4f07dc04020e"><div class="ttname"><a href="group__tlivingstring.html#ga60dff1ade447e15dfb3d4f07dc04020e">tLivingString_setPrepIndex</a></div><div class="ttdeci">void tLivingString_setPrepIndex(tLivingString *const, float prepIndex)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:567</div></div>
+<div class="ttc" id="agroup__tcomplexlivingstring_html_ga08b249830479e2981d3653728f8a138b"><div class="ttname"><a href="group__tcomplexlivingstring.html#ga08b249830479e2981d3653728f8a138b">tComplexLivingString_setDampFreq</a></div><div class="ttdeci">void tComplexLivingString_setDampFreq(tComplexLivingString *const, float dampFreq)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:791</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<div class="ttc" id="agroup__tcomplexlivingstring_html_ga87ae54f64d1dacee2ba06639cfd30ba6"><div class="ttname"><a href="group__tcomplexlivingstring.html#ga87ae54f64d1dacee2ba06639cfd30ba6">tComplexLivingString_sample</a></div><div class="ttdeci">float tComplexLivingString_sample(tComplexLivingString *const)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:897</div></div>
+<div class="ttc" id="agroup__tlivingstring_html_gaf0bd03d4756f67c29bedfed6ae8a2462"><div class="ttname"><a href="group__tlivingstring.html#gaf0bd03d4756f67c29bedfed6ae8a2462">tLivingString_setDecay</a></div><div class="ttdeci">void tLivingString_setDecay(tLivingString *const, float decay)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:584</div></div>
+<div class="ttc" id="agroup__tpluck_html_ga4aa769eb18600d5f777a2d33e18fb7cb"><div class="ttname"><a href="group__tpluck.html#ga4aa769eb18600d5f777a2d33e18fb7cb">tPluck_noteOn</a></div><div class="ttdeci">void tPluck_noteOn(tPluck *const, float frequency, float amplitude)</div><div class="ttdoc">Start a note with the given frequency and amplitude.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:86</div></div>
+<div class="ttc" id="agroup__tkarplusstrong_html_ga59bc5175836ad9aaf59dd13eb8a23581"><div class="ttname"><a href="group__tkarplusstrong.html#ga59bc5175836ad9aaf59dd13eb8a23581">tKarplusStrong_setPickupPosition</a></div><div class="ttdeci">void tKarplusStrong_setPickupPosition(tKarplusStrong *const, float position)</div><div class="ttdoc">Set the pluck or &quot;excitation&quot; position along the string (0.0 - 1.0).</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:305</div></div>
+<div class="ttc" id="agroup__tsimplelivingstring_html_ga474a710fddae2d86bf79b11384f3709b"><div class="ttname"><a href="group__tsimplelivingstring.html#ga474a710fddae2d86bf79b11384f3709b">tSimpleLivingString_setFreq</a></div><div class="ttdeci">void tSimpleLivingString_setFreq(tSimpleLivingString *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:393</div></div>
+<div class="ttc" id="agroup__tkarplusstrong_html_ga3fe232ca203991c000ad17ea41abc5b3"><div class="ttname"><a href="group__tkarplusstrong.html#ga3fe232ca203991c000ad17ea41abc5b3">tKarplusStrong_pluck</a></div><div class="ttdeci">void tKarplusStrong_pluck(tKarplusStrong *const, float amplitude)</div><div class="ttdoc">Pluck the string.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:218</div></div>
+<div class="ttc" id="agroup__tsimplelivingstring_html_ga9c905b5e7e42d86fb1565fc7bebe7489"><div class="ttname"><a href="group__tsimplelivingstring.html#ga9c905b5e7e42d86fb1565fc7bebe7489">tSimpleLivingString_init</a></div><div class="ttdeci">void tSimpleLivingString_init(tSimpleLivingString *const, float freq, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, LEAF *const leaf)</div><div class="ttdoc">Initialize a tSimpleLivingString to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:352</div></div>
+<div class="ttc" id="agroup__tpluck_html_ga6fce342b82d04d5b30ebeadc0ac2102d"><div class="ttname"><a href="group__tpluck.html#ga6fce342b82d04d5b30ebeadc0ac2102d">tPluck_initToPool</a></div><div class="ttdeci">void tPluck_initToPool(tPluck *const, float lowestFrequency, tMempool *const)</div><div class="ttdoc">Initialize a tPluck to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-physical.c:25</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-reverb_8h_source.html
@@ -1,0 +1,298 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-reverb.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-reverb.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*==============================================================================</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> leaf-reverb.h</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> Created: 20 Jan 2017 12:02:04pm</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> Author:  Michael R Mulshine</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> ==============================================================================*/</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#ifndef LEAF_REVERB_H_INCLUDED</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define LEAF_REVERB_H_INCLUDED</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;leaf-global.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;leaf-delay.h&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;leaf-filters.h&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;leaf-oscillators.h&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tPRCReverb</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    {</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        </div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        <span class="keywordtype">float</span> mix, t60;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        <span class="keywordtype">float</span> inv_441;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        tDelay allpassDelays[2];</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        tDelay combDelay;</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <span class="keywordtype">float</span> allpassCoeff;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keywordtype">float</span> combCoeff;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        <span class="keywordtype">float</span> lastIn, lastOut;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    } _tPRCReverb;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    </div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keyword">typedef</span> _tPRCReverb* tPRCReverb;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tprcreverb.html#ga1632574775fdc27565f7f938c86f0188">tPRCReverb_init</a>         (tPRCReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> t60, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tprcreverb.html#gad297a10c21ece9dbca81234144693ccb">tPRCReverb_initToPool</a>   (tPRCReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> t60, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tprcreverb.html#ga38fca3e880e0c5876453d680aa4ed02f">tPRCReverb_free</a>         (tPRCReverb* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tprcreverb.html#gac7f9a1553c85d1aefc722242a4d60df7">tPRCReverb_clear</a>        (tPRCReverb* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tprcreverb.html#ga30441f2661cf646276a33b58ade60088">tPRCReverb_tick</a>         (tPRCReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tprcreverb.html#ga778bb9ee511e3aa263b4b368fa898e05">tPRCReverb_setT60</a>       (tPRCReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> t60);</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tprcreverb.html#gacb56b78580c95fd6fefbd7346bf6e6b0">tPRCReverb_setMix</a>       (tPRCReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> mix);</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    </div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    </div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tNReverb</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    {</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        <span class="keywordtype">float</span> mix, t60;</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        </div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        <span class="keywordtype">float</span> inv_sr, inv_441;</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        tLinearDelay allpassDelays[8];</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        tLinearDelay combDelays[6];</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        <span class="keywordtype">float</span> allpassCoeff;</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        <span class="keywordtype">float</span> combCoeffs[6];</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <span class="keywordtype">float</span> lowpassState;</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        </div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <span class="keywordtype">float</span> lastIn, lastOut;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    } _tNReverb;</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keyword">typedef</span> _tNReverb* tNReverb;</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tnreverb.html#ga3f5f7bc51b7243b388b9efce99c4d409">tNReverb_init</a>           (tNReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> t60, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tnreverb.html#ga7706f638cebfe55b14524e4a79889046">tNReverb_initToPool</a>     (tNReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> t60, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tnreverb.html#ga5fd99fec8124a8874fd3ac460a24f670">tNReverb_free</a>           (tNReverb* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tnreverb.html#gaa349525bb82ec4c02de42d9571cc4bb3">tNReverb_clear</a>          (tNReverb* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tnreverb.html#gad13adebe50c0f7af789ee4866720ee41">tNReverb_tick</a>           (tNReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tnreverb.html#gac8ae2782156ef22133de8acd9f4fe6fa">tNReverb_tickStereo</a>     (tNReverb* <span class="keyword">const</span> rev, <span class="keywordtype">float</span> input, <span class="keywordtype">float</span>* output);</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tnreverb.html#ga7355a61ee1185d19e9265e5e7797cf95">tNReverb_setT60</a>         (tNReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> t60);</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tnreverb.html#gab915282eb337ebbf4ced8e20827d082b">tNReverb_setMix</a>         (tNReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> mix);</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    </div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    </div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tDattorroReverb</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    {</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;        </div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;        </div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;        <span class="keywordtype">float</span>   predelay;</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;        <span class="keywordtype">float</span>   input_filter;</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        <span class="keywordtype">float</span>   feedback_filter;</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        <span class="keywordtype">float</span>   feedback_gain;</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;        <span class="keywordtype">float</span>   mix;</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        uint32_t frozen;</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;        </div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        <span class="keywordtype">float</span>   size, size_max, t;</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        </div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        <span class="keywordtype">float</span>   f1_delay_2_last,</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        f2_delay_2_last;</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        </div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        <span class="keywordtype">float</span>   f1_last,</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        f2_last;</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <span class="comment">// INPUT</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        tTapeDelay  in_delay;</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        tOnePole    in_filter;</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        tAllpass    in_allpass[4];</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        </div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <span class="comment">// FEEDBACK 1</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        tAllpass    f1_allpass;</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        tTapeDelay  f1_delay_1;</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        tOnePole    f1_filter;</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        tTapeDelay  f1_delay_2;</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        tTapeDelay  f1_delay_3;</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        tHighpass   f1_hp;</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        </div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        tCycle      f1_lfo;</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;        <span class="comment">// FEEDBACK 2</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        tAllpass    f2_allpass;</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        tTapeDelay  f2_delay_1;</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        tOnePole    f2_filter;</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        tTapeDelay  f2_delay_2;</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        tTapeDelay  f2_delay_3;</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        tHighpass   f2_hp;</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        tCycle      f2_lfo;</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    } _tDattorroReverb;</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    </div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    <span class="keyword">typedef</span> _tDattorroReverb* tDattorroReverb;</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    </div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdattorroreverb.html#ga1fbf4d2737ea1b0b97a01178e4d1877d">tDattorroReverb_init</a>              (tDattorroReverb* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdattorroreverb.html#gae51b1343ff796699056c38c8b0284457">tDattorroReverb_initToPool</a>        (tDattorroReverb* <span class="keyword">const</span>, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdattorroreverb.html#ga9615f3139fd6575f1195357498cf2ed7">tDattorroReverb_free</a>              (tDattorroReverb* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    </div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdattorroreverb.html#ga7f6787dc77153fe5445aa4b463d52806">tDattorroReverb_clear</a>             (tDattorroReverb* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tdattorroreverb.html#gad857360fa2a7ec20d27256a13b3483e7">tDattorroReverb_tick</a>              (tDattorroReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdattorroreverb.html#gae9da039d8745027c1c477e4a2192ca49">tDattorroReverb_tickStereo</a>        (tDattorroReverb* <span class="keyword">const</span> rev, <span class="keywordtype">float</span> input, <span class="keywordtype">float</span>* output);</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdattorroreverb.html#gaaab4b58c9edecbd36f8fed4676074cf4">tDattorroReverb_setMix</a>            (tDattorroReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> mix);</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdattorroreverb.html#ga61767ff6ff79c978ccd31533ab528b5e">tDattorroReverb_setFreeze</a>         (tDattorroReverb* <span class="keyword">const</span> rev, uint32_t freeze);</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdattorroreverb.html#gab035568f53e3afa55e7ca24770ece876">tDattorroReverb_setHP</a>             (tDattorroReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdattorroreverb.html#ga8286f438259920862757bac42c208ec4">tDattorroReverb_setSize</a>           (tDattorroReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> size);</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdattorroreverb.html#ga3ea62bc97dde4dfb099373a19b699024">tDattorroReverb_setInputDelay</a>     (tDattorroReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> preDelay);</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdattorroreverb.html#ga58a92c0ece1d13df4b6e860c76d5bc4e">tDattorroReverb_setInputFilter</a>    (tDattorroReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdattorroreverb.html#ga6bdaee9a877fb5258242b38c7129e87f">tDattorroReverb_setFeedbackFilter</a> (tDattorroReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tdattorroreverb.html#ga397ca662f24dc8850d68fb2d9f134e75">tDattorroReverb_setFeedbackGain</a>   (tDattorroReverb* <span class="keyword">const</span>, <span class="keywordtype">float</span> gain);</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    </div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;}</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160; </div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="preprocessor">#endif  // LEAF_REVERB_H_INCLUDED</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160; </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="agroup__tdattorroreverb_html_gae9da039d8745027c1c477e4a2192ca49"><div class="ttname"><a href="group__tdattorroreverb.html#gae9da039d8745027c1c477e4a2192ca49">tDattorroReverb_tickStereo</a></div><div class="ttdeci">void tDattorroReverb_tickStereo(tDattorroReverb *const rev, float input, float *output)</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:607</div></div>
+<div class="ttc" id="agroup__tprcreverb_html_ga30441f2661cf646276a33b58ade60088"><div class="ttname"><a href="group__tprcreverb.html#ga30441f2661cf646276a33b58ade60088">tPRCReverb_tick</a></div><div class="ttdeci">float tPRCReverb_tick(tPRCReverb *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:104</div></div>
+<div class="ttc" id="agroup__tdattorroreverb_html_gaaab4b58c9edecbd36f8fed4676074cf4"><div class="ttname"><a href="group__tdattorroreverb.html#gaaab4b58c9edecbd36f8fed4676074cf4">tDattorroReverb_setMix</a></div><div class="ttdeci">void tDattorroReverb_setMix(tDattorroReverb *const, float mix)</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:727</div></div>
+<div class="ttc" id="agroup__tdattorroreverb_html_ga9615f3139fd6575f1195357498cf2ed7"><div class="ttname"><a href="group__tdattorroreverb.html#ga9615f3139fd6575f1195357498cf2ed7">tDattorroReverb_free</a></div><div class="ttdeci">void tDattorroReverb_free(tDattorroReverb *const)</div><div class="ttdoc">Free a tDattorroReverb from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:442</div></div>
+<div class="ttc" id="agroup__tnreverb_html_ga7355a61ee1185d19e9265e5e7797cf95"><div class="ttname"><a href="group__tnreverb.html#ga7355a61ee1185d19e9265e5e7797cf95">tNReverb_setT60</a></div><div class="ttdeci">void tNReverb_setT60(tNReverb *const, float t60)</div><div class="ttdoc">Set reverb time in seconds.</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:214</div></div>
+<div class="ttc" id="agroup__tprcreverb_html_ga1632574775fdc27565f7f938c86f0188"><div class="ttname"><a href="group__tprcreverb.html#ga1632574775fdc27565f7f938c86f0188">tPRCReverb_init</a></div><div class="ttdeci">void tPRCReverb_init(tPRCReverb *const, float t60, LEAF *const leaf)</div><div class="ttdoc">Initialize a tPRCReverb to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:22</div></div>
+<div class="ttc" id="agroup__tdattorroreverb_html_gab035568f53e3afa55e7ca24770ece876"><div class="ttname"><a href="group__tdattorroreverb.html#gab035568f53e3afa55e7ca24770ece876">tDattorroReverb_setHP</a></div><div class="ttdeci">void tDattorroReverb_setHP(tDattorroReverb *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:763</div></div>
+<div class="ttc" id="agroup__tprcreverb_html_gacb56b78580c95fd6fefbd7346bf6e6b0"><div class="ttname"><a href="group__tprcreverb.html#gacb56b78580c95fd6fefbd7346bf6e6b0">tPRCReverb_setMix</a></div><div class="ttdeci">void tPRCReverb_setMix(tPRCReverb *const, float mix)</div><div class="ttdoc">Set mix between dry input and wet output signal.</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:98</div></div>
+<div class="ttc" id="agroup__tnreverb_html_gac8ae2782156ef22133de8acd9f4fe6fa"><div class="ttname"><a href="group__tnreverb.html#gac8ae2782156ef22133de8acd9f4fe6fa">tNReverb_tickStereo</a></div><div class="ttdeci">void tNReverb_tickStereo(tNReverb *const rev, float input, float *output)</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:305</div></div>
+<div class="ttc" id="agroup__tdattorroreverb_html_ga8286f438259920862757bac42c208ec4"><div class="ttname"><a href="group__tdattorroreverb.html#ga8286f438259920862757bac42c208ec4">tDattorroReverb_setSize</a></div><div class="ttdeci">void tDattorroReverb_setSize(tDattorroReverb *const, float size)</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:772</div></div>
+<div class="ttc" id="agroup__tdattorroreverb_html_gad857360fa2a7ec20d27256a13b3483e7"><div class="ttname"><a href="group__tdattorroreverb.html#gad857360fa2a7ec20d27256a13b3483e7">tDattorroReverb_tick</a></div><div class="ttdeci">float tDattorroReverb_tick(tDattorroReverb *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:497</div></div>
+<div class="ttc" id="agroup__tnreverb_html_gad13adebe50c0f7af789ee4866720ee41"><div class="ttname"><a href="group__tnreverb.html#gad13adebe50c0f7af789ee4866720ee41">tNReverb_tick</a></div><div class="ttdeci">float tNReverb_tick(tNReverb *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:248</div></div>
+<div class="ttc" id="agroup__tnreverb_html_ga3f5f7bc51b7243b388b9efce99c4d409"><div class="ttname"><a href="group__tnreverb.html#ga3f5f7bc51b7243b388b9efce99c4d409">tNReverb_init</a></div><div class="ttdeci">void tNReverb_init(tNReverb *const, float t60, LEAF *const leaf)</div><div class="ttdoc">Initialize a tNReverb to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:147</div></div>
+<div class="ttc" id="agroup__tdattorroreverb_html_ga3ea62bc97dde4dfb099373a19b699024"><div class="ttname"><a href="group__tdattorroreverb.html#ga3ea62bc97dde4dfb099373a19b699024">tDattorroReverb_setInputDelay</a></div><div class="ttdeci">void tDattorroReverb_setInputDelay(tDattorroReverb *const, float preDelay)</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:805</div></div>
+<div class="ttc" id="agroup__tnreverb_html_ga5fd99fec8124a8874fd3ac460a24f670"><div class="ttname"><a href="group__tnreverb.html#ga5fd99fec8124a8874fd3ac460a24f670">tNReverb_free</a></div><div class="ttdeci">void tNReverb_free(tNReverb *const)</div><div class="ttdoc">Free a tNReverb from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:197</div></div>
+<div class="ttc" id="agroup__tdattorroreverb_html_gae51b1343ff796699056c38c8b0284457"><div class="ttname"><a href="group__tdattorroreverb.html#gae51b1343ff796699056c38c8b0284457">tDattorroReverb_initToPool</a></div><div class="ttdeci">void tDattorroReverb_initToPool(tDattorroReverb *const, tMempool *const)</div><div class="ttdoc">Initialize a tDattorroReverb to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:378</div></div>
+<div class="ttc" id="agroup__tdattorroreverb_html_ga1fbf4d2737ea1b0b97a01178e4d1877d"><div class="ttname"><a href="group__tdattorroreverb.html#ga1fbf4d2737ea1b0b97a01178e4d1877d">tDattorroReverb_init</a></div><div class="ttdeci">void tDattorroReverb_init(tDattorroReverb *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a tDattorroReverb to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:373</div></div>
+<div class="ttc" id="agroup__tnreverb_html_gab915282eb337ebbf4ced8e20827d082b"><div class="ttname"><a href="group__tnreverb.html#gab915282eb337ebbf4ced8e20827d082b">tNReverb_setMix</a></div><div class="ttdeci">void tNReverb_setMix(tNReverb *const, float mix)</div><div class="ttdoc">Set mix between dry input and wet output signal.</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:227</div></div>
+<div class="ttc" id="agroup__tdattorroreverb_html_ga6bdaee9a877fb5258242b38c7129e87f"><div class="ttname"><a href="group__tdattorroreverb.html#ga6bdaee9a877fb5258242b38c7129e87f">tDattorroReverb_setFeedbackFilter</a></div><div class="ttdeci">void tDattorroReverb_setFeedbackFilter(tDattorroReverb *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:823</div></div>
+<div class="ttc" id="agroup__tprcreverb_html_gad297a10c21ece9dbca81234144693ccb"><div class="ttname"><a href="group__tprcreverb.html#gad297a10c21ece9dbca81234144693ccb">tPRCReverb_initToPool</a></div><div class="ttdeci">void tPRCReverb_initToPool(tPRCReverb *const, float t60, tMempool *const)</div><div class="ttdoc">Initialize a tPRCReverb to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:27</div></div>
+<div class="ttc" id="agroup__tprcreverb_html_ga38fca3e880e0c5876453d680aa4ed02f"><div class="ttname"><a href="group__tprcreverb.html#ga38fca3e880e0c5876453d680aa4ed02f">tPRCReverb_free</a></div><div class="ttdeci">void tPRCReverb_free(tPRCReverb *const)</div><div class="ttdoc">Free a tPRCReverb from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:66</div></div>
+<div class="ttc" id="agroup__tdattorroreverb_html_ga61767ff6ff79c978ccd31533ab528b5e"><div class="ttname"><a href="group__tdattorroreverb.html#ga61767ff6ff79c978ccd31533ab528b5e">tDattorroReverb_setFreeze</a></div><div class="ttdeci">void tDattorroReverb_setFreeze(tDattorroReverb *const rev, uint32_t freeze)</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:733</div></div>
+<div class="ttc" id="agroup__tprcreverb_html_ga778bb9ee511e3aa263b4b368fa898e05"><div class="ttname"><a href="group__tprcreverb.html#ga778bb9ee511e3aa263b4b368fa898e05">tPRCReverb_setT60</a></div><div class="ttdeci">void tPRCReverb_setT60(tPRCReverb *const, float t60)</div><div class="ttdoc">Set reverb time in seconds.</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:85</div></div>
+<div class="ttc" id="agroup__tdattorroreverb_html_ga397ca662f24dc8850d68fb2d9f134e75"><div class="ttname"><a href="group__tdattorroreverb.html#ga397ca662f24dc8850d68fb2d9f134e75">tDattorroReverb_setFeedbackGain</a></div><div class="ttdeci">void tDattorroReverb_setFeedbackGain(tDattorroReverb *const, float gain)</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:833</div></div>
+<div class="ttc" id="agroup__tnreverb_html_gaa349525bb82ec4c02de42d9571cc4bb3"><div class="ttname"><a href="group__tnreverb.html#gaa349525bb82ec4c02de42d9571cc4bb3">tNReverb_clear</a></div><div class="ttdeci">void tNReverb_clear(tNReverb *const)</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:233</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<div class="ttc" id="agroup__tdattorroreverb_html_ga7f6787dc77153fe5445aa4b463d52806"><div class="ttname"><a href="group__tdattorroreverb.html#ga7f6787dc77153fe5445aa4b463d52806">tDattorroReverb_clear</a></div><div class="ttdeci">void tDattorroReverb_clear(tDattorroReverb *const)</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:484</div></div>
+<div class="ttc" id="agroup__tprcreverb_html_gac7f9a1553c85d1aefc722242a4d60df7"><div class="ttname"><a href="group__tprcreverb.html#gac7f9a1553c85d1aefc722242a4d60df7">tPRCReverb_clear</a></div><div class="ttdeci">void tPRCReverb_clear(tPRCReverb *const)</div></div>
+<div class="ttc" id="agroup__tdattorroreverb_html_ga58a92c0ece1d13df4b6e860c76d5bc4e"><div class="ttname"><a href="group__tdattorroreverb.html#ga58a92c0ece1d13df4b6e860c76d5bc4e">tDattorroReverb_setInputFilter</a></div><div class="ttdeci">void tDattorroReverb_setInputFilter(tDattorroReverb *const, float freq)</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:814</div></div>
+<div class="ttc" id="agroup__tnreverb_html_ga7706f638cebfe55b14524e4a79889046"><div class="ttname"><a href="group__tnreverb.html#ga7706f638cebfe55b14524e4a79889046">tNReverb_initToPool</a></div><div class="ttdeci">void tNReverb_initToPool(tNReverb *const, float t60, tMempool *const)</div><div class="ttdoc">Initialize a tNReverb to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-reverb.c:152</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-sampling_8h_source.html
@@ -1,0 +1,384 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-sampling.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-sampling.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*==============================================================================</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> leaf-sampling.h</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> Created: 23 Jan 2019 11:22:09am</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> Author:  Mike Mulshine</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> ==============================================================================*/</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#ifndef LEAF_SAMPLING_H_INCLUDED</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#define LEAF_SAMPLING_H_INCLUDED</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160; </div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    </div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;leaf-global.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;leaf-envelopes.h&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;leaf-analysis.h&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">enum</span> RecordMode</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    {</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        RecordOneShot = 0,</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        RecordLoop,</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        RecordModeNil</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    } RecordMode;</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tBuffer</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    {</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        </div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        <span class="keywordtype">float</span>* buff;</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        </div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        uint32_t idx;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        uint32_t bufferLength;</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        uint32_t recordedLength;</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        uint32_t channels;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        uint32_t sampleRate;</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        RecordMode mode;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        <span class="keywordtype">int</span> active;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    } _tBuffer;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="keyword">typedef</span> _tBuffer* tBuffer;</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    </div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keywordtype">void</span>  <a class="code" href="group__tbuffer.html#ga91d93789b64c9306b30933c5e8d001fd">tBuffer_init</a>                  (tBuffer* <span class="keyword">const</span>, uint32_t length, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="keywordtype">void</span>  <a class="code" href="group__tbuffer.html#gad24562bae9e5411aa917bee6f27d4153">tBuffer_initToPool</a>             (tBuffer* <span class="keyword">const</span> sb, uint32_t length, tMempool* <span class="keyword">const</span> mp);</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordtype">void</span>  <a class="code" href="group__tbuffer.html#gaa7addef34b26a9464a59f023d690ec04">tBuffer_free</a>                  (tBuffer* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    </div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="keywordtype">void</span>  <a class="code" href="group__tbuffer.html#gadad3503c475071c5240b37c768f64be2">tBuffer_tick</a>                  (tBuffer* <span class="keyword">const</span>, <span class="keywordtype">float</span> sample);</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="keywordtype">void</span>  <a class="code" href="group__tbuffer.html#ga73438e2159fac7b67563b1009ca9c7f6">tBuffer_read</a>                  (tBuffer* <span class="keyword">const</span>, <span class="keywordtype">float</span>* buff, uint32_t len);</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="group__tbuffer.html#ga69d5397829f174b81a621170367a8550">tBuffer_get</a>                   (tBuffer* <span class="keyword">const</span>, <span class="keywordtype">int</span> idx);</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="keywordtype">void</span>  <a class="code" href="group__tbuffer.html#ga55baf7685651fd7f9926dc0ed5b2d73b">tBuffer_record</a>                (tBuffer* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="keywordtype">void</span>  <a class="code" href="group__tbuffer.html#ga9fcb0f6e0fb037edf1146a3983d8424d">tBuffer_stop</a>                  (tBuffer* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="keywordtype">void</span> tBuffer_setBuffer                (tBuffer* <span class="keyword">const</span> sb, <span class="keywordtype">float</span>* externalBuffer, <span class="keywordtype">int</span> length, <span class="keywordtype">int</span> channels, <span class="keywordtype">int</span> sampleRate);</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <span class="keywordtype">int</span>   <a class="code" href="group__tbuffer.html#gaa7ff30c7c2c6de87ed61c8025620429f">tBuffer_getRecordPosition</a>     (tBuffer* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    <span class="keywordtype">void</span>   <a class="code" href="group__tbuffer.html#ga893981a1b088cb6cd43359f869069689">tBuffer_setRecordPosition</a>    (tBuffer* <span class="keyword">const</span>, <span class="keywordtype">int</span> pos);</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keywordtype">void</span>  <a class="code" href="group__tbuffer.html#ga22b4855b2f2e94a7f870de419b3c3c84">tBuffer_setRecordMode</a>         (tBuffer* <span class="keyword">const</span>, RecordMode mode);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="keywordtype">void</span>  <a class="code" href="group__tbuffer.html#ga39fb5d9d5ed963390e45322a2a97a1f1">tBuffer_clear</a>                 (tBuffer* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    uint32_t <a class="code" href="group__tbuffer.html#ga79955880600cfd3ec722b7110a4aab33">tBuffer_getBufferLength</a>    (tBuffer* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    uint32_t <a class="code" href="group__tbuffer.html#gaa68440f784cd947e6bb4eb00cd6473b5">tBuffer_getRecordedLength</a>  (tBuffer* <span class="keyword">const</span> sb);</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordtype">void</span>     <a class="code" href="group__tbuffer.html#ga28a6063f2d763e4ba9414c797c1884b4">tBuffer_setRecordedLength</a>    (tBuffer* <span class="keyword">const</span> sb, <span class="keywordtype">int</span> length);</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    <span class="keywordtype">int</span>     <a class="code" href="group__tbuffer.html#ga37ffab4845668d588eac944f4adb1f65">tBuffer_isActive</a>            (tBuffer* <span class="keyword">const</span> sb);</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">enum</span> PlayMode</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    {</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        PlayNormal,</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;        PlayLoop,</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        PlayBackAndForth,</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;        PlayModeNil</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    } PlayMode;</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    </div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tSampler</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    {</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        </div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;        </div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;        tBuffer samp;</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        </div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        <span class="keywordtype">float</span> leafInvSampleRate;</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;        <span class="keywordtype">float</span> leafSampleRate;</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        <span class="keywordtype">float</span> ticksPerSevenMs;</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;        <span class="keywordtype">float</span> rateFactor;</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        uint32_t channels;</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        </div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        tRamp gain;</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        <span class="keywordtype">float</span> idx;</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        <span class="keywordtype">float</span> inc;</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        <span class="keywordtype">float</span> last;</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        <span class="keywordtype">float</span> iinc;</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        int8_t dir;</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        int8_t flip;</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        int8_t bnf;</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        </div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        int32_t start, targetstart;</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        int32_t end, targetend;</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        </div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        uint32_t len;</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        uint32_t cfxlen;</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        <span class="keywordtype">float</span> numticks;</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        PlayMode mode;</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        <span class="keywordtype">int</span> retrigger;</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        </div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        <span class="keywordtype">int</span> active;</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;        uint8_t inCrossfade;</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        </div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        <span class="keywordtype">float</span> flipStart;</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        <span class="keywordtype">float</span> flipIdx;</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    } _tSampler;</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    </div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;    <span class="keyword">typedef</span> _tSampler* tSampler;</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsampler.html#gabe6b68ce1ad3be371e341671e131d8d1">tSampler_init</a>               (tSampler* <span class="keyword">const</span>, tBuffer* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    <span class="keywordtype">void</span>     tSampler_initToPool            (tSampler* <span class="keyword">const</span> sp, tBuffer* <span class="keyword">const</span> b, tMempool* <span class="keyword">const</span> mp, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsampler.html#ga8294d4396e241ff583d5a0208a262a6f">tSampler_free</a>               (tSampler* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    </div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tsampler.html#gaf22e3192bf74770101ecae67268ed465">tSampler_tick</a>               (tSampler* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    <span class="keywordtype">float</span>    tSampler_tickStereo            (tSampler* <span class="keyword">const</span> sp, <span class="keywordtype">float</span>* outputArray);</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsampler.html#gaf6e374c6d252d986b46415223980088e">tSampler_setSample</a>          (tSampler* <span class="keyword">const</span>, tBuffer* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsampler.html#ga7790cb700416a22238238fea75f0c632">tSampler_setMode</a>            (tSampler* <span class="keyword">const</span>, PlayMode mode);</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsampler.html#gaca8fd3a386f7b5c12584820b76be70b6">tSampler_play</a>               (tSampler* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsampler.html#gaf3dd0f9013b69cf4c3a6199b674925c0">tSampler_stop</a>               (tSampler* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsampler.html#gac7dc95f6705399e73778c96904df2390">tSampler_setStart</a>           (tSampler* <span class="keyword">const</span>, int32_t start);</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsampler.html#ga36696178ca3f0bc7b8eef6786fe81faa">tSampler_setEnd</a>             (tSampler* <span class="keyword">const</span>, int32_t end);</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsampler.html#ga498ced8a867faef896eb7ed194f86040">tSampler_setLength</a>             (tSampler* <span class="keyword">const</span>, int32_t length);</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsampler.html#gaa3b3bdfaff5b05513c777a586ad7fac5">tSampler_setCrossfadeLength</a> (tSampler* <span class="keyword">const</span> sp, uint32_t length);</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tsampler.html#gadaccb8d16c9870ba327b4ab51ebc3b7e">tSampler_setRate</a>            (tSampler* <span class="keyword">const</span>, <span class="keywordtype">float</span> rate);</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    </div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    </div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tAutoSampler</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    {</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;        </div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        tSampler sampler;</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        tEnvelopeFollower ef;</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        uint32_t windowSize;</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        <span class="keywordtype">float</span> threshold;</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        <span class="keywordtype">float</span> previousPower;</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        uint32_t sampleCounter;</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        uint32_t powerCounter;</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        uint8_t sampleTriggered;</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    } _tAutoSampler;</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    </div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    <span class="keyword">typedef</span> _tAutoSampler* tAutoSampler;</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;    </div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tautosampler.html#gafbc477a175f7abfd083b150e7fb425eb">tAutoSampler_init</a>               (tAutoSampler* <span class="keyword">const</span>, tBuffer* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    <span class="keywordtype">void</span>    tAutoSampler_initToPool         (tAutoSampler* <span class="keyword">const</span> as, tBuffer* <span class="keyword">const</span> b, tMempool* <span class="keyword">const</span> mp, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tautosampler.html#ga1317602e4195ebc58d6df3f0263c4bb8">tAutoSampler_free</a>               (tAutoSampler* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    </div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__tautosampler.html#ga201113e0c5d4a209bc98719162d256c0">tAutoSampler_tick</a>               (tAutoSampler* <span class="keyword">const</span>, <span class="keywordtype">float</span> input);</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tautosampler.html#gae3740600b81b2d3ecc2f76b354996873">tAutoSampler_setBuffer</a>          (tAutoSampler* <span class="keyword">const</span>, tBuffer* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tautosampler.html#ga2310af54d4e60debedd10003d6ec8113">tAutoSampler_setMode</a>            (tAutoSampler* <span class="keyword">const</span>, PlayMode mode);</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tautosampler.html#ga49675d40778b000fce44454eca05f476">tAutoSampler_play</a>               (tAutoSampler* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tautosampler.html#gaa267e6bad2805ca746b9189ea38cf040">tAutoSampler_stop</a>               (tAutoSampler* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tautosampler.html#gaa163a4ea5f76285fdb51de157185740e">tAutoSampler_setThreshold</a>       (tAutoSampler* <span class="keyword">const</span>, <span class="keywordtype">float</span> thresh);</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tautosampler.html#gabe80e37e28f7b454acf1621ab703506f">tAutoSampler_setWindowSize</a>      (tAutoSampler* <span class="keyword">const</span>, uint32_t size);</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tautosampler.html#ga45d69e59ff3924446ff833940adba2db">tAutoSampler_setCrossfadeLength</a> (tAutoSampler* <span class="keyword">const</span>, uint32_t length);</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__tautosampler.html#ga8abfe84e7aaf00dc70b5b6e96d99af63">tAutoSampler_setRate</a>            (tAutoSampler* <span class="keyword">const</span>, <span class="keywordtype">float</span> rate);</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    </div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    </div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;<span class="preprocessor">#define FILLEN 256</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    </div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>_tMBSampler</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;    {</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;        </div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;        tMempool mempool;</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        </div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        tBuffer samp;</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;        PlayMode mode;</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;        <span class="keywordtype">int</span> active;</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;        </div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;        tExpSmooth gain;</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        </div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        <span class="keywordtype">float</span>    out;</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;        <span class="keywordtype">float</span>    last, beforeLast;</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;        <span class="keywordtype">float</span>    amp;</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;        <span class="keywordtype">float</span>    last_amp;</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;        <span class="keywordtype">float</span>    syncin;</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;        <span class="keywordtype">float</span>   _p, _w, _z;</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;        <span class="keywordtype">float</span>   _last_w;</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;        <span class="keywordtype">float</span>   _f [FILLEN + STEP_DD_PULSE_LENGTH];</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;        <span class="keywordtype">int</span>     _j;</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;        </div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;        <span class="keywordtype">int</span>     start, end;</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;        <span class="keywordtype">int</span>     currentLoopLength;</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    } _tMBSampler;</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;    </div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    <span class="keyword">typedef</span> _tMBSampler* tMBSampler;</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;    </div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t_m_b_sampler.html#gaca3e3353a058e3b2d2231daba80e2cba">tMBSampler_init</a>               (tMBSampler* <span class="keyword">const</span>, tBuffer* <span class="keyword">const</span>, <a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t_m_b_sampler.html#ga0cf8b1c9137072b7c99deeb3749a8f13">tMBSampler_initToPool</a>         (tMBSampler* <span class="keyword">const</span>, tBuffer* <span class="keyword">const</span>, tMempool* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t_m_b_sampler.html#gabf7ea61189e14b7df128c279342ecabb">tMBSampler_free</a>               (tMBSampler* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    </div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    <span class="keywordtype">float</span>   <a class="code" href="group__t_m_b_sampler.html#gaa96c1712d883af90494934258901ef98">tMBSampler_tick</a>               (tMBSampler* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t_m_b_sampler.html#ga5df0750a1c82828dc7c3d654fd633c63">tMBSampler_setSample</a>          (tMBSampler* <span class="keyword">const</span>, tBuffer* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t_m_b_sampler.html#ga7017647251f4c6bf8ab2e919cf1d72a0">tMBSampler_setMode</a>            (tMBSampler* <span class="keyword">const</span>, PlayMode mode);</div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t_m_b_sampler.html#ga8b91b8513f515bd0a26411b14c2c43d6">tMBSampler_play</a>               (tMBSampler* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t_m_b_sampler.html#ga4f7de005419ba042c280bc6aa0a43013">tMBSampler_stop</a>               (tMBSampler* <span class="keyword">const</span>);</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t_m_b_sampler.html#ga2adcb66cf57f16c7852fbffb4b6d2201">tMBSampler_setStart</a>           (tMBSampler* <span class="keyword">const</span>, int32_t start);</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t_m_b_sampler.html#gaf3fcfc2f5f9b14c712bc59d9e91d5365">tMBSampler_setEnd</a>             (tMBSampler* <span class="keyword">const</span>, int32_t end);</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t_m_b_sampler.html#ga066b4da5f29266f9138772944f403d8b">tMBSampler_setLength</a>          (tMBSampler* <span class="keyword">const</span>, int32_t length);</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;    <span class="keywordtype">void</span>    <a class="code" href="group__t_m_b_sampler.html#gafd87c733fd6c73885b84ac9d02b43f5a">tMBSampler_setRate</a>            (tMBSampler* <span class="keyword">const</span>, <span class="keywordtype">float</span> rate);</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;    </div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;}</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160; </div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;<span class="preprocessor">#endif // LEAF_SAMPLING_H_INCLUDED</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160; </div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="agroup__tbuffer_html_ga893981a1b088cb6cd43359f869069689"><div class="ttname"><a href="group__tbuffer.html#ga893981a1b088cb6cd43359f869069689">tBuffer_setRecordPosition</a></div><div class="ttdeci">void tBuffer_setRecordPosition(tBuffer *const, int pos)</div><div class="ttdoc">Set the recording position, from where the buffer will next add samples.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:118</div></div>
+<div class="ttc" id="agroup__t_m_b_sampler_html_gaf3fcfc2f5f9b14c712bc59d9e91d5365"><div class="ttname"><a href="group__t_m_b_sampler.html#gaf3fcfc2f5f9b14c712bc59d9e91d5365">tMBSampler_setEnd</a></div><div class="ttdeci">void tMBSampler_setEnd(tMBSampler *const, int32_t end)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1552</div></div>
+<div class="ttc" id="agroup__tautosampler_html_gaa267e6bad2805ca746b9189ea38cf040"><div class="ttname"><a href="group__tautosampler.html#gaa267e6bad2805ca746b9189ea38cf040">tAutoSampler_stop</a></div><div class="ttdeci">void tAutoSampler_stop(tAutoSampler *const)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1184</div></div>
+<div class="ttc" id="agroup__tsampler_html_gadaccb8d16c9870ba327b4ab51ebc3b7e"><div class="ttname"><a href="group__tsampler.html#gadaccb8d16c9870ba327b4ab51ebc3b7e">tSampler_setRate</a></div><div class="ttdeci">void tSampler_setRate(tSampler *const, float rate)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1073</div></div>
+<div class="ttc" id="agroup__tbuffer_html_ga39fb5d9d5ed963390e45322a2a97a1f1"><div class="ttname"><a href="group__tbuffer.html#ga39fb5d9d5ed963390e45322a2a97a1f1">tBuffer_clear</a></div><div class="ttdeci">void tBuffer_clear(tBuffer *const)</div><div class="ttdoc">Clear the buffer.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:130</div></div>
+<div class="ttc" id="agroup__tsampler_html_gaca8fd3a386f7b5c12584820b76be70b6"><div class="ttname"><a href="group__tsampler.html#gaca8fd3a386f7b5c12584820b76be70b6">tSampler_play</a></div><div class="ttdeci">void tSampler_play(tSampler *const)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:843</div></div>
+<div class="ttc" id="agroup__t_m_b_sampler_html_ga2adcb66cf57f16c7852fbffb4b6d2201"><div class="ttname"><a href="group__t_m_b_sampler.html#ga2adcb66cf57f16c7852fbffb4b6d2201">tMBSampler_setStart</a></div><div class="ttdeci">void tMBSampler_setStart(tMBSampler *const, int32_t start)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1543</div></div>
+<div class="ttc" id="agroup__tbuffer_html_ga73438e2159fac7b67563b1009ca9c7f6"><div class="ttname"><a href="group__tbuffer.html#ga73438e2159fac7b67563b1009ca9c7f6">tBuffer_read</a></div><div class="ttdeci">void tBuffer_read(tBuffer *const, float *buff, uint32_t len)</div><div class="ttdoc">Read an input buffer into the buffer.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:81</div></div>
+<div class="ttc" id="agroup__t_m_b_sampler_html_gafd87c733fd6c73885b84ac9d02b43f5a"><div class="ttname"><a href="group__t_m_b_sampler.html#gafd87c733fd6c73885b84ac9d02b43f5a">tMBSampler_setRate</a></div><div class="ttdeci">void tMBSampler_setRate(tMBSampler *const, float rate)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1568</div></div>
+<div class="ttc" id="agroup__tbuffer_html_ga91d93789b64c9306b30933c5e8d001fd"><div class="ttname"><a href="group__tbuffer.html#ga91d93789b64c9306b30933c5e8d001fd">tBuffer_init</a></div><div class="ttdeci">void tBuffer_init(tBuffer *const, uint32_t length, LEAF *const leaf)</div><div class="ttdoc">Initialize a tBuffer to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:27</div></div>
+<div class="ttc" id="agroup__tbuffer_html_gaa7ff30c7c2c6de87ed61c8025620429f"><div class="ttname"><a href="group__tbuffer.html#gaa7ff30c7c2c6de87ed61c8025620429f">tBuffer_getRecordPosition</a></div><div class="ttdeci">int tBuffer_getRecordPosition(tBuffer *const)</div><div class="ttdoc">Get the recording position, from where the buffer will next add samples.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:112</div></div>
+<div class="ttc" id="agroup__tautosampler_html_ga49675d40778b000fce44454eca05f476"><div class="ttname"><a href="group__tautosampler.html#ga49675d40778b000fce44454eca05f476">tAutoSampler_play</a></div><div class="ttdeci">void tAutoSampler_play(tAutoSampler *const)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1179</div></div>
+<div class="ttc" id="agroup__t_m_b_sampler_html_ga7017647251f4c6bf8ab2e919cf1d72a0"><div class="ttname"><a href="group__t_m_b_sampler.html#ga7017647251f4c6bf8ab2e919cf1d72a0">tMBSampler_setMode</a></div><div class="ttdeci">void tMBSampler_setMode(tMBSampler *const, PlayMode mode)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1514</div></div>
+<div class="ttc" id="agroup__t_m_b_sampler_html_ga0cf8b1c9137072b7c99deeb3749a8f13"><div class="ttname"><a href="group__t_m_b_sampler.html#ga0cf8b1c9137072b7c99deeb3749a8f13">tMBSampler_initToPool</a></div><div class="ttdeci">void tMBSampler_initToPool(tMBSampler *const, tBuffer *const, tMempool *const)</div><div class="ttdoc">Initialize a tMBSampler to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1222</div></div>
+<div class="ttc" id="agroup__tautosampler_html_gafbc477a175f7abfd083b150e7fb425eb"><div class="ttname"><a href="group__tautosampler.html#gafbc477a175f7abfd083b150e7fb425eb">tAutoSampler_init</a></div><div class="ttdeci">void tAutoSampler_init(tAutoSampler *const, tBuffer *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a tAutoSampler to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1094</div></div>
+<div class="ttc" id="agroup__tbuffer_html_ga28a6063f2d763e4ba9414c797c1884b4"><div class="ttname"><a href="group__tbuffer.html#ga28a6063f2d763e4ba9414c797c1884b4">tBuffer_setRecordedLength</a></div><div class="ttdeci">void tBuffer_setRecordedLength(tBuffer *const sb, int length)</div><div class="ttdoc">Set the length of what is considered recorded audio in the buffer.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:163</div></div>
+<div class="ttc" id="agroup__tsampler_html_ga498ced8a867faef896eb7ed194f86040"><div class="ttname"><a href="group__tsampler.html#ga498ced8a867faef896eb7ed194f86040">tSampler_setLength</a></div><div class="ttdeci">void tSampler_setLength(tSampler *const, int32_t length)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1066</div></div>
+<div class="ttc" id="agroup__t_m_b_sampler_html_gaa96c1712d883af90494934258901ef98"><div class="ttname"><a href="group__t_m_b_sampler.html#gaa96c1712d883af90494934258901ef98">tMBSampler_tick</a></div><div class="ttdeci">float tMBSampler_tick(tMBSampler *const)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1273</div></div>
+<div class="ttc" id="agroup__tbuffer_html_ga22b4855b2f2e94a7f870de419b3c3c84"><div class="ttname"><a href="group__tbuffer.html#ga22b4855b2f2e94a7f870de419b3c3c84">tBuffer_setRecordMode</a></div><div class="ttdeci">void tBuffer_setRecordMode(tBuffer *const, RecordMode mode)</div><div class="ttdoc">Set the recording mode.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:124</div></div>
+<div class="ttc" id="agroup__tbuffer_html_gadad3503c475071c5240b37c768f64be2"><div class="ttname"><a href="group__tbuffer.html#gadad3503c475071c5240b37c768f64be2">tBuffer_tick</a></div><div class="ttdeci">void tBuffer_tick(tBuffer *const, float sample)</div><div class="ttdoc">If recording, add a sample to the buffer. Otherwise do nothing.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:56</div></div>
+<div class="ttc" id="agroup__tautosampler_html_ga45d69e59ff3924446ff833940adba2db"><div class="ttname"><a href="group__tautosampler.html#ga45d69e59ff3924446ff833940adba2db">tAutoSampler_setCrossfadeLength</a></div><div class="ttdeci">void tAutoSampler_setCrossfadeLength(tAutoSampler *const, uint32_t length)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1204</div></div>
+<div class="ttc" id="agroup__t_m_b_sampler_html_gabf7ea61189e14b7df128c279342ecabb"><div class="ttname"><a href="group__t_m_b_sampler.html#gabf7ea61189e14b7df128c279342ecabb">tMBSampler_free</a></div><div class="ttdeci">void tMBSampler_free(tMBSampler *const)</div><div class="ttdoc">Free a tMBSampler from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1250</div></div>
+<div class="ttc" id="agroup__tbuffer_html_ga37ffab4845668d588eac944f4adb1f65"><div class="ttname"><a href="group__tbuffer.html#ga37ffab4845668d588eac944f4adb1f65">tBuffer_isActive</a></div><div class="ttdeci">int tBuffer_isActive(tBuffer *const sb)</div><div class="ttdoc">Check if the buffer is recording.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:169</div></div>
+<div class="ttc" id="agroup__tsampler_html_gaf3dd0f9013b69cf4c3a6199b674925c0"><div class="ttname"><a href="group__tsampler.html#gaf3dd0f9013b69cf4c3a6199b674925c0">tSampler_stop</a></div><div class="ttdeci">void tSampler_stop(tSampler *const)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:884</div></div>
+<div class="ttc" id="agroup__tsampler_html_ga36696178ca3f0bc7b8eef6786fe81faa"><div class="ttname"><a href="group__tsampler.html#ga36696178ca3f0bc7b8eef6786fe81faa">tSampler_setEnd</a></div><div class="ttdeci">void tSampler_setEnd(tSampler *const, int32_t end)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:996</div></div>
+<div class="ttc" id="agroup__tbuffer_html_ga55baf7685651fd7f9926dc0ed5b2d73b"><div class="ttname"><a href="group__tbuffer.html#ga55baf7685651fd7f9926dc0ed5b2d73b">tBuffer_record</a></div><div class="ttdeci">void tBuffer_record(tBuffer *const)</div><div class="ttdoc">Start recording samples into the buffer.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:99</div></div>
+<div class="ttc" id="agroup__tautosampler_html_gaa163a4ea5f76285fdb51de157185740e"><div class="ttname"><a href="group__tautosampler.html#gaa163a4ea5f76285fdb51de157185740e">tAutoSampler_setThreshold</a></div><div class="ttdeci">void tAutoSampler_setThreshold(tAutoSampler *const, float thresh)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1190</div></div>
+<div class="ttc" id="agroup__tbuffer_html_ga79955880600cfd3ec722b7110a4aab33"><div class="ttname"><a href="group__tbuffer.html#ga79955880600cfd3ec722b7110a4aab33">tBuffer_getBufferLength</a></div><div class="ttdeci">uint32_t tBuffer_getBufferLength(tBuffer *const)</div><div class="ttdoc">Get the length of the buffer.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:151</div></div>
+<div class="ttc" id="agroup__t_m_b_sampler_html_ga8b91b8513f515bd0a26411b14c2c43d6"><div class="ttname"><a href="group__t_m_b_sampler.html#ga8b91b8513f515bd0a26411b14c2c43d6">tMBSampler_play</a></div><div class="ttdeci">void tMBSampler_play(tMBSampler *const)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1520</div></div>
+<div class="ttc" id="agroup__tsampler_html_ga8294d4396e241ff583d5a0208a262a6f"><div class="ttname"><a href="group__tsampler.html#ga8294d4396e241ff583d5a0208a262a6f">tSampler_free</a></div><div class="ttdeci">void tSampler_free(tSampler *const)</div><div class="ttdoc">Free a tSampler from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:244</div></div>
+<div class="ttc" id="agroup__tbuffer_html_ga69d5397829f174b81a621170367a8550"><div class="ttname"><a href="group__tbuffer.html#ga69d5397829f174b81a621170367a8550">tBuffer_get</a></div><div class="ttdeci">float tBuffer_get(tBuffer *const, int idx)</div><div class="ttdoc">Get the sample recorded at a given position in the buffer.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:92</div></div>
+<div class="ttc" id="agroup__t_m_b_sampler_html_ga066b4da5f29266f9138772944f403d8b"><div class="ttname"><a href="group__t_m_b_sampler.html#ga066b4da5f29266f9138772944f403d8b">tMBSampler_setLength</a></div><div class="ttdeci">void tMBSampler_setLength(tMBSampler *const, int32_t length)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1562</div></div>
+<div class="ttc" id="agroup__tsampler_html_gaa3b3bdfaff5b05513c777a586ad7fac5"><div class="ttname"><a href="group__tsampler.html#gaa3b3bdfaff5b05513c777a586ad7fac5">tSampler_setCrossfadeLength</a></div><div class="ttdeci">void tSampler_setCrossfadeLength(tSampler *const sp, uint32_t length)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:834</div></div>
+<div class="ttc" id="agroup__tsampler_html_gabe6b68ce1ad3be371e341671e131d8d1"><div class="ttname"><a href="group__tsampler.html#gabe6b68ce1ad3be371e341671e131d8d1">tSampler_init</a></div><div class="ttdeci">void tSampler_init(tSampler *const, tBuffer *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a tSampler to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:181</div></div>
+<div class="ttc" id="agroup__tsampler_html_ga7790cb700416a22238238fea75f0c632"><div class="ttname"><a href="group__tsampler.html#ga7790cb700416a22238238fea75f0c632">tSampler_setMode</a></div><div class="ttdeci">void tSampler_setMode(tSampler *const, PlayMode mode)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:828</div></div>
+<div class="ttc" id="agroup__tsampler_html_gaf6e374c6d252d986b46415223980088e"><div class="ttname"><a href="group__tsampler.html#gaf6e374c6d252d986b46415223980088e">tSampler_setSample</a></div><div class="ttdeci">void tSampler_setSample(tSampler *const, tBuffer *const)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:252</div></div>
+<div class="ttc" id="agroup__tautosampler_html_gae3740600b81b2d3ecc2f76b354996873"><div class="ttname"><a href="group__tautosampler.html#gae3740600b81b2d3ecc2f76b354996873">tAutoSampler_setBuffer</a></div><div class="ttdeci">void tAutoSampler_setBuffer(tAutoSampler *const, tBuffer *const)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1164</div></div>
+<div class="ttc" id="agroup__t_m_b_sampler_html_gaca3e3353a058e3b2d2231daba80e2cba"><div class="ttname"><a href="group__t_m_b_sampler.html#gaca3e3353a058e3b2d2231daba80e2cba">tMBSampler_init</a></div><div class="ttdeci">void tMBSampler_init(tMBSampler *const, tBuffer *const, LEAF *const leaf)</div><div class="ttdoc">Initialize a tMBSampler to the default mempool of a LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1217</div></div>
+<div class="ttc" id="agroup__tautosampler_html_gabe80e37e28f7b454acf1621ab703506f"><div class="ttname"><a href="group__tautosampler.html#gabe80e37e28f7b454acf1621ab703506f">tAutoSampler_setWindowSize</a></div><div class="ttdeci">void tAutoSampler_setWindowSize(tAutoSampler *const, uint32_t size)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1196</div></div>
+<div class="ttc" id="agroup__tbuffer_html_gaa68440f784cd947e6bb4eb00cd6473b5"><div class="ttname"><a href="group__tbuffer.html#gaa68440f784cd947e6bb4eb00cd6473b5">tBuffer_getRecordedLength</a></div><div class="ttdeci">uint32_t tBuffer_getRecordedLength(tBuffer *const sb)</div><div class="ttdoc">Get the length of recorded audio in the buffer.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:157</div></div>
+<div class="ttc" id="agroup__tbuffer_html_gaa7addef34b26a9464a59f023d690ec04"><div class="ttname"><a href="group__tbuffer.html#gaa7addef34b26a9464a59f023d690ec04">tBuffer_free</a></div><div class="ttdeci">void tBuffer_free(tBuffer *const)</div><div class="ttdoc">Free a tBuffer from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:48</div></div>
+<div class="ttc" id="agroup__tautosampler_html_ga201113e0c5d4a209bc98719162d256c0"><div class="ttname"><a href="group__tautosampler.html#ga201113e0c5d4a209bc98719162d256c0">tAutoSampler_tick</a></div><div class="ttdeci">float tAutoSampler_tick(tAutoSampler *const, float input)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1121</div></div>
+<div class="ttc" id="agroup__tsampler_html_gac7dc95f6705399e73778c96904df2390"><div class="ttname"><a href="group__tsampler.html#gac7dc95f6705399e73778c96904df2390">tSampler_setStart</a></div><div class="ttdeci">void tSampler_setStart(tSampler *const, int32_t start)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:926</div></div>
+<div class="ttc" id="agroup__tbuffer_html_ga9fcb0f6e0fb037edf1146a3983d8424d"><div class="ttname"><a href="group__tbuffer.html#ga9fcb0f6e0fb037edf1146a3983d8424d">tBuffer_stop</a></div><div class="ttdeci">void tBuffer_stop(tBuffer *const)</div><div class="ttdoc">Stop recordings samples into the buffer.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:106</div></div>
+<div class="ttc" id="agroup__tautosampler_html_ga1317602e4195ebc58d6df3f0263c4bb8"><div class="ttname"><a href="group__tautosampler.html#ga1317602e4195ebc58d6df3f0263c4bb8">tAutoSampler_free</a></div><div class="ttdeci">void tAutoSampler_free(tAutoSampler *const)</div><div class="ttdoc">Free a tAutoSampler from its mempool.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1111</div></div>
+<div class="ttc" id="agroup__tautosampler_html_ga2310af54d4e60debedd10003d6ec8113"><div class="ttname"><a href="group__tautosampler.html#ga2310af54d4e60debedd10003d6ec8113">tAutoSampler_setMode</a></div><div class="ttdeci">void tAutoSampler_setMode(tAutoSampler *const, PlayMode mode)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1173</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<div class="ttc" id="agroup__tautosampler_html_ga8abfe84e7aaf00dc70b5b6e96d99af63"><div class="ttname"><a href="group__tautosampler.html#ga8abfe84e7aaf00dc70b5b6e96d99af63">tAutoSampler_setRate</a></div><div class="ttdeci">void tAutoSampler_setRate(tAutoSampler *const, float rate)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1210</div></div>
+<div class="ttc" id="agroup__tbuffer_html_gad24562bae9e5411aa917bee6f27d4153"><div class="ttname"><a href="group__tbuffer.html#gad24562bae9e5411aa917bee6f27d4153">tBuffer_initToPool</a></div><div class="ttdeci">void tBuffer_initToPool(tBuffer *const sb, uint32_t length, tMempool *const mp)</div><div class="ttdoc">Initialize a tBuffer to a specified mempool.</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:32</div></div>
+<div class="ttc" id="agroup__tsampler_html_gaf22e3192bf74770101ecae67268ed465"><div class="ttname"><a href="group__tsampler.html#gaf22e3192bf74770101ecae67268ed465">tSampler_tick</a></div><div class="ttdeci">float tSampler_tick(tSampler *const)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:273</div></div>
+<div class="ttc" id="agroup__t_m_b_sampler_html_ga4f7de005419ba042c280bc6aa0a43013"><div class="ttname"><a href="group__t_m_b_sampler.html#ga4f7de005419ba042c280bc6aa0a43013">tMBSampler_stop</a></div><div class="ttdeci">void tMBSampler_stop(tMBSampler *const)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1535</div></div>
+<div class="ttc" id="agroup__t_m_b_sampler_html_ga5df0750a1c82828dc7c3d654fd633c63"><div class="ttname"><a href="group__t_m_b_sampler.html#ga5df0750a1c82828dc7c3d654fd633c63">tMBSampler_setSample</a></div><div class="ttdeci">void tMBSampler_setSample(tMBSampler *const, tBuffer *const)</div><div class="ttdef"><b>Definition:</b> leaf-sampling.c:1259</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf-tables_8h_source.html
@@ -1,0 +1,231 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Inc/leaf-tables.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_2638202b9749e6ce2c919e410b7e2f43.html">Inc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf-tables.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*==============================================================================</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> leaf-tables.h</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> Created: 4 Dec 2016 9:42:41pm</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> Author:  Michael R Mulshine</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> ==============================================================================*/</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#ifndef LEAF_TABLES_H_INCLUDED</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define LEAF_TABLES_H_INCLUDED</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#define COEFFS_SIZE 32</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span>* __leaf_tableref_firCoeffs[COEFFS_SIZE];</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_tablesize_firNumTaps[COEFFS_SIZE];</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_fir2XLow[32];</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_fir4XLow[64];</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_fir8XLow[64];</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_fir16XLow[128];</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_fir32XLow[256];</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_fir64XLow[256];</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_fir2XHigh[128];</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_fir4XHigh[256];</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_fir8XHigh[256];</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_fir16XHigh[512];</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_fir32XHigh[512];</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_fir64XHigh[1024];</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="comment">//    typedef enum TableName</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment">//    {</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment">//        T20 = 0,</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">//        T40,</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment">//        T80,</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">//        T160,</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">//        T320,</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">//        T640,</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment">//        T1280,</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment">//        T2560,</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">//        T5120,</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">//        T10240,</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment">//        T20480,</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">//        TableNameNil</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment">//    } TableName;</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#define SHAPER1_TABLE_SIZE 65536</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_shaper1[SHAPER1_TABLE_SIZE];</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;   </div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="comment">// mtof lookup table based on input range [0.0,1.0) in 4096 increments - midi frequency values scaled between m25 and m134 (from the Snyderphonics DrumBox code)</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">#define MTOF1_TABLE_SIZE 4096</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_mtof1[MTOF1_TABLE_SIZE];</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#define EXP_DECAY_TABLE_SIZE 65536</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_exp_decay[EXP_DECAY_TABLE_SIZE];</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    </div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">#define ATTACK_DECAY_INC_TABLE_SIZE 65536</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_attack_decay_inc[ATTACK_DECAY_INC_TABLE_SIZE];</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#define FILTERTAN_TABLE_SIZE 4096</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_filtertan[FILTERTAN_TABLE_SIZE];</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#define TANH1_TABLE_SIZE 65536</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_tanh1[TANH1_TABLE_SIZE];</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="comment">/* Sine wave table ripped from http://aquaticus.info/pwm-sine-wave. */</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#define SINE_TABLE_SIZE 2048</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_sinewave[SINE_TABLE_SIZE];</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">#define TRI_TABLE_SIZE 2048</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_triangle[11][TRI_TABLE_SIZE];</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="preprocessor">#define SQR_TABLE_SIZE 2048</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_squarewave[11][SQR_TABLE_SIZE];</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="preprocessor">#define SAW_TABLE_SIZE 2048</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span> __leaf_table_sawtooth[11][SAW_TABLE_SIZE];</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    </div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="comment">// From https://github.com/MrBlueXav/Dekrispator_v2 minblep_tables.h</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="comment">/* minBLEP constants */</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="comment">/* minBLEP table oversampling factor (must be a power of two): */</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="preprocessor">#define MINBLEP_PHASES          64</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="comment">/* MINBLEP_PHASES minus one: */</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="preprocessor">#define MINBLEP_PHASE_MASK      63</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="comment">/* length in samples of (truncated) step discontinuity delta: */</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="preprocessor">#define STEP_DD_PULSE_LENGTH    72</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="comment">/* length in samples of (truncated) slope discontinuity delta: */</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="preprocessor">#define SLOPE_DD_PULSE_LENGTH   71</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="comment">/* the longer of the two above: */</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="preprocessor">#define LONGEST_DD_PULSE_LENGTH STEP_DD_PULSE_LENGTH</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="comment">/* delay between start of DD pulse and the discontinuity, in samples: */</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="preprocessor">#define DD_SAMPLE_DELAY          4</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keyword">typedef</span> <span class="keyword">struct </span>{ <span class="keywordtype">float</span> value, delta; } float_value_delta;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="comment">/* in minblep_tables.c: */</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> float_value_delta step_dd_table[];</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">float</span>             slope_dd_table[];</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;}</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="preprocessor">#endif  // LEAF_TABLES_H_INCLUDED</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="comment">//==============================================================================</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/leaf_8h_source.html
@@ -1,0 +1,205 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/leaf.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">leaf.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> ==============================================================================</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> leaf.h</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> Created: 20 Jan 2017 12:07:26pm</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> Author:  Michael R Mulshine</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> </span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> ==============================================================================</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#ifndef LEAF_H_INCLUDED</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#define LEAF_H_INCLUDED</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#define LEAF_DEBUG 0</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#if LEAF_DEBUG</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;../LEAF_JUCEPlugin/JuceLibraryCode/JuceHeader.h&quot;</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#if _WIN32 || _WIN64</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-global.h&quot;</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-tables.h&quot;</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-distortion.h&quot;</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-oscillators.h&quot;</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-filters.h&quot;</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-delay.h&quot;</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-reverb.h&quot;</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-effects.h&quot;</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-envelopes.h&quot;</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-dynamics.h&quot;</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-analysis.h&quot;</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-instruments.h&quot;</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-midi.h&quot;</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-sampling.h&quot;</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-physical.h&quot;</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#include &quot;.\Inc\leaf-electrical.h&quot;</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160; </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-global.h&quot;</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-math.h&quot;</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-mempool.h&quot;</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-tables.h&quot;</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-distortion.h&quot;</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-dynamics.h&quot;</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-oscillators.h&quot;</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-filters.h&quot;</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-delay.h&quot;</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-reverb.h&quot;</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-effects.h&quot;</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-envelopes.h&quot;</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-analysis.h&quot;</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-instruments.h&quot;</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-midi.h&quot;</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-sampling.h&quot;</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-physical.h&quot;</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#include &quot;./Inc/leaf-electrical.h&quot;</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keywordtype">void</span>        <a class="code" href="group__leaf.html#ga13fefd14706bd5d85346066660f3c9eb">LEAF_init</a>            (<a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf, <span class="keywordtype">float</span> sampleRate, <span class="keywordtype">int</span> blockSize, <span class="keywordtype">char</span>* memory, <span class="keywordtype">size_t</span> memorySize, <span class="keywordtype">float</span>(*random)(<span class="keywordtype">void</span>));</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="keywordtype">void</span>        <a class="code" href="group__leaf.html#gab84d5b2ad600cc920248996c86b72f9f">LEAF_setSampleRate</a>   (<a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf, <span class="keywordtype">float</span> sampleRate);</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    </div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160; </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keywordtype">float</span>       <a class="code" href="group__leaf.html#gaf680c38a6e3234739e57391650dea267">LEAF_getSampleRate</a>   (<a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    <span class="keywordtype">void</span>        <a class="code" href="group__leaf.html#ga6ad73444bc6f242c30a83bddbd120052">LEAF_defaultErrorCallback</a>(<a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf, LEAFErrorType errorType);</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="keywordtype">void</span>        LEAF_internalErrorCallback(<a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf, LEAFErrorType whichone);</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="group__leaf.html#ga046f5f075ebc4562b8e2d97de4b69536">LEAF_setErrorCallback</a>(<a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span> leaf, <span class="keywordtype">void</span> (*callback)(<a class="code" href="struct_l_e_a_f.html">LEAF</a>* <span class="keyword">const</span>, LEAFErrorType));</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    </div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;}</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160; </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="preprocessor">#endif  // LEAF_H_INCLUDED</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="agroup__leaf_html_ga6ad73444bc6f242c30a83bddbd120052"><div class="ttname"><a href="group__leaf.html#ga6ad73444bc6f242c30a83bddbd120052">LEAF_defaultErrorCallback</a></div><div class="ttdeci">void LEAF_defaultErrorCallback(LEAF *const leaf, LEAFErrorType errorType)</div><div class="ttdoc">The default callback function for LEAF errors.</div><div class="ttdef"><b>Definition:</b> leaf.c:58</div></div>
+<div class="ttc" id="agroup__leaf_html_ga046f5f075ebc4562b8e2d97de4b69536"><div class="ttname"><a href="group__leaf.html#ga046f5f075ebc4562b8e2d97de4b69536">LEAF_setErrorCallback</a></div><div class="ttdeci">void LEAF_setErrorCallback(LEAF *const leaf, void(*callback)(LEAF *const, LEAFErrorType))</div><div class="ttdoc">Set the callback function for LEAF errors.</div><div class="ttdef"><b>Definition:</b> leaf.c:70</div></div>
+<div class="ttc" id="agroup__leaf_html_gaf680c38a6e3234739e57391650dea267"><div class="ttname"><a href="group__leaf.html#gaf680c38a6e3234739e57391650dea267">LEAF_getSampleRate</a></div><div class="ttdeci">float LEAF_getSampleRate(LEAF *const leaf)</div><div class="ttdoc">Get the sample rate of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf.c:53</div></div>
+<div class="ttc" id="agroup__leaf_html_ga13fefd14706bd5d85346066660f3c9eb"><div class="ttname"><a href="group__leaf.html#ga13fefd14706bd5d85346066660f3c9eb">LEAF_init</a></div><div class="ttdeci">void LEAF_init(LEAF *const leaf, float sampleRate, int blockSize, char *memory, size_t memorySize, float(*random)(void))</div><div class="ttdoc">Initialize the LEAF instance.</div><div class="ttdef"><b>Definition:</b> leaf.c:21</div></div>
+<div class="ttc" id="agroup__leaf_html_gab84d5b2ad600cc920248996c86b72f9f"><div class="ttname"><a href="group__leaf.html#gab84d5b2ad600cc920248996c86b72f9f">LEAF_setSampleRate</a></div><div class="ttdeci">void LEAF_setSampleRate(LEAF *const leaf, float sampleRate)</div><div class="ttdoc">Set the sample rate of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf.c:47</div></div>
+<div class="ttc" id="astruct_l_e_a_f_html"><div class="ttname"><a href="struct_l_e_a_f.html">LEAF</a></div><div class="ttdoc">Struct for an instance of LEAF.</div><div class="ttdef"><b>Definition:</b> leaf-global.h:31</div></div>
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/menudata.js
@@ -1,0 +1,37 @@
+/*
+@licstart  The following is the entire license notice for the
+JavaScript code in this file.
+
+Copyright (C) 1997-2019 by Dimitri van Heesch
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of version 2 of the GNU General Public License as published by
+the Free Software Foundation
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+@licend  The above is the entire license notice
+for the JavaScript code in this file
+*/
+var menudata={children:[
+{text:"Main Page",url:"index.html"},
+{text:"Modules",url:"modules.html"},
+{text:"Data Structures",url:"annotated.html",children:[
+{text:"Data Structures",url:"annotated.html"},
+{text:"Data Structure Index",url:"classes.html"},
+{text:"Data Fields",url:"functions.html",children:[
+{text:"All",url:"functions.html"},
+{text:"Variables",url:"functions_vars.html"}]}]},
+{text:"Files",url:"files.html",children:[
+{text:"File List",url:"files.html"},
+{text:"Globals",url:"globals.html",children:[
+{text:"All",url:"globals.html"},
+{text:"Macros",url:"globals_defs.html"}]}]},
+{text:"Examples",url:"examples.html"}]}
--- /dev/null
+++ b/doxygen/leaf/modules.html
@@ -1,0 +1,214 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: Modules</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Modules</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all modules:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__leaf.html" target="_self">LEAF</a></td><td class="desc">The structure of an instance of <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9658;</span><a class="el" href="group__oscillators.html" target="_self">Oscillators</a></td><td class="desc">Oscillators and generators </td></tr>
+<tr id="row_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__ttable.html" target="_self">tTable</a></td><td class="desc">Simple aliasing wavetable oscillator </td></tr>
+<tr id="row_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__twavetable.html" target="_self">tWavetable</a></td><td class="desc">Anti-aliased wavetable oscillator </td></tr>
+<tr id="row_1_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tcompactwavetable.html" target="_self">tCompactWavetable</a></td><td class="desc">A more space-efficient anti-aliased wavetable oscillator than tWavetable but with slightly worse fidelity </td></tr>
+<tr id="row_1_3_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tcycle.html" target="_self">tCycle</a></td><td class="desc">Wavetable cycle/sine wave oscillator </td></tr>
+<tr id="row_1_4_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__ttriangle.html" target="_self">tTriangle</a></td><td class="desc">Anti-aliased wavetable triangle wave oscillator </td></tr>
+<tr id="row_1_5_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tsquare.html" target="_self">tSquare</a></td><td class="desc">Anti-aliased wavetable square wave oscillator </td></tr>
+<tr id="row_1_6_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tsawtooth.html" target="_self">tSawtooth</a></td><td class="desc">Anti-aliased wavetable saw wave oscillator </td></tr>
+<tr id="row_1_7_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__ttri.html" target="_self">tTri</a></td><td class="desc">Triangle wave oscillator with polyBLEP anti-aliasing </td></tr>
+<tr id="row_1_8_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tpulse.html" target="_self">tPulse</a></td><td class="desc">Pulse wave oscillator with polyBLEP anti-aliasing </td></tr>
+<tr id="row_1_9_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tsaw.html" target="_self">tSaw</a></td><td class="desc">Saw wave oscillator with polyBLEP anti-aliasing </td></tr>
+<tr id="row_1_10_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tphasor.html" target="_self">tPhasor</a></td><td class="desc">Aliasing phasor </td></tr>
+<tr id="row_1_11_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tnoise.html" target="_self">tNoise</a></td><td class="desc">Noise generator, capable of producing white or pink noise </td></tr>
+<tr id="row_1_12_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tneuron.html" target="_self">tNeuron</a></td><td class="desc">Model of a neuron, adapted to act as an oscillator </td></tr>
+<tr id="row_1_13_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tmbpulse.html" target="_self">tMBPulse</a></td><td class="desc">Pulse wave oscillator with minBLEP anti-aliasing </td></tr>
+<tr id="row_1_14_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tmbtriangle.html" target="_self">tMBTriangle</a></td><td class="desc">Triangle wave oscillator with minBLEP anti-aliasing </td></tr>
+<tr id="row_1_15_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tmbsaw.html" target="_self">tMBSaw</a></td><td class="desc">Saw wave oscillator with minBLEP anti-aliasing </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9658;</span><a class="el" href="group__filters.html" target="_self">Filters</a></td><td class="desc">Filters </td></tr>
+<tr id="row_2_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tallpass.html" target="_self">tAllpass</a></td><td class="desc">Schroeder allpass. Comb-filter with feedforward and feedback </td></tr>
+<tr id="row_2_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tonepole.html" target="_self">tOnePole</a></td><td class="desc">OnePole filter, reimplemented from STK (Cook and Scavone) </td></tr>
+<tr id="row_2_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__ttwopole.html" target="_self">tTwoPole</a></td><td class="desc">TwoPole filter, reimplemented from STK (Cook and Scavone) </td></tr>
+<tr id="row_2_3_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tonezero.html" target="_self">tOneZero</a></td><td class="desc">OneZero filter, reimplemented from STK (Cook and Scavone) </td></tr>
+<tr id="row_2_4_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__ttwozero.html" target="_self">tTwoZero</a></td><td class="desc">TwoZero filter, reimplemented from STK (Cook and Scavone) </td></tr>
+<tr id="row_2_5_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tpolezero.html" target="_self">tPoleZero</a></td><td class="desc">PoleZero filter, reimplemented from STK (Cook and Scavone) </td></tr>
+<tr id="row_2_6_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tbiquad.html" target="_self">tBiQuad</a></td><td class="desc">BiQuad filter, reimplemented from STK (Cook and Scavone) </td></tr>
+<tr id="row_2_7_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tsvf.html" target="_self">tSVF</a></td><td class="desc">State Variable Filter, algorithm from Andy Simper </td></tr>
+<tr id="row_2_8_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tefficientsvf.html" target="_self">tEfficientSVF</a></td><td class="desc">Efficient State Variable Filter for 14-bit control input, [0, 4096) </td></tr>
+<tr id="row_2_9_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__thighpass.html" target="_self">tHighpass</a></td><td class="desc">Simple Highpass filter </td></tr>
+<tr id="row_2_10_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tbutterworth.html" target="_self">tButterworth</a></td><td class="desc">Butterworth filter </td></tr>
+<tr id="row_2_11_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tfir.html" target="_self">tFIR</a></td><td class="desc">Finite impulse response filter </td></tr>
+<tr id="row_2_12_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tmedianfilter.html" target="_self">tMedianFilter</a></td><td class="desc">Median filter </td></tr>
+<tr id="row_2_13_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tvzfilter.html" target="_self">tVZFilter</a></td><td class="desc">Vadim Zavalishin style from VA book (from implementation in RSlib posted to kvr forum) </td></tr>
+<tr id="row_2_14_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tdiodefilter.html" target="_self">tDiodeFilter</a></td><td class="desc">Diode filter </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">&#9658;</span><a class="el" href="group__delay.html" target="_self">Delay</a></td><td class="desc">Delays </td></tr>
+<tr id="row_3_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tdelay.html" target="_self">tDelay</a></td><td class="desc">Non-interpolating delay, reimplemented from STK (Cook and Scavone) </td></tr>
+<tr id="row_3_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tlineardelay.html" target="_self">tLinearDelay</a></td><td class="desc">Linearly-interpolating delay, reimplemented from STK (Cook and Scavone) </td></tr>
+<tr id="row_3_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__thermitedelay.html" target="_self">tHermiteDelay</a></td><td class="desc">Hermite-interpolating delay, created by adapting STK linear delay with Hermite interpolation </td></tr>
+<tr id="row_3_3_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tallpassdelay.html" target="_self">tAllpassDelay</a></td><td class="desc">Allpass-interpolating delay, reimplemented from STK (Cook and Scavone) </td></tr>
+<tr id="row_3_4_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__ttapedelay.html" target="_self">tTapeDelay</a></td><td class="desc">Linear interpolating delay with fixed read and write pointers, variable rate </td></tr>
+<tr id="row_3_5_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tringbuffer.html" target="_self">tRingBuffer</a></td><td class="desc">Ring buffer </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_4_" class="arrow" onclick="toggleFolder('4_')">&#9658;</span><a class="el" href="group__reverb.html" target="_self">Reverb</a></td><td class="desc">Reverbs </td></tr>
+<tr id="row_4_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tprcreverb.html" target="_self">tPRCReverb</a></td><td class="desc">Reverb, reimplemented from STK (Cook and Scavone) </td></tr>
+<tr id="row_4_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tnreverb.html" target="_self">tNReverb</a></td><td class="desc">Reverb, reimplemented from STK (Cook and Scavone) </td></tr>
+<tr id="row_4_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tdattorroreverb.html" target="_self">tDattorroReverb</a></td><td class="desc">Dattorro plate reverb </td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_5_" class="arrow" onclick="toggleFolder('5_')">&#9658;</span><a class="el" href="group__distortion.html" target="_self">Distortion</a></td><td class="desc">Degradation and oversampling </td></tr>
+<tr id="row_5_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tsamplereducer.html" target="_self">tSampleReducer</a></td><td class="desc">Sample rate reducer </td></tr>
+<tr id="row_5_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__toversampler.html" target="_self">tOversampler</a></td><td class="desc">Oversampler </td></tr>
+<tr id="row_5_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tlockhartwavefolder.html" target="_self">tLockhartWavefolder</a></td><td class="desc">Analog model wavefolder </td></tr>
+<tr id="row_5_3_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tcrusher.html" target="_self">tCrusher</a></td><td class="desc">Bit depth and sampler rate degrader </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_6_" class="arrow" onclick="toggleFolder('6_')">&#9658;</span><a class="el" href="group__effects.html" target="_self">Effects</a></td><td class="desc">Vocoders, pitch shifters, and more </td></tr>
+<tr id="row_6_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__ttalkbox.html" target="_self">tTalkbox</a></td><td class="desc">High resolution vocoder from mda using Levinson-Durbin LPC algorithm </td></tr>
+<tr id="row_6_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__ttalkboxfloat.html" target="_self">tTalkboxFloat</a></td><td class="desc">High resolution vocoder from mda using Levinson-Durbin LPC algorithm </td></tr>
+<tr id="row_6_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tvocoder.html" target="_self">tVocoder</a></td><td class="desc">Channel vocoder from mda </td></tr>
+<tr id="row_6_3_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__trosenbergglottalpulse.html" target="_self">tRosenbergGlottalPulse</a></td><td class="desc">Rosenberg glottal pulse approximator </td></tr>
+<tr id="row_6_4_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tsolad.html" target="_self">tSOLAD</a></td><td class="desc">Pitch shifting algorithm that underlies tRetune etc from Katja Vetters <a href="http://www.katjaas.nl/pitchshiftlowlatency/pitchshiftlowlatency.html">http://www.katjaas.nl/pitchshiftlowlatency/pitchshiftlowlatency.html</a> </td></tr>
+<tr id="row_6_5_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tpitchshift.html" target="_self">tPitchShift</a></td><td class="desc">SOLAD-based pitch shifter </td></tr>
+<tr id="row_6_6_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tsimpleretune.html" target="_self">tSimpleRetune</a></td><td class="desc">Wrapper for multiple pitch shifters with single-channel output </td></tr>
+<tr id="row_6_7_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tretune.html" target="_self">tRetune</a></td><td class="desc">Wrapper for multiple pitch shifters with multi-channel output </td></tr>
+<tr id="row_6_8_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tformantshifter.html" target="_self">tFormantShifter</a></td><td class="desc">Formant remover and adder, allowing for formant shifting </td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_7_" class="arrow" onclick="toggleFolder('7_')">&#9658;</span><a class="el" href="group__envelopes.html" target="_self">Envelopes</a></td><td class="desc">Envelopes and smoothers </td></tr>
+<tr id="row_7_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tenvelope.html" target="_self">tEnvelope</a></td><td class="desc">Basic attack-decay envelope </td></tr>
+<tr id="row_7_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__texpsmooth.html" target="_self">tExpSmooth</a></td><td class="desc">Exponential curve smoother </td></tr>
+<tr id="row_7_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tadsr.html" target="_self">tADSR</a></td><td class="desc"></td></tr>
+<tr id="row_7_3_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tasdr2.html" target="_self">tADSR2</a></td><td class="desc"></td></tr>
+<tr id="row_7_4_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tadsr3.html" target="_self">tADSR3</a></td><td class="desc"></td></tr>
+<tr id="row_7_5_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tadsr4.html" target="_self">tADSR4</a></td><td class="desc"></td></tr>
+<tr id="row_7_6_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tramp.html" target="_self">tRamp</a></td><td class="desc">Value ramp </td></tr>
+<tr id="row_7_7_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__trampupdown.html" target="_self">tRampUpDown</a></td><td class="desc">Value ramp with variable rate depending on direction </td></tr>
+<tr id="row_7_8_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tslide.html" target="_self">tSlide</a></td><td class="desc">Based on Max/MSP's slide~ </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_8_" class="arrow" onclick="toggleFolder('8_')">&#9658;</span><a class="el" href="group__dynamics.html" target="_self">Dynamics</a></td><td class="desc">Compression and levelling </td></tr>
+<tr id="row_8_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tcompressor.html" target="_self">tCompressor</a></td><td class="desc">Standard compressor </td></tr>
+<tr id="row_8_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tfeedbackleveler.html" target="_self">tFeedbackLeveler</a></td><td class="desc">An auto VCA that you put into a feedback circuit to make it stay at the same level </td></tr>
+<tr id="row_8_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tthreshold.html" target="_self">tThreshold</a></td><td class="desc">Threshold with hysteresis (like Max/MSP thresh~ object) </td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_9_" class="arrow" onclick="toggleFolder('9_')">&#9658;</span><a class="el" href="group__analysis.html" target="_self">Analysis</a></td><td class="desc">Signal analysis </td></tr>
+<tr id="row_9_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tenvelopefollower.html" target="_self">tEnvelopeFollower</a></td><td class="desc">Detects and returns the basic envelope of incoming audio data </td></tr>
+<tr id="row_9_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tzerocrossingcounter.html" target="_self">tZeroCrossingCounter</a></td><td class="desc">Count the amount of zero crossings within a window of the input audio data </td></tr>
+<tr id="row_9_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tpowerfollower.html" target="_self">tPowerFollower</a></td><td class="desc">Measure and follow the power of an input signal using an exponential moving average for smoothing </td></tr>
+<tr id="row_9_3_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tenvpd.html" target="_self">tEnvPD</a></td><td class="desc">ENV~ from PD, modified for <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> </td></tr>
+<tr id="row_9_4_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tattackdetection.html" target="_self">tAttackDetection</a></td><td class="desc">Detect attacks in an input signal </td></tr>
+<tr id="row_9_5_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tsnac.html" target="_self">tSNAC</a></td><td class="desc">Component of period detection algorithm from Katja Vetters <a href="http://www.katjaas.nl/helmholtz/helmholtz.html">http://www.katjaas.nl/helmholtz/helmholtz.html</a> </td></tr>
+<tr id="row_9_6_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tperioddetection.html" target="_self">tPeriodDetection</a></td><td class="desc">Period detection algorithm from Katja Vetters <a href="http://www.katjaas.nl/helmholtz/helmholtz.html">http://www.katjaas.nl/helmholtz/helmholtz.html</a> </td></tr>
+<tr id="row_9_7_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tperioddetector.html" target="_self">tPeriodDetector</a></td><td class="desc">Period detection algorithm from Joel de Guzman's Q Audio DSP Library </td></tr>
+<tr id="row_9_8_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tpitchdetector.html" target="_self">tPitchDetector</a></td><td class="desc">Pitch detection algorithm from Joel de Guzman's Q Audio DSP Library </td></tr>
+<tr id="row_9_9_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tdualpitchdetector.html" target="_self">tDualPitchDetector</a></td><td class="desc">Combined pitch detection algorithm using both Joel de Guzman's Q Audio DSP Library and Katya Vetters algorithms </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_10_" class="arrow" onclick="toggleFolder('10_')">&#9658;</span><a class="el" href="group__instruments.html" target="_self">Instruments</a></td><td class="desc">Instruments </td></tr>
+<tr id="row_10_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__t808cowbell.html" target="_self">t808Cowbell</a></td><td class="desc">808 drum machine cowbell </td></tr>
+<tr id="row_10_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__t808hihat.html" target="_self">t808Hihat</a></td><td class="desc">808 drum machine hihat </td></tr>
+<tr id="row_10_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__t808snare.html" target="_self">t808Snare</a></td><td class="desc">808 drum machine snare </td></tr>
+<tr id="row_10_3_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__t808kick.html" target="_self">t808Kick</a></td><td class="desc">808 drum machine kick </td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_11_" class="arrow" onclick="toggleFolder('11_')">&#9658;</span><a class="el" href="group__midi.html" target="_self">MIDI</a></td><td class="desc">MIDI handling </td></tr>
+<tr id="row_11_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tstack.html" target="_self">tStack</a></td><td class="desc">A basic stack of integers with a fixed capacity of 128, used by tPoly to keep track of MIDI notes </td></tr>
+<tr id="row_11_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tpoly.html" target="_self">tPoly</a></td><td class="desc">Polyphony handler with glide and pitch bend options </td></tr>
+<tr id="row_11_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tsimplepoly.html" target="_self">tSimplePoly</a></td><td class="desc">Polyphony handler </td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_12_" class="arrow" onclick="toggleFolder('12_')">&#9658;</span><a class="el" href="group__sampling.html" target="_self">Sampling</a></td><td class="desc">Samplers </td></tr>
+<tr id="row_12_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tbuffer.html" target="_self">tBuffer</a></td><td class="desc">Buffer for use in Sampler objects </td></tr>
+<tr id="row_12_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tsampler.html" target="_self">tSampler</a></td><td class="desc">Loopable input sampler with crossfading </td></tr>
+<tr id="row_12_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tautosampler.html" target="_self">tAutoSampler</a></td><td class="desc">Automatic sampler based on power of input </td></tr>
+<tr id="row_12_3_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__t_m_b_sampler.html" target="_self">tMBSampler</a></td><td class="desc">Loopable input sampler using minBLEP to remove discontinuities </td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_13_" class="arrow" onclick="toggleFolder('13_')">&#9658;</span><a class="el" href="group__physical.html" target="_self">Physical Models</a></td><td class="desc">String models and more </td></tr>
+<tr id="row_13_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tpluck.html" target="_self">tPluck</a></td><td class="desc">Karplus-Strong model </td></tr>
+<tr id="row_13_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tkarplusstrong.html" target="_self">tKarplusStrong</a></td><td class="desc">Stiff Karplus-Strong model </td></tr>
+<tr id="row_13_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tsimplelivingstring.html" target="_self">tSimpleLivingString</a></td><td class="desc">Simplified string model </td></tr>
+<tr id="row_13_3_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tlivingstring.html" target="_self">tLivingString</a></td><td class="desc">String model </td></tr>
+<tr id="row_13_4_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tcomplexlivingstring.html" target="_self">tComplexLivingString</a></td><td class="desc">Complex string model </td></tr>
+<tr id="row_13_5_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__treedtable.html" target="_self">tReedTable</a></td><td class="desc">Reed Table - borrowed from STK </td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_14_" class="arrow" onclick="toggleFolder('14_')">&#9658;</span><a class="el" href="group__electrical.html" target="_self">Electrical Models</a></td><td class="desc">Circuit models </td></tr>
+<tr id="row_14_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__twdf.html" target="_self">tWDF</a></td><td class="desc">Wave digital filter component </td></tr>
+<tr id="row_15_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_15_" class="arrow" onclick="toggleFolder('15_')">&#9658;</span><a class="el" href="group__mempool.html" target="_self">Mempool</a></td><td class="desc">Memory allocation </td></tr>
+<tr id="row_15_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__tmempool.html" target="_self">tMempool</a></td><td class="desc">Memory pool for the allocation of <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> objects </td></tr>
+<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__math.html" target="_self">Math</a></td><td class="desc">Math functions </td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__tables.html" target="_self">Tables</a></td><td class="desc">Wavetables, filter tables, minBLEP tables, and more </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
binary files /dev/null b/doxygen/leaf/nav_f.png differ
binary files /dev/null b/doxygen/leaf/nav_g.png differ
binary files /dev/null b/doxygen/leaf/nav_h.png differ
binary files /dev/null b/doxygen/leaf/open.png differ
--- /dev/null
+++ b/doxygen/leaf/search/all_0.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_0.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['analysis_0',['Analysis',['../group__analysis.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_1.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_1.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['blocksize_1',['blockSize',['../struct_l_e_a_f.html#a4aaa73e329d20f35039fa5cdd2e6f648',1,'LEAF']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_10.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_10.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['whitenoise_972',['WhiteNoise',['../group__tnoise.html#gga9253d111035d4a83996ec5bbfd3d8963a7c87739bebf0e95f4e6b8d9e5432b8f1',1,'leaf-oscillators.h']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_11.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_11.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['whitenoise_444',['WhiteNoise',['../group__tnoise.html#gga9253d111035d4a83996ec5bbfd3d8963a7c87739bebf0e95f4e6b8d9e5432b8f1',1,'leaf-oscillators.h']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_2.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_2.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['clearonallocation_2',['clearOnAllocation',['../struct_l_e_a_f.html#ad65a59f4aa73365d2e77aeddfca7a449',1,'LEAF']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_3.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_3.js
@@ -1,0 +1,6 @@
+var searchData=
+[
+  ['delay_3',['Delay',['../group__delay.html',1,'']]],
+  ['distortion_4',['Distortion',['../group__distortion.html',1,'']]],
+  ['dynamics_5',['Dynamics',['../group__dynamics.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_4.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_4.js
@@ -1,0 +1,8 @@
+var searchData=
+[
+  ['effects_6',['Effects',['../group__effects.html',1,'']]],
+  ['electrical_20models_7',['Electrical Models',['../group__electrical.html',1,'']]],
+  ['envelopes_8',['Envelopes',['../group__envelopes.html',1,'']]],
+  ['errorcallback_9',['errorCallback',['../struct_l_e_a_f.html#a7c7ae1db705b3fdea2bec18add896856',1,'LEAF']]],
+  ['errorstate_10',['errorState',['../struct_l_e_a_f.html#afdc66be5b816adc061930cf832328a44',1,'LEAF']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_5.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_5.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['filters_11',['Filters',['../group__filters.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_6.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_6.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['header_5fsize_12',['header_size',['../struct_l_e_a_f.html#a64f1d0c53909f30b0aac882348cd32f2',1,'LEAF']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_7.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_7.js
@@ -1,0 +1,5 @@
+var searchData=
+[
+  ['instruments_13',['Instruments',['../group__instruments.html',1,'']]],
+  ['invsamplerate_14',['invSampleRate',['../struct_l_e_a_f.html#ae4c744f56f561ff4acc66ba4bd3ed201',1,'LEAF']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_8.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_8.js
@@ -1,0 +1,19 @@
+var searchData=
+[
+  ['leaf_15',['LEAF',['../index.html',1,'']]],
+  ['leaf_16',['LEAF',['../struct_l_e_a_f.html',1,'LEAF'],['../group__leaf.html',1,'(Global Namespace)']]],
+  ['leaf_2dconfig_2eh_17',['leaf-config.h',['../leaf-config_8h.html',1,'']]],
+  ['leaf_5fdefaulterrorcallback_18',['LEAF_defaultErrorCallback',['../group__leaf.html#ga6ad73444bc6f242c30a83bddbd120052',1,'leaf.c']]],
+  ['leaf_5fgetsamplerate_19',['LEAF_getSampleRate',['../group__leaf.html#gaf680c38a6e3234739e57391650dea267',1,'leaf.c']]],
+  ['leaf_5finclude_5fadsr_5ftables_20',['LEAF_INCLUDE_ADSR_TABLES',['../leaf-config_8h.html#ac97160952072d68ef1b972822ad272ae',1,'leaf-config.h']]],
+  ['leaf_5finclude_5ffiltertan_5ftable_21',['LEAF_INCLUDE_FILTERTAN_TABLE',['../leaf-config_8h.html#aab2893efe703eab3bb551c9add5ef387',1,'leaf-config.h']]],
+  ['leaf_5finclude_5fminblep_5ftables_22',['LEAF_INCLUDE_MINBLEP_TABLES',['../leaf-config_8h.html#a48382d3ccd1f8b5133cc39e5dfec6407',1,'leaf-config.h']]],
+  ['leaf_5finclude_5foversampler_5ftables_23',['LEAF_INCLUDE_OVERSAMPLER_TABLES',['../leaf-config_8h.html#aa1d86fcc131ab6f1789217ed6706606b',1,'leaf-config.h']]],
+  ['leaf_5finclude_5fsawtooth_5ftable_24',['LEAF_INCLUDE_SAWTOOTH_TABLE',['../leaf-config_8h.html#adc140cd309979869fe8a593cb4f1ee48',1,'leaf-config.h']]],
+  ['leaf_5finclude_5fsine_5ftable_25',['LEAF_INCLUDE_SINE_TABLE',['../leaf-config_8h.html#a6b45f1d5e0e5f16ef2b7bcfa5c2b69c3',1,'leaf-config.h']]],
+  ['leaf_5finclude_5fsquare_5ftable_26',['LEAF_INCLUDE_SQUARE_TABLE',['../leaf-config_8h.html#aeea32201ca1663099f453916e852547d',1,'leaf-config.h']]],
+  ['leaf_5finclude_5ftriangle_5ftable_27',['LEAF_INCLUDE_TRIANGLE_TABLE',['../leaf-config_8h.html#aae5a99a230cd12d10d9b2011c8461787',1,'leaf-config.h']]],
+  ['leaf_5finit_28',['LEAF_init',['../group__leaf.html#ga13fefd14706bd5d85346066660f3c9eb',1,'LEAF_init(LEAF *const leaf, float sampleRate, int blockSize, char *memory, size_t memorySize, float(*random)(void)):&#160;leaf.c'],['../group__leaf.html#ga13fefd14706bd5d85346066660f3c9eb',1,'LEAF_init(LEAF *const leaf, float sr, int blocksize, char *memory, size_t memorysize, float(*random)(void)):&#160;leaf.c']]],
+  ['leaf_5fseterrorcallback_29',['LEAF_setErrorCallback',['../group__leaf.html#ga046f5f075ebc4562b8e2d97de4b69536',1,'leaf.c']]],
+  ['leaf_5fsetsamplerate_30',['LEAF_setSampleRate',['../group__leaf.html#gab84d5b2ad600cc920248996c86b72f9f',1,'leaf.c']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_9.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_9.js
@@ -1,0 +1,6 @@
+var searchData=
+[
+  ['math_31',['Math',['../group__math.html',1,'']]],
+  ['mempool_32',['mempool',['../struct_l_e_a_f.html#a8bcf1ce65df673f85688cca6f0883723',1,'LEAF::mempool()'],['../group__mempool.html',1,'(Global Namespace)']]],
+  ['midi_33',['MIDI',['../group__midi.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_a.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_a.js
@@ -1,0 +1,8 @@
+var searchData=
+[
+  ['neuronaaltoshaper_34',['NeuronAaltoShaper',['../group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01acdbcb725e463ccad89f2384b1254ab0c',1,'leaf-oscillators.h']]],
+  ['neuronmode_35',['NeuronMode',['../group__tneuron.html#ga39c8ad8b35bf050f69b21ca34b56cc01',1,'leaf-oscillators.h']]],
+  ['neuronnormal_36',['NeuronNormal',['../group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01acedc049c7a14e2b30b266d88d46b3f76',1,'leaf-oscillators.h']]],
+  ['neurontanh_37',['NeuronTanh',['../group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01a0f637d7316b91b66dfea6ef832b1d178',1,'leaf-oscillators.h']]],
+  ['noisetype_38',['NoiseType',['../group__tnoise.html#ga9253d111035d4a83996ec5bbfd3d8963',1,'leaf-oscillators.h']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_b.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_b.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['oscillators_39',['Oscillators',['../group__oscillators.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_c.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_c.js
@@ -1,0 +1,5 @@
+var searchData=
+[
+  ['physical_20models_40',['Physical Models',['../group__physical.html',1,'']]],
+  ['pinknoise_41',['PinkNoise',['../group__tnoise.html#gga9253d111035d4a83996ec5bbfd3d8963a0793318314019dbf241d6de4e8fcf310',1,'leaf-oscillators.h']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_d.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_d.js
@@ -1,0 +1,5 @@
+var searchData=
+[
+  ['random_42',['random',['../struct_l_e_a_f.html#a8b5a79e58a190779d202a188f82e9e86',1,'LEAF']]],
+  ['reverb_43',['Reverb',['../group__reverb.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_e.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_e.js
@@ -1,0 +1,5 @@
+var searchData=
+[
+  ['samplerate_44',['sampleRate',['../struct_l_e_a_f.html#af6a61da668f2188e2850eba261e217c4',1,'LEAF']]],
+  ['sampling_45',['Sampling',['../group__sampling.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/all_f.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/all_f.js
@@ -1,0 +1,929 @@
+var searchData=
+[
+  ['t808cowbell_46',['t808Cowbell',['../group__t808cowbell.html',1,'']]],
+  ['t808cowbell_5ffree_47',['t808Cowbell_free',['../group__t808cowbell.html#gaf582d380f2b6af70344a3a8b4ae04d09',1,'t808Cowbell_free(t808Cowbell *const):&#160;leaf-instruments.c'],['../group__t808cowbell.html#gaf582d380f2b6af70344a3a8b4ae04d09',1,'t808Cowbell_free(t808Cowbell *const cowbellInst):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5finit_48',['t808Cowbell_init',['../group__t808cowbell.html#gad73082119a3ea30b5531c683617d007b',1,'t808Cowbell_init(t808Cowbell *const, int useStick, LEAF *const leaf):&#160;leaf-instruments.c'],['../group__t808cowbell.html#gad73082119a3ea30b5531c683617d007b',1,'t808Cowbell_init(t808Cowbell *const cowbellInst, int useStick, LEAF *const leaf):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5finittopool_49',['t808Cowbell_initToPool',['../group__t808cowbell.html#ga99059721c541953474999ddd3bb59913',1,'t808Cowbell_initToPool(t808Cowbell *const, int useStick, tMempool *const):&#160;leaf-instruments.c'],['../group__t808cowbell.html#ga99059721c541953474999ddd3bb59913',1,'t808Cowbell_initToPool(t808Cowbell *const cowbellInst, int useStick, tMempool *const mp):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5fon_50',['t808Cowbell_on',['../group__t808cowbell.html#ga0345c870253d83d7328ddcaa8cd5962f',1,'t808Cowbell_on(t808Cowbell *const, float vel):&#160;leaf-instruments.c'],['../group__t808cowbell.html#ga0345c870253d83d7328ddcaa8cd5962f',1,'t808Cowbell_on(t808Cowbell *const cowbellInst, float vel):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5fsetbandpassfreq_51',['t808Cowbell_setBandpassFreq',['../group__t808cowbell.html#gab2b2eb374bdd28d96dc91e279cf7f8c8',1,'t808Cowbell_setBandpassFreq(t808Cowbell *const, float freq):&#160;leaf-instruments.c'],['../group__t808cowbell.html#gab2b2eb374bdd28d96dc91e279cf7f8c8',1,'t808Cowbell_setBandpassFreq(t808Cowbell *const cowbellInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5fsetdecay_52',['t808Cowbell_setDecay',['../group__t808cowbell.html#gaa7f1e2a1ce97bb32cba4c8c55ea23ccd',1,'t808Cowbell_setDecay(t808Cowbell *const, float decay):&#160;leaf-instruments.c'],['../group__t808cowbell.html#gaa7f1e2a1ce97bb32cba4c8c55ea23ccd',1,'t808Cowbell_setDecay(t808Cowbell *const cowbellInst, float decay):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5fsetfreq_53',['t808Cowbell_setFreq',['../group__t808cowbell.html#ga231f7ba0e351caf6989db61a37229c49',1,'t808Cowbell_setFreq(t808Cowbell *const, float freq):&#160;leaf-instruments.c'],['../group__t808cowbell.html#ga231f7ba0e351caf6989db61a37229c49',1,'t808Cowbell_setFreq(t808Cowbell *const cowbellInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5fsethighpassfreq_54',['t808Cowbell_setHighpassFreq',['../group__t808cowbell.html#ga7d3ae5159a1e71f7a48e2888b931d6a6',1,'t808Cowbell_setHighpassFreq(t808Cowbell *const, float freq):&#160;leaf-instruments.c'],['../group__t808cowbell.html#ga7d3ae5159a1e71f7a48e2888b931d6a6',1,'t808Cowbell_setHighpassFreq(t808Cowbell *cowbellInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5fsetoscmix_55',['t808Cowbell_setOscMix',['../group__t808cowbell.html#ga8547ef62c511459d58c1c10636a4ff0e',1,'t808Cowbell_setOscMix(t808Cowbell *const, float oscMix):&#160;leaf-instruments.c'],['../group__t808cowbell.html#ga8547ef62c511459d58c1c10636a4ff0e',1,'t808Cowbell_setOscMix(t808Cowbell *const cowbellInst, float oscMix):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5fsetstick_56',['t808Cowbell_setStick',['../group__t808cowbell.html#ga2da4c28c28924e77adb14a477bc2b099',1,'t808Cowbell_setStick(t808Cowbell *const, int useStick):&#160;leaf-instruments.c'],['../group__t808cowbell.html#ga2da4c28c28924e77adb14a477bc2b099',1,'t808Cowbell_setStick(t808Cowbell *const cowbellInst, int useStick):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5ftick_57',['t808Cowbell_tick',['../group__t808cowbell.html#ga58c18da70d7dbe34f5074dd3864950ec',1,'t808Cowbell_tick(t808Cowbell *const):&#160;leaf-instruments.c'],['../group__t808cowbell.html#ga58c18da70d7dbe34f5074dd3864950ec',1,'t808Cowbell_tick(t808Cowbell *const cowbellInst):&#160;leaf-instruments.c']]],
+  ['t808hihat_58',['t808Hihat',['../group__t808hihat.html',1,'']]],
+  ['t808hihat_5ffree_59',['t808Hihat_free',['../group__t808hihat.html#gacdf51e9c89696dfe6347bbf5bd750795',1,'t808Hihat_free(t808Hihat *const):&#160;leaf-instruments.c'],['../group__t808hihat.html#gacdf51e9c89696dfe6347bbf5bd750795',1,'t808Hihat_free(t808Hihat *const hihatInst):&#160;leaf-instruments.c']]],
+  ['t808hihat_5finit_60',['t808Hihat_init',['../group__t808hihat.html#ga90cf7603e94540308461463f738d120a',1,'t808Hihat_init(t808Hihat *const, LEAF *const leaf):&#160;leaf-instruments.c'],['../group__t808hihat.html#ga90cf7603e94540308461463f738d120a',1,'t808Hihat_init(t808Hihat *const hihatInst, LEAF *const leaf):&#160;leaf-instruments.c']]],
+  ['t808hihat_5finittopool_61',['t808Hihat_initToPool',['../group__t808hihat.html#ga1aa220309fb3475977ea7878105a8d1d',1,'t808Hihat_initToPool(t808Hihat *const, tMempool *const):&#160;leaf-instruments.c'],['../group__t808hihat.html#ga1aa220309fb3475977ea7878105a8d1d',1,'t808Hihat_initToPool(t808Hihat *const hihatInst, tMempool *const mp):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fon_62',['t808Hihat_on',['../group__t808hihat.html#gae906b0f89ba9a5ec113512e943b06762',1,'t808Hihat_on(t808Hihat *const, float vel):&#160;leaf-instruments.c'],['../group__t808hihat.html#gae906b0f89ba9a5ec113512e943b06762',1,'t808Hihat_on(t808Hihat *const hihatInst, float vel):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetdecay_63',['t808Hihat_setDecay',['../group__t808hihat.html#gafe362829712b47febbc622a133c978eb',1,'t808Hihat_setDecay(t808Hihat *const, float decay):&#160;leaf-instruments.c'],['../group__t808hihat.html#gafe362829712b47febbc622a133c978eb',1,'t808Hihat_setDecay(t808Hihat *const hihatInst, float decay):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetfm_64',['t808Hihat_setFM',['../group__t808hihat.html#gaa2611ffc113296265543a92ebcb1b772',1,'t808Hihat_setFM(t808Hihat *const hihat, float FM_amount):&#160;leaf-instruments.c'],['../group__t808hihat.html#gaa2611ffc113296265543a92ebcb1b772',1,'t808Hihat_setFM(t808Hihat *const hihatInst, float FM_amount):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsethighpassfreq_65',['t808Hihat_setHighpassFreq',['../group__t808hihat.html#gacece6ca1e3cc6bfe0b5b1ba1ef310a4d',1,'t808Hihat_setHighpassFreq(t808Hihat *const, float freq):&#160;leaf-instruments.c'],['../group__t808hihat.html#gacece6ca1e3cc6bfe0b5b1ba1ef310a4d',1,'t808Hihat_setHighpassFreq(t808Hihat *const hihatInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetoscbandpassfreq_66',['t808Hihat_setOscBandpassFreq',['../group__t808hihat.html#ga86f81ed83bf120be74b1d49c8e409ba9',1,'t808Hihat_setOscBandpassFreq(t808Hihat *const, float freq):&#160;leaf-instruments.c'],['../group__t808hihat.html#ga86f81ed83bf120be74b1d49c8e409ba9',1,'t808Hihat_setOscBandpassFreq(t808Hihat *const hihatInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetoscbandpassq_67',['t808Hihat_setOscBandpassQ',['../group__t808hihat.html#gacfd6ccfd7606aa878c6b5a2b4abb646c',1,'t808Hihat_setOscBandpassQ(t808Hihat *const hihat, float Q):&#160;leaf-instruments.c'],['../group__t808hihat.html#gacfd6ccfd7606aa878c6b5a2b4abb646c',1,'t808Hihat_setOscBandpassQ(t808Hihat *const hihatInst, float Q):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetoscfreq_68',['t808Hihat_setOscFreq',['../group__t808hihat.html#gad9633cc3f51a6ce583c1941309582427',1,'t808Hihat_setOscFreq(t808Hihat *const, float freq):&#160;leaf-instruments.c'],['../group__t808hihat.html#gad9633cc3f51a6ce583c1941309582427',1,'t808Hihat_setOscFreq(t808Hihat *const hihatInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetoscnoisemix_69',['t808Hihat_setOscNoiseMix',['../group__t808hihat.html#ga450a85981e478ea7bf7990b7867dfa7c',1,'t808Hihat_setOscNoiseMix(t808Hihat *const, float oscNoiseMix):&#160;leaf-instruments.c'],['../group__t808hihat.html#ga450a85981e478ea7bf7990b7867dfa7c',1,'t808Hihat_setOscNoiseMix(t808Hihat *const hihatInst, float oscNoiseMix):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetstickbandpassfreq_70',['t808Hihat_setStickBandPassFreq',['../group__t808hihat.html#gac877fd8a5108ee60ce9bc9629c673749',1,'t808Hihat_setStickBandPassFreq(t808Hihat *const, float freq):&#160;leaf-instruments.c'],['../group__t808hihat.html#gac877fd8a5108ee60ce9bc9629c673749',1,'t808Hihat_setStickBandPassFreq(t808Hihat *const hihatInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetstickbandpassq_71',['t808Hihat_setStickBandPassQ',['../group__t808hihat.html#ga554517ecfcd8d7c4f46d97a2be3d11ee',1,'t808Hihat_setStickBandPassQ(t808Hihat *const hihat, float Q):&#160;leaf-instruments.c'],['../group__t808hihat.html#ga554517ecfcd8d7c4f46d97a2be3d11ee',1,'t808Hihat_setStickBandPassQ(t808Hihat *const hihatInst, float Q):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetstretch_72',['t808Hihat_setStretch',['../group__t808hihat.html#gae236e3f43e6099c9b6047bac2b72ab9a',1,'t808Hihat_setStretch(t808Hihat *const hihat, float stretch):&#160;leaf-instruments.c'],['../group__t808hihat.html#gae236e3f43e6099c9b6047bac2b72ab9a',1,'t808Hihat_setStretch(t808Hihat *const hihatInst, float stretch):&#160;leaf-instruments.c']]],
+  ['t808hihat_5ftick_73',['t808Hihat_tick',['../group__t808hihat.html#gacd110ae0db13491f0eb4aa27b75b3cc0',1,'t808Hihat_tick(t808Hihat *const):&#160;leaf-instruments.c'],['../group__t808hihat.html#gacd110ae0db13491f0eb4aa27b75b3cc0',1,'t808Hihat_tick(t808Hihat *const hihatInst):&#160;leaf-instruments.c']]],
+  ['t808kick_74',['t808Kick',['../group__t808kick.html',1,'']]],
+  ['t808kick_5ffree_75',['t808Kick_free',['../group__t808kick.html#ga29c6085b72a735d53c2112d574b53019',1,'t808Kick_free(t808Kick *const):&#160;leaf-instruments.c'],['../group__t808kick.html#ga29c6085b72a735d53c2112d574b53019',1,'t808Kick_free(t808Kick *const kickInst):&#160;leaf-instruments.c']]],
+  ['t808kick_5finit_76',['t808Kick_init',['../group__t808kick.html#gadf0610a6f55caa8fe2bce29be8ae5866',1,'t808Kick_init(t808Kick *const, LEAF *const leaf):&#160;leaf-instruments.c'],['../group__t808kick.html#gadf0610a6f55caa8fe2bce29be8ae5866',1,'t808Kick_init(t808Kick *const kickInst, LEAF *const leaf):&#160;leaf-instruments.c']]],
+  ['t808kick_5finittopool_77',['t808Kick_initToPool',['../group__t808kick.html#ga0126a59483e835ffb84686ded5ffe4db',1,'t808Kick_initToPool(t808Kick *const, tMempool *const):&#160;leaf-instruments.c'],['../group__t808kick.html#ga0126a59483e835ffb84686ded5ffe4db',1,'t808Kick_initToPool(t808Kick *const kickInst, tMempool *const mp):&#160;leaf-instruments.c']]],
+  ['t808kick_5fon_78',['t808Kick_on',['../group__t808kick.html#ga412fef7686fb7b6a6f9a545de1dd66c6',1,'t808Kick_on(t808Kick *const, float vel):&#160;leaf-instruments.c'],['../group__t808kick.html#ga412fef7686fb7b6a6f9a545de1dd66c6',1,'t808Kick_on(t808Kick *const kickInst, float vel):&#160;leaf-instruments.c']]],
+  ['t808kick_5fsetchirpamount_79',['t808Kick_setChirpAmount',['../group__t808kick.html#ga5d87bb00168c68eb2c818bcb215998a4',1,'leaf-instruments.h']]],
+  ['t808kick_5fsetnoisedecay_80',['t808Kick_setNoiseDecay',['../group__t808kick.html#gaf7d43ae5eeb2f104773e33f128d04ad7',1,'leaf-instruments.h']]],
+  ['t808kick_5fsetnoisefilterfreq_81',['t808Kick_setNoiseFilterFreq',['../group__t808kick.html#ga8595d5622afa9ca641b082f016969d25',1,'leaf-instruments.h']]],
+  ['t808kick_5fsetnoisefilterq_82',['t808Kick_setNoiseFilterQ',['../group__t808kick.html#gafccd007bf99d7997189694ae37ec568e',1,'leaf-instruments.h']]],
+  ['t808kick_5fsetsighamount_83',['t808Kick_setSighAmount',['../group__t808kick.html#gacc0caa60a523b68eec29d7a6391021ba',1,'leaf-instruments.h']]],
+  ['t808kick_5fsettonedecay_84',['t808Kick_setToneDecay',['../group__t808kick.html#ga5c40b2f7ee8815cd3b50a52f33f69e50',1,'t808Kick_setToneDecay(t808Kick *const, float decay):&#160;leaf-instruments.c'],['../group__t808kick.html#ga5c40b2f7ee8815cd3b50a52f33f69e50',1,'t808Kick_setToneDecay(t808Kick *const kickInst, float decay):&#160;leaf-instruments.c']]],
+  ['t808kick_5fsettonefreq_85',['t808Kick_setToneFreq',['../group__t808kick.html#gabb6ccbf278eacb145026c24591a0d37c',1,'t808Kick_setToneFreq(t808Kick *const, float freq):&#160;leaf-instruments.c'],['../group__t808kick.html#gabb6ccbf278eacb145026c24591a0d37c',1,'t808Kick_setToneFreq(t808Kick *const kickInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808kick_5fsettonenoisemix_86',['t808Kick_setToneNoiseMix',['../group__t808kick.html#ga8f8bf7a1fcd13931e431e7adf073de68',1,'leaf-instruments.h']]],
+  ['t808kick_5ftick_87',['t808Kick_tick',['../group__t808kick.html#ga3bba7e177c2b54fadb802277ee4df1d1',1,'t808Kick_tick(t808Kick *const):&#160;leaf-instruments.c'],['../group__t808kick.html#ga3bba7e177c2b54fadb802277ee4df1d1',1,'t808Kick_tick(t808Kick *const kickInst):&#160;leaf-instruments.c']]],
+  ['t808snare_88',['t808Snare',['../group__t808snare.html',1,'']]],
+  ['t808snare_5ffree_89',['t808Snare_free',['../group__t808snare.html#ga61d0f7d53b904cf9919a767abe274d10',1,'t808Snare_free(t808Snare *const):&#160;leaf-instruments.c'],['../group__t808snare.html#ga61d0f7d53b904cf9919a767abe274d10',1,'t808Snare_free(t808Snare *const snareInst):&#160;leaf-instruments.c']]],
+  ['t808snare_5finit_90',['t808Snare_init',['../group__t808snare.html#gacd0d752096b9eb8c14b7bd5e7088f6df',1,'t808Snare_init(t808Snare *const, LEAF *const leaf):&#160;leaf-instruments.c'],['../group__t808snare.html#gacd0d752096b9eb8c14b7bd5e7088f6df',1,'t808Snare_init(t808Snare *const snareInst, LEAF *const leaf):&#160;leaf-instruments.c']]],
+  ['t808snare_5finittopool_91',['t808Snare_initToPool',['../group__t808snare.html#ga2aca77d2a4474881901ede4e03bd6209',1,'t808Snare_initToPool(t808Snare *const, tMempool *const):&#160;leaf-instruments.c'],['../group__t808snare.html#ga2aca77d2a4474881901ede4e03bd6209',1,'t808Snare_initToPool(t808Snare *const snareInst, tMempool *const mp):&#160;leaf-instruments.c']]],
+  ['t808snare_5fon_92',['t808Snare_on',['../group__t808snare.html#gae053deab7660527b10d71b087e880565',1,'t808Snare_on(t808Snare *const, float vel):&#160;leaf-instruments.c'],['../group__t808snare.html#gae053deab7660527b10d71b087e880565',1,'t808Snare_on(t808Snare *const snareInst, float vel):&#160;leaf-instruments.c']]],
+  ['t808snare_5fsetnoisedecay_93',['t808Snare_setNoiseDecay',['../group__t808snare.html#gac4d1025b896f471d4eaa28a00332ffd7',1,'t808Snare_setNoiseDecay(t808Snare *const, float decay):&#160;leaf-instruments.c'],['../group__t808snare.html#gac4d1025b896f471d4eaa28a00332ffd7',1,'t808Snare_setNoiseDecay(t808Snare *const snareInst, float decay):&#160;leaf-instruments.c']]],
+  ['t808snare_5fsetnoisefilterfreq_94',['t808Snare_setNoiseFilterFreq',['../group__t808snare.html#gafaee814013dd2d593d88edb94760f4ab',1,'t808Snare_setNoiseFilterFreq(t808Snare *const, float noiseFilterFreq):&#160;leaf-instruments.c'],['../group__t808snare.html#gafaee814013dd2d593d88edb94760f4ab',1,'t808Snare_setNoiseFilterFreq(t808Snare *const snareInst, float noiseFilterFreq):&#160;leaf-instruments.c']]],
+  ['t808snare_5fsetnoisefilterq_95',['t808Snare_setNoiseFilterQ',['../group__t808snare.html#ga6777f759f2d5969d1ce54337e85f00f2',1,'t808Snare_setNoiseFilterQ(t808Snare *const, float noiseFilterQ):&#160;leaf-instruments.c'],['../group__t808snare.html#ga6777f759f2d5969d1ce54337e85f00f2',1,'t808Snare_setNoiseFilterQ(t808Snare *const snareInst, float noiseFilterQ):&#160;leaf-instruments.c']]],
+  ['t808snare_5fsettone1decay_96',['t808Snare_setTone1Decay',['../group__t808snare.html#ga2428f86cd194304d8473720dde039964',1,'t808Snare_setTone1Decay(t808Snare *const, float decay):&#160;leaf-instruments.c'],['../group__t808snare.html#ga2428f86cd194304d8473720dde039964',1,'t808Snare_setTone1Decay(t808Snare *const snareInst, float decay):&#160;leaf-instruments.c']]],
+  ['t808snare_5fsettone1freq_97',['t808Snare_setTone1Freq',['../group__t808snare.html#gac2203aab6623948c0516eac99caff599',1,'t808Snare_setTone1Freq(t808Snare *const, float freq):&#160;leaf-instruments.c'],['../group__t808snare.html#gac2203aab6623948c0516eac99caff599',1,'t808Snare_setTone1Freq(t808Snare *const snareInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808snare_5fsettone2decay_98',['t808Snare_setTone2Decay',['../group__t808snare.html#ga9fd3b086cf100b54d044f8a4be211ffe',1,'t808Snare_setTone2Decay(t808Snare *const, float decay):&#160;leaf-instruments.c'],['../group__t808snare.html#ga9fd3b086cf100b54d044f8a4be211ffe',1,'t808Snare_setTone2Decay(t808Snare *const snareInst, float decay):&#160;leaf-instruments.c']]],
+  ['t808snare_5fsettone2freq_99',['t808Snare_setTone2Freq',['../group__t808snare.html#gae29d81ddb62b86a01e9d9f91af2727ae',1,'t808Snare_setTone2Freq(t808Snare *const, float freq):&#160;leaf-instruments.c'],['../group__t808snare.html#gae29d81ddb62b86a01e9d9f91af2727ae',1,'t808Snare_setTone2Freq(t808Snare *const snareInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808snare_5fsettonenoisemix_100',['t808Snare_setToneNoiseMix',['../group__t808snare.html#gac2d85920c25919c4d647243f32453229',1,'t808Snare_setToneNoiseMix(t808Snare *const, float toneNoiseMix):&#160;leaf-instruments.c'],['../group__t808snare.html#gac2d85920c25919c4d647243f32453229',1,'t808Snare_setToneNoiseMix(t808Snare *const snareInst, float toneNoiseMix):&#160;leaf-instruments.c']]],
+  ['t808snare_5ftick_101',['t808Snare_tick',['../group__t808snare.html#ga517c3b4cfe9e4d362b37d897b852243c',1,'t808Snare_tick(t808Snare *const):&#160;leaf-instruments.c'],['../group__t808snare.html#ga517c3b4cfe9e4d362b37d897b852243c',1,'t808Snare_tick(t808Snare *const snareInst):&#160;leaf-instruments.c']]],
+  ['tables_102',['Tables',['../group__tables.html',1,'']]],
+  ['tadsr_103',['tADSR',['../group__tadsr.html',1,'']]],
+  ['tadsr2_5ffree_104',['tADSR2_free',['../group__tasdr2.html#ga3d78c0c766ca431b535d3adb0bc2f684',1,'tADSR2_free(tADSR2 *const):&#160;leaf-envelopes.c'],['../group__tasdr2.html#ga3d78c0c766ca431b535d3adb0bc2f684',1,'tADSR2_free(tADSR2 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5finit_105',['tADSR2_init',['../group__tasdr2.html#ga5b195997b8fc1934c6cb06cc13f09c13',1,'tADSR2_init(tADSR2 *const, float attack, float decay, float sustain, float release, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__tasdr2.html#ga5b195997b8fc1934c6cb06cc13f09c13',1,'tADSR2_init(tADSR2 *const adsrenv, float attack, float decay, float sustain, float release, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5finittopool_106',['tADSR2_initToPool',['../group__tasdr2.html#ga15dbf5b654eb51489bef787f4c9c23b7',1,'tADSR2_initToPool(tADSR2 *const, float attack, float decay, float sustain, float release, tMempool *const):&#160;leaf-envelopes.c'],['../group__tasdr2.html#ga15dbf5b654eb51489bef787f4c9c23b7',1,'tADSR2_initToPool(tADSR2 *const adsrenv, float attack, float decay, float sustain, float release, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5foff_107',['tADSR2_off',['../group__tasdr2.html#gadd6f357864babc27382363b314efd70d',1,'tADSR2_off(tADSR2 *const):&#160;leaf-envelopes.c'],['../group__tasdr2.html#gadd6f357864babc27382363b314efd70d',1,'tADSR2_off(tADSR2 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5fon_108',['tADSR2_on',['../group__tasdr2.html#ga2ba1656a4f5d1f8dcecde930ea54c7b7',1,'tADSR2_on(tADSR2 *const, float velocity):&#160;leaf-envelopes.c'],['../group__tasdr2.html#ga2ba1656a4f5d1f8dcecde930ea54c7b7',1,'tADSR2_on(tADSR2 *const adsrenv, float velocity):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5fsetattack_109',['tADSR2_setAttack',['../group__tasdr2.html#ga19f6d152bd5b351dcc4416f4a5f51555',1,'tADSR2_setAttack(tADSR2 *const, float attack):&#160;leaf-envelopes.c'],['../group__tasdr2.html#ga19f6d152bd5b351dcc4416f4a5f51555',1,'tADSR2_setAttack(tADSR2 *const adsrenv, float attack):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5fsetdecay_110',['tADSR2_setDecay',['../group__tasdr2.html#gab50e8fb5a053b908b69315cd83e1840a',1,'tADSR2_setDecay(tADSR2 *const, float decay):&#160;leaf-envelopes.c'],['../group__tasdr2.html#gab50e8fb5a053b908b69315cd83e1840a',1,'tADSR2_setDecay(tADSR2 *const adsrenv, float decay):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5fsetleakfactor_111',['tADSR2_setLeakFactor',['../group__tasdr2.html#ga8490472fff769f548a45739892a31758',1,'tADSR2_setLeakFactor(tADSR2 *const, float leakFactor):&#160;leaf-envelopes.c'],['../group__tasdr2.html#ga8490472fff769f548a45739892a31758',1,'tADSR2_setLeakFactor(tADSR2 *const adsrenv, float leakFactor):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5fsetrelease_112',['tADSR2_setRelease',['../group__tasdr2.html#gaf68f6a5e10f25998f33d65162f9eb583',1,'tADSR2_setRelease(tADSR2 *const, float release):&#160;leaf-envelopes.c'],['../group__tasdr2.html#gaf68f6a5e10f25998f33d65162f9eb583',1,'tADSR2_setRelease(tADSR2 *const adsrenv, float release):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5fsetsustain_113',['tADSR2_setSustain',['../group__tasdr2.html#ga3910c7c0360e0d7859e4bcf5521b3e7d',1,'tADSR2_setSustain(tADSR2 *const, float sustain):&#160;leaf-envelopes.c'],['../group__tasdr2.html#ga3910c7c0360e0d7859e4bcf5521b3e7d',1,'tADSR2_setSustain(tADSR2 *const adsrenv, float sustain):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5ftick_114',['tADSR2_tick',['../group__tasdr2.html#ga3033906b9b5a6688818059210b10799e',1,'tADSR2_tick(tADSR2 *const):&#160;leaf-envelopes.c'],['../group__tasdr2.html#ga3033906b9b5a6688818059210b10799e',1,'tADSR2_tick(tADSR2 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr3_115',['tADSR3',['../group__tadsr3.html',1,'']]],
+  ['tadsr3_5ffree_116',['tADSR3_free',['../group__tadsr3.html#gaf633a93865d4a9d4ba4840624f2b41bf',1,'tADSR3_free(tADSR3 *const):&#160;leaf-envelopes.c'],['../group__tadsr3.html#gaf633a93865d4a9d4ba4840624f2b41bf',1,'tADSR3_free(tADSR3 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5finit_117',['tADSR3_init',['../group__tadsr3.html#ga61f1fd529df0d97a9a74b9523024b1fe',1,'tADSR3_init(tADSR3 *const, float attack, float decay, float sustain, float release, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__tadsr3.html#ga61f1fd529df0d97a9a74b9523024b1fe',1,'tADSR3_init(tADSR3 *const adsrenv, float attack, float decay, float sustain, float release, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5finittopool_118',['tADSR3_initToPool',['../group__tadsr3.html#ga7e0784b34c2fef54de2ed993d68f9b7c',1,'tADSR3_initToPool(tADSR3 *const, float attack, float decay, float sustain, float release, tMempool *const):&#160;leaf-envelopes.c'],['../group__tadsr3.html#ga7e0784b34c2fef54de2ed993d68f9b7c',1,'tADSR3_initToPool(tADSR3 *const adsrenv, float attack, float decay, float sustain, float release, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5foff_119',['tADSR3_off',['../group__tadsr3.html#gad48b26429b4224b199b26690a0d480f1',1,'tADSR3_off(tADSR3 *const):&#160;leaf-envelopes.c'],['../group__tadsr3.html#gad48b26429b4224b199b26690a0d480f1',1,'tADSR3_off(tADSR3 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5fon_120',['tADSR3_on',['../group__tadsr3.html#ga6054295d933bb2d27898664f4b6f067e',1,'tADSR3_on(tADSR3 *const, float velocity):&#160;leaf-envelopes.c'],['../group__tadsr3.html#ga6054295d933bb2d27898664f4b6f067e',1,'tADSR3_on(tADSR3 *const adsrenv, float velocity):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5fsetattack_121',['tADSR3_setAttack',['../group__tadsr3.html#ga0a6a119590346ee356f486d8af00567a',1,'tADSR3_setAttack(tADSR3 *const, float attack):&#160;leaf-envelopes.c'],['../group__tadsr3.html#ga0a6a119590346ee356f486d8af00567a',1,'tADSR3_setAttack(tADSR3 *const adsrenv, float attack):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5fsetdecay_122',['tADSR3_setDecay',['../group__tadsr3.html#ga325386ad4640ec898971fdedf87b3b49',1,'tADSR3_setDecay(tADSR3 *const, float decay):&#160;leaf-envelopes.c'],['../group__tadsr3.html#ga325386ad4640ec898971fdedf87b3b49',1,'tADSR3_setDecay(tADSR3 *const adsrenv, float decay):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5fsetleakfactor_123',['tADSR3_setLeakFactor',['../group__tadsr3.html#ga589972bef8fca1a6a99064b92968c9fc',1,'tADSR3_setLeakFactor(tADSR3 *const, float leakFactor):&#160;leaf-envelopes.c'],['../group__tadsr3.html#ga589972bef8fca1a6a99064b92968c9fc',1,'tADSR3_setLeakFactor(tADSR3 *const adsrenv, float leakFactor):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5fsetrelease_124',['tADSR3_setRelease',['../group__tadsr3.html#ga3ac9763101f9e3b5338ea92cc02a6032',1,'tADSR3_setRelease(tADSR3 *const, float release):&#160;leaf-envelopes.c'],['../group__tadsr3.html#ga3ac9763101f9e3b5338ea92cc02a6032',1,'tADSR3_setRelease(tADSR3 *const adsrenv, float release):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5fsetsustain_125',['tADSR3_setSustain',['../group__tadsr3.html#gae5695ee654846bf4f3f092c3f2136ca8',1,'tADSR3_setSustain(tADSR3 *const, float sustain):&#160;leaf-envelopes.c'],['../group__tadsr3.html#gae5695ee654846bf4f3f092c3f2136ca8',1,'tADSR3_setSustain(tADSR3 *const adsrenv, float sustain):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5ftick_126',['tADSR3_tick',['../group__tadsr3.html#ga3b959e263e7322d7876bdf5e9b633a16',1,'tADSR3_tick(tADSR3 *const):&#160;leaf-envelopes.c'],['../group__tadsr3.html#ga3b959e263e7322d7876bdf5e9b633a16',1,'tADSR3_tick(tADSR3 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr4_127',['tADSR4',['../group__tadsr4.html',1,'']]],
+  ['tadsr4_5ffree_128',['tADSR4_free',['../group__tadsr4.html#ga2889f7a9596ba5e9d386c9913e51e62d',1,'tADSR4_free(tADSR4 *const):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga2889f7a9596ba5e9d386c9913e51e62d',1,'tADSR4_free(tADSR4 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5finit_129',['tADSR4_init',['../group__tadsr4.html#ga18f8440695a8f99ff6469ff9df6395c2',1,'tADSR4_init(tADSR4 *const, float attack, float decay, float sustain, float release, float *expBuffer, int bufferSize, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga18f8440695a8f99ff6469ff9df6395c2',1,'tADSR4_init(tADSR4 *const adsrenv, float attack, float decay, float sustain, float release, float *expBuffer, int bufferSize, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5finittopool_130',['tADSR4_initToPool',['../group__tadsr4.html#ga731d6838ae65373c787ecf977523c121',1,'tADSR4_initToPool(tADSR4 *const, float attack, float decay, float sustain, float release, float *expBuffer, int bufferSize, tMempool *const):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga731d6838ae65373c787ecf977523c121',1,'tADSR4_initToPool(tADSR4 *const adsrenv, float attack, float decay, float sustain, float release, float *expBuffer, int bufferSize, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5foff_131',['tADSR4_off',['../group__tadsr4.html#ga0271a2f741bed72edb08dc965433dade',1,'tADSR4_off(tADSR4 *const):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga0271a2f741bed72edb08dc965433dade',1,'tADSR4_off(tADSR4 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5fon_132',['tADSR4_on',['../group__tadsr4.html#ga63a8a38f1f6f319d0103acf7d0fb21ad',1,'tADSR4_on(tADSR4 *const, float velocity):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga63a8a38f1f6f319d0103acf7d0fb21ad',1,'tADSR4_on(tADSR4 *const adsrenv, float velocity):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5fsetattack_133',['tADSR4_setAttack',['../group__tadsr4.html#ga5059a2109760aa0188c4769a52b4a4a3',1,'tADSR4_setAttack(tADSR4 *const, float attack):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga5059a2109760aa0188c4769a52b4a4a3',1,'tADSR4_setAttack(tADSR4 *const adsrenv, float attack):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5fsetdecay_134',['tADSR4_setDecay',['../group__tadsr4.html#gab5b58a1067454a87cdff5e09a86e4af3',1,'tADSR4_setDecay(tADSR4 *const, float decay):&#160;leaf-envelopes.c'],['../group__tadsr4.html#gab5b58a1067454a87cdff5e09a86e4af3',1,'tADSR4_setDecay(tADSR4 *const adsrenv, float decay):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5fsetleakfactor_135',['tADSR4_setLeakFactor',['../group__tadsr4.html#gad79710f31593ada4e3834ebefd67a388',1,'tADSR4_setLeakFactor(tADSR4 *const, float leakFactor):&#160;leaf-envelopes.c'],['../group__tadsr4.html#gad79710f31593ada4e3834ebefd67a388',1,'tADSR4_setLeakFactor(tADSR4 *const adsrenv, float leakFactor):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5fsetrelease_136',['tADSR4_setRelease',['../group__tadsr4.html#ga7a53860240f681a65d90302145702697',1,'tADSR4_setRelease(tADSR4 *const, float release):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga7a53860240f681a65d90302145702697',1,'tADSR4_setRelease(tADSR4 *const adsrenv, float release):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5fsetsustain_137',['tADSR4_setSustain',['../group__tadsr4.html#ga691edaf4b254d1d44bee378312e370be',1,'tADSR4_setSustain(tADSR4 *const, float sustain):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga691edaf4b254d1d44bee378312e370be',1,'tADSR4_setSustain(tADSR4 *const adsrenv, float sustain):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5ftick_138',['tADSR4_tick',['../group__tadsr4.html#ga5f4cc4b20251f8240c0208b452b8eff3',1,'tADSR4_tick(tADSR4 *const):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga5f4cc4b20251f8240c0208b452b8eff3',1,'tADSR4_tick(tADSR4 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5fticknointerp_139',['tADSR4_tickNoInterp',['../group__tadsr4.html#ga32a5545ca2510d666b9c59d9106888c5',1,'tADSR4_tickNoInterp(tADSR4 *const adsrenv):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga32a5545ca2510d666b9c59d9106888c5',1,'tADSR4_tickNoInterp(tADSR4 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr_5ffree_140',['tADSR_free',['../group__tadsr.html#gaccc3f988aaab5a39b495b1ccd21da608',1,'tADSR_free(tADSR *const):&#160;leaf-envelopes.c'],['../group__tadsr.html#gaccc3f988aaab5a39b495b1ccd21da608',1,'tADSR_free(tADSR *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr_5finit_141',['tADSR_init',['../group__tadsr.html#gafa76d2b76694362abf9cf0ed987b7106',1,'tADSR_init(tADSR *const adsrenv, float attack, float decay, float sustain, float release, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__tadsr.html#gafa76d2b76694362abf9cf0ed987b7106',1,'tADSR_init(tADSR *const adsrenv, float attack, float decay, float sustain, float release, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['tadsr_5finittopool_142',['tADSR_initToPool',['../group__tadsr.html#gada1d7d74e13cfddaba736b2920b79d9f',1,'tADSR_initToPool(tADSR *const adsrenv, float attack, float decay, float sustain, float release, tMempool *const mp):&#160;leaf-envelopes.c'],['../group__tadsr.html#gada1d7d74e13cfddaba736b2920b79d9f',1,'tADSR_initToPool(tADSR *const adsrenv, float attack, float decay, float sustain, float release, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['tadsr_5foff_143',['tADSR_off',['../group__tadsr.html#ga1a41adcdea81db09f04d008b9b8e62b8',1,'tADSR_off(tADSR *const):&#160;leaf-envelopes.c'],['../group__tadsr.html#ga1a41adcdea81db09f04d008b9b8e62b8',1,'tADSR_off(tADSR *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr_5fon_144',['tADSR_on',['../group__tadsr.html#gaffd817040cc125f3b8204e756a16085c',1,'tADSR_on(tADSR *const, float velocity):&#160;leaf-envelopes.c'],['../group__tadsr.html#gaffd817040cc125f3b8204e756a16085c',1,'tADSR_on(tADSR *const adsrenv, float velocity):&#160;leaf-envelopes.c']]],
+  ['tadsr_5fsetattack_145',['tADSR_setAttack',['../group__tadsr.html#ga1cceb7951e999aa388bd72a7bb3901f6',1,'tADSR_setAttack(tADSR *const, float attack):&#160;leaf-envelopes.c'],['../group__tadsr.html#ga1cceb7951e999aa388bd72a7bb3901f6',1,'tADSR_setAttack(tADSR *const adsrenv, float attack):&#160;leaf-envelopes.c']]],
+  ['tadsr_5fsetdecay_146',['tADSR_setDecay',['../group__tadsr.html#ga7f305ead6d014fbafcb132ebcc81dddb',1,'tADSR_setDecay(tADSR *const, float decay):&#160;leaf-envelopes.c'],['../group__tadsr.html#ga7f305ead6d014fbafcb132ebcc81dddb',1,'tADSR_setDecay(tADSR *const adsrenv, float decay):&#160;leaf-envelopes.c']]],
+  ['tadsr_5fsetleakfactor_147',['tADSR_setLeakFactor',['../group__tadsr.html#ga1802708b1a0c0ce324c3072554c01624',1,'tADSR_setLeakFactor(tADSR *const, float leakFactor):&#160;leaf-envelopes.c'],['../group__tadsr.html#ga1802708b1a0c0ce324c3072554c01624',1,'tADSR_setLeakFactor(tADSR *const adsrenv, float leakFactor):&#160;leaf-envelopes.c']]],
+  ['tadsr_5fsetrelease_148',['tADSR_setRelease',['../group__tadsr.html#ga3d62827bbd4f058d07e6cb1a8b92cb9f',1,'tADSR_setRelease(tADSR *const, float release):&#160;leaf-envelopes.c'],['../group__tadsr.html#ga3d62827bbd4f058d07e6cb1a8b92cb9f',1,'tADSR_setRelease(tADSR *const adsrenv, float release):&#160;leaf-envelopes.c']]],
+  ['tadsr_5fsetsustain_149',['tADSR_setSustain',['../group__tadsr.html#gac676d5a70fe7a8487d125e5aff250fd0',1,'tADSR_setSustain(tADSR *const, float sustain):&#160;leaf-envelopes.c'],['../group__tadsr.html#gac676d5a70fe7a8487d125e5aff250fd0',1,'tADSR_setSustain(tADSR *const adsrenv, float sustain):&#160;leaf-envelopes.c']]],
+  ['tadsr_5ftick_150',['tADSR_tick',['../group__tadsr.html#gabbc3685eb6c47a49e657a1792d38dfc7',1,'tADSR_tick(tADSR *const):&#160;leaf-envelopes.c'],['../group__tadsr.html#gabbc3685eb6c47a49e657a1792d38dfc7',1,'tADSR_tick(tADSR *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tallpass_151',['tAllpass',['../group__tallpass.html',1,'']]],
+  ['tallpass_5ffree_152',['tAllpass_free',['../group__tallpass.html#ga177191c8cb437f2a255f02ee476d6ee0',1,'tAllpass_free(tAllpass *const):&#160;leaf-filters.c'],['../group__tallpass.html#ga177191c8cb437f2a255f02ee476d6ee0',1,'tAllpass_free(tAllpass *const ft):&#160;leaf-filters.c']]],
+  ['tallpass_5finit_153',['tAllpass_init',['../group__tallpass.html#ga49f8da193def13b70b2380288dbd96d2',1,'tAllpass_init(tAllpass *const, float initDelay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tallpass.html#ga49f8da193def13b70b2380288dbd96d2',1,'tAllpass_init(tAllpass *const ft, float initDelay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tallpass_5finittopool_154',['tAllpass_initToPool',['../group__tallpass.html#ga51e3ba1dedc220c6f466704870614ec7',1,'tAllpass_initToPool(tAllpass *const, float initDelay, uint32_t maxDelay, tMempool *const):&#160;leaf-filters.c'],['../group__tallpass.html#ga51e3ba1dedc220c6f466704870614ec7',1,'tAllpass_initToPool(tAllpass *const ft, float initDelay, uint32_t maxDelay, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tallpass_5fsetdelay_155',['tAllpass_setDelay',['../group__tallpass.html#gaa0e5e88f6000959b4a6146e0c1ce4553',1,'tAllpass_setDelay(tAllpass *const, float delay):&#160;leaf-filters.c'],['../group__tallpass.html#gaa0e5e88f6000959b4a6146e0c1ce4553',1,'tAllpass_setDelay(tAllpass *const ft, float delay):&#160;leaf-filters.c']]],
+  ['tallpass_5fsetgain_156',['tAllpass_setGain',['../group__tallpass.html#gac301093f1c86a58e33f0d197e4f49719',1,'tAllpass_setGain(tAllpass *const, float gain):&#160;leaf-filters.c'],['../group__tallpass.html#gac301093f1c86a58e33f0d197e4f49719',1,'tAllpass_setGain(tAllpass *const ft, float gain):&#160;leaf-filters.c']]],
+  ['tallpass_5ftick_157',['tAllpass_tick',['../group__tallpass.html#gac0b56b4935f44e73e86566289d16aaa5',1,'tAllpass_tick(tAllpass *const, float input):&#160;leaf-filters.c'],['../group__tallpass.html#gac0b56b4935f44e73e86566289d16aaa5',1,'tAllpass_tick(tAllpass *const ft, float input):&#160;leaf-filters.c']]],
+  ['tallpassdelay_158',['tAllpassDelay',['../group__tallpassdelay.html',1,'']]],
+  ['tallpassdelay_5faddto_159',['tAllpassDelay_addTo',['../group__tallpassdelay.html#ga25124f2fc78144daa86e0008417f410c',1,'tAllpassDelay_addTo(tAllpassDelay *const, float value, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga25124f2fc78144daa86e0008417f410c',1,'tAllpassDelay_addTo(tAllpassDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5fclear_160',['tAllpassDelay_clear',['../group__tallpassdelay.html#ga22a3124a087816518ae22e7dd57049dd',1,'tAllpassDelay_clear(tAllpassDelay *const):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga22a3124a087816518ae22e7dd57049dd',1,'tAllpassDelay_clear(tAllpassDelay *const dl):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5ffree_161',['tAllpassDelay_free',['../group__tallpassdelay.html#gaae4b75bede117322eedbb806f92af672',1,'tAllpassDelay_free(tAllpassDelay *const):&#160;leaf-delay.c'],['../group__tallpassdelay.html#gaae4b75bede117322eedbb806f92af672',1,'tAllpassDelay_free(tAllpassDelay *const dl):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5fgetdelay_162',['tAllpassDelay_getDelay',['../group__tallpassdelay.html#ga7cda781e73a82d91e49f3ce5955cbd0a',1,'tAllpassDelay_getDelay(tAllpassDelay *const):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga7cda781e73a82d91e49f3ce5955cbd0a',1,'tAllpassDelay_getDelay(tAllpassDelay *const dl):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5fgetlastin_163',['tAllpassDelay_getLastIn',['../group__tallpassdelay.html#ga01be8563825023d090b5dbd750f2bba3',1,'tAllpassDelay_getLastIn(tAllpassDelay *const):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga01be8563825023d090b5dbd750f2bba3',1,'tAllpassDelay_getLastIn(tAllpassDelay *const dl):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5fgetlastout_164',['tAllpassDelay_getLastOut',['../group__tallpassdelay.html#gab6937352ad500b205c4fc5e822937735',1,'tAllpassDelay_getLastOut(tAllpassDelay *const):&#160;leaf-delay.c'],['../group__tallpassdelay.html#gab6937352ad500b205c4fc5e822937735',1,'tAllpassDelay_getLastOut(tAllpassDelay *const dl):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5finit_165',['tAllpassDelay_init',['../group__tallpassdelay.html#gac68b64e119c315b545227a9404c2dedc',1,'tAllpassDelay_init(tAllpassDelay *const, float delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c'],['../group__tallpassdelay.html#gac68b64e119c315b545227a9404c2dedc',1,'tAllpassDelay_init(tAllpassDelay *const dl, float delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5finittopool_166',['tAllpassDelay_initToPool',['../group__tallpassdelay.html#ga9a65c14cde90540162d7fb94bedd4013',1,'tAllpassDelay_initToPool(tAllpassDelay *const, float delay, uint32_t maxDelay, tMempool *const):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga9a65c14cde90540162d7fb94bedd4013',1,'tAllpassDelay_initToPool(tAllpassDelay *const dl, float delay, uint32_t maxDelay, tMempool *const mp):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5fsetdelay_167',['tAllpassDelay_setDelay',['../group__tallpassdelay.html#ga83b93819de2b2d825247c47b830d918c',1,'tAllpassDelay_setDelay(tAllpassDelay *const, float delay):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga83b93819de2b2d825247c47b830d918c',1,'tAllpassDelay_setDelay(tAllpassDelay *const dl, float delay):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5ftapin_168',['tAllpassDelay_tapIn',['../group__tallpassdelay.html#ga000dae89babb537265f9b56f8ce5560b',1,'tAllpassDelay_tapIn(tAllpassDelay *const, float in, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga000dae89babb537265f9b56f8ce5560b',1,'tAllpassDelay_tapIn(tAllpassDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5ftapout_169',['tAllpassDelay_tapOut',['../group__tallpassdelay.html#ga0348f7e531aa956c0e4f1e9eb3bb208a',1,'tAllpassDelay_tapOut(tAllpassDelay *const, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga0348f7e531aa956c0e4f1e9eb3bb208a',1,'tAllpassDelay_tapOut(tAllpassDelay *const dl, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5ftick_170',['tAllpassDelay_tick',['../group__tallpassdelay.html#ga6145fe6d2e4fd9e423d96725183498cc',1,'tAllpassDelay_tick(tAllpassDelay *const, float sample):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga6145fe6d2e4fd9e423d96725183498cc',1,'tAllpassDelay_tick(tAllpassDelay *const dl, float input):&#160;leaf-delay.c']]],
+  ['tadsr2_171',['tADSR2',['../group__tasdr2.html',1,'']]],
+  ['tattackdetection_172',['tAttackDetection',['../group__tattackdetection.html',1,'']]],
+  ['tattackdetection_5fdetect_173',['tAttackDetection_detect',['../group__tattackdetection.html#ga628b4e4305fb135f7f363b94a209cb37',1,'tAttackDetection_detect(tAttackDetection *const, float *in):&#160;leaf-analysis.c'],['../group__tattackdetection.html#ga628b4e4305fb135f7f363b94a209cb37',1,'tAttackDetection_detect(tAttackDetection *const ad, float *in):&#160;leaf-analysis.c']]],
+  ['tattackdetection_5ffree_174',['tAttackDetection_free',['../group__tattackdetection.html#gac0cecbd3eb9478a8ac62ad056b4e65e8',1,'tAttackDetection_free(tAttackDetection *const):&#160;leaf-analysis.c'],['../group__tattackdetection.html#gac0cecbd3eb9478a8ac62ad056b4e65e8',1,'tAttackDetection_free(tAttackDetection *const ad):&#160;leaf-analysis.c']]],
+  ['tattackdetection_5finit_175',['tAttackDetection_init',['../group__tattackdetection.html#gaa7cf7c473a720eb6e034661a92a9164a',1,'tAttackDetection_init(tAttackDetection *const, int blocksize, int atk, int rel, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tattackdetection.html#gaa7cf7c473a720eb6e034661a92a9164a',1,'tAttackDetection_init(tAttackDetection *const ad, int blocksize, int atk, int rel, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tattackdetection_5finittopool_176',['tAttackDetection_initToPool',['../group__tattackdetection.html#ga159b77e3617708f63d34705f66891eca',1,'tAttackDetection_initToPool(tAttackDetection *const, int blocksize, int atk, int rel, tMempool *const):&#160;leaf-analysis.c'],['../group__tattackdetection.html#ga159b77e3617708f63d34705f66891eca',1,'tAttackDetection_initToPool(tAttackDetection *const ad, int blocksize, int atk, int rel, tMempool *const mp):&#160;leaf-analysis.c']]],
+  ['tattackdetection_5fsetattack_177',['tAttackDetection_setAttack',['../group__tattackdetection.html#gae1258e29699c07368168a5a06e847c1c',1,'tAttackDetection_setAttack(tAttackDetection *const, int inAtk):&#160;leaf-analysis.c'],['../group__tattackdetection.html#gae1258e29699c07368168a5a06e847c1c',1,'tAttackDetection_setAttack(tAttackDetection *const ad, int inAtk):&#160;leaf-analysis.c']]],
+  ['tattackdetection_5fsetblocksize_178',['tAttackDetection_setBlocksize',['../group__tattackdetection.html#ga330419a7bcf2aea460cbb8341d0cc7a1',1,'tAttackDetection_setBlocksize(tAttackDetection *const, int size):&#160;leaf-analysis.c'],['../group__tattackdetection.html#ga330419a7bcf2aea460cbb8341d0cc7a1',1,'tAttackDetection_setBlocksize(tAttackDetection *const ad, int size):&#160;leaf-analysis.c']]],
+  ['tattackdetection_5fsetrelease_179',['tAttackDetection_setRelease',['../group__tattackdetection.html#ga849d76be546d42e00dcfaee4ca326adb',1,'tAttackDetection_setRelease(tAttackDetection *const, int inRel):&#160;leaf-analysis.c'],['../group__tattackdetection.html#ga849d76be546d42e00dcfaee4ca326adb',1,'tAttackDetection_setRelease(tAttackDetection *const ad, int inRel):&#160;leaf-analysis.c']]],
+  ['tattackdetection_5fsetsamplerate_180',['tAttackDetection_setSamplerate',['../group__tattackdetection.html#gafc1088d0fc65cb8c9ca3e219dc6ee23e',1,'tAttackDetection_setSamplerate(tAttackDetection *const, int inRate):&#160;leaf-analysis.c'],['../group__tattackdetection.html#gafc1088d0fc65cb8c9ca3e219dc6ee23e',1,'tAttackDetection_setSamplerate(tAttackDetection *const ad, int inRate):&#160;leaf-analysis.c']]],
+  ['tattackdetection_5fsetthreshold_181',['tAttackDetection_setThreshold',['../group__tattackdetection.html#gafc46d23c20523048eaf45a68e146dbcf',1,'tAttackDetection_setThreshold(tAttackDetection *const, float thres):&#160;leaf-analysis.c'],['../group__tattackdetection.html#gafc46d23c20523048eaf45a68e146dbcf',1,'tAttackDetection_setThreshold(tAttackDetection *const ad, float thres):&#160;leaf-analysis.c']]],
+  ['tautosampler_182',['tAutoSampler',['../group__tautosampler.html',1,'']]],
+  ['tautosampler_5ffree_183',['tAutoSampler_free',['../group__tautosampler.html#ga1317602e4195ebc58d6df3f0263c4bb8',1,'tAutoSampler_free(tAutoSampler *const):&#160;leaf-sampling.c'],['../group__tautosampler.html#ga1317602e4195ebc58d6df3f0263c4bb8',1,'tAutoSampler_free(tAutoSampler *const as):&#160;leaf-sampling.c']]],
+  ['tautosampler_5finit_184',['tAutoSampler_init',['../group__tautosampler.html#gafbc477a175f7abfd083b150e7fb425eb',1,'tAutoSampler_init(tAutoSampler *const, tBuffer *const, LEAF *const leaf):&#160;leaf-sampling.c'],['../group__tautosampler.html#gafbc477a175f7abfd083b150e7fb425eb',1,'tAutoSampler_init(tAutoSampler *const as, tBuffer *const b, LEAF *const leaf):&#160;leaf-sampling.c']]],
+  ['tautosampler_5fplay_185',['tAutoSampler_play',['../group__tautosampler.html#ga49675d40778b000fce44454eca05f476',1,'tAutoSampler_play(tAutoSampler *const):&#160;leaf-sampling.c'],['../group__tautosampler.html#ga49675d40778b000fce44454eca05f476',1,'tAutoSampler_play(tAutoSampler *const as):&#160;leaf-sampling.c']]],
+  ['tautosampler_5fsetbuffer_186',['tAutoSampler_setBuffer',['../group__tautosampler.html#gae3740600b81b2d3ecc2f76b354996873',1,'tAutoSampler_setBuffer(tAutoSampler *const, tBuffer *const):&#160;leaf-sampling.c'],['../group__tautosampler.html#gae3740600b81b2d3ecc2f76b354996873',1,'tAutoSampler_setBuffer(tAutoSampler *const as, tBuffer *const b):&#160;leaf-sampling.c']]],
+  ['tautosampler_5fsetcrossfadelength_187',['tAutoSampler_setCrossfadeLength',['../group__tautosampler.html#ga45d69e59ff3924446ff833940adba2db',1,'tAutoSampler_setCrossfadeLength(tAutoSampler *const, uint32_t length):&#160;leaf-sampling.c'],['../group__tautosampler.html#ga45d69e59ff3924446ff833940adba2db',1,'tAutoSampler_setCrossfadeLength(tAutoSampler *const as, uint32_t length):&#160;leaf-sampling.c']]],
+  ['tautosampler_5fsetmode_188',['tAutoSampler_setMode',['../group__tautosampler.html#ga2310af54d4e60debedd10003d6ec8113',1,'tAutoSampler_setMode(tAutoSampler *const, PlayMode mode):&#160;leaf-sampling.c'],['../group__tautosampler.html#ga2310af54d4e60debedd10003d6ec8113',1,'tAutoSampler_setMode(tAutoSampler *const as, PlayMode mode):&#160;leaf-sampling.c']]],
+  ['tautosampler_5fsetrate_189',['tAutoSampler_setRate',['../group__tautosampler.html#ga8abfe84e7aaf00dc70b5b6e96d99af63',1,'tAutoSampler_setRate(tAutoSampler *const, float rate):&#160;leaf-sampling.c'],['../group__tautosampler.html#ga8abfe84e7aaf00dc70b5b6e96d99af63',1,'tAutoSampler_setRate(tAutoSampler *const as, float rate):&#160;leaf-sampling.c']]],
+  ['tautosampler_5fsetthreshold_190',['tAutoSampler_setThreshold',['../group__tautosampler.html#gaa163a4ea5f76285fdb51de157185740e',1,'tAutoSampler_setThreshold(tAutoSampler *const, float thresh):&#160;leaf-sampling.c'],['../group__tautosampler.html#gaa163a4ea5f76285fdb51de157185740e',1,'tAutoSampler_setThreshold(tAutoSampler *const as, float thresh):&#160;leaf-sampling.c']]],
+  ['tautosampler_5fsetwindowsize_191',['tAutoSampler_setWindowSize',['../group__tautosampler.html#gabe80e37e28f7b454acf1621ab703506f',1,'tAutoSampler_setWindowSize(tAutoSampler *const, uint32_t size):&#160;leaf-sampling.c'],['../group__tautosampler.html#gabe80e37e28f7b454acf1621ab703506f',1,'tAutoSampler_setWindowSize(tAutoSampler *const as, uint32_t size):&#160;leaf-sampling.c']]],
+  ['tautosampler_5fstop_192',['tAutoSampler_stop',['../group__tautosampler.html#gaa267e6bad2805ca746b9189ea38cf040',1,'tAutoSampler_stop(tAutoSampler *const):&#160;leaf-sampling.c'],['../group__tautosampler.html#gaa267e6bad2805ca746b9189ea38cf040',1,'tAutoSampler_stop(tAutoSampler *const as):&#160;leaf-sampling.c']]],
+  ['tautosampler_5ftick_193',['tAutoSampler_tick',['../group__tautosampler.html#ga201113e0c5d4a209bc98719162d256c0',1,'tAutoSampler_tick(tAutoSampler *const, float input):&#160;leaf-sampling.c'],['../group__tautosampler.html#ga201113e0c5d4a209bc98719162d256c0',1,'tAutoSampler_tick(tAutoSampler *const as, float input):&#160;leaf-sampling.c']]],
+  ['tbiquad_194',['tBiQuad',['../group__tbiquad.html',1,'']]],
+  ['tbiquad_5ffree_195',['tBiQuad_free',['../group__tbiquad.html#gaa73dd0d8efd4d147184a3af3243f50db',1,'tBiQuad_free(tBiQuad *const):&#160;leaf-filters.c'],['../group__tbiquad.html#gaa73dd0d8efd4d147184a3af3243f50db',1,'tBiQuad_free(tBiQuad *const ft):&#160;leaf-filters.c']]],
+  ['tbiquad_5finit_196',['tBiQuad_init',['../group__tbiquad.html#ga7a8d9261b37e588479b6a9548a28a2ae',1,'tBiQuad_init(tBiQuad *const, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tbiquad.html#ga7a8d9261b37e588479b6a9548a28a2ae',1,'tBiQuad_init(tBiQuad *const ft, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tbiquad_5finittopool_197',['tBiQuad_initToPool',['../group__tbiquad.html#gab56ac6460715286ab98439dd8e7e346c',1,'tBiQuad_initToPool(tBiQuad *const, tMempool *const):&#160;leaf-filters.c'],['../group__tbiquad.html#gab56ac6460715286ab98439dd8e7e346c',1,'tBiQuad_initToPool(tBiQuad *const ft, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tbiquad_5fseta1_198',['tBiQuad_setA1',['../group__tbiquad.html#ga18eef101bdb03775d51acec6c6eebdaa',1,'tBiQuad_setA1(tBiQuad *const, float a1):&#160;leaf-filters.c'],['../group__tbiquad.html#ga18eef101bdb03775d51acec6c6eebdaa',1,'tBiQuad_setA1(tBiQuad *const ft, float a1):&#160;leaf-filters.c']]],
+  ['tbiquad_5fseta2_199',['tBiQuad_setA2',['../group__tbiquad.html#ga1583768209208a3f9d9135636fb505e6',1,'tBiQuad_setA2(tBiQuad *const, float a2):&#160;leaf-filters.c'],['../group__tbiquad.html#ga1583768209208a3f9d9135636fb505e6',1,'tBiQuad_setA2(tBiQuad *const ft, float a2):&#160;leaf-filters.c']]],
+  ['tbiquad_5fsetb0_200',['tBiQuad_setB0',['../group__tbiquad.html#ga2f804ac8c8ccea56bbb3dae661b82692',1,'tBiQuad_setB0(tBiQuad *const, float b0):&#160;leaf-filters.c'],['../group__tbiquad.html#ga2f804ac8c8ccea56bbb3dae661b82692',1,'tBiQuad_setB0(tBiQuad *const ft, float b0):&#160;leaf-filters.c']]],
+  ['tbiquad_5fsetb1_201',['tBiQuad_setB1',['../group__tbiquad.html#ga6a2d07723a0652c959c529274b1ca783',1,'tBiQuad_setB1(tBiQuad *const, float b1):&#160;leaf-filters.c'],['../group__tbiquad.html#ga6a2d07723a0652c959c529274b1ca783',1,'tBiQuad_setB1(tBiQuad *const ft, float b1):&#160;leaf-filters.c']]],
+  ['tbiquad_5fsetb2_202',['tBiQuad_setB2',['../group__tbiquad.html#gab3602dd88664599839ea67c6797cc4c2',1,'tBiQuad_setB2(tBiQuad *const, float b2):&#160;leaf-filters.c'],['../group__tbiquad.html#gab3602dd88664599839ea67c6797cc4c2',1,'tBiQuad_setB2(tBiQuad *const ft, float b2):&#160;leaf-filters.c']]],
+  ['tbiquad_5fsetcoefficients_203',['tBiQuad_setCoefficients',['../group__tbiquad.html#gac0b42b1f3660dd1827b0e0a4150aadcd',1,'tBiQuad_setCoefficients(tBiQuad *const, float b0, float b1, float b2, float a1, float a2):&#160;leaf-filters.c'],['../group__tbiquad.html#gac0b42b1f3660dd1827b0e0a4150aadcd',1,'tBiQuad_setCoefficients(tBiQuad *const ft, float b0, float b1, float b2, float a1, float a2):&#160;leaf-filters.c']]],
+  ['tbiquad_5fsetgain_204',['tBiQuad_setGain',['../group__tbiquad.html#ga181c340eed069d92eacaadc8466f3218',1,'tBiQuad_setGain(tBiQuad *const, float gain):&#160;leaf-filters.c'],['../group__tbiquad.html#ga181c340eed069d92eacaadc8466f3218',1,'tBiQuad_setGain(tBiQuad *const ft, float gain):&#160;leaf-filters.c']]],
+  ['tbiquad_5fsetnotch_205',['tBiQuad_setNotch',['../group__tbiquad.html#gad74e2504b0128119213eceba36f92879',1,'tBiQuad_setNotch(tBiQuad *const, float freq, float radius):&#160;leaf-filters.c'],['../group__tbiquad.html#gad74e2504b0128119213eceba36f92879',1,'tBiQuad_setNotch(tBiQuad *const ft, float freq, float radius):&#160;leaf-filters.c']]],
+  ['tbiquad_5fsetresonance_206',['tBiQuad_setResonance',['../group__tbiquad.html#gaab73d7a7a79dccd112ec4d130b8e6d64',1,'tBiQuad_setResonance(tBiQuad *const, float freq, float radius, int normalize):&#160;leaf-filters.c'],['../group__tbiquad.html#gaab73d7a7a79dccd112ec4d130b8e6d64',1,'tBiQuad_setResonance(tBiQuad *const ft, float freq, float radius, int normalize):&#160;leaf-filters.c']]],
+  ['tbiquad_5ftick_207',['tBiQuad_tick',['../group__tbiquad.html#ga2acfc9097aa260ff141d79199f64fc88',1,'tBiQuad_tick(tBiQuad *const, float input):&#160;leaf-filters.c'],['../group__tbiquad.html#ga2acfc9097aa260ff141d79199f64fc88',1,'tBiQuad_tick(tBiQuad *const ft, float input):&#160;leaf-filters.c']]],
+  ['tbuffer_208',['tBuffer',['../group__tbuffer.html',1,'']]],
+  ['tbuffer_5fclear_209',['tBuffer_clear',['../group__tbuffer.html#ga39fb5d9d5ed963390e45322a2a97a1f1',1,'tBuffer_clear(tBuffer *const):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga39fb5d9d5ed963390e45322a2a97a1f1',1,'tBuffer_clear(tBuffer *const sb):&#160;leaf-sampling.c']]],
+  ['tbuffer_5ffree_210',['tBuffer_free',['../group__tbuffer.html#gaa7addef34b26a9464a59f023d690ec04',1,'tBuffer_free(tBuffer *const):&#160;leaf-sampling.c'],['../group__tbuffer.html#gaa7addef34b26a9464a59f023d690ec04',1,'tBuffer_free(tBuffer *const sb):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fget_211',['tBuffer_get',['../group__tbuffer.html#ga69d5397829f174b81a621170367a8550',1,'tBuffer_get(tBuffer *const, int idx):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga69d5397829f174b81a621170367a8550',1,'tBuffer_get(tBuffer *const sb, int idx):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fgetbufferlength_212',['tBuffer_getBufferLength',['../group__tbuffer.html#ga79955880600cfd3ec722b7110a4aab33',1,'tBuffer_getBufferLength(tBuffer *const):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga79955880600cfd3ec722b7110a4aab33',1,'tBuffer_getBufferLength(tBuffer *const sb):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fgetrecordedlength_213',['tBuffer_getRecordedLength',['../group__tbuffer.html#gaa68440f784cd947e6bb4eb00cd6473b5',1,'tBuffer_getRecordedLength(tBuffer *const sb):&#160;leaf-sampling.c'],['../group__tbuffer.html#gaa68440f784cd947e6bb4eb00cd6473b5',1,'tBuffer_getRecordedLength(tBuffer *const sb):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fgetrecordposition_214',['tBuffer_getRecordPosition',['../group__tbuffer.html#gaa7ff30c7c2c6de87ed61c8025620429f',1,'tBuffer_getRecordPosition(tBuffer *const):&#160;leaf-sampling.c'],['../group__tbuffer.html#gaa7ff30c7c2c6de87ed61c8025620429f',1,'tBuffer_getRecordPosition(tBuffer *const sb):&#160;leaf-sampling.c']]],
+  ['tbuffer_5finit_215',['tBuffer_init',['../group__tbuffer.html#ga91d93789b64c9306b30933c5e8d001fd',1,'tBuffer_init(tBuffer *const, uint32_t length, LEAF *const leaf):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga91d93789b64c9306b30933c5e8d001fd',1,'tBuffer_init(tBuffer *const sb, uint32_t length, LEAF *const leaf):&#160;leaf-sampling.c']]],
+  ['tbuffer_5finittopool_216',['tBuffer_initToPool',['../group__tbuffer.html#gad24562bae9e5411aa917bee6f27d4153',1,'tBuffer_initToPool(tBuffer *const sb, uint32_t length, tMempool *const mp):&#160;leaf-sampling.c'],['../group__tbuffer.html#gad24562bae9e5411aa917bee6f27d4153',1,'tBuffer_initToPool(tBuffer *const sb, uint32_t length, tMempool *const mp):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fisactive_217',['tBuffer_isActive',['../group__tbuffer.html#ga37ffab4845668d588eac944f4adb1f65',1,'tBuffer_isActive(tBuffer *const sb):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga37ffab4845668d588eac944f4adb1f65',1,'tBuffer_isActive(tBuffer *const sb):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fread_218',['tBuffer_read',['../group__tbuffer.html#ga73438e2159fac7b67563b1009ca9c7f6',1,'tBuffer_read(tBuffer *const, float *buff, uint32_t len):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga73438e2159fac7b67563b1009ca9c7f6',1,'tBuffer_read(tBuffer *const sb, float *buff, uint32_t len):&#160;leaf-sampling.c']]],
+  ['tbuffer_5frecord_219',['tBuffer_record',['../group__tbuffer.html#ga55baf7685651fd7f9926dc0ed5b2d73b',1,'tBuffer_record(tBuffer *const):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga55baf7685651fd7f9926dc0ed5b2d73b',1,'tBuffer_record(tBuffer *const sb):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fsetrecordedlength_220',['tBuffer_setRecordedLength',['../group__tbuffer.html#ga28a6063f2d763e4ba9414c797c1884b4',1,'tBuffer_setRecordedLength(tBuffer *const sb, int length):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga28a6063f2d763e4ba9414c797c1884b4',1,'tBuffer_setRecordedLength(tBuffer *const sb, int length):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fsetrecordmode_221',['tBuffer_setRecordMode',['../group__tbuffer.html#ga22b4855b2f2e94a7f870de419b3c3c84',1,'tBuffer_setRecordMode(tBuffer *const, RecordMode mode):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga22b4855b2f2e94a7f870de419b3c3c84',1,'tBuffer_setRecordMode(tBuffer *const sb, RecordMode mode):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fsetrecordposition_222',['tBuffer_setRecordPosition',['../group__tbuffer.html#ga893981a1b088cb6cd43359f869069689',1,'tBuffer_setRecordPosition(tBuffer *const, int pos):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga893981a1b088cb6cd43359f869069689',1,'tBuffer_setRecordPosition(tBuffer *const sb, int pos):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fstop_223',['tBuffer_stop',['../group__tbuffer.html#ga9fcb0f6e0fb037edf1146a3983d8424d',1,'tBuffer_stop(tBuffer *const):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga9fcb0f6e0fb037edf1146a3983d8424d',1,'tBuffer_stop(tBuffer *const sb):&#160;leaf-sampling.c']]],
+  ['tbuffer_5ftick_224',['tBuffer_tick',['../group__tbuffer.html#gadad3503c475071c5240b37c768f64be2',1,'tBuffer_tick(tBuffer *const, float sample):&#160;leaf-sampling.c'],['../group__tbuffer.html#gadad3503c475071c5240b37c768f64be2',1,'tBuffer_tick(tBuffer *const sb, float sample):&#160;leaf-sampling.c']]],
+  ['tbutterworth_225',['tButterworth',['../group__tbutterworth.html',1,'']]],
+  ['tbutterworth_5ffree_226',['tButterworth_free',['../group__tbutterworth.html#ga340f64a2f39d6a75dddbff0664c6a0c2',1,'tButterworth_free(tButterworth *const):&#160;leaf-filters.c'],['../group__tbutterworth.html#ga340f64a2f39d6a75dddbff0664c6a0c2',1,'tButterworth_free(tButterworth *const ft):&#160;leaf-filters.c']]],
+  ['tbutterworth_5finittopool_227',['tButterworth_initToPool',['../group__tbutterworth.html#ga567582dd961193c6a49ebcb5f78db211',1,'tButterworth_initToPool(tButterworth *const, int N, float f1, float f2, tMempool *const):&#160;leaf-filters.c'],['../group__tbutterworth.html#ga567582dd961193c6a49ebcb5f78db211',1,'tButterworth_initToPool(tButterworth *const ft, int order, float f1, float f2, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tbutterworth_5fsetf1_228',['tButterworth_setF1',['../group__tbutterworth.html#ga12a4c927d24d1664d0beb425cf64e284',1,'tButterworth_setF1(tButterworth *const, float in):&#160;leaf-filters.c'],['../group__tbutterworth.html#ga12a4c927d24d1664d0beb425cf64e284',1,'tButterworth_setF1(tButterworth *const ft, float f1):&#160;leaf-filters.c']]],
+  ['tbutterworth_5fsetf2_229',['tButterworth_setF2',['../group__tbutterworth.html#ga86218245c60fb73eec98edcdce565a1c',1,'tButterworth_setF2(tButterworth *const, float in):&#160;leaf-filters.c'],['../group__tbutterworth.html#ga86218245c60fb73eec98edcdce565a1c',1,'tButterworth_setF2(tButterworth *const ft, float f2):&#160;leaf-filters.c']]],
+  ['tbutterworth_5fsetfreqs_230',['tButterworth_setFreqs',['../group__tbutterworth.html#ga5cde91a986d40a6764d07ffde532a1a7',1,'tButterworth_setFreqs(tButterworth *const, float f1, float f2):&#160;leaf-filters.c'],['../group__tbutterworth.html#ga5cde91a986d40a6764d07ffde532a1a7',1,'tButterworth_setFreqs(tButterworth *const ft, float f1, float f2):&#160;leaf-filters.c']]],
+  ['tbutterworth_5ftick_231',['tButterworth_tick',['../group__tbutterworth.html#gac4729b8e622da0d570efe80ac1c54707',1,'tButterworth_tick(tButterworth *const, float input):&#160;leaf-filters.c'],['../group__tbutterworth.html#gac4729b8e622da0d570efe80ac1c54707',1,'tButterworth_tick(tButterworth *const ft, float samp):&#160;leaf-filters.c']]],
+  ['tcompactwavetable_232',['tCompactWavetable',['../group__tcompactwavetable.html',1,'']]],
+  ['tcompactwavetable_5ffree_233',['tCompactWavetable_free',['../group__tcompactwavetable.html#ga31c71e150c921c9c2a6b99b47ed995f5',1,'tCompactWavetable_free(tCompactWavetable *const osc):&#160;leaf-oscillators.c'],['../group__tcompactwavetable.html#ga31c71e150c921c9c2a6b99b47ed995f5',1,'tCompactWavetable_free(tCompactWavetable *const cy):&#160;leaf-oscillators.c']]],
+  ['tcompactwavetable_5fsetfreq_234',['tCompactWavetable_setFreq',['../group__tcompactwavetable.html#ga49955d040284b3e1a40f2288cb89c54d',1,'tCompactWavetable_setFreq(tCompactWavetable *const osc, float freq):&#160;leaf-oscillators.c'],['../group__tcompactwavetable.html#ga49955d040284b3e1a40f2288cb89c54d',1,'tCompactWavetable_setFreq(tCompactWavetable *const cy, float freq):&#160;leaf-oscillators.c']]],
+  ['tcompactwavetable_5ftick_235',['tCompactWavetable_tick',['../group__tcompactwavetable.html#ga3057038710e1b064968f8d290e753e5f',1,'tCompactWavetable_tick(tCompactWavetable *const osc):&#160;leaf-oscillators.c'],['../group__tcompactwavetable.html#ga3057038710e1b064968f8d290e753e5f',1,'tCompactWavetable_tick(tCompactWavetable *const cy):&#160;leaf-oscillators.c']]],
+  ['tcomplexlivingstring_236',['tComplexLivingString',['../group__tcomplexlivingstring.html',1,'']]],
+  ['tcomplexlivingstring_5ffree_237',['tComplexLivingString_free',['../group__tcomplexlivingstring.html#ga3a7b657a97195d44907de707485d25cb',1,'tComplexLivingString_free(tComplexLivingString *const):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga3a7b657a97195d44907de707485d25cb',1,'tComplexLivingString_free(tComplexLivingString *const pl):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5finit_238',['tComplexLivingString_init',['../group__tcomplexlivingstring.html#gabdc7c63658712975d512e17a82f96b26',1,'tComplexLivingString_init(tComplexLivingString *const, float freq, float pickPos, float prepPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, LEAF *const leaf):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#gabdc7c63658712975d512e17a82f96b26',1,'tComplexLivingString_init(tComplexLivingString *const pl, float freq, float pickPos, float prepPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, LEAF *const leaf):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5finittopool_239',['tComplexLivingString_initToPool',['../group__tcomplexlivingstring.html#gaf8d2d61f57a0b916002dafc427a8b092',1,'tComplexLivingString_initToPool(tComplexLivingString *const, float freq, float pickPos, float prepPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#gaf8d2d61f57a0b916002dafc427a8b092',1,'tComplexLivingString_initToPool(tComplexLivingString *const pl, float freq, float pickPos, float prepPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const mp):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsample_240',['tComplexLivingString_sample',['../group__tcomplexlivingstring.html#ga87ae54f64d1dacee2ba06639cfd30ba6',1,'tComplexLivingString_sample(tComplexLivingString *const):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga87ae54f64d1dacee2ba06639cfd30ba6',1,'tComplexLivingString_sample(tComplexLivingString *const pl):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetdampfreq_241',['tComplexLivingString_setDampFreq',['../group__tcomplexlivingstring.html#ga08b249830479e2981d3653728f8a138b',1,'tComplexLivingString_setDampFreq(tComplexLivingString *const, float dampFreq):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga08b249830479e2981d3653728f8a138b',1,'tComplexLivingString_setDampFreq(tComplexLivingString *const pl, float dampFreq):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetdecay_242',['tComplexLivingString_setDecay',['../group__tcomplexlivingstring.html#ga130cac764eb32901429fe3225e1a7094',1,'tComplexLivingString_setDecay(tComplexLivingString *const, float decay):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga130cac764eb32901429fe3225e1a7094',1,'tComplexLivingString_setDecay(tComplexLivingString *const pl, float decay):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetfreq_243',['tComplexLivingString_setFreq',['../group__tcomplexlivingstring.html#gabb770494f478d48ab52e44bd3c4f2ecc',1,'tComplexLivingString_setFreq(tComplexLivingString *const, float freq):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#gabb770494f478d48ab52e44bd3c4f2ecc',1,'tComplexLivingString_setFreq(tComplexLivingString *const pl, float freq):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetlevmode_244',['tComplexLivingString_setLevMode',['../group__tcomplexlivingstring.html#ga2883cb67acc06cc1580702b3635e9780',1,'tComplexLivingString_setLevMode(tComplexLivingString *const, int levMode):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga2883cb67acc06cc1580702b3635e9780',1,'tComplexLivingString_setLevMode(tComplexLivingString *const pl, int levMode):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetlevsmoothfactor_245',['tComplexLivingString_setLevSmoothFactor',['../group__tcomplexlivingstring.html#gabc0a4196ec94ca64c223560ddadf17c6',1,'tComplexLivingString_setLevSmoothFactor(tComplexLivingString *const, float levSmoothFactor):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#gabc0a4196ec94ca64c223560ddadf17c6',1,'tComplexLivingString_setLevSmoothFactor(tComplexLivingString *const pl, float levSmoothFactor):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetlevstrength_246',['tComplexLivingString_setLevStrength',['../group__tcomplexlivingstring.html#gaa2798083851981b869ad0439bfcbcab2',1,'tComplexLivingString_setLevStrength(tComplexLivingString *const, float levStrength):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#gaa2798083851981b869ad0439bfcbcab2',1,'tComplexLivingString_setLevStrength(tComplexLivingString *const pl, float levStrength):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetpickpos_247',['tComplexLivingString_setPickPos',['../group__tcomplexlivingstring.html#ga845a6f0ff9a7ee28bd8bfc72c31fd847',1,'tComplexLivingString_setPickPos(tComplexLivingString *const, float pickPos):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga845a6f0ff9a7ee28bd8bfc72c31fd847',1,'tComplexLivingString_setPickPos(tComplexLivingString *const pl, float pickPos):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetprepindex_248',['tComplexLivingString_setPrepIndex',['../group__tcomplexlivingstring.html#ga520c912a5c42bfb9a6d8b25bdcbbcf7a',1,'tComplexLivingString_setPrepIndex(tComplexLivingString *const, float prepIndex):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga520c912a5c42bfb9a6d8b25bdcbbcf7a',1,'tComplexLivingString_setPrepIndex(tComplexLivingString *const pl, float prepIndex):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetpreppos_249',['tComplexLivingString_setPrepPos',['../group__tcomplexlivingstring.html#ga59d258180890d388614b8e9d55e6dc91',1,'tComplexLivingString_setPrepPos(tComplexLivingString *const, float prepPos):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga59d258180890d388614b8e9d55e6dc91',1,'tComplexLivingString_setPrepPos(tComplexLivingString *const pl, float prepPos):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsettargetlev_250',['tComplexLivingString_setTargetLev',['../group__tcomplexlivingstring.html#ga92d9f6282c0bed639d853f61e19bca83',1,'tComplexLivingString_setTargetLev(tComplexLivingString *const, float targetLev):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga92d9f6282c0bed639d853f61e19bca83',1,'tComplexLivingString_setTargetLev(tComplexLivingString *const pl, float targetLev):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetwavelength_251',['tComplexLivingString_setWaveLength',['../group__tcomplexlivingstring.html#ga567590c59dcaee1bfe8261fdef6bf6a3',1,'tComplexLivingString_setWaveLength(tComplexLivingString *const, float waveLength):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga567590c59dcaee1bfe8261fdef6bf6a3',1,'tComplexLivingString_setWaveLength(tComplexLivingString *const pl, float waveLength):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5ftick_252',['tComplexLivingString_tick',['../group__tcomplexlivingstring.html#gaf65d7ea89eff0c65bd81573f83506808',1,'tComplexLivingString_tick(tComplexLivingString *const, float input):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#gaf65d7ea89eff0c65bd81573f83506808',1,'tComplexLivingString_tick(tComplexLivingString *const pl, float input):&#160;leaf-physical.c']]],
+  ['tcompressor_253',['tCompressor',['../group__tcompressor.html',1,'']]],
+  ['tcompressor_5ffree_254',['tCompressor_free',['../group__tcompressor.html#gaa3369bf1a4eef5d5bce64db6bf962618',1,'tCompressor_free(tCompressor *const):&#160;leaf-dynamics.c'],['../group__tcompressor.html#gaa3369bf1a4eef5d5bce64db6bf962618',1,'tCompressor_free(tCompressor *const comp):&#160;leaf-dynamics.c']]],
+  ['tcompressor_5finit_255',['tCompressor_init',['../group__tcompressor.html#ga831af7fdc81866f746f3ec5552589e05',1,'tCompressor_init(tCompressor *const, LEAF *const leaf):&#160;leaf-dynamics.c'],['../group__tcompressor.html#ga831af7fdc81866f746f3ec5552589e05',1,'tCompressor_init(tCompressor *const comp, LEAF *const leaf):&#160;leaf-dynamics.c']]],
+  ['tcompressor_5finittopool_256',['tCompressor_initToPool',['../group__tcompressor.html#ga305d1f036bb4844429687afdc1a8053c',1,'tCompressor_initToPool(tCompressor *const, tMempool *const):&#160;leaf-dynamics.c'],['../group__tcompressor.html#ga305d1f036bb4844429687afdc1a8053c',1,'tCompressor_initToPool(tCompressor *const comp, tMempool *const mp):&#160;leaf-dynamics.c']]],
+  ['tcompressor_5ftick_257',['tCompressor_tick',['../group__tcompressor.html#ga129d5624d13d79f9ad7bb29c84ee0c42',1,'tCompressor_tick(tCompressor *const, float input):&#160;leaf-dynamics.c'],['../group__tcompressor.html#ga129d5624d13d79f9ad7bb29c84ee0c42',1,'tCompressor_tick(tCompressor *const comp, float in):&#160;leaf-dynamics.c']]],
+  ['tcrusher_258',['tCrusher',['../group__tcrusher.html',1,'']]],
+  ['tcrusher_5ffree_259',['tCrusher_free',['../group__tcrusher.html#gaa9dbb4f12f21f015b4f322be6de511c6',1,'tCrusher_free(tCrusher *const):&#160;leaf-distortion.c'],['../group__tcrusher.html#gaa9dbb4f12f21f015b4f322be6de511c6',1,'tCrusher_free(tCrusher *const cr):&#160;leaf-distortion.c']]],
+  ['tcrusher_5finit_260',['tCrusher_init',['../group__tcrusher.html#gafd391e483eb15ab1e220867b2bc37537',1,'tCrusher_init(tCrusher *const, LEAF *const leaf):&#160;leaf-distortion.c'],['../group__tcrusher.html#gafd391e483eb15ab1e220867b2bc37537',1,'tCrusher_init(tCrusher *const cr, LEAF *const leaf):&#160;leaf-distortion.c']]],
+  ['tcrusher_5finittopool_261',['tCrusher_initToPool',['../group__tcrusher.html#ga7ee1052fbd8183d322cc6513e563c0af',1,'tCrusher_initToPool(tCrusher *const, tMempool *const):&#160;leaf-distortion.c'],['../group__tcrusher.html#ga7ee1052fbd8183d322cc6513e563c0af',1,'tCrusher_initToPool(tCrusher *const cr, tMempool *const mp):&#160;leaf-distortion.c']]],
+  ['tcrusher_5fsetoperation_262',['tCrusher_setOperation',['../group__tcrusher.html#gaaf3aba23313797b2e72384d9bd26bc4f',1,'tCrusher_setOperation(tCrusher *const, float op):&#160;leaf-distortion.c'],['../group__tcrusher.html#gaaf3aba23313797b2e72384d9bd26bc4f',1,'tCrusher_setOperation(tCrusher *const cr, float op):&#160;leaf-distortion.c']]],
+  ['tcrusher_5fsetquality_263',['tCrusher_setQuality',['../group__tcrusher.html#gaef65521d221f1bd3654793ae9441cd45',1,'tCrusher_setQuality(tCrusher *const, float val):&#160;leaf-distortion.c'],['../group__tcrusher.html#gaef65521d221f1bd3654793ae9441cd45',1,'tCrusher_setQuality(tCrusher *const cr, float val):&#160;leaf-distortion.c']]],
+  ['tcrusher_5fsetround_264',['tCrusher_setRound',['../group__tcrusher.html#ga0e5c86da40325cd15ef654c4558d663b',1,'tCrusher_setRound(tCrusher *const, float rnd):&#160;leaf-distortion.c'],['../group__tcrusher.html#ga0e5c86da40325cd15ef654c4558d663b',1,'tCrusher_setRound(tCrusher *const cr, float rnd):&#160;leaf-distortion.c']]],
+  ['tcrusher_5fsetsamplingratio_265',['tCrusher_setSamplingRatio',['../group__tcrusher.html#ga34c59ae78019c8d903b051fc61b4d019',1,'tCrusher_setSamplingRatio(tCrusher *const, float ratio):&#160;leaf-distortion.c'],['../group__tcrusher.html#ga34c59ae78019c8d903b051fc61b4d019',1,'tCrusher_setSamplingRatio(tCrusher *const cr, float ratio):&#160;leaf-distortion.c']]],
+  ['tcrusher_5ftick_266',['tCrusher_tick',['../group__tcrusher.html#gabc887b903fc48ac650174402a8c74533',1,'tCrusher_tick(tCrusher *const, float input):&#160;leaf-distortion.c'],['../group__tcrusher.html#gabc887b903fc48ac650174402a8c74533',1,'tCrusher_tick(tCrusher *const cr, float input):&#160;leaf-distortion.c']]],
+  ['tcycle_267',['tCycle',['../group__tcycle.html',1,'']]],
+  ['tcycle_5ffree_268',['tCycle_free',['../group__tcycle.html#gacb267508910aefc3686366ba7f296938',1,'tCycle_free(tCycle *const osc):&#160;leaf-oscillators.c'],['../group__tcycle.html#gacb267508910aefc3686366ba7f296938',1,'tCycle_free(tCycle *const cy):&#160;leaf-oscillators.c']]],
+  ['tcycle_5finit_269',['tCycle_init',['../group__tcycle.html#ga3ae2b653f390bdacdfe952e22a7aa5c4',1,'tCycle_init(tCycle *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tcycle.html#ga3ae2b653f390bdacdfe952e22a7aa5c4',1,'tCycle_init(tCycle *const cy, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tcycle_5finittopool_270',['tCycle_initToPool',['../group__tcycle.html#gacbd4afb6c3307d92e19a8e308ba7540b',1,'tCycle_initToPool(tCycle *const osc, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__tcycle.html#gacbd4afb6c3307d92e19a8e308ba7540b',1,'tCycle_initToPool(tCycle *const cy, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['tcycle_5fsetfreq_271',['tCycle_setFreq',['../group__tcycle.html#ga7eeb58e2292483416474bf83bf313deb',1,'tCycle_setFreq(tCycle *const osc, float freq):&#160;leaf-oscillators.c'],['../group__tcycle.html#ga7eeb58e2292483416474bf83bf313deb',1,'tCycle_setFreq(tCycle *const cy, float freq):&#160;leaf-oscillators.c']]],
+  ['tcycle_5ftick_272',['tCycle_tick',['../group__tcycle.html#ga4fd599981f6caf87720db3a9811716cf',1,'tCycle_tick(tCycle *const osc):&#160;leaf-oscillators.c'],['../group__tcycle.html#ga4fd599981f6caf87720db3a9811716cf',1,'tCycle_tick(tCycle *const cy):&#160;leaf-oscillators.c']]],
+  ['tdattorroreverb_273',['tDattorroReverb',['../group__tdattorroreverb.html',1,'']]],
+  ['tdattorroreverb_5fclear_274',['tDattorroReverb_clear',['../group__tdattorroreverb.html#ga7f6787dc77153fe5445aa4b463d52806',1,'tDattorroReverb_clear(tDattorroReverb *const):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga7f6787dc77153fe5445aa4b463d52806',1,'tDattorroReverb_clear(tDattorroReverb *const rev):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5ffree_275',['tDattorroReverb_free',['../group__tdattorroreverb.html#ga9615f3139fd6575f1195357498cf2ed7',1,'tDattorroReverb_free(tDattorroReverb *const):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga9615f3139fd6575f1195357498cf2ed7',1,'tDattorroReverb_free(tDattorroReverb *const rev):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5finit_276',['tDattorroReverb_init',['../group__tdattorroreverb.html#ga1fbf4d2737ea1b0b97a01178e4d1877d',1,'tDattorroReverb_init(tDattorroReverb *const, LEAF *const leaf):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga1fbf4d2737ea1b0b97a01178e4d1877d',1,'tDattorroReverb_init(tDattorroReverb *const rev, LEAF *const leaf):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5finittopool_277',['tDattorroReverb_initToPool',['../group__tdattorroreverb.html#gae51b1343ff796699056c38c8b0284457',1,'tDattorroReverb_initToPool(tDattorroReverb *const, tMempool *const):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#gae51b1343ff796699056c38c8b0284457',1,'tDattorroReverb_initToPool(tDattorroReverb *const rev, tMempool *const mp):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5fsetfeedbackfilter_278',['tDattorroReverb_setFeedbackFilter',['../group__tdattorroreverb.html#ga6bdaee9a877fb5258242b38c7129e87f',1,'tDattorroReverb_setFeedbackFilter(tDattorroReverb *const, float freq):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga6bdaee9a877fb5258242b38c7129e87f',1,'tDattorroReverb_setFeedbackFilter(tDattorroReverb *const rev, float freq):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5fsetfeedbackgain_279',['tDattorroReverb_setFeedbackGain',['../group__tdattorroreverb.html#ga397ca662f24dc8850d68fb2d9f134e75',1,'tDattorroReverb_setFeedbackGain(tDattorroReverb *const, float gain):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga397ca662f24dc8850d68fb2d9f134e75',1,'tDattorroReverb_setFeedbackGain(tDattorroReverb *const rev, float gain):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5fsetfreeze_280',['tDattorroReverb_setFreeze',['../group__tdattorroreverb.html#ga61767ff6ff79c978ccd31533ab528b5e',1,'tDattorroReverb_setFreeze(tDattorroReverb *const rev, uint32_t freeze):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga61767ff6ff79c978ccd31533ab528b5e',1,'tDattorroReverb_setFreeze(tDattorroReverb *const rev, uint32_t freeze):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5fsethp_281',['tDattorroReverb_setHP',['../group__tdattorroreverb.html#gab035568f53e3afa55e7ca24770ece876',1,'tDattorroReverb_setHP(tDattorroReverb *const, float freq):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#gab035568f53e3afa55e7ca24770ece876',1,'tDattorroReverb_setHP(tDattorroReverb *const rev, float freq):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5fsetinputdelay_282',['tDattorroReverb_setInputDelay',['../group__tdattorroreverb.html#ga3ea62bc97dde4dfb099373a19b699024',1,'tDattorroReverb_setInputDelay(tDattorroReverb *const, float preDelay):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga3ea62bc97dde4dfb099373a19b699024',1,'tDattorroReverb_setInputDelay(tDattorroReverb *const rev, float preDelay):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5fsetinputfilter_283',['tDattorroReverb_setInputFilter',['../group__tdattorroreverb.html#ga58a92c0ece1d13df4b6e860c76d5bc4e',1,'tDattorroReverb_setInputFilter(tDattorroReverb *const, float freq):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga58a92c0ece1d13df4b6e860c76d5bc4e',1,'tDattorroReverb_setInputFilter(tDattorroReverb *const rev, float freq):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5fsetmix_284',['tDattorroReverb_setMix',['../group__tdattorroreverb.html#gaaab4b58c9edecbd36f8fed4676074cf4',1,'tDattorroReverb_setMix(tDattorroReverb *const, float mix):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#gaaab4b58c9edecbd36f8fed4676074cf4',1,'tDattorroReverb_setMix(tDattorroReverb *const rev, float mix):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5fsetsize_285',['tDattorroReverb_setSize',['../group__tdattorroreverb.html#ga8286f438259920862757bac42c208ec4',1,'tDattorroReverb_setSize(tDattorroReverb *const, float size):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga8286f438259920862757bac42c208ec4',1,'tDattorroReverb_setSize(tDattorroReverb *const rev, float size):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5ftick_286',['tDattorroReverb_tick',['../group__tdattorroreverb.html#gad857360fa2a7ec20d27256a13b3483e7',1,'tDattorroReverb_tick(tDattorroReverb *const, float input):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#gad857360fa2a7ec20d27256a13b3483e7',1,'tDattorroReverb_tick(tDattorroReverb *const rev, float input):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5ftickstereo_287',['tDattorroReverb_tickStereo',['../group__tdattorroreverb.html#gae9da039d8745027c1c477e4a2192ca49',1,'tDattorroReverb_tickStereo(tDattorroReverb *const rev, float input, float *output):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#gae9da039d8745027c1c477e4a2192ca49',1,'tDattorroReverb_tickStereo(tDattorroReverb *const rev, float input, float *output):&#160;leaf-reverb.c']]],
+  ['tdelay_288',['tDelay',['../group__tdelay.html',1,'']]],
+  ['tdelay_5faddto_289',['tDelay_addTo',['../group__tdelay.html#gac4014573da91d0da9c8b7d48d515de5a',1,'tDelay_addTo(tDelay *const, float value, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tdelay.html#gac4014573da91d0da9c8b7d48d515de5a',1,'tDelay_addTo(tDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tdelay_5fclear_290',['tDelay_clear',['../group__tdelay.html#ga10738582699eb8e6ff892b4ba662c4ef',1,'tDelay_clear(tDelay *const):&#160;leaf-delay.c'],['../group__tdelay.html#ga10738582699eb8e6ff892b4ba662c4ef',1,'tDelay_clear(tDelay *const dl):&#160;leaf-delay.c']]],
+  ['tdelay_5ffree_291',['tDelay_free',['../group__tdelay.html#gac96fb1d4b4997a3137f211b6f22e14ba',1,'tDelay_free(tDelay *const):&#160;leaf-delay.c'],['../group__tdelay.html#gac96fb1d4b4997a3137f211b6f22e14ba',1,'tDelay_free(tDelay *const dl):&#160;leaf-delay.c']]],
+  ['tdelay_5fgetdelay_292',['tDelay_getDelay',['../group__tdelay.html#ga5686cf386894dcee3c9241bef0ca4c41',1,'tDelay_getDelay(tDelay *const):&#160;leaf-delay.c'],['../group__tdelay.html#ga5686cf386894dcee3c9241bef0ca4c41',1,'tDelay_getDelay(tDelay *const dl):&#160;leaf-delay.c']]],
+  ['tdelay_5fgetlastin_293',['tDelay_getLastIn',['../group__tdelay.html#gab23b7051f02d2f7108939bdb034fe308',1,'tDelay_getLastIn(tDelay *const):&#160;leaf-delay.c'],['../group__tdelay.html#gab23b7051f02d2f7108939bdb034fe308',1,'tDelay_getLastIn(tDelay *const dl):&#160;leaf-delay.c']]],
+  ['tdelay_5fgetlastout_294',['tDelay_getLastOut',['../group__tdelay.html#ga3e00ec62933b69e09d9eed5b7608e094',1,'tDelay_getLastOut(tDelay *const):&#160;leaf-delay.c'],['../group__tdelay.html#ga3e00ec62933b69e09d9eed5b7608e094',1,'tDelay_getLastOut(tDelay *const dl):&#160;leaf-delay.c']]],
+  ['tdelay_5finit_295',['tDelay_init',['../group__tdelay.html#ga22597de02abb939743a18ec38ff08a0f',1,'tDelay_init(tDelay *const, uint32_t delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c'],['../group__tdelay.html#ga22597de02abb939743a18ec38ff08a0f',1,'tDelay_init(tDelay *const dl, uint32_t delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c']]],
+  ['tdelay_5finittopool_296',['tDelay_initToPool',['../group__tdelay.html#gacaaaaabc7ddb4259f05481f10ba5c403',1,'tDelay_initToPool(tDelay *const, uint32_t delay, uint32_t maxDelay, tMempool *const):&#160;leaf-delay.c'],['../group__tdelay.html#gacaaaaabc7ddb4259f05481f10ba5c403',1,'tDelay_initToPool(tDelay *const dl, uint32_t delay, uint32_t maxDelay, tMempool *const mp):&#160;leaf-delay.c']]],
+  ['tdelay_5fsetdelay_297',['tDelay_setDelay',['../group__tdelay.html#ga364a63687af1a63b7daa8a8431527a6a',1,'tDelay_setDelay(tDelay *const, uint32_t delay):&#160;leaf-delay.c'],['../group__tdelay.html#ga364a63687af1a63b7daa8a8431527a6a',1,'tDelay_setDelay(tDelay *const dl, uint32_t delay):&#160;leaf-delay.c']]],
+  ['tdelay_5ftapin_298',['tDelay_tapIn',['../group__tdelay.html#gadc5709febff70f7cbca38c2508103ac0',1,'tDelay_tapIn(tDelay *const, float in, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tdelay.html#gadc5709febff70f7cbca38c2508103ac0',1,'tDelay_tapIn(tDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tdelay_5ftapout_299',['tDelay_tapOut',['../group__tdelay.html#ga94c07f9e8bfdaf402ebfbcd38d0150b5',1,'tDelay_tapOut(tDelay *const, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tdelay.html#ga94c07f9e8bfdaf402ebfbcd38d0150b5',1,'tDelay_tapOut(tDelay *const dl, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tdelay_5ftick_300',['tDelay_tick',['../group__tdelay.html#ga2f3b8939018fd6972756a9137cab3567',1,'tDelay_tick(tDelay *const, float sample):&#160;leaf-delay.c'],['../group__tdelay.html#ga2f3b8939018fd6972756a9137cab3567',1,'tDelay_tick(tDelay *const dl, float input):&#160;leaf-delay.c']]],
+  ['tdiodefilter_301',['tDiodeFilter',['../group__tdiodefilter.html',1,'']]],
+  ['tdiodefilter_5ffree_302',['tDiodeFilter_free',['../group__tdiodefilter.html#gaa945fd56abedc7829784cc76e5876b84',1,'tDiodeFilter_free(tDiodeFilter *const):&#160;leaf-filters.c'],['../group__tdiodefilter.html#gaa945fd56abedc7829784cc76e5876b84',1,'tDiodeFilter_free(tDiodeFilter *const vf):&#160;leaf-filters.c']]],
+  ['tdiodefilter_5finit_303',['tDiodeFilter_init',['../group__tdiodefilter.html#ga279cd7e6bbaf37ee42a679680e13ff3b',1,'tDiodeFilter_init(tDiodeFilter *const, float freq, float Q, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tdiodefilter.html#ga279cd7e6bbaf37ee42a679680e13ff3b',1,'tDiodeFilter_init(tDiodeFilter *const vf, float cutoff, float resonance, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tdiodefilter_5finittopool_304',['tDiodeFilter_initToPool',['../group__tdiodefilter.html#gaf485c66d9505471775fecc3405321b7b',1,'tDiodeFilter_initToPool(tDiodeFilter *const, float freq, float Q, tMempool *const):&#160;leaf-filters.c'],['../group__tdiodefilter.html#gaf485c66d9505471775fecc3405321b7b',1,'tDiodeFilter_initToPool(tDiodeFilter *const vf, float cutoff, float resonance, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tdiodefilter_5fsetfreq_305',['tDiodeFilter_setFreq',['../group__tdiodefilter.html#ga2854b7be078fb842f6e9c3c2a0f22151',1,'tDiodeFilter_setFreq(tDiodeFilter *const vf, float cutoff):&#160;leaf-filters.c'],['../group__tdiodefilter.html#ga2854b7be078fb842f6e9c3c2a0f22151',1,'tDiodeFilter_setFreq(tDiodeFilter *const vf, float cutoff):&#160;leaf-filters.c']]],
+  ['tdiodefilter_5fsetq_306',['tDiodeFilter_setQ',['../group__tdiodefilter.html#ga386a8e90939c6bd22d467e33317e0e04',1,'tDiodeFilter_setQ(tDiodeFilter *const vf, float resonance):&#160;leaf-filters.c'],['../group__tdiodefilter.html#ga386a8e90939c6bd22d467e33317e0e04',1,'tDiodeFilter_setQ(tDiodeFilter *const vf, float resonance):&#160;leaf-filters.c']]],
+  ['tdiodefilter_5ftick_307',['tDiodeFilter_tick',['../group__tdiodefilter.html#gabbb00b79ceaf9b1b3b028d01218a738b',1,'tDiodeFilter_tick(tDiodeFilter *const, float input):&#160;leaf-filters.c'],['../group__tdiodefilter.html#gabbb00b79ceaf9b1b3b028d01218a738b',1,'tDiodeFilter_tick(tDiodeFilter *const vf, float in):&#160;leaf-filters.c']]],
+  ['tdualpitchdetector_308',['tDualPitchDetector',['../group__tdualpitchdetector.html',1,'']]],
+  ['tdualpitchdetector_5ffree_309',['tDualPitchDetector_free',['../group__tdualpitchdetector.html#ga0f104dc5171d8cf3cf5e01d3d52f20e4',1,'tDualPitchDetector_free(tDualPitchDetector *const detector):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#ga0f104dc5171d8cf3cf5e01d3d52f20e4',1,'tDualPitchDetector_free(tDualPitchDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tdualpitchdetector_5fgetfrequency_310',['tDualPitchDetector_getFrequency',['../group__tdualpitchdetector.html#gae647948c3fad09263e02625d52a0f9f0',1,'tDualPitchDetector_getFrequency(tDualPitchDetector *const detector):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#gae647948c3fad09263e02625d52a0f9f0',1,'tDualPitchDetector_getFrequency(tDualPitchDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tdualpitchdetector_5fgetperiodicity_311',['tDualPitchDetector_getPeriodicity',['../group__tdualpitchdetector.html#ga013b0b209ac1fe9268f88ed4925c7905',1,'tDualPitchDetector_getPeriodicity(tDualPitchDetector *const detector):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#ga013b0b209ac1fe9268f88ed4925c7905',1,'tDualPitchDetector_getPeriodicity(tDualPitchDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tdualpitchdetector_5fharmonic_312',['tDualPitchDetector_harmonic',['../group__tdualpitchdetector.html#gaa80b5da1c459f61396d95066cf8fdbfe',1,'leaf-analysis.h']]],
+  ['tdualpitchdetector_5finit_313',['tDualPitchDetector_init',['../group__tdualpitchdetector.html#gae41a404e3b1463d626423aa6f4ac56a6',1,'tDualPitchDetector_init(tDualPitchDetector *const detector, float lowestFreq, float highestFreq, float *inBuffer, int bufSize, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#gae41a404e3b1463d626423aa6f4ac56a6',1,'tDualPitchDetector_init(tDualPitchDetector *const detector, float lowestFreq, float highestFreq, float *inBuffer, int bufSize, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tdualpitchdetector_5finittopool_314',['tDualPitchDetector_initToPool',['../group__tdualpitchdetector.html#gaf9fbf5ecd92f356af0572600ec796556',1,'tDualPitchDetector_initToPool(tDualPitchDetector *const detector, float lowestFreq, float highestFreq, float *inBuffer, int bufSize, tMempool *const mempool):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#gaf9fbf5ecd92f356af0572600ec796556',1,'tDualPitchDetector_initToPool(tDualPitchDetector *const detector, float lowestFreq, float highestFreq, float *inBuffer, int bufSize, tMempool *const mempool):&#160;leaf-analysis.c']]],
+  ['tdualpitchdetector_5fpredictfrequency_315',['tDualPitchDetector_predictFrequency',['../group__tdualpitchdetector.html#gab5e594fb81c3c6e5c3f3d58a5f98c504',1,'tDualPitchDetector_predictFrequency(tDualPitchDetector *const detector):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#gab5e594fb81c3c6e5c3f3d58a5f98c504',1,'tDualPitchDetector_predictFrequency(tDualPitchDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tdualpitchdetector_5fsethysteresis_316',['tDualPitchDetector_setHysteresis',['../group__tdualpitchdetector.html#ga0a511f71335134377f4db13f9b6c311e',1,'tDualPitchDetector_setHysteresis(tDualPitchDetector *const detector, float hysteresis):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#ga0a511f71335134377f4db13f9b6c311e',1,'tDualPitchDetector_setHysteresis(tDualPitchDetector *const detector, float hysteresis):&#160;leaf-analysis.c']]],
+  ['tdualpitchdetector_5fsetperiodicitythreshold_317',['tDualPitchDetector_setPeriodicityThreshold',['../group__tdualpitchdetector.html#gaf1a678d94ea5579c8847e8672541fecd',1,'tDualPitchDetector_setPeriodicityThreshold(tDualPitchDetector *const detector, float thresh):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#gaf1a678d94ea5579c8847e8672541fecd',1,'tDualPitchDetector_setPeriodicityThreshold(tDualPitchDetector *const detector, float thresh):&#160;leaf-analysis.c']]],
+  ['tdualpitchdetector_5ftick_318',['tDualPitchDetector_tick',['../group__tdualpitchdetector.html#ga25d99f2df26169355fda4810802f7b87',1,'tDualPitchDetector_tick(tDualPitchDetector *const detector, float sample):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#ga25d99f2df26169355fda4810802f7b87',1,'tDualPitchDetector_tick(tDualPitchDetector *const detector, float sample):&#160;leaf-analysis.c']]],
+  ['tefficientsvf_319',['tEfficientSVF',['../group__tefficientsvf.html',1,'']]],
+  ['tefficientsvf_5ffree_320',['tEfficientSVF_free',['../group__tefficientsvf.html#gaa5bc149b9e60cb47235a2e0dc68e2c89',1,'tEfficientSVF_free(tEfficientSVF *const):&#160;leaf-filters.c'],['../group__tefficientsvf.html#gaa5bc149b9e60cb47235a2e0dc68e2c89',1,'tEfficientSVF_free(tEfficientSVF *const svff):&#160;leaf-filters.c']]],
+  ['tefficientsvf_5finit_321',['tEfficientSVF_init',['../group__tefficientsvf.html#gaac44c74387fbeb20dff0c9f72e5a94ae',1,'tEfficientSVF_init(tEfficientSVF *const, SVFType type, uint16_t input, float Q, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tefficientsvf.html#gaac44c74387fbeb20dff0c9f72e5a94ae',1,'tEfficientSVF_init(tEfficientSVF *const svff, SVFType type, uint16_t input, float Q, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tefficientsvf_5finittopool_322',['tEfficientSVF_initToPool',['../group__tefficientsvf.html#ga467f74b33e51b8a1dd4e87d0ee71b11a',1,'tEfficientSVF_initToPool(tEfficientSVF *const, SVFType type, uint16_t input, float Q, tMempool *const):&#160;leaf-filters.c'],['../group__tefficientsvf.html#ga467f74b33e51b8a1dd4e87d0ee71b11a',1,'tEfficientSVF_initToPool(tEfficientSVF *const svff, SVFType type, uint16_t input, float Q, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tefficientsvf_5fsetfreq_323',['tEfficientSVF_setFreq',['../group__tefficientsvf.html#gad9da8495e569aa12165d804b2368147e',1,'tEfficientSVF_setFreq(tEfficientSVF *const, uint16_t controlFreq):&#160;leaf-filters.c'],['../group__tefficientsvf.html#gad9da8495e569aa12165d804b2368147e',1,'tEfficientSVF_setFreq(tEfficientSVF *const svff, uint16_t input):&#160;leaf-filters.c']]],
+  ['tefficientsvf_5fsetq_324',['tEfficientSVF_setQ',['../group__tefficientsvf.html#ga441c8da00fed2cb9397cbfe6e39f6ed0',1,'tEfficientSVF_setQ(tEfficientSVF *const, float Q):&#160;leaf-filters.c'],['../group__tefficientsvf.html#ga441c8da00fed2cb9397cbfe6e39f6ed0',1,'tEfficientSVF_setQ(tEfficientSVF *const svff, float Q):&#160;leaf-filters.c']]],
+  ['tefficientsvf_5ftick_325',['tEfficientSVF_tick',['../group__tefficientsvf.html#ga6e00079f0b5094972741342dfdc0e7bf',1,'tEfficientSVF_tick(tEfficientSVF *const, float v0):&#160;leaf-filters.c'],['../group__tefficientsvf.html#ga6e00079f0b5094972741342dfdc0e7bf',1,'tEfficientSVF_tick(tEfficientSVF *const svff, float v0):&#160;leaf-filters.c']]],
+  ['tenvelope_326',['tEnvelope',['../group__tenvelope.html',1,'']]],
+  ['tenvelope_5ffree_327',['tEnvelope_free',['../group__tenvelope.html#gac9babd2be1211097f9beee044ec4cdd9',1,'tEnvelope_free(tEnvelope *const):&#160;leaf-envelopes.c'],['../group__tenvelope.html#gac9babd2be1211097f9beee044ec4cdd9',1,'tEnvelope_free(tEnvelope *const envlp):&#160;leaf-envelopes.c']]],
+  ['tenvelope_5finit_328',['tEnvelope_init',['../group__tenvelope.html#ga750a7c8d37cbe768f2392e93f71f926a',1,'tEnvelope_init(tEnvelope *const, float attack, float decay, int loop, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__tenvelope.html#ga750a7c8d37cbe768f2392e93f71f926a',1,'tEnvelope_init(tEnvelope *const envlp, float attack, float decay, int loop, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['tenvelope_5finittopool_329',['tEnvelope_initToPool',['../group__tenvelope.html#gafb5292f686b84efd0d445a353bf4a37a',1,'tEnvelope_initToPool(tEnvelope *const, float attack, float decay, int loop, tMempool *const):&#160;leaf-envelopes.c'],['../group__tenvelope.html#gafb5292f686b84efd0d445a353bf4a37a',1,'tEnvelope_initToPool(tEnvelope *const envlp, float attack, float decay, int loop, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['tenvelope_5floop_330',['tEnvelope_loop',['../group__tenvelope.html#gafd5088139edc7b5630a7738efa7bac38',1,'tEnvelope_loop(tEnvelope *const, int loop):&#160;leaf-envelopes.c'],['../group__tenvelope.html#gafd5088139edc7b5630a7738efa7bac38',1,'tEnvelope_loop(tEnvelope *const envlp, int loop):&#160;leaf-envelopes.c']]],
+  ['tenvelope_5fon_331',['tEnvelope_on',['../group__tenvelope.html#ga27ea23e65d88dee4361325bcb8cd7e23',1,'tEnvelope_on(tEnvelope *const, float velocity):&#160;leaf-envelopes.c'],['../group__tenvelope.html#ga27ea23e65d88dee4361325bcb8cd7e23',1,'tEnvelope_on(tEnvelope *const envlp, float velocity):&#160;leaf-envelopes.c']]],
+  ['tenvelope_5fsetattack_332',['tEnvelope_setAttack',['../group__tenvelope.html#gad7cb0c772ac308884c50ce88eac76350',1,'tEnvelope_setAttack(tEnvelope *const, float attack):&#160;leaf-envelopes.c'],['../group__tenvelope.html#gad7cb0c772ac308884c50ce88eac76350',1,'tEnvelope_setAttack(tEnvelope *const envlp, float attack):&#160;leaf-envelopes.c']]],
+  ['tenvelope_5fsetdecay_333',['tEnvelope_setDecay',['../group__tenvelope.html#gadadffd39e47ede9b25e1a9faad8c0bbc',1,'tEnvelope_setDecay(tEnvelope *const, float decay):&#160;leaf-envelopes.c'],['../group__tenvelope.html#gadadffd39e47ede9b25e1a9faad8c0bbc',1,'tEnvelope_setDecay(tEnvelope *const envlp, float decay):&#160;leaf-envelopes.c']]],
+  ['tenvelope_5ftick_334',['tEnvelope_tick',['../group__tenvelope.html#ga40beb9faaf417398361fe2c4699318f5',1,'tEnvelope_tick(tEnvelope *const):&#160;leaf-envelopes.c'],['../group__tenvelope.html#ga40beb9faaf417398361fe2c4699318f5',1,'tEnvelope_tick(tEnvelope *const envlp):&#160;leaf-envelopes.c']]],
+  ['tenvelopefollower_335',['tEnvelopeFollower',['../group__tenvelopefollower.html',1,'']]],
+  ['tenvelopefollower_5ffree_336',['tEnvelopeFollower_free',['../group__tenvelopefollower.html#ga9ff136abec8842d17d25205787370239',1,'tEnvelopeFollower_free(tEnvelopeFollower *const follower):&#160;leaf-analysis.c'],['../group__tenvelopefollower.html#ga9ff136abec8842d17d25205787370239',1,'tEnvelopeFollower_free(tEnvelopeFollower *const ef):&#160;leaf-analysis.c']]],
+  ['tenvelopefollower_5finit_337',['tEnvelopeFollower_init',['../group__tenvelopefollower.html#ga5a7749052924bc7ed03051043b5e42bb',1,'tEnvelopeFollower_init(tEnvelopeFollower *const follower, float attackThreshold, float decayCoefficient, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tenvelopefollower.html#ga5a7749052924bc7ed03051043b5e42bb',1,'tEnvelopeFollower_init(tEnvelopeFollower *const ef, float attackThreshold, float decayCoeff, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tenvelopefollower_5finittopool_338',['tEnvelopeFollower_initToPool',['../group__tenvelopefollower.html#gacd6a2310494413b550ededdaed214d2a',1,'tEnvelopeFollower_initToPool(tEnvelopeFollower *const follower, float attackThreshold, float decayCoefficient, tMempool *const mempool):&#160;leaf-analysis.c'],['../group__tenvelopefollower.html#gacd6a2310494413b550ededdaed214d2a',1,'tEnvelopeFollower_initToPool(tEnvelopeFollower *const ef, float attackThreshold, float decayCoeff, tMempool *const mp):&#160;leaf-analysis.c']]],
+  ['tenvelopefollower_5fsetattackthreshold_339',['tEnvelopeFollower_setAttackThreshold',['../group__tenvelopefollower.html#ga9d8d4762b016fa57939e5d733e164cb9',1,'tEnvelopeFollower_setAttackThreshold(tEnvelopeFollower *const follower, float attackThreshold):&#160;leaf-analysis.c'],['../group__tenvelopefollower.html#ga9d8d4762b016fa57939e5d733e164cb9',1,'tEnvelopeFollower_setAttackThreshold(tEnvelopeFollower *const ef, float attackThresh):&#160;leaf-analysis.c']]],
+  ['tenvelopefollower_5fsetdecaycoefficient_340',['tEnvelopeFollower_setDecayCoefficient',['../group__tenvelopefollower.html#ga746d0a9698c22b21091cc6fad79faf85',1,'tEnvelopeFollower_setDecayCoefficient(tEnvelopeFollower *const follower, float decayCoefficient):&#160;leaf-analysis.c'],['../group__tenvelopefollower.html#ga746d0a9698c22b21091cc6fad79faf85',1,'tEnvelopeFollower_setDecayCoefficient(tEnvelopeFollower *const ef, float decayCoeff):&#160;leaf-analysis.c']]],
+  ['tenvelopefollower_5ftick_341',['tEnvelopeFollower_tick',['../group__tenvelopefollower.html#gadd57dad9c08b2ada6e8c720077256d5a',1,'tEnvelopeFollower_tick(tEnvelopeFollower *const follower, float sample):&#160;leaf-analysis.c'],['../group__tenvelopefollower.html#gadd57dad9c08b2ada6e8c720077256d5a',1,'tEnvelopeFollower_tick(tEnvelopeFollower *const ef, float x):&#160;leaf-analysis.c']]],
+  ['tenvpd_342',['tEnvPD',['../group__tenvpd.html',1,'']]],
+  ['tenvpd_5ffree_343',['tEnvPD_free',['../group__tenvpd.html#ga28ade0e2893d6e94bca4dfa6cdd0f0ea',1,'tEnvPD_free(tEnvPD *const):&#160;leaf-analysis.c'],['../group__tenvpd.html#ga28ade0e2893d6e94bca4dfa6cdd0f0ea',1,'tEnvPD_free(tEnvPD *const xpd):&#160;leaf-analysis.c']]],
+  ['tenvpd_5finit_344',['tEnvPD_init',['../group__tenvpd.html#ga49c2752feb9890d139e296e75ea74b9b',1,'tEnvPD_init(tEnvPD *const, int windowSize, int hopSize, int blockSize, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tenvpd.html#ga49c2752feb9890d139e296e75ea74b9b',1,'tEnvPD_init(tEnvPD *const xpd, int ws, int hs, int bs, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tenvpd_5finittopool_345',['tEnvPD_initToPool',['../group__tenvpd.html#ga31446fa14ee57bd0f19d260f4c748e2e',1,'tEnvPD_initToPool(tEnvPD *const, int windowSize, int hopSize, int blockSize, tMempool *const):&#160;leaf-analysis.c'],['../group__tenvpd.html#ga31446fa14ee57bd0f19d260f4c748e2e',1,'tEnvPD_initToPool(tEnvPD *const xpd, int ws, int hs, int bs, tMempool *const mp):&#160;leaf-analysis.c']]],
+  ['tenvpd_5fprocessblock_346',['tEnvPD_processBlock',['../group__tenvpd.html#ga15bd0b8018ca2c67120053eb8cd1fc9a',1,'tEnvPD_processBlock(tEnvPD *const, float *in):&#160;leaf-analysis.c'],['../group__tenvpd.html#ga15bd0b8018ca2c67120053eb8cd1fc9a',1,'tEnvPD_processBlock(tEnvPD *const xpd, float *in):&#160;leaf-analysis.c']]],
+  ['tenvpd_5ftick_347',['tEnvPD_tick',['../group__tenvpd.html#ga73ca443b1b36dc5995bf1659fdb242ab',1,'tEnvPD_tick(tEnvPD *const):&#160;leaf-analysis.c'],['../group__tenvpd.html#ga73ca443b1b36dc5995bf1659fdb242ab',1,'tEnvPD_tick(tEnvPD *const xpd):&#160;leaf-analysis.c']]],
+  ['texpsmooth_348',['tExpSmooth',['../group__texpsmooth.html',1,'']]],
+  ['texpsmooth_5ffree_349',['tExpSmooth_free',['../group__texpsmooth.html#gaf49340184c2380c43fd0cb990d9a6ea3',1,'tExpSmooth_free(tExpSmooth *const):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#gaf49340184c2380c43fd0cb990d9a6ea3',1,'tExpSmooth_free(tExpSmooth *const expsmooth):&#160;leaf-envelopes.c']]],
+  ['texpsmooth_5finit_350',['tExpSmooth_init',['../group__texpsmooth.html#ga9074f846bd87a7e9071ff7a0fc77412a',1,'tExpSmooth_init(tExpSmooth *const, float val, float factor, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#ga9074f846bd87a7e9071ff7a0fc77412a',1,'tExpSmooth_init(tExpSmooth *const expsmooth, float val, float factor, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['texpsmooth_5finittopool_351',['tExpSmooth_initToPool',['../group__texpsmooth.html#ga8b8656a6b3b3f824a3a4b1ad06fc5e9e',1,'tExpSmooth_initToPool(tExpSmooth *const, float val, float factor, tMempool *const):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#ga8b8656a6b3b3f824a3a4b1ad06fc5e9e',1,'tExpSmooth_initToPool(tExpSmooth *const expsmooth, float val, float factor, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['texpsmooth_5fsample_352',['tExpSmooth_sample',['../group__texpsmooth.html#ga1f96e9a582c3bf85dd600f98eac11243',1,'tExpSmooth_sample(tExpSmooth *const):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#ga1f96e9a582c3bf85dd600f98eac11243',1,'tExpSmooth_sample(tExpSmooth *const expsmooth):&#160;leaf-envelopes.c']]],
+  ['texpsmooth_5fsetdest_353',['tExpSmooth_setDest',['../group__texpsmooth.html#ga67d45ea3ba251bc651b06733bdd65e60',1,'tExpSmooth_setDest(tExpSmooth *const, float dest):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#ga67d45ea3ba251bc651b06733bdd65e60',1,'tExpSmooth_setDest(tExpSmooth *const expsmooth, float dest):&#160;leaf-envelopes.c']]],
+  ['texpsmooth_5fsetfactor_354',['tExpSmooth_setFactor',['../group__texpsmooth.html#gaea5297fd207b49cecb42c583fe6549cc',1,'tExpSmooth_setFactor(tExpSmooth *const, float factor):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#gaea5297fd207b49cecb42c583fe6549cc',1,'tExpSmooth_setFactor(tExpSmooth *const expsmooth, float factor):&#160;leaf-envelopes.c']]],
+  ['texpsmooth_5fsetval_355',['tExpSmooth_setVal',['../group__texpsmooth.html#ga6e215e2d8a7e43e16d009f8eb805330e',1,'tExpSmooth_setVal(tExpSmooth *const, float val):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#ga6e215e2d8a7e43e16d009f8eb805330e',1,'tExpSmooth_setVal(tExpSmooth *const expsmooth, float val):&#160;leaf-envelopes.c']]],
+  ['texpsmooth_5fsetvalanddest_356',['tExpSmooth_setValAndDest',['../group__texpsmooth.html#ga19fc6917c2d049c72b55f432ea24cfe5',1,'tExpSmooth_setValAndDest(tExpSmooth *const expsmooth, float val):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#ga19fc6917c2d049c72b55f432ea24cfe5',1,'tExpSmooth_setValAndDest(tExpSmooth *const expsmooth, float val):&#160;leaf-envelopes.c']]],
+  ['texpsmooth_5ftick_357',['tExpSmooth_tick',['../group__texpsmooth.html#ga9c772d0874085e260027716a6850c066',1,'tExpSmooth_tick(tExpSmooth *const):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#ga9c772d0874085e260027716a6850c066',1,'tExpSmooth_tick(tExpSmooth *const expsmooth):&#160;leaf-envelopes.c']]],
+  ['tfeedbackleveler_358',['tFeedbackLeveler',['../group__tfeedbackleveler.html',1,'']]],
+  ['tfeedbackleveler_5ffree_359',['tFeedbackLeveler_free',['../group__tfeedbackleveler.html#ga821078d9cde9ae2f2c4e78ff3c3b78e6',1,'tFeedbackLeveler_free(tFeedbackLeveler *const):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#ga821078d9cde9ae2f2c4e78ff3c3b78e6',1,'tFeedbackLeveler_free(tFeedbackLeveler *const fb):&#160;leaf-dynamics.c']]],
+  ['tfeedbackleveler_5finit_360',['tFeedbackLeveler_init',['../group__tfeedbackleveler.html#gad47edde6cb4edcbb2c7b987169fa3894',1,'tFeedbackLeveler_init(tFeedbackLeveler *const, float targetLevel, float factor, float strength, int mode, LEAF *const leaf):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#gad47edde6cb4edcbb2c7b987169fa3894',1,'tFeedbackLeveler_init(tFeedbackLeveler *const fb, float targetLevel, float factor, float strength, int mode, LEAF *const leaf):&#160;leaf-dynamics.c']]],
+  ['tfeedbackleveler_5finittopool_361',['tFeedbackLeveler_initToPool',['../group__tfeedbackleveler.html#gae7b25faea2961dcf8fc010073f27da01',1,'tFeedbackLeveler_initToPool(tFeedbackLeveler *const, float targetLevel, float factor, float strength, int mode, tMempool *const):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#gae7b25faea2961dcf8fc010073f27da01',1,'tFeedbackLeveler_initToPool(tFeedbackLeveler *const fb, float targetLevel, float factor, float strength, int mode, tMempool *const mp):&#160;leaf-dynamics.c']]],
+  ['tfeedbackleveler_5fsample_362',['tFeedbackLeveler_sample',['../group__tfeedbackleveler.html#gab451b93e5c3676fae53e44d19f8d949b',1,'tFeedbackLeveler_sample(tFeedbackLeveler *const):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#gab451b93e5c3676fae53e44d19f8d949b',1,'tFeedbackLeveler_sample(tFeedbackLeveler *const fb):&#160;leaf-dynamics.c']]],
+  ['tfeedbackleveler_5fsetfactor_363',['tFeedbackLeveler_setFactor',['../group__tfeedbackleveler.html#gad1a82f7a3dbd65e3310a7d345b2e4243',1,'tFeedbackLeveler_setFactor(tFeedbackLeveler *const, float factor):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#gad1a82f7a3dbd65e3310a7d345b2e4243',1,'tFeedbackLeveler_setFactor(tFeedbackLeveler *const fb, float factor):&#160;leaf-dynamics.c']]],
+  ['tfeedbackleveler_5fsetmode_364',['tFeedbackLeveler_setMode',['../group__tfeedbackleveler.html#ga08681640f1442f016e6bcf4d05542aa9',1,'tFeedbackLeveler_setMode(tFeedbackLeveler *const, int mode):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#ga08681640f1442f016e6bcf4d05542aa9',1,'tFeedbackLeveler_setMode(tFeedbackLeveler *const fb, int mode):&#160;leaf-dynamics.c']]],
+  ['tfeedbackleveler_5fsetstrength_365',['tFeedbackLeveler_setStrength',['../group__tfeedbackleveler.html#gad7bf90dd14e80f6683859aeac2e62e80',1,'tFeedbackLeveler_setStrength(tFeedbackLeveler *const, float strength):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#gad7bf90dd14e80f6683859aeac2e62e80',1,'tFeedbackLeveler_setStrength(tFeedbackLeveler *const fb, float strength):&#160;leaf-dynamics.c']]],
+  ['tfeedbackleveler_5fsettargetlevel_366',['tFeedbackLeveler_setTargetLevel',['../group__tfeedbackleveler.html#ga4668b5d237be33237f8e4bf0870301f7',1,'tFeedbackLeveler_setTargetLevel(tFeedbackLeveler *const, float TargetLevel):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#ga4668b5d237be33237f8e4bf0870301f7',1,'tFeedbackLeveler_setTargetLevel(tFeedbackLeveler *const fb, float TargetLevel):&#160;leaf-dynamics.c']]],
+  ['tfeedbackleveler_5ftick_367',['tFeedbackLeveler_tick',['../group__tfeedbackleveler.html#ga5c882adb387363a1aaf9ab89856f22a2',1,'tFeedbackLeveler_tick(tFeedbackLeveler *const, float input):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#ga5c882adb387363a1aaf9ab89856f22a2',1,'tFeedbackLeveler_tick(tFeedbackLeveler *const fb, float input):&#160;leaf-dynamics.c']]],
+  ['tfir_368',['tFIR',['../group__tfir.html',1,'']]],
+  ['tfir_5ffree_369',['tFIR_free',['../group__tfir.html#gac45d2e019b45dcd2a62ebe0b4bc1ec50',1,'tFIR_free(tFIR *const):&#160;leaf-filters.c'],['../group__tfir.html#gac45d2e019b45dcd2a62ebe0b4bc1ec50',1,'tFIR_free(tFIR *const firf):&#160;leaf-filters.c']]],
+  ['tfir_5finit_370',['tFIR_init',['../group__tfir.html#ga333f1b826e10b14d932f1282ff72d7fe',1,'tFIR_init(tFIR *const, float *coeffs, int numTaps, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tfir.html#ga333f1b826e10b14d932f1282ff72d7fe',1,'tFIR_init(tFIR *const firf, float *coeffs, int numTaps, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tfir_5finittopool_371',['tFIR_initToPool',['../group__tfir.html#ga814a59f7c1179b717ce5985ed545004f',1,'tFIR_initToPool(tFIR *const, float *coeffs, int numTaps, tMempool *const):&#160;leaf-filters.c'],['../group__tfir.html#ga814a59f7c1179b717ce5985ed545004f',1,'tFIR_initToPool(tFIR *const firf, float *coeffs, int numTaps, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tfir_5ftick_372',['tFIR_tick',['../group__tfir.html#ga6ed11191124b872639e12cbe9dcc76e9',1,'tFIR_tick(tFIR *const, float input):&#160;leaf-filters.c'],['../group__tfir.html#ga6ed11191124b872639e12cbe9dcc76e9',1,'tFIR_tick(tFIR *const firf, float input):&#160;leaf-filters.c']]],
+  ['tformantshifter_373',['tFormantShifter',['../group__tformantshifter.html',1,'']]],
+  ['tformantshifter_5fadd_374',['tFormantShifter_add',['../group__tformantshifter.html#gaa1697aa8f5614be25546943c7a3c6f46',1,'tFormantShifter_add(tFormantShifter *const, float input):&#160;leaf-effects.c'],['../group__tformantshifter.html#gaa1697aa8f5614be25546943c7a3c6f46',1,'tFormantShifter_add(tFormantShifter *const fsr, float in):&#160;leaf-effects.c']]],
+  ['tformantshifter_5ffree_375',['tFormantShifter_free',['../group__tformantshifter.html#gab4d9198bc06d81125663dd3da00fbf47',1,'tFormantShifter_free(tFormantShifter *const):&#160;leaf-effects.c'],['../group__tformantshifter.html#gab4d9198bc06d81125663dd3da00fbf47',1,'tFormantShifter_free(tFormantShifter *const fsr):&#160;leaf-effects.c']]],
+  ['tformantshifter_5finit_376',['tFormantShifter_init',['../group__tformantshifter.html#ga42890ba9ac29c3f200d617647fcd321b',1,'tFormantShifter_init(tFormantShifter *const, int order, LEAF *const leaf):&#160;leaf-effects.c'],['../group__tformantshifter.html#ga42890ba9ac29c3f200d617647fcd321b',1,'tFormantShifter_init(tFormantShifter *const fsr, int order, LEAF *const leaf):&#160;leaf-effects.c']]],
+  ['tformantshifter_5finittopool_377',['tFormantShifter_initToPool',['../group__tformantshifter.html#gad79a5e074c0f99ac7c7af3d530fdd214',1,'tFormantShifter_initToPool(tFormantShifter *const, int order, tMempool *const):&#160;leaf-effects.c'],['../group__tformantshifter.html#gad79a5e074c0f99ac7c7af3d530fdd214',1,'tFormantShifter_initToPool(tFormantShifter *const fsr, int order, tMempool *const mp):&#160;leaf-effects.c']]],
+  ['tformantshifter_5fiosamples_378',['tFormantShifter_ioSamples',['../group__tformantshifter.html#gadf13d01a3ed6e8941d93e521769f5447',1,'leaf-effects.h']]],
+  ['tformantshifter_5fremove_379',['tFormantShifter_remove',['../group__tformantshifter.html#ga20c5dcc163a256e5b7792b1cd4788d59',1,'tFormantShifter_remove(tFormantShifter *const, float input):&#160;leaf-effects.c'],['../group__tformantshifter.html#ga20c5dcc163a256e5b7792b1cd4788d59',1,'tFormantShifter_remove(tFormantShifter *const fsr, float in):&#160;leaf-effects.c']]],
+  ['tformantshifter_5fsetintensity_380',['tFormantShifter_setIntensity',['../group__tformantshifter.html#gaf975f968b7428a7d744b2493c68267d4',1,'tFormantShifter_setIntensity(tFormantShifter *const, float intensity):&#160;leaf-effects.c'],['../group__tformantshifter.html#gaf975f968b7428a7d744b2493c68267d4',1,'tFormantShifter_setIntensity(tFormantShifter *const fsr, float intensity):&#160;leaf-effects.c']]],
+  ['tformantshifter_5fsetshiftfactor_381',['tFormantShifter_setShiftFactor',['../group__tformantshifter.html#ga3f5493a4bce93a71124aed52d374cfdc',1,'tFormantShifter_setShiftFactor(tFormantShifter *const, float shiftFactor):&#160;leaf-effects.c'],['../group__tformantshifter.html#ga3f5493a4bce93a71124aed52d374cfdc',1,'tFormantShifter_setShiftFactor(tFormantShifter *const fsr, float shiftFactor):&#160;leaf-effects.c']]],
+  ['tformantshifter_5ftick_382',['tFormantShifter_tick',['../group__tformantshifter.html#ga6e02d685feef8233a0949e19718b2884',1,'tFormantShifter_tick(tFormantShifter *const, float input):&#160;leaf-effects.c'],['../group__tformantshifter.html#ga6e02d685feef8233a0949e19718b2884',1,'tFormantShifter_tick(tFormantShifter *const fsr, float in):&#160;leaf-effects.c']]],
+  ['thermitedelay_383',['tHermiteDelay',['../group__thermitedelay.html',1,'']]],
+  ['thermitedelay_5faddto_384',['tHermiteDelay_addTo',['../group__thermitedelay.html#ga3b94d0644da904535f9f44481a9d2acd',1,'tHermiteDelay_addTo(tHermiteDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga3b94d0644da904535f9f44481a9d2acd',1,'tHermiteDelay_addTo(tHermiteDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['thermitedelay_5fclear_385',['tHermiteDelay_clear',['../group__thermitedelay.html#gac47ba1719955d115217ce09c1dcd8aa3',1,'tHermiteDelay_clear(tHermiteDelay *const dl):&#160;leaf-delay.c'],['../group__thermitedelay.html#gac47ba1719955d115217ce09c1dcd8aa3',1,'tHermiteDelay_clear(tHermiteDelay *const dl):&#160;leaf-delay.c']]],
+  ['thermitedelay_5ffree_386',['tHermiteDelay_free',['../group__thermitedelay.html#gaf3e5014213692ec0574c67713d562b83',1,'tHermiteDelay_free(tHermiteDelay *const dl):&#160;leaf-delay.c'],['../group__thermitedelay.html#gaf3e5014213692ec0574c67713d562b83',1,'tHermiteDelay_free(tHermiteDelay *const dl):&#160;leaf-delay.c']]],
+  ['thermitedelay_5fgetdelay_387',['tHermiteDelay_getDelay',['../group__thermitedelay.html#ga0965274c7d2b3b3af2ad88117476321f',1,'tHermiteDelay_getDelay(tHermiteDelay *const dl):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga0965274c7d2b3b3af2ad88117476321f',1,'tHermiteDelay_getDelay(tHermiteDelay *const dl):&#160;leaf-delay.c']]],
+  ['thermitedelay_5fgetgain_388',['tHermiteDelay_getGain',['../group__thermitedelay.html#ga5e23e3b036fc9a98494b853794cd8421',1,'tHermiteDelay_getGain(tHermiteDelay *const dl):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga5e23e3b036fc9a98494b853794cd8421',1,'tHermiteDelay_getGain(tHermiteDelay *const dl):&#160;leaf-delay.c']]],
+  ['thermitedelay_5fgetlastin_389',['tHermiteDelay_getLastIn',['../group__thermitedelay.html#ga81d270041108d9af64f97c83cb096955',1,'tHermiteDelay_getLastIn(tHermiteDelay *const dl):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga81d270041108d9af64f97c83cb096955',1,'tHermiteDelay_getLastIn(tHermiteDelay *const dl):&#160;leaf-delay.c']]],
+  ['thermitedelay_5fgetlastout_390',['tHermiteDelay_getLastOut',['../group__thermitedelay.html#gab80cc6ce9c6b3909fd3427c4a75e42cb',1,'tHermiteDelay_getLastOut(tHermiteDelay *const dl):&#160;leaf-delay.c'],['../group__thermitedelay.html#gab80cc6ce9c6b3909fd3427c4a75e42cb',1,'tHermiteDelay_getLastOut(tHermiteDelay *const dl):&#160;leaf-delay.c']]],
+  ['thermitedelay_5finit_391',['tHermiteDelay_init',['../group__thermitedelay.html#ga09adaf3acdcd2ad63ba36f97083ca633',1,'tHermiteDelay_init(tHermiteDelay *const dl, float delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga09adaf3acdcd2ad63ba36f97083ca633',1,'tHermiteDelay_init(tHermiteDelay *const dl, float delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c']]],
+  ['thermitedelay_5finittopool_392',['tHermiteDelay_initToPool',['../group__thermitedelay.html#ga6d3b413c7a3ac6addae36895e47ae3f4',1,'tHermiteDelay_initToPool(tHermiteDelay *const dl, float delay, uint32_t maxDelay, tMempool *const mp):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga6d3b413c7a3ac6addae36895e47ae3f4',1,'tHermiteDelay_initToPool(tHermiteDelay *const dl, float delay, uint32_t maxDelay, tMempool *const mp):&#160;leaf-delay.c']]],
+  ['thermitedelay_5fsetdelay_393',['tHermiteDelay_setDelay',['../group__thermitedelay.html#ga76357c59563894699c6d89f958476151',1,'tHermiteDelay_setDelay(tHermiteDelay *const dl, float delay):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga76357c59563894699c6d89f958476151',1,'tHermiteDelay_setDelay(tHermiteDelay *const dl, float delay):&#160;leaf-delay.c']]],
+  ['thermitedelay_5fsetgain_394',['tHermiteDelay_setGain',['../group__thermitedelay.html#ga8ff412ae2db6aa41afcf812db7c92057',1,'tHermiteDelay_setGain(tHermiteDelay *const dl, float gain):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga8ff412ae2db6aa41afcf812db7c92057',1,'tHermiteDelay_setGain(tHermiteDelay *const dl, float gain):&#160;leaf-delay.c']]],
+  ['thermitedelay_5ftapin_395',['tHermiteDelay_tapIn',['../group__thermitedelay.html#gac650bbef7f3f47f75160e7b90e65bab5',1,'tHermiteDelay_tapIn(tHermiteDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__thermitedelay.html#gac650bbef7f3f47f75160e7b90e65bab5',1,'tHermiteDelay_tapIn(tHermiteDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['thermitedelay_5ftapout_396',['tHermiteDelay_tapOut',['../group__thermitedelay.html#ga6aba8a52c0d7a9349fca81e0b7ae05c0',1,'tHermiteDelay_tapOut(tHermiteDelay *const dl, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga6aba8a52c0d7a9349fca81e0b7ae05c0',1,'tHermiteDelay_tapOut(tHermiteDelay *const dl, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['thermitedelay_5ftick_397',['tHermiteDelay_tick',['../group__thermitedelay.html#gabf6a43f6358e9fcfdb544bf6d93401d5',1,'tHermiteDelay_tick(tHermiteDelay *const dl, float input):&#160;leaf-delay.c'],['../group__thermitedelay.html#gabf6a43f6358e9fcfdb544bf6d93401d5',1,'tHermiteDelay_tick(tHermiteDelay *const dl, float input):&#160;leaf-delay.c']]],
+  ['thermitedelay_5ftickin_398',['tHermiteDelay_tickIn',['../group__thermitedelay.html#ga9d4b6554bac1a01fcbe1deaf04b02a15',1,'tHermiteDelay_tickIn(tHermiteDelay *const dl, float input):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga9d4b6554bac1a01fcbe1deaf04b02a15',1,'tHermiteDelay_tickIn(tHermiteDelay *const dl, float input):&#160;leaf-delay.c']]],
+  ['thermitedelay_5ftickout_399',['tHermiteDelay_tickOut',['../group__thermitedelay.html#ga758ba680ae090cc70bc5d9be12332bb9',1,'tHermiteDelay_tickOut(tHermiteDelay *const dl):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga758ba680ae090cc70bc5d9be12332bb9',1,'tHermiteDelay_tickOut(tHermiteDelay *const dl):&#160;leaf-delay.c']]],
+  ['thighpass_400',['tHighpass',['../group__thighpass.html',1,'']]],
+  ['thighpass_5ffree_401',['tHighpass_free',['../group__thighpass.html#gaaf2a848e9c9f1aa0130cdc8a4de88c2a',1,'tHighpass_free(tHighpass *const):&#160;leaf-filters.c'],['../group__thighpass.html#gaaf2a848e9c9f1aa0130cdc8a4de88c2a',1,'tHighpass_free(tHighpass *const ft):&#160;leaf-filters.c']]],
+  ['thighpass_5fgetfreq_402',['tHighpass_getFreq',['../group__thighpass.html#ga52802836559273d666031bd33b7ad254',1,'tHighpass_getFreq(tHighpass *const):&#160;leaf-filters.c'],['../group__thighpass.html#ga52802836559273d666031bd33b7ad254',1,'tHighpass_getFreq(tHighpass *const ft):&#160;leaf-filters.c']]],
+  ['thighpass_5finit_403',['tHighpass_init',['../group__thighpass.html#ga02cc06dfedbbde5c3746b5238c6c80e7',1,'tHighpass_init(tHighpass *const, float freq, LEAF *const leaf):&#160;leaf-filters.c'],['../group__thighpass.html#ga02cc06dfedbbde5c3746b5238c6c80e7',1,'tHighpass_init(tHighpass *const ft, float freq, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['thighpass_5finittopool_404',['tHighpass_initToPool',['../group__thighpass.html#gaaff0f966ed6e69d21d62bc49d3cd7d0a',1,'tHighpass_initToPool(tHighpass *const, float freq, tMempool *const):&#160;leaf-filters.c'],['../group__thighpass.html#gaaff0f966ed6e69d21d62bc49d3cd7d0a',1,'tHighpass_initToPool(tHighpass *const ft, float freq, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['thighpass_5fsetfreq_405',['tHighpass_setFreq',['../group__thighpass.html#ga94dddc9bae136df8933a82214ce2f1e3',1,'tHighpass_setFreq(tHighpass *const, float freq):&#160;leaf-filters.c'],['../group__thighpass.html#ga94dddc9bae136df8933a82214ce2f1e3',1,'tHighpass_setFreq(tHighpass *const ft, float freq):&#160;leaf-filters.c']]],
+  ['thighpass_5ftick_406',['tHighpass_tick',['../group__thighpass.html#gaed6612747075529362ee1e5a984819a2',1,'tHighpass_tick(tHighpass *const, float x):&#160;leaf-filters.c'],['../group__thighpass.html#gaed6612747075529362ee1e5a984819a2',1,'tHighpass_tick(tHighpass *const ft, float x):&#160;leaf-filters.c']]],
+  ['tkarplusstrong_407',['tKarplusStrong',['../group__tkarplusstrong.html',1,'']]],
+  ['tkarplusstrong_5fcontrolchange_408',['tKarplusStrong_controlChange',['../group__tkarplusstrong.html#ga6d0d8aaefcb4a3322aeee85ebcd6f19e',1,'tKarplusStrong_controlChange(tKarplusStrong *const, SKControlType type, float value):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga6d0d8aaefcb4a3322aeee85ebcd6f19e',1,'tKarplusStrong_controlChange(tKarplusStrong *const pl, SKControlType type, float value):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5ffree_409',['tKarplusStrong_free',['../group__tkarplusstrong.html#ga0d98da9c7a0a458d0871399e3235bce5',1,'tKarplusStrong_free(tKarplusStrong *const):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga0d98da9c7a0a458d0871399e3235bce5',1,'tKarplusStrong_free(tKarplusStrong *const pl):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5fgetlastout_410',['tKarplusStrong_getLastOut',['../group__tkarplusstrong.html#ga32e83815fd063966411e48eaff2a23b8',1,'tKarplusStrong_getLastOut(tKarplusStrong *const):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga32e83815fd063966411e48eaff2a23b8',1,'tKarplusStrong_getLastOut(tKarplusStrong *const pl):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5finit_411',['tKarplusStrong_init',['../group__tkarplusstrong.html#ga186d7205bac18c523abee2ebc076e341',1,'tKarplusStrong_init(tKarplusStrong *const, float lowestFrequency, LEAF *const leaf):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga186d7205bac18c523abee2ebc076e341',1,'tKarplusStrong_init(tKarplusStrong *const pl, float lowestFrequency, LEAF *const leaf):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5finittopool_412',['tKarplusStrong_initToPool',['../group__tkarplusstrong.html#ga77d0a866dda8f75f5d587e8167d9c245',1,'tKarplusStrong_initToPool(tKarplusStrong *const, float lowestFrequency, tMempool *const):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga77d0a866dda8f75f5d587e8167d9c245',1,'tKarplusStrong_initToPool(tKarplusStrong *const pl, float lowestFrequency, tMempool *const mp):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5fnoteoff_413',['tKarplusStrong_noteOff',['../group__tkarplusstrong.html#gad1d984d1439ed44fa749bc6bb30d93a4',1,'tKarplusStrong_noteOff(tKarplusStrong *const, float amplitude):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#gad1d984d1439ed44fa749bc6bb30d93a4',1,'tKarplusStrong_noteOff(tKarplusStrong *const pl, float amplitude):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5fnoteon_414',['tKarplusStrong_noteOn',['../group__tkarplusstrong.html#ga5b29e0e05ad35914453d732b4978e572',1,'tKarplusStrong_noteOn(tKarplusStrong *const, float frequency, float amplitude):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga5b29e0e05ad35914453d732b4978e572',1,'tKarplusStrong_noteOn(tKarplusStrong *const pl, float frequency, float amplitude):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5fpluck_415',['tKarplusStrong_pluck',['../group__tkarplusstrong.html#ga3fe232ca203991c000ad17ea41abc5b3',1,'tKarplusStrong_pluck(tKarplusStrong *const, float amplitude):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga3fe232ca203991c000ad17ea41abc5b3',1,'tKarplusStrong_pluck(tKarplusStrong *const pl, float amplitude):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5fsetbaseloopgain_416',['tKarplusStrong_setBaseLoopGain',['../group__tkarplusstrong.html#gab0d9395a53c6df4699f7cb1b242abf04',1,'tKarplusStrong_setBaseLoopGain(tKarplusStrong *const, float aGain):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#gab0d9395a53c6df4699f7cb1b242abf04',1,'tKarplusStrong_setBaseLoopGain(tKarplusStrong *const pl, float aGain):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5fsetfrequency_417',['tKarplusStrong_setFrequency',['../group__tkarplusstrong.html#ga5082c474d8ec5885fde227cfa67f180b',1,'tKarplusStrong_setFrequency(tKarplusStrong *const, float frequency):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga5082c474d8ec5885fde227cfa67f180b',1,'tKarplusStrong_setFrequency(tKarplusStrong *const pl, float frequency):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5fsetpickupposition_418',['tKarplusStrong_setPickupPosition',['../group__tkarplusstrong.html#ga59bc5175836ad9aaf59dd13eb8a23581',1,'tKarplusStrong_setPickupPosition(tKarplusStrong *const, float position):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga59bc5175836ad9aaf59dd13eb8a23581',1,'tKarplusStrong_setPickupPosition(tKarplusStrong *const pl, float position):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5fsetstretch_419',['tKarplusStrong_setStretch',['../group__tkarplusstrong.html#gadade0b8de0fddb719156b9940d72f8ff',1,'tKarplusStrong_setStretch(tKarplusStrong *const, float stretch):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#gadade0b8de0fddb719156b9940d72f8ff',1,'tKarplusStrong_setStretch(tKarplusStrong *const pl, float stretch):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5ftick_420',['tKarplusStrong_tick',['../group__tkarplusstrong.html#gacda457f47786fdca8b06a30a01ffc135',1,'tKarplusStrong_tick(tKarplusStrong *const):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#gacda457f47786fdca8b06a30a01ffc135',1,'tKarplusStrong_tick(tKarplusStrong *const pl):&#160;leaf-physical.c']]],
+  ['tlineardelay_421',['tLinearDelay',['../group__tlineardelay.html',1,'']]],
+  ['tlineardelay_5faddto_422',['tLinearDelay_addTo',['../group__tlineardelay.html#ga39f3f7376b5f38123678fea82c245368',1,'tLinearDelay_addTo(tLinearDelay *const, float value, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga39f3f7376b5f38123678fea82c245368',1,'tLinearDelay_addTo(tLinearDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tlineardelay_5fclear_423',['tLinearDelay_clear',['../group__tlineardelay.html#ga890124d89744b9621ce802ad9e0e0759',1,'tLinearDelay_clear(tLinearDelay *const dl):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga890124d89744b9621ce802ad9e0e0759',1,'tLinearDelay_clear(tLinearDelay *const dl):&#160;leaf-delay.c']]],
+  ['tlineardelay_5ffree_424',['tLinearDelay_free',['../group__tlineardelay.html#gaeb62896b4392a7f9ca1c557ccc859f4f',1,'tLinearDelay_free(tLinearDelay *const):&#160;leaf-delay.c'],['../group__tlineardelay.html#gaeb62896b4392a7f9ca1c557ccc859f4f',1,'tLinearDelay_free(tLinearDelay *const dl):&#160;leaf-delay.c']]],
+  ['tlineardelay_5fgetdelay_425',['tLinearDelay_getDelay',['../group__tlineardelay.html#gac57ca1a251b96ec2aad7550049864b8c',1,'tLinearDelay_getDelay(tLinearDelay *const):&#160;leaf-delay.c'],['../group__tlineardelay.html#gac57ca1a251b96ec2aad7550049864b8c',1,'tLinearDelay_getDelay(tLinearDelay *const dl):&#160;leaf-delay.c']]],
+  ['tlineardelay_5fgetlastin_426',['tLinearDelay_getLastIn',['../group__tlineardelay.html#ga710bf54a2fec7f40dcd1c5b99a7b44fd',1,'tLinearDelay_getLastIn(tLinearDelay *const):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga710bf54a2fec7f40dcd1c5b99a7b44fd',1,'tLinearDelay_getLastIn(tLinearDelay *const dl):&#160;leaf-delay.c']]],
+  ['tlineardelay_5fgetlastout_427',['tLinearDelay_getLastOut',['../group__tlineardelay.html#ga97b8b25f279b974a969dc0bd46b7547b',1,'tLinearDelay_getLastOut(tLinearDelay *const):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga97b8b25f279b974a969dc0bd46b7547b',1,'tLinearDelay_getLastOut(tLinearDelay *const dl):&#160;leaf-delay.c']]],
+  ['tlineardelay_5finit_428',['tLinearDelay_init',['../group__tlineardelay.html#gaffbe3ac134a45c164eded9d4dc3304f7',1,'tLinearDelay_init(tLinearDelay *const, float delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c'],['../group__tlineardelay.html#gaffbe3ac134a45c164eded9d4dc3304f7',1,'tLinearDelay_init(tLinearDelay *const dl, float delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c']]],
+  ['tlineardelay_5finittopool_429',['tLinearDelay_initToPool',['../group__tlineardelay.html#ga6cb9f12ba9262386d8ecbf0dd8151b69',1,'tLinearDelay_initToPool(tLinearDelay *const, float delay, uint32_t maxDelay, tMempool *const):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga6cb9f12ba9262386d8ecbf0dd8151b69',1,'tLinearDelay_initToPool(tLinearDelay *const dl, float delay, uint32_t maxDelay, tMempool *const mp):&#160;leaf-delay.c']]],
+  ['tlineardelay_5fsetdelay_430',['tLinearDelay_setDelay',['../group__tlineardelay.html#ga02ae58cb385f4d598bd4c57903dd365a',1,'tLinearDelay_setDelay(tLinearDelay *const, float delay):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga02ae58cb385f4d598bd4c57903dd365a',1,'tLinearDelay_setDelay(tLinearDelay *const dl, float delay):&#160;leaf-delay.c']]],
+  ['tlineardelay_5ftapin_431',['tLinearDelay_tapIn',['../group__tlineardelay.html#ga16350a1576f9662c7ef8dade853c8f93',1,'tLinearDelay_tapIn(tLinearDelay *const, float in, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga16350a1576f9662c7ef8dade853c8f93',1,'tLinearDelay_tapIn(tLinearDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tlineardelay_5ftapout_432',['tLinearDelay_tapOut',['../group__tlineardelay.html#ga8b5a87f1a03b6456cac6334085bf8be6',1,'tLinearDelay_tapOut(tLinearDelay *const, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga8b5a87f1a03b6456cac6334085bf8be6',1,'tLinearDelay_tapOut(tLinearDelay *const dl, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tlineardelay_5ftick_433',['tLinearDelay_tick',['../group__tlineardelay.html#ga2f4a6a73eea16bb9ce3408b945ddb8f7',1,'tLinearDelay_tick(tLinearDelay *const, float sample):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga2f4a6a73eea16bb9ce3408b945ddb8f7',1,'tLinearDelay_tick(tLinearDelay *const dl, float input):&#160;leaf-delay.c']]],
+  ['tlineardelay_5ftickin_434',['tLinearDelay_tickIn',['../group__tlineardelay.html#ga8f9c2a86422204321dbd56ba317a5662',1,'tLinearDelay_tickIn(tLinearDelay *const, float input):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga8f9c2a86422204321dbd56ba317a5662',1,'tLinearDelay_tickIn(tLinearDelay *const dl, float input):&#160;leaf-delay.c']]],
+  ['tlineardelay_5ftickout_435',['tLinearDelay_tickOut',['../group__tlineardelay.html#gad7f62bcf8446ee6a3987ffa3c01bf31c',1,'tLinearDelay_tickOut(tLinearDelay *const):&#160;leaf-delay.c'],['../group__tlineardelay.html#gad7f62bcf8446ee6a3987ffa3c01bf31c',1,'tLinearDelay_tickOut(tLinearDelay *const dl):&#160;leaf-delay.c']]],
+  ['tlivingstring_436',['tLivingString',['../group__tlivingstring.html',1,'']]],
+  ['tlivingstring_5ffree_437',['tLivingString_free',['../group__tlivingstring.html#ga218b97b43f8b5183be6f64bd48c33363',1,'tLivingString_free(tLivingString *const):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga218b97b43f8b5183be6f64bd48c33363',1,'tLivingString_free(tLivingString *const pl):&#160;leaf-physical.c']]],
+  ['tlivingstring_5finit_438',['tLivingString_init',['../group__tlivingstring.html#ga7f29c68e9b01878aa3e0bf1d2029e617',1,'tLivingString_init(tLivingString *const, float freq, float pickPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, LEAF *const leaf):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga7f29c68e9b01878aa3e0bf1d2029e617',1,'tLivingString_init(tLivingString *const pl, float freq, float pickPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, LEAF *const leaf):&#160;leaf-physical.c']]],
+  ['tlivingstring_5finittopool_439',['tLivingString_initToPool',['../group__tlivingstring.html#ga1d4d5b8511cbd1242e63b9eb1310a27c',1,'tLivingString_initToPool(tLivingString *const, float freq, float pickPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga1d4d5b8511cbd1242e63b9eb1310a27c',1,'tLivingString_initToPool(tLivingString *const pl, float freq, float pickPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const mp):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsample_440',['tLivingString_sample',['../group__tlivingstring.html#gac1740a1f1c9c8f319d0317b21343bfa2',1,'tLivingString_sample(tLivingString *const):&#160;leaf-physical.c'],['../group__tlivingstring.html#gac1740a1f1c9c8f319d0317b21343bfa2',1,'tLivingString_sample(tLivingString *const pl):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetdampfreq_441',['tLivingString_setDampFreq',['../group__tlivingstring.html#ga4bb7183baf3014d12ca553b2238ba4da',1,'tLivingString_setDampFreq(tLivingString *const, float dampFreq):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga4bb7183baf3014d12ca553b2238ba4da',1,'tLivingString_setDampFreq(tLivingString *const pl, float dampFreq):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetdecay_442',['tLivingString_setDecay',['../group__tlivingstring.html#gaf0bd03d4756f67c29bedfed6ae8a2462',1,'tLivingString_setDecay(tLivingString *const, float decay):&#160;leaf-physical.c'],['../group__tlivingstring.html#gaf0bd03d4756f67c29bedfed6ae8a2462',1,'tLivingString_setDecay(tLivingString *const pl, float decay):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetfreq_443',['tLivingString_setFreq',['../group__tlivingstring.html#ga27d918a9c2031fb6e08a3ceb1cd40be8',1,'tLivingString_setFreq(tLivingString *const, float freq):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga27d918a9c2031fb6e08a3ceb1cd40be8',1,'tLivingString_setFreq(tLivingString *const pl, float freq):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetlevmode_444',['tLivingString_setLevMode',['../group__tlivingstring.html#gab589985207a6de71c6ef03b7fe8aa5cb',1,'tLivingString_setLevMode(tLivingString *const, int levMode):&#160;leaf-physical.c'],['../group__tlivingstring.html#gab589985207a6de71c6ef03b7fe8aa5cb',1,'tLivingString_setLevMode(tLivingString *const pl, int levMode):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetlevsmoothfactor_445',['tLivingString_setLevSmoothFactor',['../group__tlivingstring.html#gac5e7d1412dd4ffa46fae5e77f64437aa',1,'tLivingString_setLevSmoothFactor(tLivingString *const, float levSmoothFactor):&#160;leaf-physical.c'],['../group__tlivingstring.html#gac5e7d1412dd4ffa46fae5e77f64437aa',1,'tLivingString_setLevSmoothFactor(tLivingString *const pl, float levSmoothFactor):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetlevstrength_446',['tLivingString_setLevStrength',['../group__tlivingstring.html#ga0be415268ce535555db9b48c7a6c3bbb',1,'tLivingString_setLevStrength(tLivingString *const, float levStrength):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga0be415268ce535555db9b48c7a6c3bbb',1,'tLivingString_setLevStrength(tLivingString *const pl, float levStrength):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetpickpos_447',['tLivingString_setPickPos',['../group__tlivingstring.html#ga894b268e4c994e87ecfa92ebc6098453',1,'tLivingString_setPickPos(tLivingString *const, float pickPos):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga894b268e4c994e87ecfa92ebc6098453',1,'tLivingString_setPickPos(tLivingString *const pl, float pickPos):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetprepindex_448',['tLivingString_setPrepIndex',['../group__tlivingstring.html#ga60dff1ade447e15dfb3d4f07dc04020e',1,'tLivingString_setPrepIndex(tLivingString *const, float prepIndex):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga60dff1ade447e15dfb3d4f07dc04020e',1,'tLivingString_setPrepIndex(tLivingString *const pl, float prepIndex):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsettargetlev_449',['tLivingString_setTargetLev',['../group__tlivingstring.html#ga53912452a30d9bcf1a7981487b98e7b9',1,'tLivingString_setTargetLev(tLivingString *const, float targetLev):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga53912452a30d9bcf1a7981487b98e7b9',1,'tLivingString_setTargetLev(tLivingString *const pl, float targetLev):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetwavelength_450',['tLivingString_setWaveLength',['../group__tlivingstring.html#ga58b626a71daeec65a9ddf3f6925a767e',1,'tLivingString_setWaveLength(tLivingString *const, float waveLength):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga58b626a71daeec65a9ddf3f6925a767e',1,'tLivingString_setWaveLength(tLivingString *const pl, float waveLength):&#160;leaf-physical.c']]],
+  ['tlivingstring_5ftick_451',['tLivingString_tick',['../group__tlivingstring.html#gab97180cbfaebe42696eaa6e4d60f18a8',1,'tLivingString_tick(tLivingString *const, float input):&#160;leaf-physical.c'],['../group__tlivingstring.html#gab97180cbfaebe42696eaa6e4d60f18a8',1,'tLivingString_tick(tLivingString *const pl, float input):&#160;leaf-physical.c']]],
+  ['tlockhartwavefolder_452',['tLockhartWavefolder',['../group__tlockhartwavefolder.html',1,'']]],
+  ['tlockhartwavefolder_5ffree_453',['tLockhartWavefolder_free',['../group__tlockhartwavefolder.html#ga1d6c822538b7fd10b36d137aec039e58',1,'tLockhartWavefolder_free(tLockhartWavefolder *const):&#160;leaf-distortion.c'],['../group__tlockhartwavefolder.html#ga1d6c822538b7fd10b36d137aec039e58',1,'tLockhartWavefolder_free(tLockhartWavefolder *const wf):&#160;leaf-distortion.c']]],
+  ['tlockhartwavefolder_5finit_454',['tLockhartWavefolder_init',['../group__tlockhartwavefolder.html#gaaaccced3a742e99031ec5aa09604e376',1,'tLockhartWavefolder_init(tLockhartWavefolder *const, LEAF *const leaf):&#160;leaf-distortion.c'],['../group__tlockhartwavefolder.html#gaaaccced3a742e99031ec5aa09604e376',1,'tLockhartWavefolder_init(tLockhartWavefolder *const wf, LEAF *const leaf):&#160;leaf-distortion.c']]],
+  ['tlockhartwavefolder_5finittopool_455',['tLockhartWavefolder_initToPool',['../group__tlockhartwavefolder.html#gab130d6243f2c51fe55f1e23e2a7f65ff',1,'tLockhartWavefolder_initToPool(tLockhartWavefolder *const, tMempool *const):&#160;leaf-distortion.c'],['../group__tlockhartwavefolder.html#gab130d6243f2c51fe55f1e23e2a7f65ff',1,'tLockhartWavefolder_initToPool(tLockhartWavefolder *const wf, tMempool *const mp):&#160;leaf-distortion.c']]],
+  ['tlockhartwavefolder_5ftick_456',['tLockhartWavefolder_tick',['../group__tlockhartwavefolder.html#gaaa9ddfb64262aa97804144c96d2d400f',1,'tLockhartWavefolder_tick(tLockhartWavefolder *const, float samp):&#160;leaf-distortion.c'],['../group__tlockhartwavefolder.html#gaaa9ddfb64262aa97804144c96d2d400f',1,'tLockhartWavefolder_tick(tLockhartWavefolder *const wf, float in):&#160;leaf-distortion.c']]],
+  ['tmbpulse_457',['tMBPulse',['../group__tmbpulse.html',1,'']]],
+  ['tmbpulse_5ffree_458',['tMBPulse_free',['../group__tmbpulse.html#gac07d7bffe4cc28fb90825b2b1692bd85',1,'tMBPulse_free(tMBPulse *const osc):&#160;leaf-oscillators.c'],['../group__tmbpulse.html#gac07d7bffe4cc28fb90825b2b1692bd85',1,'tMBPulse_free(tMBPulse *const osc):&#160;leaf-oscillators.c']]],
+  ['tmbpulse_5finit_459',['tMBPulse_init',['../group__tmbpulse.html#gabd7bb2639349323c56d8e49e1e242a4c',1,'tMBPulse_init(tMBPulse *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tmbpulse.html#gabd7bb2639349323c56d8e49e1e242a4c',1,'tMBPulse_init(tMBPulse *const osc, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tmbpulse_5finittopool_460',['tMBPulse_initToPool',['../group__tmbpulse.html#gaa36a0b547fef520a9ba55df50b7bbb70',1,'tMBPulse_initToPool(tMBPulse *const osc, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__tmbpulse.html#gaa36a0b547fef520a9ba55df50b7bbb70',1,'tMBPulse_initToPool(tMBPulse *const osc, tMempool *const pool):&#160;leaf-oscillators.c']]],
+  ['tmbpulse_5fsetfreq_461',['tMBPulse_setFreq',['../group__tmbpulse.html#gacda622592ebee8942e11209e62ee33bc',1,'tMBPulse_setFreq(tMBPulse *const osc, float f):&#160;leaf-oscillators.c'],['../group__tmbpulse.html#gacda622592ebee8942e11209e62ee33bc',1,'tMBPulse_setFreq(tMBPulse *const osc, float f):&#160;leaf-oscillators.c']]],
+  ['tmbpulse_5fsetwidth_462',['tMBPulse_setWidth',['../group__tmbpulse.html#ga071f98a4a4981b2d9c2e917c5c5fdb40',1,'tMBPulse_setWidth(tMBPulse *const osc, float w):&#160;leaf-oscillators.c'],['../group__tmbpulse.html#ga071f98a4a4981b2d9c2e917c5c5fdb40',1,'tMBPulse_setWidth(tMBPulse *const osc, float w):&#160;leaf-oscillators.c']]],
+  ['tmbpulse_5fsyncin_463',['tMBPulse_syncIn',['../group__tmbpulse.html#gad963722a79ea1c5b240e97405f3a8451',1,'tMBPulse_syncIn(tMBPulse *const osc, float sync):&#160;leaf-oscillators.c'],['../group__tmbpulse.html#gad963722a79ea1c5b240e97405f3a8451',1,'tMBPulse_syncIn(tMBPulse *const osc, float sync):&#160;leaf-oscillators.c']]],
+  ['tmbpulse_5fsyncout_464',['tMBPulse_syncOut',['../group__tmbpulse.html#ga199661893e765676a0c53c6d3661711b',1,'tMBPulse_syncOut(tMBPulse *const osc):&#160;leaf-oscillators.c'],['../group__tmbpulse.html#ga199661893e765676a0c53c6d3661711b',1,'tMBPulse_syncOut(tMBPulse *const osc):&#160;leaf-oscillators.c']]],
+  ['tmbpulse_5ftick_465',['tMBPulse_tick',['../group__tmbpulse.html#ga710dd6a7764807029c193cf44c923737',1,'tMBPulse_tick(tMBPulse *const osc):&#160;leaf-oscillators.c'],['../group__tmbpulse.html#ga710dd6a7764807029c193cf44c923737',1,'tMBPulse_tick(tMBPulse *const osc):&#160;leaf-oscillators.c']]],
+  ['tmbsampler_466',['tMBSampler',['../group__t_m_b_sampler.html',1,'']]],
+  ['tmbsampler_5ffree_467',['tMBSampler_free',['../group__t_m_b_sampler.html#gabf7ea61189e14b7df128c279342ecabb',1,'tMBSampler_free(tMBSampler *const):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#gabf7ea61189e14b7df128c279342ecabb',1,'tMBSampler_free(tMBSampler *const sp):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5finit_468',['tMBSampler_init',['../group__t_m_b_sampler.html#gaca3e3353a058e3b2d2231daba80e2cba',1,'tMBSampler_init(tMBSampler *const, tBuffer *const, LEAF *const leaf):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#gaca3e3353a058e3b2d2231daba80e2cba',1,'tMBSampler_init(tMBSampler *const sp, tBuffer *const b, LEAF *const leaf):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5finittopool_469',['tMBSampler_initToPool',['../group__t_m_b_sampler.html#ga0cf8b1c9137072b7c99deeb3749a8f13',1,'tMBSampler_initToPool(tMBSampler *const, tBuffer *const, tMempool *const):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#ga0cf8b1c9137072b7c99deeb3749a8f13',1,'tMBSampler_initToPool(tMBSampler *const sp, tBuffer *const b, tMempool *const mp):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5fplay_470',['tMBSampler_play',['../group__t_m_b_sampler.html#ga8b91b8513f515bd0a26411b14c2c43d6',1,'tMBSampler_play(tMBSampler *const):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#ga8b91b8513f515bd0a26411b14c2c43d6',1,'tMBSampler_play(tMBSampler *const sp):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5fsetend_471',['tMBSampler_setEnd',['../group__t_m_b_sampler.html#gaf3fcfc2f5f9b14c712bc59d9e91d5365',1,'tMBSampler_setEnd(tMBSampler *const, int32_t end):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#gaf3fcfc2f5f9b14c712bc59d9e91d5365',1,'tMBSampler_setEnd(tMBSampler *const sp, int32_t end):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5fsetlength_472',['tMBSampler_setLength',['../group__t_m_b_sampler.html#ga066b4da5f29266f9138772944f403d8b',1,'tMBSampler_setLength(tMBSampler *const, int32_t length):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#ga066b4da5f29266f9138772944f403d8b',1,'tMBSampler_setLength(tMBSampler *const sp, int32_t length):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5fsetmode_473',['tMBSampler_setMode',['../group__t_m_b_sampler.html#ga7017647251f4c6bf8ab2e919cf1d72a0',1,'tMBSampler_setMode(tMBSampler *const, PlayMode mode):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#ga7017647251f4c6bf8ab2e919cf1d72a0',1,'tMBSampler_setMode(tMBSampler *const sp, PlayMode mode):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5fsetrate_474',['tMBSampler_setRate',['../group__t_m_b_sampler.html#gafd87c733fd6c73885b84ac9d02b43f5a',1,'tMBSampler_setRate(tMBSampler *const, float rate):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#gafd87c733fd6c73885b84ac9d02b43f5a',1,'tMBSampler_setRate(tMBSampler *const sp, float rate):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5fsetsample_475',['tMBSampler_setSample',['../group__t_m_b_sampler.html#ga5df0750a1c82828dc7c3d654fd633c63',1,'tMBSampler_setSample(tMBSampler *const, tBuffer *const):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#ga5df0750a1c82828dc7c3d654fd633c63',1,'tMBSampler_setSample(tMBSampler *const sp, tBuffer *const b):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5fsetstart_476',['tMBSampler_setStart',['../group__t_m_b_sampler.html#ga2adcb66cf57f16c7852fbffb4b6d2201',1,'tMBSampler_setStart(tMBSampler *const, int32_t start):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#ga2adcb66cf57f16c7852fbffb4b6d2201',1,'tMBSampler_setStart(tMBSampler *const sp, int32_t start):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5fstop_477',['tMBSampler_stop',['../group__t_m_b_sampler.html#ga4f7de005419ba042c280bc6aa0a43013',1,'tMBSampler_stop(tMBSampler *const):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#ga4f7de005419ba042c280bc6aa0a43013',1,'tMBSampler_stop(tMBSampler *const sp):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5ftick_478',['tMBSampler_tick',['../group__t_m_b_sampler.html#gaa96c1712d883af90494934258901ef98',1,'tMBSampler_tick(tMBSampler *const):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#gaa96c1712d883af90494934258901ef98',1,'tMBSampler_tick(tMBSampler *const sp):&#160;leaf-sampling.c']]],
+  ['tmbsaw_479',['tMBSaw',['../group__tmbsaw.html',1,'']]],
+  ['tmbsaw_5ffree_480',['tMBSaw_free',['../group__tmbsaw.html#gabf4312918312e89cc6cf9f116ec48a94',1,'tMBSaw_free(tMBSaw *const osc):&#160;leaf-oscillators.c'],['../group__tmbsaw.html#gabf4312918312e89cc6cf9f116ec48a94',1,'tMBSaw_free(tMBSaw *const osc):&#160;leaf-oscillators.c']]],
+  ['tmbsaw_5finit_481',['tMBSaw_init',['../group__tmbsaw.html#ga4792d509595b94f20e515b077b476884',1,'tMBSaw_init(tMBSaw *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tmbsaw.html#ga4792d509595b94f20e515b077b476884',1,'tMBSaw_init(tMBSaw *const osc, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tmbsaw_5finittopool_482',['tMBSaw_initToPool',['../group__tmbsaw.html#ga9405dbc7af1c8687690e7d31f8e105b5',1,'tMBSaw_initToPool(tMBSaw *const osc, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__tmbsaw.html#ga9405dbc7af1c8687690e7d31f8e105b5',1,'tMBSaw_initToPool(tMBSaw *const osc, tMempool *const pool):&#160;leaf-oscillators.c']]],
+  ['tmbsaw_5fsetfreq_483',['tMBSaw_setFreq',['../group__tmbsaw.html#gaa7e8996e6780f64c5530600d13e68dfa',1,'tMBSaw_setFreq(tMBSaw *const osc, float f):&#160;leaf-oscillators.c'],['../group__tmbsaw.html#gaa7e8996e6780f64c5530600d13e68dfa',1,'tMBSaw_setFreq(tMBSaw *const osc, float f):&#160;leaf-oscillators.c']]],
+  ['tmbsaw_5fsyncin_484',['tMBSaw_syncIn',['../group__tmbsaw.html#gaf8c1832d4612b09186f039dae141c55e',1,'tMBSaw_syncIn(tMBSaw *const osc, float sync):&#160;leaf-oscillators.c'],['../group__tmbsaw.html#gaf8c1832d4612b09186f039dae141c55e',1,'tMBSaw_syncIn(tMBSaw *const osc, float sync):&#160;leaf-oscillators.c']]],
+  ['tmbsaw_5fsyncout_485',['tMBSaw_syncOut',['../group__tmbsaw.html#ga7a3f14f56043adf51d48b8a3c6aebf77',1,'tMBSaw_syncOut(tMBSaw *const osc):&#160;leaf-oscillators.c'],['../group__tmbsaw.html#ga7a3f14f56043adf51d48b8a3c6aebf77',1,'tMBSaw_syncOut(tMBSaw *const osc):&#160;leaf-oscillators.c']]],
+  ['tmbsaw_5ftick_486',['tMBSaw_tick',['../group__tmbsaw.html#ga200361c3174c419e413a2b8b4e988fc4',1,'tMBSaw_tick(tMBSaw *const osc):&#160;leaf-oscillators.c'],['../group__tmbsaw.html#ga200361c3174c419e413a2b8b4e988fc4',1,'tMBSaw_tick(tMBSaw *const osc):&#160;leaf-oscillators.c']]],
+  ['tmbtriangle_487',['tMBTriangle',['../group__tmbtriangle.html',1,'']]],
+  ['tmbtriangle_5ffree_488',['tMBTriangle_free',['../group__tmbtriangle.html#ga4a398681a83d517465c1f1373ecdff58',1,'tMBTriangle_free(tMBTriangle *const osc):&#160;leaf-oscillators.c'],['../group__tmbtriangle.html#ga4a398681a83d517465c1f1373ecdff58',1,'tMBTriangle_free(tMBTriangle *const osc):&#160;leaf-oscillators.c']]],
+  ['tmbtriangle_5finit_489',['tMBTriangle_init',['../group__tmbtriangle.html#gaaa43deb9cb1263b048346ddced186ae1',1,'tMBTriangle_init(tMBTriangle *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tmbtriangle.html#gaaa43deb9cb1263b048346ddced186ae1',1,'tMBTriangle_init(tMBTriangle *const osc, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tmbtriangle_5finittopool_490',['tMBTriangle_initToPool',['../group__tmbtriangle.html#ga1059c905fff781ffc59ffed1fefc3733',1,'tMBTriangle_initToPool(tMBTriangle *const osc, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__tmbtriangle.html#ga1059c905fff781ffc59ffed1fefc3733',1,'tMBTriangle_initToPool(tMBTriangle *const osc, tMempool *const pool):&#160;leaf-oscillators.c']]],
+  ['tmbtriangle_5fsetfreq_491',['tMBTriangle_setFreq',['../group__tmbtriangle.html#ga2d5a172cbfc2df0d71e9c8732fbe949e',1,'tMBTriangle_setFreq(tMBTriangle *const osc, float f):&#160;leaf-oscillators.c'],['../group__tmbtriangle.html#ga2d5a172cbfc2df0d71e9c8732fbe949e',1,'tMBTriangle_setFreq(tMBTriangle *const osc, float f):&#160;leaf-oscillators.c']]],
+  ['tmbtriangle_5fsetwidth_492',['tMBTriangle_setWidth',['../group__tmbtriangle.html#ga3d1220d479ab00cfdf07eda2bacd6eb6',1,'tMBTriangle_setWidth(tMBTriangle *const osc, float w):&#160;leaf-oscillators.c'],['../group__tmbtriangle.html#ga3d1220d479ab00cfdf07eda2bacd6eb6',1,'tMBTriangle_setWidth(tMBTriangle *const osc, float w):&#160;leaf-oscillators.c']]],
+  ['tmbtriangle_5fsyncin_493',['tMBTriangle_syncIn',['../group__tmbtriangle.html#gae3ebade6ea067daf671c06a45c7159ab',1,'tMBTriangle_syncIn(tMBTriangle *const osc, float sync):&#160;leaf-oscillators.c'],['../group__tmbtriangle.html#gae3ebade6ea067daf671c06a45c7159ab',1,'tMBTriangle_syncIn(tMBTriangle *const osc, float sync):&#160;leaf-oscillators.c']]],
+  ['tmbtriangle_5fsyncout_494',['tMBTriangle_syncOut',['../group__tmbtriangle.html#gad0326131f43ef1a605faa75d2b1ff793',1,'tMBTriangle_syncOut(tMBTriangle *const osc):&#160;leaf-oscillators.c'],['../group__tmbtriangle.html#gad0326131f43ef1a605faa75d2b1ff793',1,'tMBTriangle_syncOut(tMBTriangle *const osc):&#160;leaf-oscillators.c']]],
+  ['tmbtriangle_5ftick_495',['tMBTriangle_tick',['../group__tmbtriangle.html#gad01e9918a433aae65ec099301edc9e42',1,'tMBTriangle_tick(tMBTriangle *const osc):&#160;leaf-oscillators.c'],['../group__tmbtriangle.html#gad01e9918a433aae65ec099301edc9e42',1,'tMBTriangle_tick(tMBTriangle *const osc):&#160;leaf-oscillators.c']]],
+  ['tmedianfilter_496',['tMedianFilter',['../group__tmedianfilter.html',1,'']]],
+  ['tmedianfilter_5ffree_497',['tMedianFilter_free',['../group__tmedianfilter.html#ga8f504c9799e7d7c782df97b8d104bca8',1,'tMedianFilter_free(tMedianFilter *const):&#160;leaf-filters.c'],['../group__tmedianfilter.html#ga8f504c9799e7d7c782df97b8d104bca8',1,'tMedianFilter_free(tMedianFilter *const mf):&#160;leaf-filters.c']]],
+  ['tmedianfilter_5finit_498',['tMedianFilter_init',['../group__tmedianfilter.html#ga681edc6f80e60403e48d6228010242c7',1,'tMedianFilter_init(tMedianFilter *const, int size, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tmedianfilter.html#ga681edc6f80e60403e48d6228010242c7',1,'tMedianFilter_init(tMedianFilter *const f, int size, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tmedianfilter_5finittopool_499',['tMedianFilter_initToPool',['../group__tmedianfilter.html#ga11aa8d228031cd4b493ea22cb56fc7fd',1,'tMedianFilter_initToPool(tMedianFilter *const, int size, tMempool *const):&#160;leaf-filters.c'],['../group__tmedianfilter.html#ga11aa8d228031cd4b493ea22cb56fc7fd',1,'tMedianFilter_initToPool(tMedianFilter *const mf, int size, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tmedianfilter_5ftick_500',['tMedianFilter_tick',['../group__tmedianfilter.html#ga07f8bc00264d3e544a2172e5a9bd5420',1,'tMedianFilter_tick(tMedianFilter *const, float input):&#160;leaf-filters.c'],['../group__tmedianfilter.html#ga07f8bc00264d3e544a2172e5a9bd5420',1,'tMedianFilter_tick(tMedianFilter *const mf, float input):&#160;leaf-filters.c']]],
+  ['tmempool_501',['tMempool',['../group__tmempool.html',1,'']]],
+  ['tmempool_5ffree_502',['tMempool_free',['../group__tmempool.html#ga374f00b950bef471dce439c54de88c6b',1,'tMempool_free(tMempool *const pool):&#160;leaf-mempool.c'],['../group__tmempool.html#ga374f00b950bef471dce439c54de88c6b',1,'tMempool_free(tMempool *const mp):&#160;leaf-mempool.c']]],
+  ['tmempool_5finit_503',['tMempool_init',['../group__tmempool.html#ga7d57d178dbc5f510e139a303ff82f950',1,'tMempool_init(tMempool *const pool, char *memory, size_t size, LEAF *const leaf):&#160;leaf-mempool.c'],['../group__tmempool.html#ga7d57d178dbc5f510e139a303ff82f950',1,'tMempool_init(tMempool *const mp, char *memory, size_t size, LEAF *const leaf):&#160;leaf-mempool.c']]],
+  ['tmempool_5finittopool_504',['tMempool_initToPool',['../group__tmempool.html#ga74e9d1987d7e4f680dfc091c96ffbcce',1,'tMempool_initToPool(tMempool *const mp, char *memory, size_t size, tMempool *const mem):&#160;leaf-mempool.c'],['../group__tmempool.html#ga74e9d1987d7e4f680dfc091c96ffbcce',1,'tMempool_initToPool(tMempool *const mp, char *memory, size_t size, tMempool *const mem):&#160;leaf-mempool.c']]],
+  ['tneuron_505',['tNeuron',['../group__tneuron.html',1,'']]],
+  ['tneuron_5ffree_506',['tNeuron_free',['../group__tneuron.html#ga8e7767ba34797b6e41cd47fee21a674b',1,'tNeuron_free(tNeuron *const neuron):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga8e7767ba34797b6e41cd47fee21a674b',1,'tNeuron_free(tNeuron *const nr):&#160;leaf-oscillators.c']]],
+  ['tneuron_5finit_507',['tNeuron_init',['../group__tneuron.html#gaaf7fb0a50cde5d02085bae982f355d98',1,'tNeuron_init(tNeuron *const neuron, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tneuron.html#gaaf7fb0a50cde5d02085bae982f355d98',1,'tNeuron_init(tNeuron *const nr, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tneuron_5finittopool_508',['tNeuron_initToPool',['../group__tneuron.html#ga64ec0be41011ffc7fdea5c03359a032c',1,'tNeuron_initToPool(tNeuron *const neuron, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga64ec0be41011ffc7fdea5c03359a032c',1,'tNeuron_initToPool(tNeuron *const nr, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['tneuron_5freset_509',['tNeuron_reset',['../group__tneuron.html#ga3e37f3a7de15a04e697f52cb72a5b094',1,'tNeuron_reset(tNeuron *const neuron):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga3e37f3a7de15a04e697f52cb72a5b094',1,'tNeuron_reset(tNeuron *const nr):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetc_510',['tNeuron_setC',['../group__tneuron.html#gad67b6b0f22c03de1995e07bbf422c111',1,'tNeuron_setC(tNeuron *const neuron, float C):&#160;leaf-oscillators.c'],['../group__tneuron.html#gad67b6b0f22c03de1995e07bbf422c111',1,'tNeuron_setC(tNeuron *const nr, float C):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetcurrent_511',['tNeuron_setCurrent',['../group__tneuron.html#gad683dcc57adbc4e94baedae51005f5a9',1,'tNeuron_setCurrent(tNeuron *const neuron, float current):&#160;leaf-oscillators.c'],['../group__tneuron.html#gad683dcc57adbc4e94baedae51005f5a9',1,'tNeuron_setCurrent(tNeuron *const nr, float current):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetk_512',['tNeuron_setK',['../group__tneuron.html#ga933040791b44ff8d7ada7aa825c48935',1,'tNeuron_setK(tNeuron *const neuron, float K):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga933040791b44ff8d7ada7aa825c48935',1,'tNeuron_setK(tNeuron *const nr, float K):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetl_513',['tNeuron_setL',['../group__tneuron.html#ga0813977adaef8fa375c5b0f5e59908b6',1,'tNeuron_setL(tNeuron *const neuron, float L):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga0813977adaef8fa375c5b0f5e59908b6',1,'tNeuron_setL(tNeuron *const nr, float L):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetmode_514',['tNeuron_setMode',['../group__tneuron.html#gad69adcd45e4dabc947fabbc9baf7d849',1,'tNeuron_setMode(tNeuron *const neuron, NeuronMode mode):&#160;leaf-oscillators.c'],['../group__tneuron.html#gad69adcd45e4dabc947fabbc9baf7d849',1,'tNeuron_setMode(tNeuron *const nr, NeuronMode mode):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetn_515',['tNeuron_setN',['../group__tneuron.html#ga1969098711805e2b8a68bc115bb113d5',1,'tNeuron_setN(tNeuron *const neuron, float N):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga1969098711805e2b8a68bc115bb113d5',1,'tNeuron_setN(tNeuron *const nr, float N):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsettimestep_516',['tNeuron_setTimeStep',['../group__tneuron.html#ga92c05fe0216beaf2a430bf45898c46d5',1,'tNeuron_setTimeStep(tNeuron *const neuron, float timestep):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga92c05fe0216beaf2a430bf45898c46d5',1,'tNeuron_setTimeStep(tNeuron *const nr, float timeStep):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetv1_517',['tNeuron_setV1',['../group__tneuron.html#ga0f4241ab21570d8accef6cdb468f24c1',1,'tNeuron_setV1(tNeuron *const neuron, float V1):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga0f4241ab21570d8accef6cdb468f24c1',1,'tNeuron_setV1(tNeuron *const nr, float V1):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetv2_518',['tNeuron_setV2',['../group__tneuron.html#ga7bc12acf05b0763e80945808cf76102d',1,'tNeuron_setV2(tNeuron *const neuron, float V2):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga7bc12acf05b0763e80945808cf76102d',1,'tNeuron_setV2(tNeuron *const nr, float V2):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetv3_519',['tNeuron_setV3',['../group__tneuron.html#ga49e7f07a28b9e12d1fd9ed9dda6fd88d',1,'tNeuron_setV3(tNeuron *const neuron, float V3):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga49e7f07a28b9e12d1fd9ed9dda6fd88d',1,'tNeuron_setV3(tNeuron *const nr, float V3):&#160;leaf-oscillators.c']]],
+  ['tneuron_5ftick_520',['tNeuron_tick',['../group__tneuron.html#gacbbb031eee9c36e21e24e54b43290bc0',1,'tNeuron_tick(tNeuron *const neuron):&#160;leaf-oscillators.c'],['../group__tneuron.html#gacbbb031eee9c36e21e24e54b43290bc0',1,'tNeuron_tick(tNeuron *const nr):&#160;leaf-oscillators.c']]],
+  ['tnoise_521',['tNoise',['../group__tnoise.html',1,'']]],
+  ['tnoise_5ffree_522',['tNoise_free',['../group__tnoise.html#gab51a77f9ab3888d706ed0fb30cdf217d',1,'tNoise_free(tNoise *const noise):&#160;leaf-oscillators.c'],['../group__tnoise.html#gab51a77f9ab3888d706ed0fb30cdf217d',1,'tNoise_free(tNoise *const ns):&#160;leaf-oscillators.c']]],
+  ['tnoise_5finit_523',['tNoise_init',['../group__tnoise.html#ga4e30b8b212200e17e73b0fb96293c386',1,'tNoise_init(tNoise *const noise, NoiseType type, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tnoise.html#ga4e30b8b212200e17e73b0fb96293c386',1,'tNoise_init(tNoise *const ns, NoiseType type, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tnoise_5finittopool_524',['tNoise_initToPool',['../group__tnoise.html#ga6eec0a5fbc79f448a89258d9b956dfa4',1,'tNoise_initToPool(tNoise *const noise, NoiseType type, tMempool *const):&#160;leaf-oscillators.c'],['../group__tnoise.html#ga6eec0a5fbc79f448a89258d9b956dfa4',1,'tNoise_initToPool(tNoise *const ns, NoiseType type, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['tnoise_5ftick_525',['tNoise_tick',['../group__tnoise.html#ga867c2ace286c8fdd886f7f9357821330',1,'tNoise_tick(tNoise *const noise):&#160;leaf-oscillators.c'],['../group__tnoise.html#ga867c2ace286c8fdd886f7f9357821330',1,'tNoise_tick(tNoise *const ns):&#160;leaf-oscillators.c']]],
+  ['tnreverb_526',['tNReverb',['../group__tnreverb.html',1,'']]],
+  ['tnreverb_5fclear_527',['tNReverb_clear',['../group__tnreverb.html#gaa349525bb82ec4c02de42d9571cc4bb3',1,'tNReverb_clear(tNReverb *const):&#160;leaf-reverb.c'],['../group__tnreverb.html#gaa349525bb82ec4c02de42d9571cc4bb3',1,'tNReverb_clear(tNReverb *const rev):&#160;leaf-reverb.c']]],
+  ['tnreverb_5ffree_528',['tNReverb_free',['../group__tnreverb.html#ga5fd99fec8124a8874fd3ac460a24f670',1,'tNReverb_free(tNReverb *const):&#160;leaf-reverb.c'],['../group__tnreverb.html#ga5fd99fec8124a8874fd3ac460a24f670',1,'tNReverb_free(tNReverb *const rev):&#160;leaf-reverb.c']]],
+  ['tnreverb_5finit_529',['tNReverb_init',['../group__tnreverb.html#ga3f5f7bc51b7243b388b9efce99c4d409',1,'tNReverb_init(tNReverb *const, float t60, LEAF *const leaf):&#160;leaf-reverb.c'],['../group__tnreverb.html#ga3f5f7bc51b7243b388b9efce99c4d409',1,'tNReverb_init(tNReverb *const rev, float t60, LEAF *const leaf):&#160;leaf-reverb.c']]],
+  ['tnreverb_5finittopool_530',['tNReverb_initToPool',['../group__tnreverb.html#ga7706f638cebfe55b14524e4a79889046',1,'tNReverb_initToPool(tNReverb *const, float t60, tMempool *const):&#160;leaf-reverb.c'],['../group__tnreverb.html#ga7706f638cebfe55b14524e4a79889046',1,'tNReverb_initToPool(tNReverb *const rev, float t60, tMempool *const mp):&#160;leaf-reverb.c']]],
+  ['tnreverb_5fsetmix_531',['tNReverb_setMix',['../group__tnreverb.html#gab915282eb337ebbf4ced8e20827d082b',1,'tNReverb_setMix(tNReverb *const, float mix):&#160;leaf-reverb.c'],['../group__tnreverb.html#gab915282eb337ebbf4ced8e20827d082b',1,'tNReverb_setMix(tNReverb *const rev, float mix):&#160;leaf-reverb.c']]],
+  ['tnreverb_5fsett60_532',['tNReverb_setT60',['../group__tnreverb.html#ga7355a61ee1185d19e9265e5e7797cf95',1,'tNReverb_setT60(tNReverb *const, float t60):&#160;leaf-reverb.c'],['../group__tnreverb.html#ga7355a61ee1185d19e9265e5e7797cf95',1,'tNReverb_setT60(tNReverb *const rev, float t60):&#160;leaf-reverb.c']]],
+  ['tnreverb_5ftick_533',['tNReverb_tick',['../group__tnreverb.html#gad13adebe50c0f7af789ee4866720ee41',1,'tNReverb_tick(tNReverb *const, float input):&#160;leaf-reverb.c'],['../group__tnreverb.html#gad13adebe50c0f7af789ee4866720ee41',1,'tNReverb_tick(tNReverb *const rev, float input):&#160;leaf-reverb.c']]],
+  ['tnreverb_5ftickstereo_534',['tNReverb_tickStereo',['../group__tnreverb.html#gac8ae2782156ef22133de8acd9f4fe6fa',1,'tNReverb_tickStereo(tNReverb *const rev, float input, float *output):&#160;leaf-reverb.c'],['../group__tnreverb.html#gac8ae2782156ef22133de8acd9f4fe6fa',1,'tNReverb_tickStereo(tNReverb *const rev, float input, float *output):&#160;leaf-reverb.c']]],
+  ['tonepole_535',['tOnePole',['../group__tonepole.html',1,'']]],
+  ['tonepole_5ffree_536',['tOnePole_free',['../group__tonepole.html#gae62f76fc8009569f5dc89388d0598b62',1,'tOnePole_free(tOnePole *const):&#160;leaf-filters.c'],['../group__tonepole.html#gae62f76fc8009569f5dc89388d0598b62',1,'tOnePole_free(tOnePole *const ft):&#160;leaf-filters.c']]],
+  ['tonepole_5finit_537',['tOnePole_init',['../group__tonepole.html#gabcdda318381d2d2dd314c3ec4399944d',1,'tOnePole_init(tOnePole *const, float thePole, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tonepole.html#gabcdda318381d2d2dd314c3ec4399944d',1,'tOnePole_init(tOnePole *const ft, float freq, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tonepole_5finittopool_538',['tOnePole_initToPool',['../group__tonepole.html#ga08050cc38be920cf41bfdf4fc07fd81b',1,'tOnePole_initToPool(tOnePole *const, float thePole, tMempool *const):&#160;leaf-filters.c'],['../group__tonepole.html#ga08050cc38be920cf41bfdf4fc07fd81b',1,'tOnePole_initToPool(tOnePole *const ft, float freq, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tonepole_5fseta1_539',['tOnePole_setA1',['../group__tonepole.html#ga255cd0e1e27c6dfced99c68ac352e57f',1,'tOnePole_setA1(tOnePole *const, float a1):&#160;leaf-filters.c'],['../group__tonepole.html#ga255cd0e1e27c6dfced99c68ac352e57f',1,'tOnePole_setA1(tOnePole *const ft, float a1):&#160;leaf-filters.c']]],
+  ['tonepole_5fsetb0_540',['tOnePole_setB0',['../group__tonepole.html#gac83d1fd7167c1bd78cf4b44fa2d18562',1,'tOnePole_setB0(tOnePole *const, float b0):&#160;leaf-filters.c'],['../group__tonepole.html#gac83d1fd7167c1bd78cf4b44fa2d18562',1,'tOnePole_setB0(tOnePole *const ft, float b0):&#160;leaf-filters.c']]],
+  ['tonepole_5fsetcoefficients_541',['tOnePole_setCoefficients',['../group__tonepole.html#gad7a7e9061389b83a4efed8e9d30f9047',1,'tOnePole_setCoefficients(tOnePole *const, float b0, float a1):&#160;leaf-filters.c'],['../group__tonepole.html#gad7a7e9061389b83a4efed8e9d30f9047',1,'tOnePole_setCoefficients(tOnePole *const ft, float b0, float a1):&#160;leaf-filters.c']]],
+  ['tonepole_5fsetfreq_542',['tOnePole_setFreq',['../group__tonepole.html#gaa2fe72283746cd156766fd07f6604430',1,'tOnePole_setFreq(tOnePole *const, float freq):&#160;leaf-filters.c'],['../group__tonepole.html#gaa2fe72283746cd156766fd07f6604430',1,'tOnePole_setFreq(tOnePole *const ft, float freq):&#160;leaf-filters.c']]],
+  ['tonepole_5fsetgain_543',['tOnePole_setGain',['../group__tonepole.html#gab5abc7f67dc57d2475e3880c864c3717',1,'tOnePole_setGain(tOnePole *const, float gain):&#160;leaf-filters.c'],['../group__tonepole.html#gab5abc7f67dc57d2475e3880c864c3717',1,'tOnePole_setGain(tOnePole *const ft, float gain):&#160;leaf-filters.c']]],
+  ['tonepole_5fsetpole_544',['tOnePole_setPole',['../group__tonepole.html#gac20aca828debbc4fae6b62ea6e085356',1,'tOnePole_setPole(tOnePole *const, float thePole):&#160;leaf-filters.c'],['../group__tonepole.html#gac20aca828debbc4fae6b62ea6e085356',1,'tOnePole_setPole(tOnePole *const ft, float thePole):&#160;leaf-filters.c']]],
+  ['tonepole_5ftick_545',['tOnePole_tick',['../group__tonepole.html#gaf0f1f40fccb864cdf7310fffbdcfcf5f',1,'tOnePole_tick(tOnePole *const, float input):&#160;leaf-filters.c'],['../group__tonepole.html#gaf0f1f40fccb864cdf7310fffbdcfcf5f',1,'tOnePole_tick(tOnePole *const ft, float input):&#160;leaf-filters.c']]],
+  ['tonezero_546',['tOneZero',['../group__tonezero.html',1,'']]],
+  ['tonezero_5ffree_547',['tOneZero_free',['../group__tonezero.html#ga06bbbfdb22d7b291f73489981c311bc0',1,'tOneZero_free(tOneZero *const):&#160;leaf-filters.c'],['../group__tonezero.html#ga06bbbfdb22d7b291f73489981c311bc0',1,'tOneZero_free(tOneZero *const ft):&#160;leaf-filters.c']]],
+  ['tonezero_5fgetphasedelay_548',['tOneZero_getPhaseDelay',['../group__tonezero.html#gae93bd56798868c1022fa025c62126bfe',1,'tOneZero_getPhaseDelay(tOneZero *f, float frequency):&#160;leaf-filters.c'],['../group__tonezero.html#gae93bd56798868c1022fa025c62126bfe',1,'tOneZero_getPhaseDelay(tOneZero *const ft, float frequency):&#160;leaf-filters.c']]],
+  ['tonezero_5finit_549',['tOneZero_init',['../group__tonezero.html#gabbd3ddafbab517a2c66e91d8e68f71f7',1,'tOneZero_init(tOneZero *const, float theZero, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tonezero.html#gabbd3ddafbab517a2c66e91d8e68f71f7',1,'tOneZero_init(tOneZero *const ft, float theZero, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tonezero_5finittopool_550',['tOneZero_initToPool',['../group__tonezero.html#ga8148897bb39a76c5368f740d532c774b',1,'tOneZero_initToPool(tOneZero *const, float theZero, tMempool *const):&#160;leaf-filters.c'],['../group__tonezero.html#ga8148897bb39a76c5368f740d532c774b',1,'tOneZero_initToPool(tOneZero *const ft, float theZero, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tonezero_5fsetb0_551',['tOneZero_setB0',['../group__tonezero.html#ga98cda6f603769e6ad842f869c751b5b8',1,'tOneZero_setB0(tOneZero *const, float b0):&#160;leaf-filters.c'],['../group__tonezero.html#ga98cda6f603769e6ad842f869c751b5b8',1,'tOneZero_setB0(tOneZero *const ft, float b0):&#160;leaf-filters.c']]],
+  ['tonezero_5fsetb1_552',['tOneZero_setB1',['../group__tonezero.html#ga02db3ca6e4e8d321a4730e4ea2b58f6c',1,'tOneZero_setB1(tOneZero *const, float b1):&#160;leaf-filters.c'],['../group__tonezero.html#ga02db3ca6e4e8d321a4730e4ea2b58f6c',1,'tOneZero_setB1(tOneZero *const ft, float b1):&#160;leaf-filters.c']]],
+  ['tonezero_5fsetcoefficients_553',['tOneZero_setCoefficients',['../group__tonezero.html#gaf460819e3f35c5759cc1f6707f2bda86',1,'tOneZero_setCoefficients(tOneZero *const, float b0, float b1):&#160;leaf-filters.c'],['../group__tonezero.html#gaf460819e3f35c5759cc1f6707f2bda86',1,'tOneZero_setCoefficients(tOneZero *const ft, float b0, float b1):&#160;leaf-filters.c']]],
+  ['tonezero_5fsetgain_554',['tOneZero_setGain',['../group__tonezero.html#ga6f7ad30df1a802a5db5b8b4f6465c993',1,'tOneZero_setGain(tOneZero *const, float gain):&#160;leaf-filters.c'],['../group__tonezero.html#ga6f7ad30df1a802a5db5b8b4f6465c993',1,'tOneZero_setGain(tOneZero *ft, float gain):&#160;leaf-filters.c']]],
+  ['tonezero_5fsetzero_555',['tOneZero_setZero',['../group__tonezero.html#gaf0827232a84f1d39e418459d9d53c977',1,'tOneZero_setZero(tOneZero *const, float theZero):&#160;leaf-filters.c'],['../group__tonezero.html#gaf0827232a84f1d39e418459d9d53c977',1,'tOneZero_setZero(tOneZero *const ft, float theZero):&#160;leaf-filters.c']]],
+  ['tonezero_5ftick_556',['tOneZero_tick',['../group__tonezero.html#ga5d49fd94313454e219b43e1fa3175d12',1,'tOneZero_tick(tOneZero *const, float input):&#160;leaf-filters.c'],['../group__tonezero.html#ga5d49fd94313454e219b43e1fa3175d12',1,'tOneZero_tick(tOneZero *const ft, float input):&#160;leaf-filters.c']]],
+  ['toversampler_557',['tOversampler',['../group__toversampler.html',1,'']]],
+  ['toversampler_5fdownsample_558',['tOversampler_downsample',['../group__toversampler.html#ga36a0bca206cb86ac529495bf0f1e487d',1,'tOversampler_downsample(tOversampler *const os, float *input):&#160;leaf-distortion.c'],['../group__toversampler.html#ga36a0bca206cb86ac529495bf0f1e487d',1,'tOversampler_downsample(tOversampler *const osr, float *input):&#160;leaf-distortion.c']]],
+  ['toversampler_5ffree_559',['tOversampler_free',['../group__toversampler.html#ga809c183c7443aa77ae6233e8c5276218',1,'tOversampler_free(tOversampler *const):&#160;leaf-distortion.c'],['../group__toversampler.html#ga809c183c7443aa77ae6233e8c5276218',1,'tOversampler_free(tOversampler *const osr):&#160;leaf-distortion.c']]],
+  ['toversampler_5fgetlatency_560',['tOversampler_getLatency',['../group__toversampler.html#gaa511cdb16fe967cf40000127319d9f0c',1,'tOversampler_getLatency(tOversampler *const os):&#160;leaf-distortion.c'],['../group__toversampler.html#gaa511cdb16fe967cf40000127319d9f0c',1,'tOversampler_getLatency(tOversampler *const osr):&#160;leaf-distortion.c']]],
+  ['toversampler_5finit_561',['tOversampler_init',['../group__toversampler.html#ga6c89c7875f0f5679ea59430d9a6c61e8',1,'tOversampler_init(tOversampler *const, int order, int extraQuality, LEAF *const leaf):&#160;leaf-distortion.c'],['../group__toversampler.html#ga6c89c7875f0f5679ea59430d9a6c61e8',1,'tOversampler_init(tOversampler *const osr, int ratio, int extraQuality, LEAF *const leaf):&#160;leaf-distortion.c']]],
+  ['toversampler_5finittopool_562',['tOversampler_initToPool',['../group__toversampler.html#ga65ae3bd40ead130ffc4a81d47bdc61fe',1,'tOversampler_initToPool(tOversampler *const, int order, int extraQuality, tMempool *const):&#160;leaf-distortion.c'],['../group__toversampler.html#ga65ae3bd40ead130ffc4a81d47bdc61fe',1,'tOversampler_initToPool(tOversampler *const osr, int ratio, int extraQuality, tMempool *const mp):&#160;leaf-distortion.c']]],
+  ['toversampler_5ftick_563',['tOversampler_tick',['../group__toversampler.html#ga8be1bb7f1f763de87c6e02f02b5d977f',1,'tOversampler_tick(tOversampler *const, float input, float *oversample, float(*effectTick)(float)):&#160;leaf-distortion.c'],['../group__toversampler.html#ga8be1bb7f1f763de87c6e02f02b5d977f',1,'tOversampler_tick(tOversampler *const osr, float input, float *oversample, float(*effectTick)(float)):&#160;leaf-distortion.c']]],
+  ['toversampler_5fupsample_564',['tOversampler_upsample',['../group__toversampler.html#ga274c2b3d123628c2ecbb3e77d0f9bd3b',1,'tOversampler_upsample(tOversampler *const, float input, float *output):&#160;leaf-distortion.c'],['../group__toversampler.html#ga274c2b3d123628c2ecbb3e77d0f9bd3b',1,'tOversampler_upsample(tOversampler *const osr, float input, float *output):&#160;leaf-distortion.c']]],
+  ['tperioddetection_565',['tPeriodDetection',['../group__tperioddetection.html',1,'']]],
+  ['tperioddetection_5ffree_566',['tPeriodDetection_free',['../group__tperioddetection.html#ga94c9cff1d6cb0f0d6a70fdeb8764cdb0',1,'tPeriodDetection_free(tPeriodDetection *const):&#160;leaf-analysis.c'],['../group__tperioddetection.html#ga94c9cff1d6cb0f0d6a70fdeb8764cdb0',1,'tPeriodDetection_free(tPeriodDetection *const pd):&#160;leaf-analysis.c']]],
+  ['tperioddetection_5fgetperiod_567',['tPeriodDetection_getPeriod',['../group__tperioddetection.html#ga04f0fa73e75e8fc128243515b039c474',1,'tPeriodDetection_getPeriod(tPeriodDetection *const):&#160;leaf-analysis.c'],['../group__tperioddetection.html#ga04f0fa73e75e8fc128243515b039c474',1,'tPeriodDetection_getPeriod(tPeriodDetection *pd):&#160;leaf-analysis.c']]],
+  ['tperioddetection_5fsetalpha_568',['tPeriodDetection_setAlpha',['../group__tperioddetection.html#ga95602fa326fda0ab685a626508166d15',1,'tPeriodDetection_setAlpha(tPeriodDetection *const, float alpha):&#160;leaf-analysis.c'],['../group__tperioddetection.html#ga95602fa326fda0ab685a626508166d15',1,'tPeriodDetection_setAlpha(tPeriodDetection *pd, float alpha):&#160;leaf-analysis.c']]],
+  ['tperioddetection_5fsetfidelitythreshold_569',['tPeriodDetection_setFidelityThreshold',['../group__tperioddetection.html#ga2249345fb1cb419173b35ef258cf4248',1,'tPeriodDetection_setFidelityThreshold(tPeriodDetection *const, float threshold):&#160;leaf-analysis.c'],['../group__tperioddetection.html#ga2249345fb1cb419173b35ef258cf4248',1,'tPeriodDetection_setFidelityThreshold(tPeriodDetection *pd, float threshold):&#160;leaf-analysis.c']]],
+  ['tperioddetection_5fsethopsize_570',['tPeriodDetection_setHopSize',['../group__tperioddetection.html#ga207a7ec884eebc58c9cd9f17518d5a1b',1,'tPeriodDetection_setHopSize(tPeriodDetection *const, int hs):&#160;leaf-analysis.c'],['../group__tperioddetection.html#ga207a7ec884eebc58c9cd9f17518d5a1b',1,'tPeriodDetection_setHopSize(tPeriodDetection *pd, int hs):&#160;leaf-analysis.c']]],
+  ['tperioddetection_5fsettolerance_571',['tPeriodDetection_setTolerance',['../group__tperioddetection.html#ga49b5e95b84c6e101abac2ab7ec0cdebd',1,'tPeriodDetection_setTolerance(tPeriodDetection *const, float tolerance):&#160;leaf-analysis.c'],['../group__tperioddetection.html#ga49b5e95b84c6e101abac2ab7ec0cdebd',1,'tPeriodDetection_setTolerance(tPeriodDetection *pd, float tolerance):&#160;leaf-analysis.c']]],
+  ['tperioddetection_5fsetwindowsize_572',['tPeriodDetection_setWindowSize',['../group__tperioddetection.html#ga9a3ed4fe9806b0ee691b56090cef4339',1,'tPeriodDetection_setWindowSize(tPeriodDetection *const, int ws):&#160;leaf-analysis.c'],['../group__tperioddetection.html#ga9a3ed4fe9806b0ee691b56090cef4339',1,'tPeriodDetection_setWindowSize(tPeriodDetection *pd, int ws):&#160;leaf-analysis.c']]],
+  ['tperioddetection_5ftick_573',['tPeriodDetection_tick',['../group__tperioddetection.html#ga18cf97615547a615aec4b183da82e8ee',1,'tPeriodDetection_tick(tPeriodDetection *const, float sample):&#160;leaf-analysis.c'],['../group__tperioddetection.html#ga18cf97615547a615aec4b183da82e8ee',1,'tPeriodDetection_tick(tPeriodDetection *pd, float sample):&#160;leaf-analysis.c']]],
+  ['tperioddetector_574',['tPeriodDetector',['../group__tperioddetector.html',1,'']]],
+  ['tperioddetector_5ffree_575',['tPeriodDetector_free',['../group__tperioddetector.html#ga55e2ad80c68f2fbf0cafceee206abf3f',1,'tPeriodDetector_free(tPeriodDetector *const detector):&#160;leaf-analysis.c'],['../group__tperioddetector.html#ga55e2ad80c68f2fbf0cafceee206abf3f',1,'tPeriodDetector_free(tPeriodDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5fgetperiod_576',['tPeriodDetector_getPeriod',['../group__tperioddetector.html#ga025e1bc096ca88fc2f6e493513f0d6fb',1,'tPeriodDetector_getPeriod(tPeriodDetector *const detector):&#160;leaf-analysis.c'],['../group__tperioddetector.html#ga025e1bc096ca88fc2f6e493513f0d6fb',1,'tPeriodDetector_getPeriod(tPeriodDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5fgetperiodicity_577',['tPeriodDetector_getPeriodicity',['../group__tperioddetector.html#ga9e836c21a0dcabe9f3438bc56e671f39',1,'tPeriodDetector_getPeriodicity(tPeriodDetector *const detector):&#160;leaf-analysis.c'],['../group__tperioddetector.html#ga9e836c21a0dcabe9f3438bc56e671f39',1,'tPeriodDetector_getPeriodicity(tPeriodDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5fharmonic_578',['tPeriodDetector_harmonic',['../group__tperioddetector.html#ga4a66a46a4a6bea562bae63640e6855a5',1,'tPeriodDetector_harmonic(tPeriodDetector *const detector, int harmonicIndex):&#160;leaf-analysis.c'],['../group__tperioddetector.html#ga4a66a46a4a6bea562bae63640e6855a5',1,'tPeriodDetector_harmonic(tPeriodDetector *const detector, int harmonicIndex):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5finit_579',['tPeriodDetector_init',['../group__tperioddetector.html#gaa0947f407eba0d205dfdb3f5221e8a68',1,'tPeriodDetector_init(tPeriodDetector *const detector, float lowestFreq, float highestFreq, float hysteresis, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tperioddetector.html#gaa0947f407eba0d205dfdb3f5221e8a68',1,'tPeriodDetector_init(tPeriodDetector *const detector, float lowestFreq, float highestFreq, float hysteresis, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5finittopool_580',['tPeriodDetector_initToPool',['../group__tperioddetector.html#ga03431f353481718a4e573f4df4a0161f',1,'tPeriodDetector_initToPool(tPeriodDetector *const detector, float lowestFreq, float highestFreq, float hysteresis, tMempool *const mempool):&#160;leaf-analysis.c'],['../group__tperioddetector.html#ga03431f353481718a4e573f4df4a0161f',1,'tPeriodDetector_initToPool(tPeriodDetector *const detector, float lowestFreq, float highestFreq, float hysteresis, tMempool *const mempool):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5fisready_581',['tPeriodDetector_isReady',['../group__tperioddetector.html#ga3d58e36fafa3e5b5102175e2c9062010',1,'tPeriodDetector_isReady(tPeriodDetector *const detector):&#160;leaf-analysis.c'],['../group__tperioddetector.html#ga3d58e36fafa3e5b5102175e2c9062010',1,'tPeriodDetector_isReady(tPeriodDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5fisreset_582',['tPeriodDetector_isReset',['../group__tperioddetector.html#gad7d111b4c8dc6e7428ff2facdf90092a',1,'tPeriodDetector_isReset(tPeriodDetector *const detector):&#160;leaf-analysis.c'],['../group__tperioddetector.html#gad7d111b4c8dc6e7428ff2facdf90092a',1,'tPeriodDetector_isReset(tPeriodDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5fpredictperiod_583',['tPeriodDetector_predictPeriod',['../group__tperioddetector.html#ga6bea587938466ba988a6e716446975ed',1,'tPeriodDetector_predictPeriod(tPeriodDetector *const detector):&#160;leaf-analysis.c'],['../group__tperioddetector.html#ga6bea587938466ba988a6e716446975ed',1,'tPeriodDetector_predictPeriod(tPeriodDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5fsethysteresis_584',['tPeriodDetector_setHysteresis',['../group__tperioddetector.html#ga3157c7b7e210eafb0286aef6f1843f94',1,'tPeriodDetector_setHysteresis(tPeriodDetector *const detector, float hysteresis):&#160;leaf-analysis.c'],['../group__tperioddetector.html#ga3157c7b7e210eafb0286aef6f1843f94',1,'tPeriodDetector_setHysteresis(tPeriodDetector *const detector, float hysteresis):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5ftick_585',['tPeriodDetector_tick',['../group__tperioddetector.html#gaed4bf4a51580ba6209dfe5d35a235644',1,'tPeriodDetector_tick(tPeriodDetector *const detector, float sample):&#160;leaf-analysis.c'],['../group__tperioddetector.html#gaed4bf4a51580ba6209dfe5d35a235644',1,'tPeriodDetector_tick(tPeriodDetector *const detector, float s):&#160;leaf-analysis.c']]],
+  ['tphasor_586',['tPhasor',['../group__tphasor.html',1,'']]],
+  ['tphasor_5ffree_587',['tPhasor_free',['../group__tphasor.html#gae86aae9fa656c303dc02fabacd4bf9a9',1,'tPhasor_free(tPhasor *const osc):&#160;leaf-oscillators.c'],['../group__tphasor.html#gae86aae9fa656c303dc02fabacd4bf9a9',1,'tPhasor_free(tPhasor *const ph):&#160;leaf-oscillators.c']]],
+  ['tphasor_5finit_588',['tPhasor_init',['../group__tphasor.html#gaef54a192792ded6d1e53a0839b55bb4a',1,'tPhasor_init(tPhasor *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tphasor.html#gaef54a192792ded6d1e53a0839b55bb4a',1,'tPhasor_init(tPhasor *const ph, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tphasor_5finittopool_589',['tPhasor_initToPool',['../group__tphasor.html#ga7b98ada7d63395e6796a9ddeb1dd69d2',1,'tPhasor_initToPool(tPhasor *const osc, tMempool *const):&#160;leaf-oscillators.c'],['../group__tphasor.html#ga7b98ada7d63395e6796a9ddeb1dd69d2',1,'tPhasor_initToPool(tPhasor *const ph, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['tphasor_5fsetfreq_590',['tPhasor_setFreq',['../group__tphasor.html#gab19f35f26a5de1353623ed2ecd8c92b7',1,'tPhasor_setFreq(tPhasor *const osc, float freq):&#160;leaf-oscillators.c'],['../group__tphasor.html#gab19f35f26a5de1353623ed2ecd8c92b7',1,'tPhasor_setFreq(tPhasor *const ph, float freq):&#160;leaf-oscillators.c']]],
+  ['tphasor_5ftick_591',['tPhasor_tick',['../group__tphasor.html#ga9a1e7b8a8f9bbcb74d52b95cf0ec1d6e',1,'tPhasor_tick(tPhasor *const osc):&#160;leaf-oscillators.c'],['../group__tphasor.html#ga9a1e7b8a8f9bbcb74d52b95cf0ec1d6e',1,'tPhasor_tick(tPhasor *const ph):&#160;leaf-oscillators.c']]],
+  ['tpitchdetector_592',['tPitchDetector',['../group__tpitchdetector.html',1,'']]],
+  ['tpitchdetector_5ffree_593',['tPitchDetector_free',['../group__tpitchdetector.html#ga21a8caf85569fa4366e83aa776831273',1,'tPitchDetector_free(tPitchDetector *const detector):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#ga21a8caf85569fa4366e83aa776831273',1,'tPitchDetector_free(tPitchDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tpitchdetector_5fgetfrequency_594',['tPitchDetector_getFrequency',['../group__tpitchdetector.html#ga5b4f011cdb1812ab29022e4851e81c7e',1,'tPitchDetector_getFrequency(tPitchDetector *const detector):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#ga5b4f011cdb1812ab29022e4851e81c7e',1,'tPitchDetector_getFrequency(tPitchDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tpitchdetector_5fgetperiodicity_595',['tPitchDetector_getPeriodicity',['../group__tpitchdetector.html#gad99b1eb3569ac87a54a31ddc7ec78eea',1,'tPitchDetector_getPeriodicity(tPitchDetector *const detector):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#gad99b1eb3569ac87a54a31ddc7ec78eea',1,'tPitchDetector_getPeriodicity(tPitchDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tpitchdetector_5fharmonic_596',['tPitchDetector_harmonic',['../group__tpitchdetector.html#gae830c20dc77369d3055f23cd0fc51435',1,'tPitchDetector_harmonic(tPitchDetector *const detector, int harmonicIndex):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#gae830c20dc77369d3055f23cd0fc51435',1,'tPitchDetector_harmonic(tPitchDetector *const detector, int harmonicIndex):&#160;leaf-analysis.c']]],
+  ['tpitchdetector_5finit_597',['tPitchDetector_init',['../group__tpitchdetector.html#ga99e55d649e58523aa706c711082585f6',1,'tPitchDetector_init(tPitchDetector *const detector, float lowestFreq, float highestFreq, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#ga99e55d649e58523aa706c711082585f6',1,'tPitchDetector_init(tPitchDetector *const detector, float lowestFreq, float highestFreq, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tpitchdetector_5finittopool_598',['tPitchDetector_initToPool',['../group__tpitchdetector.html#gaaa325f08c7c80ecace14fcd7f934d211',1,'tPitchDetector_initToPool(tPitchDetector *const detector, float lowestFreq, float highestFreq, tMempool *const mempool):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#gaaa325f08c7c80ecace14fcd7f934d211',1,'tPitchDetector_initToPool(tPitchDetector *const detector, float lowestFreq, float highestFreq, tMempool *const mempool):&#160;leaf-analysis.c']]],
+  ['tpitchdetector_5fpredictfrequency_599',['tPitchDetector_predictFrequency',['../group__tpitchdetector.html#gab29d82d5391480c9310b9c5074576966',1,'tPitchDetector_predictFrequency(tPitchDetector *const detector):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#gab29d82d5391480c9310b9c5074576966',1,'tPitchDetector_predictFrequency(tPitchDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tpitchdetector_5fsethysteresis_600',['tPitchDetector_setHysteresis',['../group__tpitchdetector.html#ga65ead0c2f0f3f30b2e64f5a6aa50d6f9',1,'tPitchDetector_setHysteresis(tPitchDetector *const detector, float hysteresis):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#ga65ead0c2f0f3f30b2e64f5a6aa50d6f9',1,'tPitchDetector_setHysteresis(tPitchDetector *const detector, float hysteresis):&#160;leaf-analysis.c']]],
+  ['tpitchdetector_5ftick_601',['tPitchDetector_tick',['../group__tpitchdetector.html#ga7ff9d62bb716a57fce8ffeb5558c4890',1,'tPitchDetector_tick(tPitchDetector *const detector, float sample):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#ga7ff9d62bb716a57fce8ffeb5558c4890',1,'tPitchDetector_tick(tPitchDetector *const detector, float s):&#160;leaf-analysis.c']]],
+  ['tpitchshift_602',['tPitchShift',['../group__tpitchshift.html',1,'']]],
+  ['tpitchshift_5ffree_603',['tPitchShift_free',['../group__tpitchshift.html#gaa11d2bf41d69ed89fe86f5840fe1b612',1,'tPitchShift_free(tPitchShift *const):&#160;leaf-effects.c'],['../group__tpitchshift.html#gaa11d2bf41d69ed89fe86f5840fe1b612',1,'tPitchShift_free(tPitchShift *const psr):&#160;leaf-effects.c']]],
+  ['tpluck_604',['tPluck',['../group__tpluck.html',1,'']]],
+  ['tpluck_5fcontrolchange_605',['tPluck_controlChange',['../group__tpluck.html#ga371e8ab225a043b3415979766647d155',1,'tPluck_controlChange(tPluck *const, int number, float value):&#160;leaf-physical.c'],['../group__tpluck.html#ga371e8ab225a043b3415979766647d155',1,'tPluck_controlChange(tPluck *const pl, int number, float value):&#160;leaf-physical.c']]],
+  ['tpluck_5ffree_606',['tPluck_free',['../group__tpluck.html#gab05fa8211c49e8e1301882ba0dfb4933',1,'tPluck_free(tPluck *const):&#160;leaf-physical.c'],['../group__tpluck.html#gab05fa8211c49e8e1301882ba0dfb4933',1,'tPluck_free(tPluck *const pl):&#160;leaf-physical.c']]],
+  ['tpluck_5fgetlastout_607',['tPluck_getLastOut',['../group__tpluck.html#ga8a2365d67f4b17a4f578fbb14f280e74',1,'tPluck_getLastOut(tPluck *const):&#160;leaf-physical.c'],['../group__tpluck.html#ga8a2365d67f4b17a4f578fbb14f280e74',1,'tPluck_getLastOut(tPluck *const pl):&#160;leaf-physical.c']]],
+  ['tpluck_5finit_608',['tPluck_init',['../group__tpluck.html#gac7b5e386d09e10b097545b7f9ee3d161',1,'tPluck_init(tPluck *const, float lowestFrequency, LEAF *const leaf):&#160;leaf-physical.c'],['../group__tpluck.html#gac7b5e386d09e10b097545b7f9ee3d161',1,'tPluck_init(tPluck *const pl, float lowestFrequency, LEAF *const leaf):&#160;leaf-physical.c']]],
+  ['tpluck_5finittopool_609',['tPluck_initToPool',['../group__tpluck.html#ga6fce342b82d04d5b30ebeadc0ac2102d',1,'tPluck_initToPool(tPluck *const, float lowestFrequency, tMempool *const):&#160;leaf-physical.c'],['../group__tpluck.html#ga6fce342b82d04d5b30ebeadc0ac2102d',1,'tPluck_initToPool(tPluck *const pl, float lowestFrequency, tMempool *const mp):&#160;leaf-physical.c']]],
+  ['tpluck_5fnoteoff_610',['tPluck_noteOff',['../group__tpluck.html#ga215b593535f5bff5a6887ce905bc7602',1,'tPluck_noteOff(tPluck *const, float amplitude):&#160;leaf-physical.c'],['../group__tpluck.html#ga215b593535f5bff5a6887ce905bc7602',1,'tPluck_noteOff(tPluck *const pl, float amplitude):&#160;leaf-physical.c']]],
+  ['tpluck_5fnoteon_611',['tPluck_noteOn',['../group__tpluck.html#ga4aa769eb18600d5f777a2d33e18fb7cb',1,'tPluck_noteOn(tPluck *const, float frequency, float amplitude):&#160;leaf-physical.c'],['../group__tpluck.html#ga4aa769eb18600d5f777a2d33e18fb7cb',1,'tPluck_noteOn(tPluck *const pl, float frequency, float amplitude):&#160;leaf-physical.c']]],
+  ['tpluck_5fpluck_612',['tPluck_pluck',['../group__tpluck.html#ga4e23f3d5ec42910130c176662e9d7e91',1,'tPluck_pluck(tPluck *const, float amplitude):&#160;leaf-physical.c'],['../group__tpluck.html#ga4e23f3d5ec42910130c176662e9d7e91',1,'tPluck_pluck(tPluck *const pl, float amplitude):&#160;leaf-physical.c']]],
+  ['tpluck_5fsetfrequency_613',['tPluck_setFrequency',['../group__tpluck.html#ga9f20651baa36041ba43836dbe7c1de5b',1,'tPluck_setFrequency(tPluck *const, float frequency):&#160;leaf-physical.c'],['../group__tpluck.html#ga9f20651baa36041ba43836dbe7c1de5b',1,'tPluck_setFrequency(tPluck *const pl, float frequency):&#160;leaf-physical.c']]],
+  ['tpluck_5ftick_614',['tPluck_tick',['../group__tpluck.html#ga5abd143bdbe1ff441491b4a09218e967',1,'tPluck_tick(tPluck *const):&#160;leaf-physical.c'],['../group__tpluck.html#ga5abd143bdbe1ff441491b4a09218e967',1,'tPluck_tick(tPluck *const pl):&#160;leaf-physical.c']]],
+  ['tpolezero_615',['tPoleZero',['../group__tpolezero.html',1,'']]],
+  ['tpolezero_5ffree_616',['tPoleZero_free',['../group__tpolezero.html#gaf66d289f3a48e83eb6d77acedd7cea74',1,'tPoleZero_free(tPoleZero *const):&#160;leaf-filters.c'],['../group__tpolezero.html#gaf66d289f3a48e83eb6d77acedd7cea74',1,'tPoleZero_free(tPoleZero *const pzf):&#160;leaf-filters.c']]],
+  ['tpolezero_5finit_617',['tPoleZero_init',['../group__tpolezero.html#ga6b6829aefeb5180022ae0b7e8d5b9b1c',1,'tPoleZero_init(tPoleZero *const, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tpolezero.html#ga6b6829aefeb5180022ae0b7e8d5b9b1c',1,'tPoleZero_init(tPoleZero *const pzf, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tpolezero_5finittopool_618',['tPoleZero_initToPool',['../group__tpolezero.html#gadb9f2207e2217190013543ce210c5dda',1,'tPoleZero_initToPool(tPoleZero *const, tMempool *const):&#160;leaf-filters.c'],['../group__tpolezero.html#gadb9f2207e2217190013543ce210c5dda',1,'tPoleZero_initToPool(tPoleZero *const pzf, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tpolezero_5fseta1_619',['tPoleZero_setA1',['../group__tpolezero.html#ga118daf1002dcd0d5c24b2d86af9196fb',1,'tPoleZero_setA1(tPoleZero *const, float a1):&#160;leaf-filters.c'],['../group__tpolezero.html#ga118daf1002dcd0d5c24b2d86af9196fb',1,'tPoleZero_setA1(tPoleZero *const pzf, float a1):&#160;leaf-filters.c']]],
+  ['tpolezero_5fsetallpass_620',['tPoleZero_setAllpass',['../group__tpolezero.html#gab978639dd9badc640b1f3a8b6a945b06',1,'tPoleZero_setAllpass(tPoleZero *const, float coeff):&#160;leaf-filters.c'],['../group__tpolezero.html#gab978639dd9badc640b1f3a8b6a945b06',1,'tPoleZero_setAllpass(tPoleZero *const pzf, float coeff):&#160;leaf-filters.c']]],
+  ['tpolezero_5fsetb0_621',['tPoleZero_setB0',['../group__tpolezero.html#ga896a83342ee3ea486f171d872b9809b0',1,'tPoleZero_setB0(tPoleZero *const, float b0):&#160;leaf-filters.c'],['../group__tpolezero.html#ga896a83342ee3ea486f171d872b9809b0',1,'tPoleZero_setB0(tPoleZero *const pzf, float b0):&#160;leaf-filters.c']]],
+  ['tpolezero_5fsetb1_622',['tPoleZero_setB1',['../group__tpolezero.html#ga4c6d29a676d98f4d57e0f8078ab61279',1,'tPoleZero_setB1(tPoleZero *const, float b1):&#160;leaf-filters.c'],['../group__tpolezero.html#ga4c6d29a676d98f4d57e0f8078ab61279',1,'tPoleZero_setB1(tPoleZero *const pzf, float b1):&#160;leaf-filters.c']]],
+  ['tpolezero_5fsetblockzero_623',['tPoleZero_setBlockZero',['../group__tpolezero.html#ga863c1114d2a571d158fc74dd7f1ec06c',1,'tPoleZero_setBlockZero(tPoleZero *const, float thePole):&#160;leaf-filters.c'],['../group__tpolezero.html#ga863c1114d2a571d158fc74dd7f1ec06c',1,'tPoleZero_setBlockZero(tPoleZero *const pzf, float thePole):&#160;leaf-filters.c']]],
+  ['tpolezero_5fsetcoefficients_624',['tPoleZero_setCoefficients',['../group__tpolezero.html#ga9b72bcea9b5912e4ecd62c7ea7d99b86',1,'tPoleZero_setCoefficients(tPoleZero *const, float b0, float b1, float a1):&#160;leaf-filters.c'],['../group__tpolezero.html#ga9b72bcea9b5912e4ecd62c7ea7d99b86',1,'tPoleZero_setCoefficients(tPoleZero *const pzf, float b0, float b1, float a1):&#160;leaf-filters.c']]],
+  ['tpolezero_5fsetgain_625',['tPoleZero_setGain',['../group__tpolezero.html#ga8bdd8dfb8e5c22c7ec820bea559e2fa7',1,'tPoleZero_setGain(tPoleZero *const, float gain):&#160;leaf-filters.c'],['../group__tpolezero.html#ga8bdd8dfb8e5c22c7ec820bea559e2fa7',1,'tPoleZero_setGain(tPoleZero *const pzf, float gain):&#160;leaf-filters.c']]],
+  ['tpolezero_5ftick_626',['tPoleZero_tick',['../group__tpolezero.html#ga4e024338fe577882f52494f525488d32',1,'tPoleZero_tick(tPoleZero *const, float input):&#160;leaf-filters.c'],['../group__tpolezero.html#ga4e024338fe577882f52494f525488d32',1,'tPoleZero_tick(tPoleZero *const pzf, float input):&#160;leaf-filters.c']]],
+  ['tpoly_627',['tPoly',['../group__tpoly.html',1,'']]],
+  ['tpoly_5ffree_628',['tPoly_free',['../group__tpoly.html#ga03c02b27b16f700b55d8536256d310b5',1,'tPoly_free(tPoly *const poly):&#160;leaf-midi.c'],['../group__tpoly.html#ga03c02b27b16f700b55d8536256d310b5',1,'tPoly_free(tPoly *const polyh):&#160;leaf-midi.c']]],
+  ['tpoly_5fgetkey_629',['tPoly_getKey',['../group__tpoly.html#gaec4318990ce680cc96df942fd9bd5473',1,'tPoly_getKey(tPoly *const poly, uint8_t voice):&#160;leaf-midi.c'],['../group__tpoly.html#gaec4318990ce680cc96df942fd9bd5473',1,'tPoly_getKey(tPoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tpoly_5fgetnumactivevoices_630',['tPoly_getNumActiveVoices',['../group__tpoly.html#ga45962abd5bf3321cedfdb64ab05fd0d7',1,'tPoly_getNumActiveVoices(tPoly *const poly):&#160;leaf-midi.c'],['../group__tpoly.html#ga45962abd5bf3321cedfdb64ab05fd0d7',1,'tPoly_getNumActiveVoices(tPoly *const polyh):&#160;leaf-midi.c']]],
+  ['tpoly_5fgetnumvoices_631',['tPoly_getNumVoices',['../group__tpoly.html#gad85e4d10bb7e8fa66797ad632186459b',1,'tPoly_getNumVoices(tPoly *const poly):&#160;leaf-midi.c'],['../group__tpoly.html#gad85e4d10bb7e8fa66797ad632186459b',1,'tPoly_getNumVoices(tPoly *const polyh):&#160;leaf-midi.c']]],
+  ['tpoly_5fgetpitch_632',['tPoly_getPitch',['../group__tpoly.html#ga39f47e13c92644d07852a7794fe896c4',1,'tPoly_getPitch(tPoly *const poly, uint8_t voice):&#160;leaf-midi.c'],['../group__tpoly.html#ga39f47e13c92644d07852a7794fe896c4',1,'tPoly_getPitch(tPoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tpoly_5fgetvelocity_633',['tPoly_getVelocity',['../group__tpoly.html#ga1f946c78feaa7db4f443bd105e4c7310',1,'tPoly_getVelocity(tPoly *const poly, uint8_t voice):&#160;leaf-midi.c'],['../group__tpoly.html#ga1f946c78feaa7db4f443bd105e4c7310',1,'tPoly_getVelocity(tPoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tpoly_5finit_634',['tPoly_init',['../group__tpoly.html#gaf530a73c1d8d8d3e20403c9f33c0ab2e',1,'tPoly_init(tPoly *const poly, int maxNumVoices, LEAF *const leaf):&#160;leaf-midi.c'],['../group__tpoly.html#gaf530a73c1d8d8d3e20403c9f33c0ab2e',1,'tPoly_init(tPoly *const polyh, int maxNumVoices, LEAF *const leaf):&#160;leaf-midi.c']]],
+  ['tpoly_5finittopool_635',['tPoly_initToPool',['../group__tpoly.html#ga9a3b088e0d32366b6d5f675794becf15',1,'tPoly_initToPool(tPoly *const poly, int maxNumVoices, tMempool *const pool):&#160;leaf-midi.c'],['../group__tpoly.html#ga9a3b088e0d32366b6d5f675794becf15',1,'tPoly_initToPool(tPoly *const polyh, int maxNumVoices, tMempool *const mp):&#160;leaf-midi.c']]],
+  ['tpoly_5fison_636',['tPoly_isOn',['../group__tpoly.html#ga328c5f9e8f8fb7f521298676ab6c5944',1,'tPoly_isOn(tPoly *const poly, uint8_t voice):&#160;leaf-midi.c'],['../group__tpoly.html#ga328c5f9e8f8fb7f521298676ab6c5944',1,'tPoly_isOn(tPoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tpoly_5fnoteoff_637',['tPoly_noteOff',['../group__tpoly.html#gaad8376b6c55995e763ce26d084d23a67',1,'tPoly_noteOff(tPoly *const poly, uint8_t note):&#160;leaf-midi.c'],['../group__tpoly.html#gaad8376b6c55995e763ce26d084d23a67',1,'tPoly_noteOff(tPoly *const polyh, uint8_t note):&#160;leaf-midi.c']]],
+  ['tpoly_5fnoteon_638',['tPoly_noteOn',['../group__tpoly.html#ga0a52befe767ed6ea96b26d53952a37ea',1,'tPoly_noteOn(tPoly *const poly, int note, uint8_t vel):&#160;leaf-midi.c'],['../group__tpoly.html#ga0a52befe767ed6ea96b26d53952a37ea',1,'tPoly_noteOn(tPoly *const polyh, int note, uint8_t vel):&#160;leaf-midi.c']]],
+  ['tpoly_5forderedaddtostack_639',['tPoly_orderedAddToStack',['../group__tpoly.html#ga5abdfc6cd4b26b74647cb23a822b0f38',1,'tPoly_orderedAddToStack(tPoly *const poly, uint8_t note):&#160;leaf-midi.c'],['../group__tpoly.html#ga5abdfc6cd4b26b74647cb23a822b0f38',1,'tPoly_orderedAddToStack(tPoly *const polyh, uint8_t noteVal):&#160;leaf-midi.c']]],
+  ['tpoly_5fsetbendglidetime_640',['tPoly_setBendGlideTime',['../group__tpoly.html#ga8dad5daee7f10d0bb59e96ad55ec0402',1,'tPoly_setBendGlideTime(tPoly *const poly, float t):&#160;leaf-midi.c'],['../group__tpoly.html#ga8dad5daee7f10d0bb59e96ad55ec0402',1,'tPoly_setBendGlideTime(tPoly *const polyh, float t):&#160;leaf-midi.c']]],
+  ['tpoly_5fsetbendsamplespertick_641',['tPoly_setBendSamplesPerTick',['../group__tpoly.html#ga1f6a93b108ac8654eaa860575d2f1cd5',1,'tPoly_setBendSamplesPerTick(tPoly *const poly, float t):&#160;leaf-midi.c'],['../group__tpoly.html#ga1f6a93b108ac8654eaa860575d2f1cd5',1,'tPoly_setBendSamplesPerTick(tPoly *const polyh, float t):&#160;leaf-midi.c']]],
+  ['tpoly_5fsetnumvoices_642',['tPoly_setNumVoices',['../group__tpoly.html#gaf3aae31d4b20eb71be39351989bc06d1',1,'tPoly_setNumVoices(tPoly *const poly, uint8_t numVoices):&#160;leaf-midi.c'],['../group__tpoly.html#gaf3aae31d4b20eb71be39351989bc06d1',1,'tPoly_setNumVoices(tPoly *const polyh, uint8_t numVoices):&#160;leaf-midi.c']]],
+  ['tpoly_5fsetpitchbend_643',['tPoly_setPitchBend',['../group__tpoly.html#ga8608941b79fe9ba1b8e92b5a8046a915',1,'tPoly_setPitchBend(tPoly *const poly, float pitchBend):&#160;leaf-midi.c'],['../group__tpoly.html#ga8608941b79fe9ba1b8e92b5a8046a915',1,'tPoly_setPitchBend(tPoly *const polyh, float pitchBend):&#160;leaf-midi.c']]],
+  ['tpoly_5fsetpitchglideactive_644',['tPoly_setPitchGlideActive',['../group__tpoly.html#ga9ddfc026e440e208064ce48d655ee317',1,'tPoly_setPitchGlideActive(tPoly *const poly, int isActive):&#160;leaf-midi.c'],['../group__tpoly.html#ga9ddfc026e440e208064ce48d655ee317',1,'tPoly_setPitchGlideActive(tPoly *const polyh, int isActive):&#160;leaf-midi.c']]],
+  ['tpoly_5fsetpitchglidetime_645',['tPoly_setPitchGlideTime',['../group__tpoly.html#ga12e5fba9072b6e7d91d50a2e3c82bc87',1,'tPoly_setPitchGlideTime(tPoly *const poly, float t):&#160;leaf-midi.c'],['../group__tpoly.html#ga12e5fba9072b6e7d91d50a2e3c82bc87',1,'tPoly_setPitchGlideTime(tPoly *const polyh, float t):&#160;leaf-midi.c']]],
+  ['tpoly_5ftickpitch_646',['tPoly_tickPitch',['../group__tpoly.html#gaf30b4a4aabd43c297d49258acf8e0cb3',1,'tPoly_tickPitch(tPoly *const poly):&#160;leaf-midi.c'],['../group__tpoly.html#gaf30b4a4aabd43c297d49258acf8e0cb3',1,'tPoly_tickPitch(tPoly *polyh):&#160;leaf-midi.c']]],
+  ['tpoly_5ftickpitchbend_647',['tPoly_tickPitchBend',['../group__tpoly.html#gaf1bfa43e0337d0e090d3aa5b074b7825',1,'tPoly_tickPitchBend(tPoly *const poly):&#160;leaf-midi.c'],['../group__tpoly.html#gaf1bfa43e0337d0e090d3aa5b074b7825',1,'tPoly_tickPitchBend(tPoly *polyh):&#160;leaf-midi.c']]],
+  ['tpoly_5ftickpitchglide_648',['tPoly_tickPitchGlide',['../group__tpoly.html#ga4391da808d7e621ac86944f745a2f729',1,'tPoly_tickPitchGlide(tPoly *const poly):&#160;leaf-midi.c'],['../group__tpoly.html#ga4391da808d7e621ac86944f745a2f729',1,'tPoly_tickPitchGlide(tPoly *polyh):&#160;leaf-midi.c']]],
+  ['tpowerfollower_649',['tPowerFollower',['../group__tpowerfollower.html',1,'']]],
+  ['tpowerfollower_5ffree_650',['tPowerFollower_free',['../group__tpowerfollower.html#ga479317d7fd22a86a832ebec92eae4782',1,'tPowerFollower_free(tPowerFollower *const):&#160;leaf-analysis.c'],['../group__tpowerfollower.html#ga479317d7fd22a86a832ebec92eae4782',1,'tPowerFollower_free(tPowerFollower *const pf):&#160;leaf-analysis.c']]],
+  ['tpowerfollower_5fgetpower_651',['tPowerFollower_getPower',['../group__tpowerfollower.html#ga0a423e1c15b581b4430112ed2897f6d2',1,'tPowerFollower_getPower(tPowerFollower *const):&#160;leaf-analysis.c'],['../group__tpowerfollower.html#ga0a423e1c15b581b4430112ed2897f6d2',1,'tPowerFollower_getPower(tPowerFollower *const pf):&#160;leaf-analysis.c']]],
+  ['tpowerfollower_5finit_652',['tPowerFollower_init',['../group__tpowerfollower.html#gab8b92e4b8a0819f2d0a779f3b20d3f25',1,'tPowerFollower_init(tPowerFollower *const, float factor, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tpowerfollower.html#gab8b92e4b8a0819f2d0a779f3b20d3f25',1,'tPowerFollower_init(tPowerFollower *const pf, float factor, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tpowerfollower_5finittopool_653',['tPowerFollower_initToPool',['../group__tpowerfollower.html#ga726f0b8ec4ab97346fb8521934452a2e',1,'tPowerFollower_initToPool(tPowerFollower *const, float factor, tMempool *const):&#160;leaf-analysis.c'],['../group__tpowerfollower.html#ga726f0b8ec4ab97346fb8521934452a2e',1,'tPowerFollower_initToPool(tPowerFollower *const pf, float factor, tMempool *const mp):&#160;leaf-analysis.c']]],
+  ['tpowerfollower_5fsetfactor_654',['tPowerFollower_setFactor',['../group__tpowerfollower.html#gac7ab521ba7345c90b2455acc66a7caf1',1,'tPowerFollower_setFactor(tPowerFollower *const, float factor):&#160;leaf-analysis.c'],['../group__tpowerfollower.html#gac7ab521ba7345c90b2455acc66a7caf1',1,'tPowerFollower_setFactor(tPowerFollower *const pf, float factor):&#160;leaf-analysis.c']]],
+  ['tpowerfollower_5ftick_655',['tPowerFollower_tick',['../group__tpowerfollower.html#ga0b422a35ef8ccdd72b3db45fc53c1e96',1,'tPowerFollower_tick(tPowerFollower *const, float input):&#160;leaf-analysis.c'],['../group__tpowerfollower.html#ga0b422a35ef8ccdd72b3db45fc53c1e96',1,'tPowerFollower_tick(tPowerFollower *const pf, float input):&#160;leaf-analysis.c']]],
+  ['tprcreverb_656',['tPRCReverb',['../group__tprcreverb.html',1,'']]],
+  ['tprcreverb_5fclear_657',['tPRCReverb_clear',['../group__tprcreverb.html#gac7f9a1553c85d1aefc722242a4d60df7',1,'leaf-reverb.h']]],
+  ['tprcreverb_5ffree_658',['tPRCReverb_free',['../group__tprcreverb.html#ga38fca3e880e0c5876453d680aa4ed02f',1,'tPRCReverb_free(tPRCReverb *const):&#160;leaf-reverb.c'],['../group__tprcreverb.html#ga38fca3e880e0c5876453d680aa4ed02f',1,'tPRCReverb_free(tPRCReverb *const rev):&#160;leaf-reverb.c']]],
+  ['tprcreverb_5finit_659',['tPRCReverb_init',['../group__tprcreverb.html#ga1632574775fdc27565f7f938c86f0188',1,'tPRCReverb_init(tPRCReverb *const, float t60, LEAF *const leaf):&#160;leaf-reverb.c'],['../group__tprcreverb.html#ga1632574775fdc27565f7f938c86f0188',1,'tPRCReverb_init(tPRCReverb *const rev, float t60, LEAF *const leaf):&#160;leaf-reverb.c']]],
+  ['tprcreverb_5finittopool_660',['tPRCReverb_initToPool',['../group__tprcreverb.html#gad297a10c21ece9dbca81234144693ccb',1,'tPRCReverb_initToPool(tPRCReverb *const, float t60, tMempool *const):&#160;leaf-reverb.c'],['../group__tprcreverb.html#gad297a10c21ece9dbca81234144693ccb',1,'tPRCReverb_initToPool(tPRCReverb *const rev, float t60, tMempool *const mp):&#160;leaf-reverb.c']]],
+  ['tprcreverb_5fsetmix_661',['tPRCReverb_setMix',['../group__tprcreverb.html#gacb56b78580c95fd6fefbd7346bf6e6b0',1,'tPRCReverb_setMix(tPRCReverb *const, float mix):&#160;leaf-reverb.c'],['../group__tprcreverb.html#gacb56b78580c95fd6fefbd7346bf6e6b0',1,'tPRCReverb_setMix(tPRCReverb *const rev, float mix):&#160;leaf-reverb.c']]],
+  ['tprcreverb_5fsett60_662',['tPRCReverb_setT60',['../group__tprcreverb.html#ga778bb9ee511e3aa263b4b368fa898e05',1,'tPRCReverb_setT60(tPRCReverb *const, float t60):&#160;leaf-reverb.c'],['../group__tprcreverb.html#ga778bb9ee511e3aa263b4b368fa898e05',1,'tPRCReverb_setT60(tPRCReverb *const rev, float t60):&#160;leaf-reverb.c']]],
+  ['tprcreverb_5ftick_663',['tPRCReverb_tick',['../group__tprcreverb.html#ga30441f2661cf646276a33b58ade60088',1,'tPRCReverb_tick(tPRCReverb *const, float input):&#160;leaf-reverb.c'],['../group__tprcreverb.html#ga30441f2661cf646276a33b58ade60088',1,'tPRCReverb_tick(tPRCReverb *const rev, float input):&#160;leaf-reverb.c']]],
+  ['tpulse_664',['tPulse',['../group__tpulse.html',1,'']]],
+  ['tpulse_5ffree_665',['tPulse_free',['../group__tpulse.html#gad2c554f90ebb55227d28dd18f42be760',1,'tPulse_free(tPulse *const osc):&#160;leaf-oscillators.c'],['../group__tpulse.html#gad2c554f90ebb55227d28dd18f42be760',1,'tPulse_free(tPulse *const osc):&#160;leaf-oscillators.c']]],
+  ['tpulse_5finit_666',['tPulse_init',['../group__tpulse.html#ga2a3b923294ee215553937f1446932eda',1,'tPulse_init(tPulse *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tpulse.html#ga2a3b923294ee215553937f1446932eda',1,'tPulse_init(tPulse *const osc, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tpulse_5finittopool_667',['tPulse_initToPool',['../group__tpulse.html#gace53f4a8731bcbf6f7c265ba4ec375c7',1,'tPulse_initToPool(tPulse *const osc, tMempool *const):&#160;leaf-oscillators.c'],['../group__tpulse.html#gace53f4a8731bcbf6f7c265ba4ec375c7',1,'tPulse_initToPool(tPulse *const osc, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['tpulse_5fsetfreq_668',['tPulse_setFreq',['../group__tpulse.html#gaf553bb8ff573c7d503f4bcb01cfb3117',1,'tPulse_setFreq(tPulse *const osc, float freq):&#160;leaf-oscillators.c'],['../group__tpulse.html#gaf553bb8ff573c7d503f4bcb01cfb3117',1,'tPulse_setFreq(tPulse *const osc, float freq):&#160;leaf-oscillators.c']]],
+  ['tpulse_5fsetwidth_669',['tPulse_setWidth',['../group__tpulse.html#ga554255385caeaaefddab51c258c45b74',1,'tPulse_setWidth(tPulse *const osc, float width):&#160;leaf-oscillators.c'],['../group__tpulse.html#ga554255385caeaaefddab51c258c45b74',1,'tPulse_setWidth(tPulse *const osc, float width):&#160;leaf-oscillators.c']]],
+  ['tpulse_5ftick_670',['tPulse_tick',['../group__tpulse.html#ga4af3bc706a792a541d16cde22a335f7e',1,'tPulse_tick(tPulse *const osc):&#160;leaf-oscillators.c'],['../group__tpulse.html#ga4af3bc706a792a541d16cde22a335f7e',1,'tPulse_tick(tPulse *const osc):&#160;leaf-oscillators.c']]],
+  ['tramp_671',['tRamp',['../group__tramp.html',1,'']]],
+  ['tramp_5ffree_672',['tRamp_free',['../group__tramp.html#ga155e473a79ce4b174fa468981bb13750',1,'tRamp_free(tRamp *const):&#160;leaf-envelopes.c'],['../group__tramp.html#ga155e473a79ce4b174fa468981bb13750',1,'tRamp_free(tRamp *const r):&#160;leaf-envelopes.c']]],
+  ['tramp_5finit_673',['tRamp_init',['../group__tramp.html#ga44d22f890ed04cd061cfba963b1f9729',1,'tRamp_init(tRamp *const, float time, int samplesPerTick, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__tramp.html#ga44d22f890ed04cd061cfba963b1f9729',1,'tRamp_init(tRamp *const r, float time, int samples_per_tick, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['tramp_5finittopool_674',['tRamp_initToPool',['../group__tramp.html#gac4d46bba12df2569f57bbdb9b407fe24',1,'tRamp_initToPool(tRamp *const, float time, int samplesPerTick, tMempool *const):&#160;leaf-envelopes.c'],['../group__tramp.html#gac4d46bba12df2569f57bbdb9b407fe24',1,'tRamp_initToPool(tRamp *const r, float time, int samples_per_tick, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['tramp_5fsample_675',['tRamp_sample',['../group__tramp.html#ga4a3488c43e978d905080773353ce40f4',1,'tRamp_sample(tRamp *const):&#160;leaf-envelopes.c'],['../group__tramp.html#ga4a3488c43e978d905080773353ce40f4',1,'tRamp_sample(tRamp *const ramp):&#160;leaf-envelopes.c']]],
+  ['tramp_5fsetdest_676',['tRamp_setDest',['../group__tramp.html#gad348c3b0601d99326ce06ba017ef2508',1,'tRamp_setDest(tRamp *const, float dest):&#160;leaf-envelopes.c'],['../group__tramp.html#gad348c3b0601d99326ce06ba017ef2508',1,'tRamp_setDest(tRamp *const ramp, float dest):&#160;leaf-envelopes.c']]],
+  ['tramp_5fsettime_677',['tRamp_setTime',['../group__tramp.html#gada173eb52e34ee8fb16d79026014a4be',1,'tRamp_setTime(tRamp *const, float time):&#160;leaf-envelopes.c'],['../group__tramp.html#gada173eb52e34ee8fb16d79026014a4be',1,'tRamp_setTime(tRamp *const ramp, float time):&#160;leaf-envelopes.c']]],
+  ['tramp_5fsetval_678',['tRamp_setVal',['../group__tramp.html#gafe5e687461cdb8b7cd0714b9fdca4223',1,'tRamp_setVal(tRamp *const, float val):&#160;leaf-envelopes.c'],['../group__tramp.html#gafe5e687461cdb8b7cd0714b9fdca4223',1,'tRamp_setVal(tRamp *const ramp, float val):&#160;leaf-envelopes.c']]],
+  ['tramp_5ftick_679',['tRamp_tick',['../group__tramp.html#gadd8abe3a4b8f0f082d1a7f2c752f7980',1,'tRamp_tick(tRamp *const):&#160;leaf-envelopes.c'],['../group__tramp.html#gadd8abe3a4b8f0f082d1a7f2c752f7980',1,'tRamp_tick(tRamp *const ramp):&#160;leaf-envelopes.c']]],
+  ['trampupdown_680',['tRampUpDown',['../group__trampupdown.html',1,'']]],
+  ['trampupdown_5ffree_681',['tRampUpDown_free',['../group__trampupdown.html#ga8eeaec61bbb73b00497dd5c62e43298e',1,'tRampUpDown_free(tRampUpDown *const):&#160;leaf-envelopes.c'],['../group__trampupdown.html#ga8eeaec61bbb73b00497dd5c62e43298e',1,'tRampUpDown_free(tRampUpDown *const r):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5finit_682',['tRampUpDown_init',['../group__trampupdown.html#ga10049078d9afde547db5345067355741',1,'tRampUpDown_init(tRampUpDown *const, float upTime, float downTime, int samplesPerTick, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__trampupdown.html#ga10049078d9afde547db5345067355741',1,'tRampUpDown_init(tRampUpDown *const r, float upTime, float downTime, int samples_per_tick, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5finittopool_683',['tRampUpDown_initToPool',['../group__trampupdown.html#ga971e5d4b58631194769d9ff29b09bab0',1,'tRampUpDown_initToPool(tRampUpDown *const, float upTime, float downTime, int samplesPerTick, tMempool *const):&#160;leaf-envelopes.c'],['../group__trampupdown.html#ga971e5d4b58631194769d9ff29b09bab0',1,'tRampUpDown_initToPool(tRampUpDown *const r, float upTime, float downTime, int samples_per_tick, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5fsample_684',['tRampUpDown_sample',['../group__trampupdown.html#gacf9c6cad23c6fb79c002fdb60a132e69',1,'tRampUpDown_sample(tRampUpDown *const):&#160;leaf-envelopes.c'],['../group__trampupdown.html#gacf9c6cad23c6fb79c002fdb60a132e69',1,'tRampUpDown_sample(tRampUpDown *const ramp):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5fsetdest_685',['tRampUpDown_setDest',['../group__trampupdown.html#ga3902f92b1057f9bd37ea24afe6ee93a0',1,'tRampUpDown_setDest(tRampUpDown *const, float dest):&#160;leaf-envelopes.c'],['../group__trampupdown.html#ga3902f92b1057f9bd37ea24afe6ee93a0',1,'tRampUpDown_setDest(tRampUpDown *const ramp, float dest):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5fsetdowntime_686',['tRampUpDown_setDownTime',['../group__trampupdown.html#ga15eca113d583ad81c71750cb13efb8f4',1,'tRampUpDown_setDownTime(tRampUpDown *const, float downTime):&#160;leaf-envelopes.c'],['../group__trampupdown.html#ga15eca113d583ad81c71750cb13efb8f4',1,'tRampUpDown_setDownTime(tRampUpDown *const ramp, float downTime):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5fsetuptime_687',['tRampUpDown_setUpTime',['../group__trampupdown.html#ga8d3a86e1a0937104788d63bafc34d37e',1,'tRampUpDown_setUpTime(tRampUpDown *const, float upTime):&#160;leaf-envelopes.c'],['../group__trampupdown.html#ga8d3a86e1a0937104788d63bafc34d37e',1,'tRampUpDown_setUpTime(tRampUpDown *const ramp, float upTime):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5fsetval_688',['tRampUpDown_setVal',['../group__trampupdown.html#ga9c1bbd455bd922c8b51c1b5e8c50e885',1,'tRampUpDown_setVal(tRampUpDown *const, float val):&#160;leaf-envelopes.c'],['../group__trampupdown.html#ga9c1bbd455bd922c8b51c1b5e8c50e885',1,'tRampUpDown_setVal(tRampUpDown *const ramp, float val):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5ftick_689',['tRampUpDown_tick',['../group__trampupdown.html#gae271d51d8270f50237f2b46b476930bf',1,'tRampUpDown_tick(tRampUpDown *const):&#160;leaf-envelopes.c'],['../group__trampupdown.html#gae271d51d8270f50237f2b46b476930bf',1,'tRampUpDown_tick(tRampUpDown *const ramp):&#160;leaf-envelopes.c']]],
+  ['treedtable_690',['tReedTable',['../group__treedtable.html',1,'']]],
+  ['treedtable_5ffree_691',['tReedTable_free',['../group__treedtable.html#ga255b99f7e6c9a17d0a35c001d5fcb0e3',1,'tReedTable_free(tReedTable *const):&#160;leaf-physical.c'],['../group__treedtable.html#ga255b99f7e6c9a17d0a35c001d5fcb0e3',1,'tReedTable_free(tReedTable *const pm):&#160;leaf-physical.c']]],
+  ['treedtable_5finit_692',['tReedTable_init',['../group__treedtable.html#ga42424fceb88dd8a10b289ec1f1e2681b',1,'tReedTable_init(tReedTable *const, float offset, float slope, LEAF *const leaf):&#160;leaf-physical.c'],['../group__treedtable.html#ga42424fceb88dd8a10b289ec1f1e2681b',1,'tReedTable_init(tReedTable *const pm, float offset, float slope, LEAF *const leaf):&#160;leaf-physical.c']]],
+  ['treedtable_5finittopool_693',['tReedTable_initToPool',['../group__treedtable.html#ga7a3243fafaac0957fab59ab0fd105b87',1,'tReedTable_initToPool(tReedTable *const, float offset, float slope, tMempool *const):&#160;leaf-physical.c'],['../group__treedtable.html#ga7a3243fafaac0957fab59ab0fd105b87',1,'tReedTable_initToPool(tReedTable *const pm, float offset, float slope, tMempool *const mp):&#160;leaf-physical.c']]],
+  ['treedtable_5fsetoffset_694',['tReedTable_setOffset',['../group__treedtable.html#ga8a79fd2691b668dc835d3c1a904ead98',1,'tReedTable_setOffset(tReedTable *const, float offset):&#160;leaf-physical.c'],['../group__treedtable.html#ga8a79fd2691b668dc835d3c1a904ead98',1,'tReedTable_setOffset(tReedTable *const pm, float offset):&#160;leaf-physical.c']]],
+  ['treedtable_5fsetslope_695',['tReedTable_setSlope',['../group__treedtable.html#gadce4a01b418b01d45f7fe8c59a72bd19',1,'tReedTable_setSlope(tReedTable *const, float slope):&#160;leaf-physical.c'],['../group__treedtable.html#gadce4a01b418b01d45f7fe8c59a72bd19',1,'tReedTable_setSlope(tReedTable *const pm, float slope):&#160;leaf-physical.c']]],
+  ['treedtable_5ftanh_5ftick_696',['tReedTable_tanh_tick',['../group__treedtable.html#ga90644dc2bd0a5c4c828e57efa3e056c1',1,'tReedTable_tanh_tick(tReedTable *const, float input):&#160;leaf-physical.c'],['../group__treedtable.html#ga90644dc2bd0a5c4c828e57efa3e056c1',1,'tReedTable_tanh_tick(tReedTable *const pm, float input):&#160;leaf-physical.c']]],
+  ['treedtable_5ftick_697',['tReedTable_tick',['../group__treedtable.html#gac698936fdfe9bc1948f9dbc8e08c0316',1,'tReedTable_tick(tReedTable *const, float input):&#160;leaf-physical.c'],['../group__treedtable.html#gac698936fdfe9bc1948f9dbc8e08c0316',1,'tReedTable_tick(tReedTable *const pm, float input):&#160;leaf-physical.c']]],
+  ['tretune_698',['tRetune',['../group__tretune.html',1,'']]],
+  ['tretune_5ffree_699',['tRetune_free',['../group__tretune.html#ga9054a73b7bb08d4721b109b7c2c94042',1,'tRetune_free(tRetune *const):&#160;leaf-effects.c'],['../group__tretune.html#ga9054a73b7bb08d4721b109b7c2c94042',1,'tRetune_free(tRetune *const rt):&#160;leaf-effects.c']]],
+  ['tretune_5fsetnumvoices_700',['tRetune_setNumVoices',['../group__tretune.html#ga126c94026f5b022a4e50dec9a5b8e294',1,'tRetune_setNumVoices(tRetune *const, int numVoices):&#160;leaf-effects.c'],['../group__tretune.html#ga126c94026f5b022a4e50dec9a5b8e294',1,'tRetune_setNumVoices(tRetune *const rt, int numVoices):&#160;leaf-effects.c']]],
+  ['tretune_5ftick_701',['tRetune_tick',['../group__tretune.html#gae5ed387f5a71deac43ab89b8f8986060',1,'tRetune_tick(tRetune *const, float sample):&#160;leaf-effects.c'],['../group__tretune.html#gae5ed387f5a71deac43ab89b8f8986060',1,'tRetune_tick(tRetune *const rt, float sample):&#160;leaf-effects.c']]],
+  ['tringbuffer_702',['tRingBuffer',['../group__tringbuffer.html',1,'']]],
+  ['tringbuffer_5ffree_703',['tRingBuffer_free',['../group__tringbuffer.html#gafbf4874d2fa48aff8b15919cbf85df5b',1,'tRingBuffer_free(tRingBuffer *const ring):&#160;leaf-delay.c'],['../group__tringbuffer.html#gafbf4874d2fa48aff8b15919cbf85df5b',1,'tRingBuffer_free(tRingBuffer *const ring):&#160;leaf-delay.c']]],
+  ['tringbuffer_5fget_704',['tRingBuffer_get',['../group__tringbuffer.html#ga6925019a4a1418b61751da7240e489fd',1,'tRingBuffer_get(tRingBuffer *const ring, int index):&#160;leaf-delay.c'],['../group__tringbuffer.html#ga6925019a4a1418b61751da7240e489fd',1,'tRingBuffer_get(tRingBuffer *const ring, int index):&#160;leaf-delay.c']]],
+  ['tringbuffer_5fgetnewest_705',['tRingBuffer_getNewest',['../group__tringbuffer.html#gaef38082fdfabb5abb11d1d8d55c99f2a',1,'tRingBuffer_getNewest(tRingBuffer *const ring):&#160;leaf-delay.c'],['../group__tringbuffer.html#gaef38082fdfabb5abb11d1d8d55c99f2a',1,'tRingBuffer_getNewest(tRingBuffer *const ring):&#160;leaf-delay.c']]],
+  ['tringbuffer_5fgetoldest_706',['tRingBuffer_getOldest',['../group__tringbuffer.html#gaea32020dea77c0f0c65c3ea04460f598',1,'tRingBuffer_getOldest(tRingBuffer *const ring):&#160;leaf-delay.c'],['../group__tringbuffer.html#gaea32020dea77c0f0c65c3ea04460f598',1,'tRingBuffer_getOldest(tRingBuffer *const ring):&#160;leaf-delay.c']]],
+  ['tringbuffer_5fgetsize_707',['tRingBuffer_getSize',['../group__tringbuffer.html#ga33bf20b1a1a3f1bb3195f0735050d560',1,'tRingBuffer_getSize(tRingBuffer *const ring):&#160;leaf-delay.c'],['../group__tringbuffer.html#ga33bf20b1a1a3f1bb3195f0735050d560',1,'tRingBuffer_getSize(tRingBuffer *const ring):&#160;leaf-delay.c']]],
+  ['tringbuffer_5finit_708',['tRingBuffer_init',['../group__tringbuffer.html#gaa6e10d8ad89469f9868d1c8bf61c3369',1,'tRingBuffer_init(tRingBuffer *const ring, int size, LEAF *const leaf):&#160;leaf-delay.c'],['../group__tringbuffer.html#gaa6e10d8ad89469f9868d1c8bf61c3369',1,'tRingBuffer_init(tRingBuffer *const ring, int size, LEAF *const leaf):&#160;leaf-delay.c']]],
+  ['tringbuffer_5finittopool_709',['tRingBuffer_initToPool',['../group__tringbuffer.html#ga42849a91b882ee8231fe494617f8e441',1,'tRingBuffer_initToPool(tRingBuffer *const ring, int size, tMempool *const mempool):&#160;leaf-delay.c'],['../group__tringbuffer.html#ga42849a91b882ee8231fe494617f8e441',1,'tRingBuffer_initToPool(tRingBuffer *const ring, int size, tMempool *const mempool):&#160;leaf-delay.c']]],
+  ['tringbuffer_5fpush_710',['tRingBuffer_push',['../group__tringbuffer.html#ga9e95e5b6969ccde90391f5312f7cde69',1,'tRingBuffer_push(tRingBuffer *const ring, float val):&#160;leaf-delay.c'],['../group__tringbuffer.html#ga9e95e5b6969ccde90391f5312f7cde69',1,'tRingBuffer_push(tRingBuffer *const ring, float val):&#160;leaf-delay.c']]],
+  ['trosenbergglottalpulse_711',['tRosenbergGlottalPulse',['../group__trosenbergglottalpulse.html',1,'']]],
+  ['trosenbergglottalpulse_5ffree_712',['tRosenbergGlottalPulse_free',['../group__trosenbergglottalpulse.html#gac23f160eacd6098f0be43ef2ad50adba',1,'tRosenbergGlottalPulse_free(tRosenbergGlottalPulse *const):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#gac23f160eacd6098f0be43ef2ad50adba',1,'tRosenbergGlottalPulse_free(tRosenbergGlottalPulse *const gp):&#160;leaf-effects.c']]],
+  ['trosenbergglottalpulse_5finit_713',['tRosenbergGlottalPulse_init',['../group__trosenbergglottalpulse.html#gabc9f965e57fb4f4d19078e735ceeef41',1,'tRosenbergGlottalPulse_init(tRosenbergGlottalPulse *const, LEAF *const leaf):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#gabc9f965e57fb4f4d19078e735ceeef41',1,'tRosenbergGlottalPulse_init(tRosenbergGlottalPulse *const gp, LEAF *const leaf):&#160;leaf-effects.c']]],
+  ['trosenbergglottalpulse_5finittopool_714',['tRosenbergGlottalPulse_initToPool',['../group__trosenbergglottalpulse.html#ga337b99d9c13835ad7d44dc496de018d6',1,'tRosenbergGlottalPulse_initToPool(tRosenbergGlottalPulse *const, tMempool *const):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#ga337b99d9c13835ad7d44dc496de018d6',1,'tRosenbergGlottalPulse_initToPool(tRosenbergGlottalPulse *const gp, tMempool *const mp):&#160;leaf-effects.c']]],
+  ['trosenbergglottalpulse_5fsetfreq_715',['tRosenbergGlottalPulse_setFreq',['../group__trosenbergglottalpulse.html#ga199fe228e20140018c943b72347ba434',1,'tRosenbergGlottalPulse_setFreq(tRosenbergGlottalPulse *const, float freq):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#ga199fe228e20140018c943b72347ba434',1,'tRosenbergGlottalPulse_setFreq(tRosenbergGlottalPulse *const gp, float freq):&#160;leaf-effects.c']]],
+  ['trosenbergglottalpulse_5fsetopenlength_716',['tRosenbergGlottalPulse_setOpenLength',['../group__trosenbergglottalpulse.html#ga703d56589fa0121e978609f5315ea1e7',1,'tRosenbergGlottalPulse_setOpenLength(tRosenbergGlottalPulse *const, float openLength):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#ga703d56589fa0121e978609f5315ea1e7',1,'tRosenbergGlottalPulse_setOpenLength(tRosenbergGlottalPulse *const gp, float openLength):&#160;leaf-effects.c']]],
+  ['trosenbergglottalpulse_5fsetopenlengthandpulselength_717',['tRosenbergGlottalPulse_setOpenLengthAndPulseLength',['../group__trosenbergglottalpulse.html#ga0ebbc0ca662434c8685cbca2e44f656a',1,'tRosenbergGlottalPulse_setOpenLengthAndPulseLength(tRosenbergGlottalPulse *const gp, float openLength, float pulseLength):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#ga0ebbc0ca662434c8685cbca2e44f656a',1,'tRosenbergGlottalPulse_setOpenLengthAndPulseLength(tRosenbergGlottalPulse *const gp, float openLength, float pulseLength):&#160;leaf-effects.c']]],
+  ['trosenbergglottalpulse_5fsetpulselength_718',['tRosenbergGlottalPulse_setPulseLength',['../group__trosenbergglottalpulse.html#ga7339007dec7bc4164d850e63d57a75ec',1,'tRosenbergGlottalPulse_setPulseLength(tRosenbergGlottalPulse *const, float pulseLength):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#ga7339007dec7bc4164d850e63d57a75ec',1,'tRosenbergGlottalPulse_setPulseLength(tRosenbergGlottalPulse *const gp, float pulseLength):&#160;leaf-effects.c']]],
+  ['trosenbergglottalpulse_5ftick_719',['tRosenbergGlottalPulse_tick',['../group__trosenbergglottalpulse.html#gaa13740e5d8e0cab56e61eb0cb242fabe',1,'tRosenbergGlottalPulse_tick(tRosenbergGlottalPulse *const):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#gaa13740e5d8e0cab56e61eb0cb242fabe',1,'tRosenbergGlottalPulse_tick(tRosenbergGlottalPulse *const gp):&#160;leaf-effects.c']]],
+  ['trosenbergglottalpulse_5ftickhq_720',['tRosenbergGlottalPulse_tickHQ',['../group__trosenbergglottalpulse.html#gadbf13772282402d02eb7623fda03d496',1,'tRosenbergGlottalPulse_tickHQ(tRosenbergGlottalPulse *const gp):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#gadbf13772282402d02eb7623fda03d496',1,'tRosenbergGlottalPulse_tickHQ(tRosenbergGlottalPulse *const gp):&#160;leaf-effects.c']]],
+  ['tsampler_721',['tSampler',['../group__tsampler.html',1,'']]],
+  ['tsampler_5ffree_722',['tSampler_free',['../group__tsampler.html#ga8294d4396e241ff583d5a0208a262a6f',1,'tSampler_free(tSampler *const):&#160;leaf-sampling.c'],['../group__tsampler.html#ga8294d4396e241ff583d5a0208a262a6f',1,'tSampler_free(tSampler *const sp):&#160;leaf-sampling.c']]],
+  ['tsampler_5finit_723',['tSampler_init',['../group__tsampler.html#gabe6b68ce1ad3be371e341671e131d8d1',1,'tSampler_init(tSampler *const, tBuffer *const, LEAF *const leaf):&#160;leaf-sampling.c'],['../group__tsampler.html#gabe6b68ce1ad3be371e341671e131d8d1',1,'tSampler_init(tSampler *const sp, tBuffer *const b, LEAF *const leaf):&#160;leaf-sampling.c']]],
+  ['tsampler_5fplay_724',['tSampler_play',['../group__tsampler.html#gaca8fd3a386f7b5c12584820b76be70b6',1,'tSampler_play(tSampler *const):&#160;leaf-sampling.c'],['../group__tsampler.html#gaca8fd3a386f7b5c12584820b76be70b6',1,'tSampler_play(tSampler *const sp):&#160;leaf-sampling.c']]],
+  ['tsampler_5fsetcrossfadelength_725',['tSampler_setCrossfadeLength',['../group__tsampler.html#gaa3b3bdfaff5b05513c777a586ad7fac5',1,'tSampler_setCrossfadeLength(tSampler *const sp, uint32_t length):&#160;leaf-sampling.c'],['../group__tsampler.html#gaa3b3bdfaff5b05513c777a586ad7fac5',1,'tSampler_setCrossfadeLength(tSampler *const sp, uint32_t length):&#160;leaf-sampling.c']]],
+  ['tsampler_5fsetend_726',['tSampler_setEnd',['../group__tsampler.html#ga36696178ca3f0bc7b8eef6786fe81faa',1,'tSampler_setEnd(tSampler *const, int32_t end):&#160;leaf-sampling.c'],['../group__tsampler.html#ga36696178ca3f0bc7b8eef6786fe81faa',1,'tSampler_setEnd(tSampler *const sp, int32_t end):&#160;leaf-sampling.c']]],
+  ['tsampler_5fsetlength_727',['tSampler_setLength',['../group__tsampler.html#ga498ced8a867faef896eb7ed194f86040',1,'tSampler_setLength(tSampler *const, int32_t length):&#160;leaf-sampling.c'],['../group__tsampler.html#ga498ced8a867faef896eb7ed194f86040',1,'tSampler_setLength(tSampler *const sp, int32_t length):&#160;leaf-sampling.c']]],
+  ['tsampler_5fsetmode_728',['tSampler_setMode',['../group__tsampler.html#ga7790cb700416a22238238fea75f0c632',1,'tSampler_setMode(tSampler *const, PlayMode mode):&#160;leaf-sampling.c'],['../group__tsampler.html#ga7790cb700416a22238238fea75f0c632',1,'tSampler_setMode(tSampler *const sp, PlayMode mode):&#160;leaf-sampling.c']]],
+  ['tsampler_5fsetrate_729',['tSampler_setRate',['../group__tsampler.html#gadaccb8d16c9870ba327b4ab51ebc3b7e',1,'tSampler_setRate(tSampler *const, float rate):&#160;leaf-sampling.c'],['../group__tsampler.html#gadaccb8d16c9870ba327b4ab51ebc3b7e',1,'tSampler_setRate(tSampler *const sp, float rate):&#160;leaf-sampling.c']]],
+  ['tsampler_5fsetsample_730',['tSampler_setSample',['../group__tsampler.html#gaf6e374c6d252d986b46415223980088e',1,'tSampler_setSample(tSampler *const, tBuffer *const):&#160;leaf-sampling.c'],['../group__tsampler.html#gaf6e374c6d252d986b46415223980088e',1,'tSampler_setSample(tSampler *const sp, tBuffer *const b):&#160;leaf-sampling.c']]],
+  ['tsampler_5fsetstart_731',['tSampler_setStart',['../group__tsampler.html#gac7dc95f6705399e73778c96904df2390',1,'tSampler_setStart(tSampler *const, int32_t start):&#160;leaf-sampling.c'],['../group__tsampler.html#gac7dc95f6705399e73778c96904df2390',1,'tSampler_setStart(tSampler *const sp, int32_t start):&#160;leaf-sampling.c']]],
+  ['tsampler_5fstop_732',['tSampler_stop',['../group__tsampler.html#gaf3dd0f9013b69cf4c3a6199b674925c0',1,'tSampler_stop(tSampler *const):&#160;leaf-sampling.c'],['../group__tsampler.html#gaf3dd0f9013b69cf4c3a6199b674925c0',1,'tSampler_stop(tSampler *const sp):&#160;leaf-sampling.c']]],
+  ['tsampler_5ftick_733',['tSampler_tick',['../group__tsampler.html#gaf22e3192bf74770101ecae67268ed465',1,'tSampler_tick(tSampler *const):&#160;leaf-sampling.c'],['../group__tsampler.html#gaf22e3192bf74770101ecae67268ed465',1,'tSampler_tick(tSampler *const sp):&#160;leaf-sampling.c']]],
+  ['tsamplereducer_734',['tSampleReducer',['../group__tsamplereducer.html',1,'']]],
+  ['tsamplereducer_5ffree_735',['tSampleReducer_free',['../group__tsamplereducer.html#gae63dd070a3dcf2c58e69f6ccb2e476c1',1,'tSampleReducer_free(tSampleReducer *const):&#160;leaf-distortion.c'],['../group__tsamplereducer.html#gae63dd070a3dcf2c58e69f6ccb2e476c1',1,'tSampleReducer_free(tSampleReducer *const sr):&#160;leaf-distortion.c']]],
+  ['tsamplereducer_5finit_736',['tSampleReducer_init',['../group__tsamplereducer.html#ga4e2aa28e349ce74e863302442581d2c2',1,'tSampleReducer_init(tSampleReducer *const, LEAF *const leaf):&#160;leaf-distortion.c'],['../group__tsamplereducer.html#ga4e2aa28e349ce74e863302442581d2c2',1,'tSampleReducer_init(tSampleReducer *const sr, LEAF *const leaf):&#160;leaf-distortion.c']]],
+  ['tsamplereducer_5finittopool_737',['tSampleReducer_initToPool',['../group__tsamplereducer.html#ga26f7d760728158cfac165e34ba7ed57f',1,'tSampleReducer_initToPool(tSampleReducer *const, tMempool *const):&#160;leaf-distortion.c'],['../group__tsamplereducer.html#ga26f7d760728158cfac165e34ba7ed57f',1,'tSampleReducer_initToPool(tSampleReducer *const sr, tMempool *const mp):&#160;leaf-distortion.c']]],
+  ['tsamplereducer_5fsetratio_738',['tSampleReducer_setRatio',['../group__tsamplereducer.html#ga21f7231417a132c6ec8c115c99582c68',1,'tSampleReducer_setRatio(tSampleReducer *const, float ratio):&#160;leaf-distortion.c'],['../group__tsamplereducer.html#ga21f7231417a132c6ec8c115c99582c68',1,'tSampleReducer_setRatio(tSampleReducer *const sr, float ratio):&#160;leaf-distortion.c']]],
+  ['tsamplereducer_5ftick_739',['tSampleReducer_tick',['../group__tsamplereducer.html#gad2c3b27d31b01f37e3926ae2b7024a71',1,'tSampleReducer_tick(tSampleReducer *const, float input):&#160;leaf-distortion.c'],['../group__tsamplereducer.html#gad2c3b27d31b01f37e3926ae2b7024a71',1,'tSampleReducer_tick(tSampleReducer *const sr, float input):&#160;leaf-distortion.c']]],
+  ['tsaw_740',['tSaw',['../group__tsaw.html',1,'']]],
+  ['tsaw_5ffree_741',['tSaw_free',['../group__tsaw.html#ga8a0086ee2a90f4e62a0313de8fe485d5',1,'tSaw_free(tSaw *const osc):&#160;leaf-oscillators.c'],['../group__tsaw.html#ga8a0086ee2a90f4e62a0313de8fe485d5',1,'tSaw_free(tSaw *const osc):&#160;leaf-oscillators.c']]],
+  ['tsaw_5finit_742',['tSaw_init',['../group__tsaw.html#ga47c944a22090ff9f8f810b0ec7c87523',1,'tSaw_init(tSaw *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tsaw.html#ga47c944a22090ff9f8f810b0ec7c87523',1,'tSaw_init(tSaw *const osc, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tsaw_5finittopool_743',['tSaw_initToPool',['../group__tsaw.html#ga67f8a442de376d042a98e300952f39f2',1,'tSaw_initToPool(tSaw *const osc, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__tsaw.html#ga67f8a442de376d042a98e300952f39f2',1,'tSaw_initToPool(tSaw *const osc, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['tsaw_5fsetfreq_744',['tSaw_setFreq',['../group__tsaw.html#ga665577c990c9112d70d42b859abc93dd',1,'tSaw_setFreq(tSaw *const osc, float freq):&#160;leaf-oscillators.c'],['../group__tsaw.html#ga665577c990c9112d70d42b859abc93dd',1,'tSaw_setFreq(tSaw *const osc, float freq):&#160;leaf-oscillators.c']]],
+  ['tsaw_5ftick_745',['tSaw_tick',['../group__tsaw.html#ga6aa69769acd51715899d60b0f581796d',1,'tSaw_tick(tSaw *const osc):&#160;leaf-oscillators.c'],['../group__tsaw.html#ga6aa69769acd51715899d60b0f581796d',1,'tSaw_tick(tSaw *const osc):&#160;leaf-oscillators.c']]],
+  ['tsawtooth_746',['tSawtooth',['../group__tsawtooth.html',1,'']]],
+  ['tsawtooth_5ffree_747',['tSawtooth_free',['../group__tsawtooth.html#ga32ba208b6c4745587d267598702aaf02',1,'tSawtooth_free(tSawtooth *const osc):&#160;leaf-oscillators.c'],['../group__tsawtooth.html#ga32ba208b6c4745587d267598702aaf02',1,'tSawtooth_free(tSawtooth *const cy):&#160;leaf-oscillators.c']]],
+  ['tsawtooth_5finit_748',['tSawtooth_init',['../group__tsawtooth.html#gaa052c9d8e62a198bbaeac892b0d11a7f',1,'tSawtooth_init(tSawtooth *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tsawtooth.html#gaa052c9d8e62a198bbaeac892b0d11a7f',1,'tSawtooth_init(tSawtooth *const cy, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tsawtooth_5finittopool_749',['tSawtooth_initToPool',['../group__tsawtooth.html#ga63ee3403c200358511ffb049a3a93bf2',1,'tSawtooth_initToPool(tSawtooth *const osc, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__tsawtooth.html#ga63ee3403c200358511ffb049a3a93bf2',1,'tSawtooth_initToPool(tSawtooth *const cy, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['tsawtooth_5fsetfreq_750',['tSawtooth_setFreq',['../group__tsawtooth.html#gab096cb0c5c0384b47959d0161d8432e4',1,'tSawtooth_setFreq(tSawtooth *const osc, float freq):&#160;leaf-oscillators.c'],['../group__tsawtooth.html#gab096cb0c5c0384b47959d0161d8432e4',1,'tSawtooth_setFreq(tSawtooth *const cy, float freq):&#160;leaf-oscillators.c']]],
+  ['tsawtooth_5ftick_751',['tSawtooth_tick',['../group__tsawtooth.html#ga55fd2d0b1572fc8a67fffc7531fced69',1,'tSawtooth_tick(tSawtooth *const osc):&#160;leaf-oscillators.c'],['../group__tsawtooth.html#ga55fd2d0b1572fc8a67fffc7531fced69',1,'tSawtooth_tick(tSawtooth *const cy):&#160;leaf-oscillators.c']]],
+  ['tsimplelivingstring_752',['tSimpleLivingString',['../group__tsimplelivingstring.html',1,'']]],
+  ['tsimplelivingstring_5ffree_753',['tSimpleLivingString_free',['../group__tsimplelivingstring.html#ga9d08fedb273f78dfe7dc468736faee1c',1,'tSimpleLivingString_free(tSimpleLivingString *const):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#ga9d08fedb273f78dfe7dc468736faee1c',1,'tSimpleLivingString_free(tSimpleLivingString *const pl):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5finit_754',['tSimpleLivingString_init',['../group__tsimplelivingstring.html#ga9c905b5e7e42d86fb1565fc7bebe7489',1,'tSimpleLivingString_init(tSimpleLivingString *const, float freq, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, LEAF *const leaf):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#ga9c905b5e7e42d86fb1565fc7bebe7489',1,'tSimpleLivingString_init(tSimpleLivingString *const pl, float freq, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, LEAF *const leaf):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5finittopool_755',['tSimpleLivingString_initToPool',['../group__tsimplelivingstring.html#ga87d9705a3cf73b73aecf42083eb3d921',1,'tSimpleLivingString_initToPool(tSimpleLivingString *const, float freq, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#ga87d9705a3cf73b73aecf42083eb3d921',1,'tSimpleLivingString_initToPool(tSimpleLivingString *const pl, float freq, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const mp):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsample_756',['tSimpleLivingString_sample',['../group__tsimplelivingstring.html#ga86a53b69513ad23136a75ed338deca3d',1,'tSimpleLivingString_sample(tSimpleLivingString *const):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#ga86a53b69513ad23136a75ed338deca3d',1,'tSimpleLivingString_sample(tSimpleLivingString *const pl):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsetdampfreq_757',['tSimpleLivingString_setDampFreq',['../group__tsimplelivingstring.html#gafbeb5b41ab1d03c57bdc93e785a6adb7',1,'tSimpleLivingString_setDampFreq(tSimpleLivingString *const, float dampFreq):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#gafbeb5b41ab1d03c57bdc93e785a6adb7',1,'tSimpleLivingString_setDampFreq(tSimpleLivingString *const pl, float dampFreq):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsetdecay_758',['tSimpleLivingString_setDecay',['../group__tsimplelivingstring.html#gad66e79ac86857f2c5c9af831254dcf66',1,'tSimpleLivingString_setDecay(tSimpleLivingString *const, float decay):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#gad66e79ac86857f2c5c9af831254dcf66',1,'tSimpleLivingString_setDecay(tSimpleLivingString *const pl, float decay):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsetfreq_759',['tSimpleLivingString_setFreq',['../group__tsimplelivingstring.html#ga474a710fddae2d86bf79b11384f3709b',1,'tSimpleLivingString_setFreq(tSimpleLivingString *const, float freq):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#ga474a710fddae2d86bf79b11384f3709b',1,'tSimpleLivingString_setFreq(tSimpleLivingString *const pl, float freq):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsetlevmode_760',['tSimpleLivingString_setLevMode',['../group__tsimplelivingstring.html#ga951524437c11b10c1023ea5bf922e50e',1,'tSimpleLivingString_setLevMode(tSimpleLivingString *const, int levMode):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#ga951524437c11b10c1023ea5bf922e50e',1,'tSimpleLivingString_setLevMode(tSimpleLivingString *const pl, int levMode):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsetlevsmoothfactor_761',['tSimpleLivingString_setLevSmoothFactor',['../group__tsimplelivingstring.html#gaeb957c0478dc7181b074dd51505b6f0d',1,'tSimpleLivingString_setLevSmoothFactor(tSimpleLivingString *const, float levSmoothFactor):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#gaeb957c0478dc7181b074dd51505b6f0d',1,'tSimpleLivingString_setLevSmoothFactor(tSimpleLivingString *const pl, float levSmoothFactor):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsetlevstrength_762',['tSimpleLivingString_setLevStrength',['../group__tsimplelivingstring.html#gac76ca3acde529dcae1336fdbfccd498d',1,'tSimpleLivingString_setLevStrength(tSimpleLivingString *const, float levStrength):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#gac76ca3acde529dcae1336fdbfccd498d',1,'tSimpleLivingString_setLevStrength(tSimpleLivingString *const pl, float levStrength):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsettargetlev_763',['tSimpleLivingString_setTargetLev',['../group__tsimplelivingstring.html#ga2d58bf73c0e7e92ddac30eece502e2be',1,'tSimpleLivingString_setTargetLev(tSimpleLivingString *const, float targetLev):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#ga2d58bf73c0e7e92ddac30eece502e2be',1,'tSimpleLivingString_setTargetLev(tSimpleLivingString *const pl, float targetLev):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsetwavelength_764',['tSimpleLivingString_setWaveLength',['../group__tsimplelivingstring.html#ga84804ae6c66949069c185fbc8d8f2ae9',1,'tSimpleLivingString_setWaveLength(tSimpleLivingString *const, float waveLength):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#ga84804ae6c66949069c185fbc8d8f2ae9',1,'tSimpleLivingString_setWaveLength(tSimpleLivingString *const pl, float waveLength):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5ftick_765',['tSimpleLivingString_tick',['../group__tsimplelivingstring.html#gae4a6c036a53365af66a92dac9d86f3c3',1,'tSimpleLivingString_tick(tSimpleLivingString *const, float input):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#gae4a6c036a53365af66a92dac9d86f3c3',1,'tSimpleLivingString_tick(tSimpleLivingString *const pl, float input):&#160;leaf-physical.c']]],
+  ['tsimplepoly_766',['tSimplePoly',['../group__tsimplepoly.html',1,'']]],
+  ['tsimplepoly_5fdeactivatevoice_767',['tSimplePoly_deactivateVoice',['../group__tsimplepoly.html#ga6d801960d20e16f81eff12b420a904c8',1,'tSimplePoly_deactivateVoice(tSimplePoly *const polyh, uint8_t voice):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga6d801960d20e16f81eff12b420a904c8',1,'tSimplePoly_deactivateVoice(tSimplePoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5ffindvoiceassignedtonote_768',['tSimplePoly_findVoiceAssignedToNote',['../group__tsimplepoly.html#ga9a78b4407716cd48468420194f39d811',1,'tSimplePoly_findVoiceAssignedToNote(tSimplePoly *const polyh, uint8_t note):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga9a78b4407716cd48468420194f39d811',1,'tSimplePoly_findVoiceAssignedToNote(tSimplePoly *const polyh, uint8_t note):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5ffree_769',['tSimplePoly_free',['../group__tsimplepoly.html#gae112285fcb27b1b6822b5db474b892d7',1,'tSimplePoly_free(tSimplePoly *const poly):&#160;leaf-midi.c'],['../group__tsimplepoly.html#gae112285fcb27b1b6822b5db474b892d7',1,'tSimplePoly_free(tSimplePoly *const polyh):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fgetnumactivevoices_770',['tSimplePoly_getNumActiveVoices',['../group__tsimplepoly.html#ga7927a37f0b05301c58923ee0bd9b1376',1,'tSimplePoly_getNumActiveVoices(tSimplePoly *const poly):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga7927a37f0b05301c58923ee0bd9b1376',1,'tSimplePoly_getNumActiveVoices(tSimplePoly *const polyh):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fgetnumvoices_771',['tSimplePoly_getNumVoices',['../group__tsimplepoly.html#ga574023fdcde9863f60a88c5171595628',1,'tSimplePoly_getNumVoices(tSimplePoly *const poly):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga574023fdcde9863f60a88c5171595628',1,'tSimplePoly_getNumVoices(tSimplePoly *const polyh):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fgetpitch_772',['tSimplePoly_getPitch',['../group__tsimplepoly.html#ga04edeaf26303e4fd57988b3144063590',1,'tSimplePoly_getPitch(tSimplePoly *const poly, uint8_t voice):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga04edeaf26303e4fd57988b3144063590',1,'tSimplePoly_getPitch(tSimplePoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fgetpitchandcheckactive_773',['tSimplePoly_getPitchAndCheckActive',['../group__tsimplepoly.html#gae147f59b6da64f3af94407da5a6ec3db',1,'tSimplePoly_getPitchAndCheckActive(tSimplePoly *const polyh, uint8_t voice):&#160;leaf-midi.c'],['../group__tsimplepoly.html#gae147f59b6da64f3af94407da5a6ec3db',1,'tSimplePoly_getPitchAndCheckActive(tSimplePoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fgetvelocity_774',['tSimplePoly_getVelocity',['../group__tsimplepoly.html#ga85311b798b65407dcd4de68a8ed7d52d',1,'tSimplePoly_getVelocity(tSimplePoly *const poly, uint8_t voice):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga85311b798b65407dcd4de68a8ed7d52d',1,'tSimplePoly_getVelocity(tSimplePoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5finit_775',['tSimplePoly_init',['../group__tsimplepoly.html#gaad03d289d4860fd6fc570e359da13f15',1,'tSimplePoly_init(tSimplePoly *const poly, int maxNumVoices, LEAF *const leaf):&#160;leaf-midi.c'],['../group__tsimplepoly.html#gaad03d289d4860fd6fc570e359da13f15',1,'tSimplePoly_init(tSimplePoly *const polyh, int maxNumVoices, LEAF *const leaf):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5finittopool_776',['tSimplePoly_initToPool',['../group__tsimplepoly.html#ga67391919fd2cf8b80b80b9a74f0a2f02',1,'tSimplePoly_initToPool(tSimplePoly *const poly, int maxNumVoices, tMempool *const pool):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga67391919fd2cf8b80b80b9a74f0a2f02',1,'tSimplePoly_initToPool(tSimplePoly *const polyh, int maxNumVoices, tMempool *const mp):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fison_777',['tSimplePoly_isOn',['../group__tsimplepoly.html#ga1a55f7b4f9e8926acb9f6126c8e80633',1,'tSimplePoly_isOn(tSimplePoly *const poly, uint8_t voice):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga1a55f7b4f9e8926acb9f6126c8e80633',1,'tSimplePoly_isOn(tSimplePoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fmarkpendingnoteoff_778',['tSimplePoly_markPendingNoteOff',['../group__tsimplepoly.html#ga668c915adab45224835268b08c7f4c80',1,'tSimplePoly_markPendingNoteOff(tSimplePoly *const polyh, uint8_t note):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga668c915adab45224835268b08c7f4c80',1,'tSimplePoly_markPendingNoteOff(tSimplePoly *const polyh, uint8_t note):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fnoteoff_779',['tSimplePoly_noteOff',['../group__tsimplepoly.html#ga12fc7c78f1e2fcd0016a438374eb4ec3',1,'tSimplePoly_noteOff(tSimplePoly *const poly, uint8_t note):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga12fc7c78f1e2fcd0016a438374eb4ec3',1,'tSimplePoly_noteOff(tSimplePoly *const polyh, uint8_t note):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fnoteon_780',['tSimplePoly_noteOn',['../group__tsimplepoly.html#ga704023c95d0eef34c4746a4489626bd9',1,'tSimplePoly_noteOn(tSimplePoly *const poly, int note, uint8_t vel):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga704023c95d0eef34c4746a4489626bd9',1,'tSimplePoly_noteOn(tSimplePoly *const polyh, int note, uint8_t vel):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fsetnumvoices_781',['tSimplePoly_setNumVoices',['../group__tsimplepoly.html#gae11bb769f332621148bfe4e9e966cc1d',1,'tSimplePoly_setNumVoices(tSimplePoly *const poly, uint8_t numVoices):&#160;leaf-midi.c'],['../group__tsimplepoly.html#gae11bb769f332621148bfe4e9e966cc1d',1,'tSimplePoly_setNumVoices(tSimplePoly *const polyh, uint8_t numVoices):&#160;leaf-midi.c']]],
+  ['tsimpleretune_782',['tSimpleRetune',['../group__tsimpleretune.html',1,'']]],
+  ['tsimpleretune_5ffree_783',['tSimpleRetune_free',['../group__tsimpleretune.html#ga3a1f081437fbb7ad75b27fb09c39f096',1,'tSimpleRetune_free(tSimpleRetune *const):&#160;leaf-effects.c'],['../group__tsimpleretune.html#ga3a1f081437fbb7ad75b27fb09c39f096',1,'tSimpleRetune_free(tSimpleRetune *const rt):&#160;leaf-effects.c']]],
+  ['tsimpleretune_5fsetnumvoices_784',['tSimpleRetune_setNumVoices',['../group__tsimpleretune.html#ga7ad6f40fd922775510221226892d8839',1,'tSimpleRetune_setNumVoices(tSimpleRetune *const, int numVoices):&#160;leaf-effects.c'],['../group__tsimpleretune.html#ga7ad6f40fd922775510221226892d8839',1,'tSimpleRetune_setNumVoices(tSimpleRetune *const rt, int numVoices):&#160;leaf-effects.c']]],
+  ['tsimpleretune_5ftick_785',['tSimpleRetune_tick',['../group__tsimpleretune.html#ga641d532934fde59a0489e7fecd28961c',1,'tSimpleRetune_tick(tSimpleRetune *const, float sample):&#160;leaf-effects.c'],['../group__tsimpleretune.html#ga641d532934fde59a0489e7fecd28961c',1,'tSimpleRetune_tick(tSimpleRetune *const rt, float sample):&#160;leaf-effects.c']]],
+  ['tslide_786',['tSlide',['../group__tslide.html',1,'']]],
+  ['tslide_5ffree_787',['tSlide_free',['../group__tslide.html#ga57ba71883af607aaf28f0292e0cee901',1,'tSlide_free(tSlide *const):&#160;leaf-envelopes.c'],['../group__tslide.html#ga57ba71883af607aaf28f0292e0cee901',1,'tSlide_free(tSlide *const sl):&#160;leaf-envelopes.c']]],
+  ['tslide_5finit_788',['tSlide_init',['../group__tslide.html#ga8288a16662a7fa082c4fcad3cea0ab04',1,'tSlide_init(tSlide *const, float upSlide, float downSlide, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__tslide.html#ga8288a16662a7fa082c4fcad3cea0ab04',1,'tSlide_init(tSlide *const sl, float upSlide, float downSlide, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['tslide_5finittopool_789',['tSlide_initToPool',['../group__tslide.html#ga42a348c9028053e0ad3a22f1ac731430',1,'tSlide_initToPool(tSlide *const, float upSlide, float downSlide, tMempool *const):&#160;leaf-envelopes.c'],['../group__tslide.html#ga42a348c9028053e0ad3a22f1ac731430',1,'tSlide_initToPool(tSlide *const sl, float upSlide, float downSlide, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['tslide_5fsetdest_790',['tSlide_setDest',['../group__tslide.html#ga381e81d6bcb9cba92acfe9a68df8c193',1,'tSlide_setDest(tSlide *const sl, float dest):&#160;leaf-envelopes.c'],['../group__tslide.html#ga381e81d6bcb9cba92acfe9a68df8c193',1,'tSlide_setDest(tSlide *const sl, float dest):&#160;leaf-envelopes.c']]],
+  ['tslide_5fsetdownslide_791',['tSlide_setDownSlide',['../group__tslide.html#ga86d8efa014a6428b1338d70603f1eb95',1,'tSlide_setDownSlide(tSlide *const sl, float downSlide):&#160;leaf-envelopes.c'],['../group__tslide.html#ga86d8efa014a6428b1338d70603f1eb95',1,'tSlide_setDownSlide(tSlide *const sl, float downSlide):&#160;leaf-envelopes.c']]],
+  ['tslide_5fsetupslide_792',['tSlide_setUpSlide',['../group__tslide.html#gaac39af0df494460bbc7170a2a34dd7e1',1,'tSlide_setUpSlide(tSlide *const sl, float upSlide):&#160;leaf-envelopes.c'],['../group__tslide.html#gaac39af0df494460bbc7170a2a34dd7e1',1,'tSlide_setUpSlide(tSlide *const sl, float upSlide):&#160;leaf-envelopes.c']]],
+  ['tslide_5ftick_793',['tSlide_tick',['../group__tslide.html#gacdddc23733eda912f51d57cc944062b0',1,'tSlide_tick(tSlide *const, float in):&#160;leaf-envelopes.c'],['../group__tslide.html#gacdddc23733eda912f51d57cc944062b0',1,'tSlide_tick(tSlide *const sl, float in):&#160;leaf-envelopes.c']]],
+  ['tslide_5fticknoinput_794',['tSlide_tickNoInput',['../group__tslide.html#ga0ba5fda0ed766d03ac97ad8d0f068ba1',1,'tSlide_tickNoInput(tSlide *const sl):&#160;leaf-envelopes.c'],['../group__tslide.html#ga0ba5fda0ed766d03ac97ad8d0f068ba1',1,'tSlide_tickNoInput(tSlide *const sl):&#160;leaf-envelopes.c']]],
+  ['tsnac_795',['tSNAC',['../group__tsnac.html',1,'']]],
+  ['tsnac_5ffree_796',['tSNAC_free',['../group__tsnac.html#gad7fc6ce1e80847dfcd9da75d4c734f12',1,'tSNAC_free(tSNAC *const):&#160;leaf-analysis.c'],['../group__tsnac.html#gad7fc6ce1e80847dfcd9da75d4c734f12',1,'tSNAC_free(tSNAC *const snac):&#160;leaf-analysis.c']]],
+  ['tsnac_5fgetfidelity_797',['tSNAC_getFidelity',['../group__tsnac.html#ga8568190ff50745df3b220f9f8dba3289',1,'tSNAC_getFidelity(tSNAC *s):&#160;leaf-analysis.c'],['../group__tsnac.html#ga8568190ff50745df3b220f9f8dba3289',1,'tSNAC_getFidelity(tSNAC *const snac):&#160;leaf-analysis.c']]],
+  ['tsnac_5fgetperiod_798',['tSNAC_getPeriod',['../group__tsnac.html#ga71074b5888fe76260f3c1fae7e2aeec8',1,'tSNAC_getPeriod(tSNAC *s):&#160;leaf-analysis.c'],['../group__tsnac.html#ga71074b5888fe76260f3c1fae7e2aeec8',1,'tSNAC_getPeriod(tSNAC *const snac):&#160;leaf-analysis.c']]],
+  ['tsnac_5finit_799',['tSNAC_init',['../group__tsnac.html#ga5f4005dba1c0470e84ae6bc6845c6d27',1,'tSNAC_init(tSNAC *const, int overlaparg, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tsnac.html#ga5f4005dba1c0470e84ae6bc6845c6d27',1,'tSNAC_init(tSNAC *const snac, int overlaparg, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tsnac_5finittopool_800',['tSNAC_initToPool',['../group__tsnac.html#ga9779c23ab83bf93c8df11a6b4982c0b2',1,'tSNAC_initToPool(tSNAC *const, int overlaparg, tMempool *const):&#160;leaf-analysis.c'],['../group__tsnac.html#ga9779c23ab83bf93c8df11a6b4982c0b2',1,'tSNAC_initToPool(tSNAC *const snac, int overlaparg, tMempool *const mp):&#160;leaf-analysis.c']]],
+  ['tsnac_5fsetbias_801',['tSNAC_setBias',['../group__tsnac.html#ga3dbb9845079ebe1b3dbba647180a1168',1,'tSNAC_setBias(tSNAC *s, float bias):&#160;leaf-analysis.c'],['../group__tsnac.html#ga3dbb9845079ebe1b3dbba647180a1168',1,'tSNAC_setBias(tSNAC *const snac, float bias):&#160;leaf-analysis.c']]],
+  ['tsnac_5fsetminrms_802',['tSNAC_setMinRMS',['../group__tsnac.html#ga777b3cb40c7dcb7826b0945358ffe1ec',1,'tSNAC_setMinRMS(tSNAC *s, float rms):&#160;leaf-analysis.c'],['../group__tsnac.html#ga777b3cb40c7dcb7826b0945358ffe1ec',1,'tSNAC_setMinRMS(tSNAC *const snac, float rms):&#160;leaf-analysis.c']]],
+  ['tsnac_5fsetoverlap_803',['tSNAC_setOverlap',['../group__tsnac.html#gab6a4ff9c52fb26d19f3bc4d080f91845',1,'tSNAC_setOverlap(tSNAC *s, int lap):&#160;leaf-analysis.c'],['../group__tsnac.html#gab6a4ff9c52fb26d19f3bc4d080f91845',1,'tSNAC_setOverlap(tSNAC *const snac, int lap):&#160;leaf-analysis.c']]],
+  ['tsolad_804',['tSOLAD',['../group__tsolad.html',1,'']]],
+  ['tsolad_5ffree_805',['tSOLAD_free',['../group__tsolad.html#ga2e51fbab57ccc810832c23dc3286efb1',1,'tSOLAD_free(tSOLAD *const):&#160;leaf-effects.c'],['../group__tsolad.html#ga2e51fbab57ccc810832c23dc3286efb1',1,'tSOLAD_free(tSOLAD *const wp):&#160;leaf-effects.c']]],
+  ['tsolad_5fresetstate_806',['tSOLAD_resetState',['../group__tsolad.html#ga69b20c8acef373a2590f4e3138d1d4d8',1,'tSOLAD_resetState(tSOLAD *w):&#160;leaf-effects.c'],['../group__tsolad.html#ga69b20c8acef373a2590f4e3138d1d4d8',1,'tSOLAD_resetState(tSOLAD *const wp):&#160;leaf-effects.c']]],
+  ['tsolad_5fsetperiod_807',['tSOLAD_setPeriod',['../group__tsolad.html#ga6ff97dea55ab5fa791fca6a6c4cacdbc',1,'tSOLAD_setPeriod(tSOLAD *w, float period):&#160;leaf-effects.c'],['../group__tsolad.html#ga6ff97dea55ab5fa791fca6a6c4cacdbc',1,'tSOLAD_setPeriod(tSOLAD *const wp, float period):&#160;leaf-effects.c']]],
+  ['tsolad_5fsetpitchfactor_808',['tSOLAD_setPitchFactor',['../group__tsolad.html#ga1b3ffa561a92ba5f64e51eeb670e16ac',1,'tSOLAD_setPitchFactor(tSOLAD *w, float pitchfactor):&#160;leaf-effects.c'],['../group__tsolad.html#ga1b3ffa561a92ba5f64e51eeb670e16ac',1,'tSOLAD_setPitchFactor(tSOLAD *const wp, float pitchfactor):&#160;leaf-effects.c']]],
+  ['tsolad_5fsetreadlag_809',['tSOLAD_setReadLag',['../group__tsolad.html#ga92607d41da7f4fbf93386e071806f788',1,'tSOLAD_setReadLag(tSOLAD *w, float readlag):&#160;leaf-effects.c'],['../group__tsolad.html#ga92607d41da7f4fbf93386e071806f788',1,'tSOLAD_setReadLag(tSOLAD *const wp, float readlag):&#160;leaf-effects.c']]],
+  ['tsquare_810',['tSquare',['../group__tsquare.html',1,'']]],
+  ['tsquare_5ffree_811',['tSquare_free',['../group__tsquare.html#ga1f6fac5cb92fcbca09970b95a2d05d7d',1,'tSquare_free(tSquare *const osc):&#160;leaf-oscillators.c'],['../group__tsquare.html#ga1f6fac5cb92fcbca09970b95a2d05d7d',1,'tSquare_free(tSquare *const cy):&#160;leaf-oscillators.c']]],
+  ['tsquare_5finit_812',['tSquare_init',['../group__tsquare.html#gacaaa2bf1d76371d9b4aeda286a09560f',1,'tSquare_init(tSquare *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tsquare.html#gacaaa2bf1d76371d9b4aeda286a09560f',1,'tSquare_init(tSquare *const cy, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tsquare_5finittopool_813',['tSquare_initToPool',['../group__tsquare.html#gad9c41ce10b6b0c821360f43743544c89',1,'tSquare_initToPool(tSquare *const osc, tMempool *const):&#160;leaf-oscillators.c'],['../group__tsquare.html#gad9c41ce10b6b0c821360f43743544c89',1,'tSquare_initToPool(tSquare *const cy, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['tsquare_5fsetfreq_814',['tSquare_setFreq',['../group__tsquare.html#ga4453bd8e23b1b88ec944c93b8cb575f6',1,'tSquare_setFreq(tSquare *const osc, float freq):&#160;leaf-oscillators.c'],['../group__tsquare.html#ga4453bd8e23b1b88ec944c93b8cb575f6',1,'tSquare_setFreq(tSquare *const cy, float freq):&#160;leaf-oscillators.c']]],
+  ['tsquare_5ftick_815',['tSquare_tick',['../group__tsquare.html#ga00053831170c826962e4f1aa9d6696e2',1,'tSquare_tick(tSquare *const osc):&#160;leaf-oscillators.c'],['../group__tsquare.html#ga00053831170c826962e4f1aa9d6696e2',1,'tSquare_tick(tSquare *const cy):&#160;leaf-oscillators.c']]],
+  ['tstack_816',['tStack',['../group__tstack.html',1,'']]],
+  ['tstack_5fadd_817',['tStack_add',['../group__tstack.html#gabd861307ff5e290b4ae8e45507b9903b',1,'tStack_add(tStack *const stack, uint16_t item):&#160;leaf-midi.c'],['../group__tstack.html#gabd861307ff5e290b4ae8e45507b9903b',1,'tStack_add(tStack *const stack, uint16_t noteVal):&#160;leaf-midi.c']]],
+  ['tstack_5faddifnotalreadythere_818',['tStack_addIfNotAlreadyThere',['../group__tstack.html#ga909528e236aa47978e91227961841ab5',1,'tStack_addIfNotAlreadyThere(tStack *const stack, uint16_t item):&#160;leaf-midi.c'],['../group__tstack.html#ga909528e236aa47978e91227961841ab5',1,'tStack_addIfNotAlreadyThere(tStack *const stack, uint16_t noteVal):&#160;leaf-midi.c']]],
+  ['tstack_5fclear_819',['tStack_clear',['../group__tstack.html#ga3d053d583ed2c643a1a4ea00818d4f8a',1,'tStack_clear(tStack *const stack):&#160;leaf-midi.c'],['../group__tstack.html#ga3d053d583ed2c643a1a4ea00818d4f8a',1,'tStack_clear(tStack *const stack):&#160;leaf-midi.c']]],
+  ['tstack_5fcontains_820',['tStack_contains',['../group__tstack.html#ga8ca0bdad1bce63d0da4cfa6e233ece98',1,'tStack_contains(tStack *const stack, uint16_t item):&#160;leaf-midi.c'],['../group__tstack.html#ga8ca0bdad1bce63d0da4cfa6e233ece98',1,'tStack_contains(tStack *const stack, uint16_t noteVal):&#160;leaf-midi.c']]],
+  ['tstack_5ffirst_821',['tStack_first',['../group__tstack.html#ga1684ca55f7c9d42e2994eed03b329700',1,'tStack_first(tStack *const stack):&#160;leaf-midi.c'],['../group__tstack.html#ga1684ca55f7c9d42e2994eed03b329700',1,'tStack_first(tStack *const stack):&#160;leaf-midi.c']]],
+  ['tstack_5ffree_822',['tStack_free',['../group__tstack.html#gabf348064227f55c30cd2bcac3d899881',1,'tStack_free(tStack *const stack):&#160;leaf-midi.c'],['../group__tstack.html#gabf348064227f55c30cd2bcac3d899881',1,'tStack_free(tStack *const stack):&#160;leaf-midi.c']]],
+  ['tstack_5fget_823',['tStack_get',['../group__tstack.html#ga15d80c513c339ff2c87fb96fcfca9353',1,'tStack_get(tStack *const stack, int index):&#160;leaf-midi.c'],['../group__tstack.html#ga15d80c513c339ff2c87fb96fcfca9353',1,'tStack_get(tStack *const stack, int which):&#160;leaf-midi.c']]],
+  ['tstack_5fgetsize_824',['tStack_getSize',['../group__tstack.html#ga995a3cb4b43476c387f4fd431af923ef',1,'tStack_getSize(tStack *const stack):&#160;leaf-midi.c'],['../group__tstack.html#ga995a3cb4b43476c387f4fd431af923ef',1,'tStack_getSize(tStack *const stack):&#160;leaf-midi.c']]],
+  ['tstack_5finit_825',['tStack_init',['../group__tstack.html#ga0f59d25b2a62af281cb7e5a6337a662a',1,'tStack_init(tStack *const stack, LEAF *const leaf):&#160;leaf-midi.c'],['../group__tstack.html#ga0f59d25b2a62af281cb7e5a6337a662a',1,'tStack_init(tStack *const stack, LEAF *const leaf):&#160;leaf-midi.c']]],
+  ['tstack_5finittopool_826',['tStack_initToPool',['../group__tstack.html#gac6a330c5c8f6fc6138b22c157e527c81',1,'tStack_initToPool(tStack *const stack, tMempool *const pool):&#160;leaf-midi.c'],['../group__tstack.html#gac6a330c5c8f6fc6138b22c157e527c81',1,'tStack_initToPool(tStack *const stack, tMempool *const mp):&#160;leaf-midi.c']]],
+  ['tstack_5fnext_827',['tStack_next',['../group__tstack.html#ga6e0aef2c8bc0f9432b7a2a6541f21550',1,'tStack_next(tStack *const stack):&#160;leaf-midi.c'],['../group__tstack.html#ga6e0aef2c8bc0f9432b7a2a6541f21550',1,'tStack_next(tStack *const stack):&#160;leaf-midi.c']]],
+  ['tstack_5fremove_828',['tStack_remove',['../group__tstack.html#ga559464a399b9606909f9f57e190ead7b',1,'tStack_remove(tStack *const stack, uint16_t item):&#160;leaf-midi.c'],['../group__tstack.html#ga559464a399b9606909f9f57e190ead7b',1,'tStack_remove(tStack *const stack, uint16_t noteVal):&#160;leaf-midi.c']]],
+  ['tstack_5fsetcapacity_829',['tStack_setCapacity',['../group__tstack.html#ga3b5483c9a7cd996e3c62ea9f0895437c',1,'tStack_setCapacity(tStack *const stack, uint16_t cap):&#160;leaf-midi.c'],['../group__tstack.html#ga3b5483c9a7cd996e3c62ea9f0895437c',1,'tStack_setCapacity(tStack *const stack, uint16_t cap):&#160;leaf-midi.c']]],
+  ['tsvf_830',['tSVF',['../group__tsvf.html',1,'']]],
+  ['tsvf_5ffree_831',['tSVF_free',['../group__tsvf.html#ga364e2d82cc7d843ccf63c32f6b6f6c28',1,'tSVF_free(tSVF *const):&#160;leaf-filters.c'],['../group__tsvf.html#ga364e2d82cc7d843ccf63c32f6b6f6c28',1,'tSVF_free(tSVF *const svff):&#160;leaf-filters.c']]],
+  ['tsvf_5finit_832',['tSVF_init',['../group__tsvf.html#gaec95a0aaf02ed9170ea1a4e968acd82d',1,'tSVF_init(tSVF *const, SVFType type, float freq, float Q, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tsvf.html#gaec95a0aaf02ed9170ea1a4e968acd82d',1,'tSVF_init(tSVF *const svff, SVFType type, float freq, float Q, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tsvf_5finittopool_833',['tSVF_initToPool',['../group__tsvf.html#gabcf663debbb880724f1c423c9d37d143',1,'tSVF_initToPool(tSVF *const, SVFType type, float freq, float Q, tMempool *const):&#160;leaf-filters.c'],['../group__tsvf.html#gabcf663debbb880724f1c423c9d37d143',1,'tSVF_initToPool(tSVF *const svff, SVFType type, float freq, float Q, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tsvf_5fsetfreq_834',['tSVF_setFreq',['../group__tsvf.html#ga3b3d320a8d7991a002fa344d23780c78',1,'tSVF_setFreq(tSVF *const, float freq):&#160;leaf-filters.c'],['../group__tsvf.html#ga3b3d320a8d7991a002fa344d23780c78',1,'tSVF_setFreq(tSVF *const svff, float freq):&#160;leaf-filters.c']]],
+  ['tsvf_5fsetfreqandq_835',['tSVF_setFreqAndQ',['../group__tsvf.html#gaf86bb651efd0ad3c7e782c71719e7a0f',1,'tSVF_setFreqAndQ(tSVF *const svff, float freq, float Q):&#160;leaf-filters.c'],['../group__tsvf.html#gaf86bb651efd0ad3c7e782c71719e7a0f',1,'tSVF_setFreqAndQ(tSVF *const svff, float freq, float Q):&#160;leaf-filters.c']]],
+  ['tsvf_5fsetq_836',['tSVF_setQ',['../group__tsvf.html#ga29e6205846d379ffdd4131d0174c8784',1,'tSVF_setQ(tSVF *const, float Q):&#160;leaf-filters.c'],['../group__tsvf.html#ga29e6205846d379ffdd4131d0174c8784',1,'tSVF_setQ(tSVF *const svff, float Q):&#160;leaf-filters.c']]],
+  ['tsvf_5ftick_837',['tSVF_tick',['../group__tsvf.html#gaef34c602f1f798b4e3200c02a09e193b',1,'tSVF_tick(tSVF *const, float v0):&#160;leaf-filters.c'],['../group__tsvf.html#gaef34c602f1f798b4e3200c02a09e193b',1,'tSVF_tick(tSVF *const svff, float v0):&#160;leaf-filters.c']]],
+  ['ttable_838',['tTable',['../group__ttable.html',1,'']]],
+  ['ttable_5ffree_839',['tTable_free',['../group__ttable.html#ga23c68eb02b6f856e4cabd793f386ef3d',1,'tTable_free(tTable *const osc):&#160;leaf-oscillators.c'],['../group__ttable.html#ga23c68eb02b6f856e4cabd793f386ef3d',1,'tTable_free(tTable *const cy):&#160;leaf-oscillators.c']]],
+  ['ttable_5finit_840',['tTable_init',['../group__ttable.html#ga34f0802957415853e9dc64b7fa9355eb',1,'tTable_init(tTable *const osc, float *table, int size, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__ttable.html#ga34f0802957415853e9dc64b7fa9355eb',1,'tTable_init(tTable *const cy, float *waveTable, int size, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['ttable_5finittopool_841',['tTable_initToPool',['../group__ttable.html#gae75a6c3468ae7801c86867860152117b',1,'tTable_initToPool(tTable *const osc, float *table, int size, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__ttable.html#gae75a6c3468ae7801c86867860152117b',1,'tTable_initToPool(tTable *const cy, float *waveTable, int size, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['ttable_5fsetfreq_842',['tTable_setFreq',['../group__ttable.html#ga2dcff23d9b0e98fd706d4880c766320a',1,'tTable_setFreq(tTable *const osc, float freq):&#160;leaf-oscillators.c'],['../group__ttable.html#ga2dcff23d9b0e98fd706d4880c766320a',1,'tTable_setFreq(tTable *const cy, float freq):&#160;leaf-oscillators.c']]],
+  ['ttable_5ftick_843',['tTable_tick',['../group__ttable.html#ga59f59db52bf98cf1852d7dcd6f09122c',1,'tTable_tick(tTable *const osc):&#160;leaf-oscillators.c'],['../group__ttable.html#ga59f59db52bf98cf1852d7dcd6f09122c',1,'tTable_tick(tTable *const cy):&#160;leaf-oscillators.c']]],
+  ['ttalkbox_844',['tTalkbox',['../group__ttalkbox.html',1,'']]],
+  ['ttalkbox_5ffree_845',['tTalkbox_free',['../group__ttalkbox.html#ga5f1f85266d1c3e968b9f277fd6530e61',1,'tTalkbox_free(tTalkbox *const):&#160;leaf-effects.c'],['../group__ttalkbox.html#ga5f1f85266d1c3e968b9f277fd6530e61',1,'tTalkbox_free(tTalkbox *const voc):&#160;leaf-effects.c']]],
+  ['ttalkbox_5finit_846',['tTalkbox_init',['../group__ttalkbox.html#ga18a1ddfa2f61e60d6ebef394d65f08c6',1,'tTalkbox_init(tTalkbox *const, int bufsize, LEAF *const leaf):&#160;leaf-effects.c'],['../group__ttalkbox.html#ga18a1ddfa2f61e60d6ebef394d65f08c6',1,'tTalkbox_init(tTalkbox *const voc, int bufsize, LEAF *const leaf):&#160;leaf-effects.c']]],
+  ['ttalkbox_5finittopool_847',['tTalkbox_initToPool',['../group__ttalkbox.html#ga8f10b76186682cda5b4a546df84c35e3',1,'tTalkbox_initToPool(tTalkbox *const, int bufsize, tMempool *const):&#160;leaf-effects.c'],['../group__ttalkbox.html#ga8f10b76186682cda5b4a546df84c35e3',1,'tTalkbox_initToPool(tTalkbox *const voc, int bufsize, tMempool *const mp):&#160;leaf-effects.c']]],
+  ['ttalkbox_5flpcdurbin_848',['tTalkbox_lpcDurbin',['../group__ttalkbox.html#gaaba470c9d175927857b9befd5e903da8',1,'tTalkbox_lpcDurbin(float *r, int p, float *k, float *g):&#160;leaf-effects.c'],['../group__ttalkbox.html#gaaba470c9d175927857b9befd5e903da8',1,'tTalkbox_lpcDurbin(float *r, int p, float *k, float *g):&#160;leaf-effects.c']]],
+  ['ttalkbox_5fsetfreeze_849',['tTalkbox_setFreeze',['../group__ttalkbox.html#ga9345cb1b1bdb78e2c264dc711c29050b',1,'tTalkbox_setFreeze(tTalkbox *const voc, float freeze):&#160;leaf-effects.c'],['../group__ttalkbox.html#ga9345cb1b1bdb78e2c264dc711c29050b',1,'tTalkbox_setFreeze(tTalkbox *const voc, float freeze):&#160;leaf-effects.c']]],
+  ['ttalkbox_5fsetquality_850',['tTalkbox_setQuality',['../group__ttalkbox.html#gae0e16e4627683deeb7d849f9f6b13367',1,'tTalkbox_setQuality(tTalkbox *const, float quality):&#160;leaf-effects.c'],['../group__ttalkbox.html#gae0e16e4627683deeb7d849f9f6b13367',1,'tTalkbox_setQuality(tTalkbox *const voc, float quality):&#160;leaf-effects.c']]],
+  ['ttalkbox_5fsetwarpfactor_851',['tTalkbox_setWarpFactor',['../group__ttalkbox.html#ga15d263af4269739442c7187a403996e4',1,'tTalkbox_setWarpFactor(tTalkbox *const voc, float warp):&#160;leaf-effects.c'],['../group__ttalkbox.html#ga15d263af4269739442c7187a403996e4',1,'tTalkbox_setWarpFactor(tTalkbox *const voc, float warpFactor):&#160;leaf-effects.c']]],
+  ['ttalkbox_5fsetwarpon_852',['tTalkbox_setWarpOn',['../group__ttalkbox.html#ga37320fd9c7f3c4d065fa4ae27431bc61',1,'tTalkbox_setWarpOn(tTalkbox *const voc, float warpOn):&#160;leaf-effects.c'],['../group__ttalkbox.html#ga37320fd9c7f3c4d065fa4ae27431bc61',1,'tTalkbox_setWarpOn(tTalkbox *const voc, float warpOn):&#160;leaf-effects.c']]],
+  ['ttalkbox_5fsuspend_853',['tTalkbox_suspend',['../group__ttalkbox.html#ga361f8a48a8ac118804852e99022a2144',1,'tTalkbox_suspend(tTalkbox *const):&#160;leaf-effects.c'],['../group__ttalkbox.html#ga361f8a48a8ac118804852e99022a2144',1,'tTalkbox_suspend(tTalkbox *const voc):&#160;leaf-effects.c']]],
+  ['ttalkbox_5ftick_854',['tTalkbox_tick',['../group__ttalkbox.html#gab45e4c3be7561f157b4ab47de8d939db',1,'tTalkbox_tick(tTalkbox *const, float synth, float voice):&#160;leaf-effects.c'],['../group__ttalkbox.html#gab45e4c3be7561f157b4ab47de8d939db',1,'tTalkbox_tick(tTalkbox *const voc, float synth, float voice):&#160;leaf-effects.c']]],
+  ['ttalkbox_5ftickfrozen_855',['tTalkbox_tickFrozen',['../group__ttalkbox.html#gafd5193315cf309b8c7607795bc5ad995',1,'leaf-effects.h']]],
+  ['ttalkbox_5fupdate_856',['tTalkbox_update',['../group__ttalkbox.html#gabdfa3fca0a50509623d4c57d851f3315',1,'tTalkbox_update(tTalkbox *const):&#160;leaf-effects.c'],['../group__ttalkbox.html#gabdfa3fca0a50509623d4c57d851f3315',1,'tTalkbox_update(tTalkbox *const voc):&#160;leaf-effects.c']]],
+  ['ttalkbox_5fwarpedautocorrelate_857',['tTalkbox_warpedAutocorrelate',['../group__ttalkbox.html#ga881ae8cbae41f12f2fb4a7446d73a6be',1,'tTalkbox_warpedAutocorrelate(float *x, double *dl, double *Rt, unsigned int L, float *R, unsigned int P, float lambda):&#160;leaf-effects.c'],['../group__ttalkbox.html#ga881ae8cbae41f12f2fb4a7446d73a6be',1,'tTalkbox_warpedAutocorrelate(float *x, double *dl, double *Rt, unsigned int L, float *R, unsigned int P, float lambda):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_858',['tTalkboxFloat',['../group__ttalkboxfloat.html',1,'']]],
+  ['ttalkboxfloat_5ffree_859',['tTalkboxFloat_free',['../group__ttalkboxfloat.html#gabbd684033b9869aaac6eb57a694904d9',1,'tTalkboxFloat_free(tTalkboxFloat *const):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#gabbd684033b9869aaac6eb57a694904d9',1,'tTalkboxFloat_free(tTalkboxFloat *const voc):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5finit_860',['tTalkboxFloat_init',['../group__ttalkboxfloat.html#ga6d29a46ee0c008f30e008f7634524e10',1,'tTalkboxFloat_init(tTalkboxFloat *const, int bufsize, LEAF *const leaf):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#ga6d29a46ee0c008f30e008f7634524e10',1,'tTalkboxFloat_init(tTalkboxFloat *const voc, int bufsize, LEAF *const leaf):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5finittopool_861',['tTalkboxFloat_initToPool',['../group__ttalkboxfloat.html#ga10ab230431665f2b621fd0b21b366e02',1,'tTalkboxFloat_initToPool(tTalkboxFloat *const, int bufsize, tMempool *const):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#ga10ab230431665f2b621fd0b21b366e02',1,'tTalkboxFloat_initToPool(tTalkboxFloat *const voc, int bufsize, tMempool *const mp):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5flpcdurbin_862',['tTalkboxFloat_lpcDurbin',['../group__ttalkboxfloat.html#ga667dcd77640c7a6b2fa3995d6d2190be',1,'tTalkboxFloat_lpcDurbin(float *r, int p, float *k, float *g):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#ga667dcd77640c7a6b2fa3995d6d2190be',1,'tTalkboxFloat_lpcDurbin(float *r, int p, float *k, float *g):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5fsetquality_863',['tTalkboxFloat_setQuality',['../group__ttalkboxfloat.html#ga9f9fbc4bd62efcd9502a0217740e5366',1,'tTalkboxFloat_setQuality(tTalkboxFloat *const, float quality):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#ga9f9fbc4bd62efcd9502a0217740e5366',1,'tTalkboxFloat_setQuality(tTalkboxFloat *const voc, float quality):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5fsetwarpfactor_864',['tTalkboxFloat_setWarpFactor',['../group__ttalkboxfloat.html#gad01eb39b5892107d65a3590f3ea69fec',1,'tTalkboxFloat_setWarpFactor(tTalkboxFloat *const voc, float warp):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#gad01eb39b5892107d65a3590f3ea69fec',1,'tTalkboxFloat_setWarpFactor(tTalkboxFloat *const voc, float warpFactor):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5fsuspend_865',['tTalkboxFloat_suspend',['../group__ttalkboxfloat.html#gac8456d804e084f2c4938d1255c723cfc',1,'tTalkboxFloat_suspend(tTalkboxFloat *const):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#gac8456d804e084f2c4938d1255c723cfc',1,'tTalkboxFloat_suspend(tTalkboxFloat *const voc):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5ftick_866',['tTalkboxFloat_tick',['../group__ttalkboxfloat.html#ga83b3a42d6348a062eaed4eace6fa9461',1,'tTalkboxFloat_tick(tTalkboxFloat *const, float synth, float voice):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#ga83b3a42d6348a062eaed4eace6fa9461',1,'tTalkboxFloat_tick(tTalkboxFloat *const voc, float synth, float voice):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5ftickfrozen_867',['tTalkboxFloat_tickFrozen',['../group__ttalkboxfloat.html#ga7d3e3bc6ecf3e1bd9c1ebe5f717ba06b',1,'leaf-effects.h']]],
+  ['ttalkboxfloat_5fupdate_868',['tTalkboxFloat_update',['../group__ttalkboxfloat.html#ga994b70735a97c25f30a7f26981c3334e',1,'tTalkboxFloat_update(tTalkboxFloat *const):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#ga994b70735a97c25f30a7f26981c3334e',1,'tTalkboxFloat_update(tTalkboxFloat *const voc):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5fwarpedautocorrelate_869',['tTalkboxFloat_warpedAutocorrelate',['../group__ttalkboxfloat.html#gadcbdd544e5d6a3d5b46cead0044dfcfa',1,'tTalkboxFloat_warpedAutocorrelate(float *x, float *dl, float *Rt, unsigned int L, float *R, unsigned int P, float lambda):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#gadcbdd544e5d6a3d5b46cead0044dfcfa',1,'tTalkboxFloat_warpedAutocorrelate(float *x, float *dl, float *Rt, unsigned int L, float *R, unsigned int P, float lambda):&#160;leaf-effects.c']]],
+  ['ttapedelay_870',['tTapeDelay',['../group__ttapedelay.html',1,'']]],
+  ['ttapedelay_5faddto_871',['tTapeDelay_addTo',['../group__ttapedelay.html#ga17c1f8359ab1b2fd9c38981ca7d018f1',1,'tTapeDelay_addTo(tTapeDelay *const, float value, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga17c1f8359ab1b2fd9c38981ca7d018f1',1,'tTapeDelay_addTo(tTapeDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['ttapedelay_5fclear_872',['tTapeDelay_clear',['../group__ttapedelay.html#ga984e1e72996c5833bcd99c39bf189bcb',1,'tTapeDelay_clear(tTapeDelay *const):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga984e1e72996c5833bcd99c39bf189bcb',1,'tTapeDelay_clear(tTapeDelay *const dl):&#160;leaf-delay.c']]],
+  ['ttapedelay_5ffree_873',['tTapeDelay_free',['../group__ttapedelay.html#ga4150731cc6b415a799818e32eabe5cc2',1,'tTapeDelay_free(tTapeDelay *const):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga4150731cc6b415a799818e32eabe5cc2',1,'tTapeDelay_free(tTapeDelay *const dl):&#160;leaf-delay.c']]],
+  ['ttapedelay_5fgetdelay_874',['tTapeDelay_getDelay',['../group__ttapedelay.html#ga5141a6c872bda215f52f93d480af75d4',1,'tTapeDelay_getDelay(tTapeDelay *const):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga5141a6c872bda215f52f93d480af75d4',1,'tTapeDelay_getDelay(tTapeDelay *dl):&#160;leaf-delay.c']]],
+  ['ttapedelay_5fgetlastin_875',['tTapeDelay_getLastIn',['../group__ttapedelay.html#ga19c905254cabf4d51f863ee8d92804ec',1,'tTapeDelay_getLastIn(tTapeDelay *const):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga19c905254cabf4d51f863ee8d92804ec',1,'tTapeDelay_getLastIn(tTapeDelay *const dl):&#160;leaf-delay.c']]],
+  ['ttapedelay_5fgetlastout_876',['tTapeDelay_getLastOut',['../group__ttapedelay.html#gae22aee2d1f8edf088a5df1f4da2a2f9f',1,'tTapeDelay_getLastOut(tTapeDelay *const):&#160;leaf-delay.c'],['../group__ttapedelay.html#gae22aee2d1f8edf088a5df1f4da2a2f9f',1,'tTapeDelay_getLastOut(tTapeDelay *const dl):&#160;leaf-delay.c']]],
+  ['ttapedelay_5fincrementinpoint_877',['tTapeDelay_incrementInPoint',['../group__ttapedelay.html#ga2207c4d6a5ea82102ec5e26dba957c66',1,'tTapeDelay_incrementInPoint(tTapeDelay *const dl):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga2207c4d6a5ea82102ec5e26dba957c66',1,'tTapeDelay_incrementInPoint(tTapeDelay *const dl):&#160;leaf-delay.c']]],
+  ['ttapedelay_5finit_878',['tTapeDelay_init',['../group__ttapedelay.html#ga11ce0d93fc719d09f9d2832086cb2e7f',1,'tTapeDelay_init(tTapeDelay *const, float delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga11ce0d93fc719d09f9d2832086cb2e7f',1,'tTapeDelay_init(tTapeDelay *const dl, float delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c']]],
+  ['ttapedelay_5finittopool_879',['tTapeDelay_initToPool',['../group__ttapedelay.html#ga2ceac9b3d3870c4a8ad0b9f8b795f829',1,'tTapeDelay_initToPool(tTapeDelay *const, float delay, uint32_t maxDelay, tMempool *const):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga2ceac9b3d3870c4a8ad0b9f8b795f829',1,'tTapeDelay_initToPool(tTapeDelay *const dl, float delay, uint32_t maxDelay, tMempool *const mp):&#160;leaf-delay.c']]],
+  ['ttapedelay_5fsetdelay_880',['tTapeDelay_setDelay',['../group__ttapedelay.html#ga99b94b13f3841e3b4b4915301854c03e',1,'tTapeDelay_setDelay(tTapeDelay *const, float delay):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga99b94b13f3841e3b4b4915301854c03e',1,'tTapeDelay_setDelay(tTapeDelay *const dl, float delay):&#160;leaf-delay.c']]],
+  ['ttapedelay_5ftapin_881',['tTapeDelay_tapIn',['../group__ttapedelay.html#gae3e1efc7c18c73defe5cdb0b9fa18e30',1,'tTapeDelay_tapIn(tTapeDelay *const, float in, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__ttapedelay.html#gae3e1efc7c18c73defe5cdb0b9fa18e30',1,'tTapeDelay_tapIn(tTapeDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['ttapedelay_5ftapout_882',['tTapeDelay_tapOut',['../group__ttapedelay.html#ga50a4fcd89b612b1633e47d14d9de8844',1,'tTapeDelay_tapOut(tTapeDelay *const d, float tapDelay):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga50a4fcd89b612b1633e47d14d9de8844',1,'tTapeDelay_tapOut(tTapeDelay *const dl, float tapDelay):&#160;leaf-delay.c']]],
+  ['ttapedelay_5ftick_883',['tTapeDelay_tick',['../group__ttapedelay.html#ga3327247d0d5121629f841e355aa17780',1,'tTapeDelay_tick(tTapeDelay *const, float sample):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga3327247d0d5121629f841e355aa17780',1,'tTapeDelay_tick(tTapeDelay *const dl, float input):&#160;leaf-delay.c']]],
+  ['tthreshold_884',['tThreshold',['../group__tthreshold.html',1,'']]],
+  ['tthreshold_5ffree_885',['tThreshold_free',['../group__tthreshold.html#ga559cdc78b961faa603a1fbe53b419ab6',1,'tThreshold_free(tThreshold *const):&#160;leaf-dynamics.c'],['../group__tthreshold.html#ga559cdc78b961faa603a1fbe53b419ab6',1,'tThreshold_free(tThreshold *const th):&#160;leaf-dynamics.c']]],
+  ['tthreshold_5finit_886',['tThreshold_init',['../group__tthreshold.html#gac5e076322e91d0fc51bb78f670ae6654',1,'tThreshold_init(tThreshold *const, float low, float high, LEAF *const leaf):&#160;leaf-dynamics.c'],['../group__tthreshold.html#gac5e076322e91d0fc51bb78f670ae6654',1,'tThreshold_init(tThreshold *const th, float low, float high, LEAF *const leaf):&#160;leaf-dynamics.c']]],
+  ['tthreshold_5finittopool_887',['tThreshold_initToPool',['../group__tthreshold.html#ga8929d72fab02f08b94568f2b26b26218',1,'tThreshold_initToPool(tThreshold *const, float low, float high, tMempool *const):&#160;leaf-dynamics.c'],['../group__tthreshold.html#ga8929d72fab02f08b94568f2b26b26218',1,'tThreshold_initToPool(tThreshold *const th, float low, float high, tMempool *const mp):&#160;leaf-dynamics.c']]],
+  ['tthreshold_5fsethigh_888',['tThreshold_setHigh',['../group__tthreshold.html#gad9e0d9f799c1c63cb6c6847518ee6796',1,'tThreshold_setHigh(tThreshold *const, float high):&#160;leaf-dynamics.c'],['../group__tthreshold.html#gad9e0d9f799c1c63cb6c6847518ee6796',1,'tThreshold_setHigh(tThreshold *const th, float high):&#160;leaf-dynamics.c']]],
+  ['tthreshold_5fsetlow_889',['tThreshold_setLow',['../group__tthreshold.html#ga20ecba1e635f7ae39b7f3509ea0e2e28',1,'tThreshold_setLow(tThreshold *const, float low):&#160;leaf-dynamics.c'],['../group__tthreshold.html#ga20ecba1e635f7ae39b7f3509ea0e2e28',1,'tThreshold_setLow(tThreshold *const th, float low):&#160;leaf-dynamics.c']]],
+  ['tthreshold_5ftick_890',['tThreshold_tick',['../group__tthreshold.html#ga2e7f0159dfd715e5f7c7076d73bd0015',1,'tThreshold_tick(tThreshold *const, float input):&#160;leaf-dynamics.c'],['../group__tthreshold.html#ga2e7f0159dfd715e5f7c7076d73bd0015',1,'tThreshold_tick(tThreshold *const th, float in):&#160;leaf-dynamics.c']]],
+  ['ttri_891',['tTri',['../group__ttri.html',1,'']]],
+  ['ttri_5ffree_892',['tTri_free',['../group__ttri.html#ga49739309d127ae64ee2854d771b04fe2',1,'tTri_free(tTri *const osc):&#160;leaf-oscillators.c'],['../group__ttri.html#ga49739309d127ae64ee2854d771b04fe2',1,'tTri_free(tTri *const cy):&#160;leaf-oscillators.c']]],
+  ['ttri_5finit_893',['tTri_init',['../group__ttri.html#ga84143634f91977f6617ca0b7e50b649d',1,'tTri_init(tTri *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__ttri.html#ga84143634f91977f6617ca0b7e50b649d',1,'tTri_init(tTri *const osc, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['ttri_5finittopool_894',['tTri_initToPool',['../group__ttri.html#gabad427341c15462ec3fe9f0b36f3e26c',1,'tTri_initToPool(tTri *const osc, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__ttri.html#gabad427341c15462ec3fe9f0b36f3e26c',1,'tTri_initToPool(tTri *const osc, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['ttri_5fsetfreq_895',['tTri_setFreq',['../group__ttri.html#gab77b067320cc0124252fdd92d0bcdef0',1,'tTri_setFreq(tTri *const osc, float freq):&#160;leaf-oscillators.c'],['../group__ttri.html#gab77b067320cc0124252fdd92d0bcdef0',1,'tTri_setFreq(tTri *const osc, float freq):&#160;leaf-oscillators.c']]],
+  ['ttri_5fsetskew_896',['tTri_setSkew',['../group__ttri.html#gab6740de0f9cfdfe60f03c4bcb72482f8',1,'tTri_setSkew(tTri *const osc, float skew):&#160;leaf-oscillators.c'],['../group__ttri.html#gab6740de0f9cfdfe60f03c4bcb72482f8',1,'tTri_setSkew(tTri *const osc, float skew):&#160;leaf-oscillators.c']]],
+  ['ttri_5ftick_897',['tTri_tick',['../group__ttri.html#gabf569fb94b1ed5d1695e8c09f9b0f09d',1,'tTri_tick(tTri *const osc):&#160;leaf-oscillators.c'],['../group__ttri.html#gabf569fb94b1ed5d1695e8c09f9b0f09d',1,'tTri_tick(tTri *const osc):&#160;leaf-oscillators.c']]],
+  ['ttriangle_898',['tTriangle',['../group__ttriangle.html',1,'']]],
+  ['ttriangle_5ffree_899',['tTriangle_free',['../group__ttriangle.html#gabb07623117c0d448839b808df2ea6f35',1,'tTriangle_free(tTriangle *const osc):&#160;leaf-oscillators.c'],['../group__ttriangle.html#gabb07623117c0d448839b808df2ea6f35',1,'tTriangle_free(tTriangle *const cy):&#160;leaf-oscillators.c']]],
+  ['ttriangle_5finit_900',['tTriangle_init',['../group__ttriangle.html#ga50f2f0c7a69471479484560a94a11fbb',1,'tTriangle_init(tTriangle *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__ttriangle.html#ga50f2f0c7a69471479484560a94a11fbb',1,'tTriangle_init(tTriangle *const cy, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['ttriangle_5finittopool_901',['tTriangle_initToPool',['../group__ttriangle.html#gac50568ee121737e782e495e9afd0d523',1,'tTriangle_initToPool(tTriangle *const osc, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__ttriangle.html#gac50568ee121737e782e495e9afd0d523',1,'tTriangle_initToPool(tTriangle *const cy, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['ttriangle_5fsetfreq_902',['tTriangle_setFreq',['../group__ttriangle.html#ga02f6034d5442b55d1beda63fe7918fcb',1,'tTriangle_setFreq(tTriangle *const osc, float freq):&#160;leaf-oscillators.c'],['../group__ttriangle.html#ga02f6034d5442b55d1beda63fe7918fcb',1,'tTriangle_setFreq(tTriangle *const cy, float freq):&#160;leaf-oscillators.c']]],
+  ['ttriangle_5ftick_903',['tTriangle_tick',['../group__ttriangle.html#ga036ec99241852ea7336a3a7e8bcd2fc7',1,'tTriangle_tick(tTriangle *const osc):&#160;leaf-oscillators.c'],['../group__ttriangle.html#ga036ec99241852ea7336a3a7e8bcd2fc7',1,'tTriangle_tick(tTriangle *const cy):&#160;leaf-oscillators.c']]],
+  ['ttwopole_904',['tTwoPole',['../group__ttwopole.html',1,'']]],
+  ['ttwopole_5ffree_905',['tTwoPole_free',['../group__ttwopole.html#ga20e88350ffe6c751a0e2248bab393706',1,'tTwoPole_free(tTwoPole *const):&#160;leaf-filters.c'],['../group__ttwopole.html#ga20e88350ffe6c751a0e2248bab393706',1,'tTwoPole_free(tTwoPole *const ft):&#160;leaf-filters.c']]],
+  ['ttwopole_5finit_906',['tTwoPole_init',['../group__ttwopole.html#ga437e9e3fd63636ab7fefcd58462278fa',1,'tTwoPole_init(tTwoPole *const, LEAF *const leaf):&#160;leaf-filters.c'],['../group__ttwopole.html#ga437e9e3fd63636ab7fefcd58462278fa',1,'tTwoPole_init(tTwoPole *const ft, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['ttwopole_5finittopool_907',['tTwoPole_initToPool',['../group__ttwopole.html#ga55ee401b5734305e263e0095d87e221b',1,'tTwoPole_initToPool(tTwoPole *const, tMempool *const):&#160;leaf-filters.c'],['../group__ttwopole.html#ga55ee401b5734305e263e0095d87e221b',1,'tTwoPole_initToPool(tTwoPole *const ft, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['ttwopole_5fseta1_908',['tTwoPole_setA1',['../group__ttwopole.html#ga914f59f7f7f48b948ac21f1dc76bbb30',1,'tTwoPole_setA1(tTwoPole *const, float a1):&#160;leaf-filters.c'],['../group__ttwopole.html#ga914f59f7f7f48b948ac21f1dc76bbb30',1,'tTwoPole_setA1(tTwoPole *const ft, float a1):&#160;leaf-filters.c']]],
+  ['ttwopole_5fseta2_909',['tTwoPole_setA2',['../group__ttwopole.html#ga8b1df900582e1961bab7ea00a6648c3d',1,'tTwoPole_setA2(tTwoPole *const, float a2):&#160;leaf-filters.c'],['../group__ttwopole.html#ga8b1df900582e1961bab7ea00a6648c3d',1,'tTwoPole_setA2(tTwoPole *const ft, float a2):&#160;leaf-filters.c']]],
+  ['ttwopole_5fsetb0_910',['tTwoPole_setB0',['../group__ttwopole.html#gaa643934d1d292fcf856fc1be6b7eb3a8',1,'tTwoPole_setB0(tTwoPole *const, float b0):&#160;leaf-filters.c'],['../group__ttwopole.html#gaa643934d1d292fcf856fc1be6b7eb3a8',1,'tTwoPole_setB0(tTwoPole *const ft, float b0):&#160;leaf-filters.c']]],
+  ['ttwopole_5fsetcoefficients_911',['tTwoPole_setCoefficients',['../group__ttwopole.html#ga2a70b13cb9039c9dd9c1a1407c26ff4c',1,'tTwoPole_setCoefficients(tTwoPole *const, float b0, float a1, float a2):&#160;leaf-filters.c'],['../group__ttwopole.html#ga2a70b13cb9039c9dd9c1a1407c26ff4c',1,'tTwoPole_setCoefficients(tTwoPole *const ft, float b0, float a1, float a2):&#160;leaf-filters.c']]],
+  ['ttwopole_5fsetgain_912',['tTwoPole_setGain',['../group__ttwopole.html#gad1f982ce04f2d4d4505b77bbc70d5080',1,'tTwoPole_setGain(tTwoPole *const, float gain):&#160;leaf-filters.c'],['../group__ttwopole.html#gad1f982ce04f2d4d4505b77bbc70d5080',1,'tTwoPole_setGain(tTwoPole *const ft, float gain):&#160;leaf-filters.c']]],
+  ['ttwopole_5fsetresonance_913',['tTwoPole_setResonance',['../group__ttwopole.html#gaef4a460381c662c98f60cce91a1f8924',1,'tTwoPole_setResonance(tTwoPole *const, float freq, float radius, int normalize):&#160;leaf-filters.c'],['../group__ttwopole.html#gaef4a460381c662c98f60cce91a1f8924',1,'tTwoPole_setResonance(tTwoPole *const ft, float frequency, float radius, int normalize):&#160;leaf-filters.c']]],
+  ['ttwopole_5ftick_914',['tTwoPole_tick',['../group__ttwopole.html#ga98456b845592b69f0088421c46d25e7c',1,'tTwoPole_tick(tTwoPole *const, float input):&#160;leaf-filters.c'],['../group__ttwopole.html#ga98456b845592b69f0088421c46d25e7c',1,'tTwoPole_tick(tTwoPole *const ft, float input):&#160;leaf-filters.c']]],
+  ['ttwozero_915',['tTwoZero',['../group__ttwozero.html',1,'']]],
+  ['ttwozero_5ffree_916',['tTwoZero_free',['../group__ttwozero.html#gadc24b26d9a21905fe56a42a6eeec70a1',1,'tTwoZero_free(tTwoZero *const):&#160;leaf-filters.c'],['../group__ttwozero.html#gadc24b26d9a21905fe56a42a6eeec70a1',1,'tTwoZero_free(tTwoZero *const ft):&#160;leaf-filters.c']]],
+  ['ttwozero_5finit_917',['tTwoZero_init',['../group__ttwozero.html#gacebbb6bc52b6f785d3209369366f4932',1,'tTwoZero_init(tTwoZero *const, LEAF *const leaf):&#160;leaf-filters.c'],['../group__ttwozero.html#gacebbb6bc52b6f785d3209369366f4932',1,'tTwoZero_init(tTwoZero *const ft, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['ttwozero_5finittopool_918',['tTwoZero_initToPool',['../group__ttwozero.html#ga1a327119904fbcdb8f71f28629bb14d4',1,'tTwoZero_initToPool(tTwoZero *const, tMempool *const):&#160;leaf-filters.c'],['../group__ttwozero.html#ga1a327119904fbcdb8f71f28629bb14d4',1,'tTwoZero_initToPool(tTwoZero *const ft, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['ttwozero_5fsetb0_919',['tTwoZero_setB0',['../group__ttwozero.html#gae344592b94dcf9493aa9fdb9b363b8ac',1,'tTwoZero_setB0(tTwoZero *const, float b0):&#160;leaf-filters.c'],['../group__ttwozero.html#gae344592b94dcf9493aa9fdb9b363b8ac',1,'tTwoZero_setB0(tTwoZero *const ft, float b0):&#160;leaf-filters.c']]],
+  ['ttwozero_5fsetb1_920',['tTwoZero_setB1',['../group__ttwozero.html#ga8f7eea8cd31ae96e300d8398ee988c8b',1,'tTwoZero_setB1(tTwoZero *const, float b1):&#160;leaf-filters.c'],['../group__ttwozero.html#ga8f7eea8cd31ae96e300d8398ee988c8b',1,'tTwoZero_setB1(tTwoZero *const ft, float b1):&#160;leaf-filters.c']]],
+  ['ttwozero_5fsetb2_921',['tTwoZero_setB2',['../group__ttwozero.html#ga57cfdc780478243c74335fb85fdc2620',1,'leaf-filters.h']]],
+  ['ttwozero_5fsetcoefficients_922',['tTwoZero_setCoefficients',['../group__ttwozero.html#ga0875c43313e952ee2dcd86247efef096',1,'tTwoZero_setCoefficients(tTwoZero *const, float b0, float b1, float b2):&#160;leaf-filters.c'],['../group__ttwozero.html#ga0875c43313e952ee2dcd86247efef096',1,'tTwoZero_setCoefficients(tTwoZero *const ft, float b0, float b1, float b2):&#160;leaf-filters.c']]],
+  ['ttwozero_5fsetgain_923',['tTwoZero_setGain',['../group__ttwozero.html#gaaeeb223d8133a3b4d6e249b1a9cbae05',1,'tTwoZero_setGain(tTwoZero *const, float gain):&#160;leaf-filters.c'],['../group__ttwozero.html#gaaeeb223d8133a3b4d6e249b1a9cbae05',1,'tTwoZero_setGain(tTwoZero *const ft, float gain):&#160;leaf-filters.c']]],
+  ['ttwozero_5fsetnotch_924',['tTwoZero_setNotch',['../group__ttwozero.html#gafbcfc71b7c4eccc53cc104c3ceb83eba',1,'tTwoZero_setNotch(tTwoZero *const, float frequency, float radius):&#160;leaf-filters.c'],['../group__ttwozero.html#gafbcfc71b7c4eccc53cc104c3ceb83eba',1,'tTwoZero_setNotch(tTwoZero *const ft, float freq, float radius):&#160;leaf-filters.c']]],
+  ['ttwozero_5ftick_925',['tTwoZero_tick',['../group__ttwozero.html#gaa717ce92df413200e3dfe7f5322cdd41',1,'tTwoZero_tick(tTwoZero *const, float input):&#160;leaf-filters.c'],['../group__ttwozero.html#gaa717ce92df413200e3dfe7f5322cdd41',1,'tTwoZero_tick(tTwoZero *const ft, float input):&#160;leaf-filters.c']]],
+  ['tvocoder_926',['tVocoder',['../group__tvocoder.html',1,'']]],
+  ['tvocoder_5ffree_927',['tVocoder_free',['../group__tvocoder.html#gaa54cfb22d5fab7c12d70d7e5fd4a0cd0',1,'tVocoder_free(tVocoder *const):&#160;leaf-effects.c'],['../group__tvocoder.html#gaa54cfb22d5fab7c12d70d7e5fd4a0cd0',1,'tVocoder_free(tVocoder *const voc):&#160;leaf-effects.c']]],
+  ['tvocoder_5finit_928',['tVocoder_init',['../group__tvocoder.html#ga687d4d2f952579f5df6d9c280ef9e0eb',1,'tVocoder_init(tVocoder *const, LEAF *const leaf):&#160;leaf-effects.c'],['../group__tvocoder.html#ga687d4d2f952579f5df6d9c280ef9e0eb',1,'tVocoder_init(tVocoder *const voc, LEAF *const leaf):&#160;leaf-effects.c']]],
+  ['tvocoder_5finittopool_929',['tVocoder_initToPool',['../group__tvocoder.html#gad625ecd68ef438606e5a82fe11a3484f',1,'tVocoder_initToPool(tVocoder *const, tMempool *const):&#160;leaf-effects.c'],['../group__tvocoder.html#gad625ecd68ef438606e5a82fe11a3484f',1,'tVocoder_initToPool(tVocoder *const voc, tMempool *const mp):&#160;leaf-effects.c']]],
+  ['tvocoder_5fsuspend_930',['tVocoder_suspend',['../group__tvocoder.html#gae4c7fd1376d81bcfce49f4a8a407ec16',1,'tVocoder_suspend(tVocoder *const):&#160;leaf-effects.c'],['../group__tvocoder.html#gae4c7fd1376d81bcfce49f4a8a407ec16',1,'tVocoder_suspend(tVocoder *const voc):&#160;leaf-effects.c']]],
+  ['tvocoder_5ftick_931',['tVocoder_tick',['../group__tvocoder.html#gaf809f26807d22a348156bbcced99ae91',1,'tVocoder_tick(tVocoder *const, float synth, float voice):&#160;leaf-effects.c'],['../group__tvocoder.html#gaf809f26807d22a348156bbcced99ae91',1,'tVocoder_tick(tVocoder *const voc, float synth, float voice):&#160;leaf-effects.c']]],
+  ['tvocoder_5fupdate_932',['tVocoder_update',['../group__tvocoder.html#ga6ae72878b932a14fac7503e4f3226312',1,'tVocoder_update(tVocoder *const):&#160;leaf-effects.c'],['../group__tvocoder.html#ga6ae72878b932a14fac7503e4f3226312',1,'tVocoder_update(tVocoder *const voc):&#160;leaf-effects.c']]],
+  ['tvzfilter_933',['tVZFilter',['../group__tvzfilter.html',1,'']]],
+  ['tvzfilter_5fbandwidthtor_934',['tVZFilter_BandwidthToR',['../group__tvzfilter.html#gac639e85aa70295332ba927c8d9b99a73',1,'tVZFilter_BandwidthToR(tVZFilter *const vf, float B):&#160;leaf-filters.c'],['../group__tvzfilter.html#gac639e85aa70295332ba927c8d9b99a73',1,'tVZFilter_BandwidthToR(tVZFilter *const vf, float B):&#160;leaf-filters.c']]],
+  ['tvzfilter_5fcalccoeffs_935',['tVZFilter_calcCoeffs',['../group__tvzfilter.html#ga9b926d729e03680d876a0c1e44603ccb',1,'tVZFilter_calcCoeffs(tVZFilter *const):&#160;leaf-filters.c'],['../group__tvzfilter.html#ga9b926d729e03680d876a0c1e44603ccb',1,'tVZFilter_calcCoeffs(tVZFilter *const vf):&#160;leaf-filters.c']]],
+  ['tvzfilter_5ffree_936',['tVZFilter_free',['../group__tvzfilter.html#gac4bda1af30d4e883b2de0d7f35067a45',1,'tVZFilter_free(tVZFilter *const):&#160;leaf-filters.c'],['../group__tvzfilter.html#gac4bda1af30d4e883b2de0d7f35067a45',1,'tVZFilter_free(tVZFilter *const vf):&#160;leaf-filters.c']]],
+  ['tvzfilter_5finit_937',['tVZFilter_init',['../group__tvzfilter.html#ga3c5672bd2d229be5201a8d4f6e81c9cf',1,'tVZFilter_init(tVZFilter *const, VZFilterType type, float freq, float Q, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tvzfilter.html#ga3c5672bd2d229be5201a8d4f6e81c9cf',1,'tVZFilter_init(tVZFilter *const vf, VZFilterType type, float freq, float bandWidth, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tvzfilter_5finittopool_938',['tVZFilter_initToPool',['../group__tvzfilter.html#gadefd89eb319135397cd2aebe9d92ae19',1,'tVZFilter_initToPool(tVZFilter *const, VZFilterType type, float freq, float Q, tMempool *const):&#160;leaf-filters.c'],['../group__tvzfilter.html#gadefd89eb319135397cd2aebe9d92ae19',1,'tVZFilter_initToPool(tVZFilter *const vf, VZFilterType type, float freq, float bandWidth, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tvzfilter_5fsetbandwidth_939',['tVZFilter_setBandwidth',['../group__tvzfilter.html#ga1a3a1fb6f92dd3ba35144337781c0fe2',1,'tVZFilter_setBandwidth(tVZFilter *const, float bandWidth):&#160;leaf-filters.c'],['../group__tvzfilter.html#ga1a3a1fb6f92dd3ba35144337781c0fe2',1,'tVZFilter_setBandwidth(tVZFilter *const vf, float B):&#160;leaf-filters.c']]],
+  ['tvzfilter_5fsetfreq_940',['tVZFilter_setFreq',['../group__tvzfilter.html#ga2dcd4668daf45ce81c7dc4b1a5477c71',1,'tVZFilter_setFreq(tVZFilter *const, float freq):&#160;leaf-filters.c'],['../group__tvzfilter.html#ga2dcd4668daf45ce81c7dc4b1a5477c71',1,'tVZFilter_setFreq(tVZFilter *const vf, float freq):&#160;leaf-filters.c']]],
+  ['tvzfilter_5fsetfreqandbandwidth_941',['tVZFilter_setFreqAndBandwidth',['../group__tvzfilter.html#gace98499c6b229162b8eb23d1df8dbb28',1,'tVZFilter_setFreqAndBandwidth(tVZFilter *const vf, float freq, float bw):&#160;leaf-filters.c'],['../group__tvzfilter.html#gace98499c6b229162b8eb23d1df8dbb28',1,'tVZFilter_setFreqAndBandwidth(tVZFilter *const vf, float freq, float bw):&#160;leaf-filters.c']]],
+  ['tvzfilter_5fsetgain_942',['tVZFilter_setGain',['../group__tvzfilter.html#ga516f54dd1403fcba60aa1ba2b5d0f35d',1,'tVZFilter_setGain(tVZFilter *const, float gain):&#160;leaf-filters.c'],['../group__tvzfilter.html#ga516f54dd1403fcba60aa1ba2b5d0f35d',1,'tVZFilter_setGain(tVZFilter *const vf, float gain):&#160;leaf-filters.c']]],
+  ['tvzfilter_5fsetsamplerate_943',['tVZFilter_setSampleRate',['../group__tvzfilter.html#ga2e4af322ef20fe128fddec1e30315a78',1,'tVZFilter_setSampleRate(tVZFilter *const, float sampleRate):&#160;leaf-filters.c'],['../group__tvzfilter.html#ga2e4af322ef20fe128fddec1e30315a78',1,'tVZFilter_setSampleRate(tVZFilter *const vf, float sampleRate):&#160;leaf-filters.c']]],
+  ['tvzfilter_5fsettype_944',['tVZFilter_setType',['../group__tvzfilter.html#gaa7239af935c13f07e92f817c0a53c3d7',1,'tVZFilter_setType(tVZFilter *const, VZFilterType type):&#160;leaf-filters.c'],['../group__tvzfilter.html#gaa7239af935c13f07e92f817c0a53c3d7',1,'tVZFilter_setType(tVZFilter *const vf, VZFilterType type):&#160;leaf-filters.c']]],
+  ['tvzfilter_5ftick_945',['tVZFilter_tick',['../group__tvzfilter.html#ga0fbbf089b751d1e31c796a3a4bdd3d64',1,'tVZFilter_tick(tVZFilter *const, float input):&#160;leaf-filters.c'],['../group__tvzfilter.html#ga0fbbf089b751d1e31c796a3a4bdd3d64',1,'tVZFilter_tick(tVZFilter *const vf, float in):&#160;leaf-filters.c']]],
+  ['tvzfilter_5ftickefficient_946',['tVZFilter_tickEfficient',['../group__tvzfilter.html#gaa8b8a7061d00b6d4a507115f015a76cc',1,'tVZFilter_tickEfficient(tVZFilter *const vf, float in):&#160;leaf-filters.c'],['../group__tvzfilter.html#gaa8b8a7061d00b6d4a507115f015a76cc',1,'tVZFilter_tickEfficient(tVZFilter *const vf, float in):&#160;leaf-filters.c']]],
+  ['twavetable_947',['tWavetable',['../group__twavetable.html',1,'']]],
+  ['twavetable_5ffree_948',['tWavetable_free',['../group__twavetable.html#ga54957a54c5f86392dc8b3105668425e5',1,'tWavetable_free(tWavetable *const osc):&#160;leaf-oscillators.c'],['../group__twavetable.html#ga54957a54c5f86392dc8b3105668425e5',1,'tWavetable_free(tWavetable *const cy):&#160;leaf-oscillators.c']]],
+  ['twavetable_5fsetfreq_949',['tWavetable_setFreq',['../group__twavetable.html#gaf397a73fa707667cb0038b1be42896f1',1,'tWavetable_setFreq(tWavetable *const osc, float freq):&#160;leaf-oscillators.c'],['../group__twavetable.html#gaf397a73fa707667cb0038b1be42896f1',1,'tWavetable_setFreq(tWavetable *const cy, float freq):&#160;leaf-oscillators.c']]],
+  ['twavetable_5ftick_950',['tWavetable_tick',['../group__twavetable.html#gad22ca7b75e09dd860286215aed1711b9',1,'tWavetable_tick(tWavetable *const osc):&#160;leaf-oscillators.c'],['../group__twavetable.html#gad22ca7b75e09dd860286215aed1711b9',1,'tWavetable_tick(tWavetable *const cy):&#160;leaf-oscillators.c']]],
+  ['twdf_951',['tWDF',['../group__twdf.html',1,'']]],
+  ['twdf_5ffree_952',['tWDF_free',['../group__twdf.html#ga286814ebe6a0757239c6403a0c9be9a4',1,'tWDF_free(tWDF *const):&#160;leaf-electrical.c'],['../group__twdf.html#ga286814ebe6a0757239c6403a0c9be9a4',1,'tWDF_free(tWDF *const wdf):&#160;leaf-electrical.c']]],
+  ['twdf_5fgetcurrent_953',['tWDF_getCurrent',['../group__twdf.html#gace849a3c7401adf2cd9e4be561ff8163',1,'tWDF_getCurrent(tWDF *const):&#160;leaf-electrical.c'],['../group__twdf.html#gace849a3c7401adf2cd9e4be561ff8163',1,'tWDF_getCurrent(tWDF *const wdf):&#160;leaf-electrical.c']]],
+  ['twdf_5fgetportresistance_954',['tWDF_getPortResistance',['../group__twdf.html#ga59e01adf3c85d097b41c7c12dc1da83c',1,'tWDF_getPortResistance(tWDF *const):&#160;leaf-electrical.c'],['../group__twdf.html#ga59e01adf3c85d097b41c7c12dc1da83c',1,'tWDF_getPortResistance(tWDF *const wdf):&#160;leaf-electrical.c']]],
+  ['twdf_5fgetreflectedwavedown_955',['tWDF_getReflectedWaveDown',['../group__twdf.html#gaf88b3a106e610173e153c7e4ab3914c8',1,'tWDF_getReflectedWaveDown(tWDF *const, float input, float incident_wave):&#160;leaf-electrical.c'],['../group__twdf.html#gaf88b3a106e610173e153c7e4ab3914c8',1,'tWDF_getReflectedWaveDown(tWDF *const wdf, float input, float incident_wave):&#160;leaf-electrical.c']]],
+  ['twdf_5fgetreflectedwaveup_956',['tWDF_getReflectedWaveUp',['../group__twdf.html#ga0419e60095b8caea022d117e2f51e902',1,'tWDF_getReflectedWaveUp(tWDF *const, float input):&#160;leaf-electrical.c'],['../group__twdf.html#ga0419e60095b8caea022d117e2f51e902',1,'tWDF_getReflectedWaveUp(tWDF *const wdf, float input):&#160;leaf-electrical.c']]],
+  ['twdf_5fgetvoltage_957',['tWDF_getVoltage',['../group__twdf.html#ga225e0816681d5a7bb733487bd4202bae',1,'tWDF_getVoltage(tWDF *const):&#160;leaf-electrical.c'],['../group__twdf.html#ga225e0816681d5a7bb733487bd4202bae',1,'tWDF_getVoltage(tWDF *const wdf):&#160;leaf-electrical.c']]],
+  ['twdf_5finit_958',['tWDF_init',['../group__twdf.html#ga8b1809a43641039fb095a2d5d1892b89',1,'tWDF_init(tWDF *const, WDFComponentType type, float value, tWDF *const rL, tWDF *const rR, LEAF *const leaf):&#160;leaf-electrical.c'],['../group__twdf.html#ga8b1809a43641039fb095a2d5d1892b89',1,'tWDF_init(tWDF *const wdf, WDFComponentType type, float value, tWDF *const rL, tWDF *const rR, LEAF *const leaf):&#160;leaf-electrical.c']]],
+  ['twdf_5finittopool_959',['tWDF_initToPool',['../group__twdf.html#ga88589dcd1fe135010f251ac8e9e00b7b',1,'tWDF_initToPool(tWDF *const, WDFComponentType type, float value, tWDF *const rL, tWDF *const rR, tMempool *const):&#160;leaf-electrical.c'],['../group__twdf.html#ga88589dcd1fe135010f251ac8e9e00b7b',1,'tWDF_initToPool(tWDF *const wdf, WDFComponentType type, float value, tWDF *const rL, tWDF *const rR, tMempool *const mp):&#160;leaf-electrical.c']]],
+  ['twdf_5fisleaf_960',['tWDF_isLeaf',['../group__twdf.html#gae10a7d10fa7d7928cdb0bb1e90dfba86',1,'tWDF_isLeaf(tWDF *const):&#160;leaf-electrical.c'],['../group__twdf.html#gae10a7d10fa7d7928cdb0bb1e90dfba86',1,'tWDF_isLeaf(tWDF *const wdf):&#160;leaf-electrical.c']]],
+  ['twdf_5fsetincidentwave_961',['tWDF_setIncidentWave',['../group__twdf.html#gab6b8b9ae4786b3c185a22402d43c263c',1,'tWDF_setIncidentWave(tWDF *const, float incident_wave, float input):&#160;leaf-electrical.c'],['../group__twdf.html#gab6b8b9ae4786b3c185a22402d43c263c',1,'tWDF_setIncidentWave(tWDF *const wdf, float incident_wave, float input):&#160;leaf-electrical.c']]],
+  ['twdf_5fsetsamplerate_962',['tWDF_setSampleRate',['../group__twdf.html#gac519b5869e0cc3eb08b328ee1eacf859',1,'tWDF_setSampleRate(tWDF *const, float sample_rate):&#160;leaf-electrical.c'],['../group__twdf.html#gac519b5869e0cc3eb08b328ee1eacf859',1,'tWDF_setSampleRate(tWDF *const wdf, float sample_rate):&#160;leaf-electrical.c']]],
+  ['twdf_5fsetvalue_963',['tWDF_setValue',['../group__twdf.html#gaea4c5bf95c97f449b86e5e2371e048c0',1,'tWDF_setValue(tWDF *const, float value):&#160;leaf-electrical.c'],['../group__twdf.html#gaea4c5bf95c97f449b86e5e2371e048c0',1,'tWDF_setValue(tWDF *const wdf, float value):&#160;leaf-electrical.c']]],
+  ['twdf_5ftick_964',['tWDF_tick',['../group__twdf.html#gaa6ac38775cde5d0f859fbd007d5e4154',1,'tWDF_tick(tWDF *const, float sample, tWDF *const outputPoint, uint8_t paramsChanged):&#160;leaf-electrical.c'],['../group__twdf.html#gaa6ac38775cde5d0f859fbd007d5e4154',1,'tWDF_tick(tWDF *const wdf, float sample, tWDF *const outputPoint, uint8_t paramsChanged):&#160;leaf-electrical.c']]],
+  ['twopitimesinvsamplerate_965',['twoPiTimesInvSampleRate',['../struct_l_e_a_f.html#aabd759d3fcb8411249ab4813424e6b29',1,'LEAF']]],
+  ['tzerocrossingcounter_966',['tZeroCrossingCounter',['../group__tzerocrossingcounter.html',1,'']]],
+  ['tzerocrossingcounter_5ffree_967',['tZeroCrossingCounter_free',['../group__tzerocrossingcounter.html#gaa1865545e8a1ac340af315e77547e75b',1,'tZeroCrossingCounter_free(tZeroCrossingCounter *const):&#160;leaf-analysis.c'],['../group__tzerocrossingcounter.html#gaa1865545e8a1ac340af315e77547e75b',1,'tZeroCrossingCounter_free(tZeroCrossingCounter *const zc):&#160;leaf-analysis.c']]],
+  ['tzerocrossingcounter_5finit_968',['tZeroCrossingCounter_init',['../group__tzerocrossingcounter.html#ga8fed3441e5ac46750e3f7641d8b5d80b',1,'tZeroCrossingCounter_init(tZeroCrossingCounter *const, int maxWindowSize, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tzerocrossingcounter.html#ga8fed3441e5ac46750e3f7641d8b5d80b',1,'tZeroCrossingCounter_init(tZeroCrossingCounter *const zc, int maxWindowSize, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tzerocrossingcounter_5finittopool_969',['tZeroCrossingCounter_initToPool',['../group__tzerocrossingcounter.html#ga797b0ef62ada70b352a22426a9915ae6',1,'tZeroCrossingCounter_initToPool(tZeroCrossingCounter *const, int maxWindowSize, tMempool *const mempool):&#160;leaf-analysis.c'],['../group__tzerocrossingcounter.html#ga797b0ef62ada70b352a22426a9915ae6',1,'tZeroCrossingCounter_initToPool(tZeroCrossingCounter *const zc, int maxWindowSize, tMempool *const mp):&#160;leaf-analysis.c']]],
+  ['tzerocrossingcounter_5fsetwindowsize_970',['tZeroCrossingCounter_setWindowSize',['../group__tzerocrossingcounter.html#ga7810cc03d693da0d9752b61f5320d01b',1,'tZeroCrossingCounter_setWindowSize(tZeroCrossingCounter *const, float windowSize):&#160;leaf-analysis.c'],['../group__tzerocrossingcounter.html#ga7810cc03d693da0d9752b61f5320d01b',1,'tZeroCrossingCounter_setWindowSize(tZeroCrossingCounter *const zc, float windowSize):&#160;leaf-analysis.c']]],
+  ['tzerocrossingcounter_5ftick_971',['tZeroCrossingCounter_tick',['../group__tzerocrossingcounter.html#gab53550020f2625049537b65655af0053',1,'tZeroCrossingCounter_tick(tZeroCrossingCounter *const, float input):&#160;leaf-analysis.c'],['../group__tzerocrossingcounter.html#gab53550020f2625049537b65655af0053',1,'tZeroCrossingCounter_tick(tZeroCrossingCounter *const zc, float input):&#160;leaf-analysis.c']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/classes_0.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/classes_0.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['leaf_973',['LEAF',['../struct_l_e_a_f.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/classes_1.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/classes_1.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['leaf_447',['LEAF',['../struct_l_e_a_f.html',1,'']]]
+];
binary files /dev/null b/doxygen/leaf/search/close.png differ
--- /dev/null
+++ b/doxygen/leaf/search/defines_0.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="defines_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/defines_0.js
@@ -1,0 +1,11 @@
+var searchData=
+[
+  ['leaf_5finclude_5fadsr_5ftables_1827',['LEAF_INCLUDE_ADSR_TABLES',['../leaf-config_8h.html#ac97160952072d68ef1b972822ad272ae',1,'leaf-config.h']]],
+  ['leaf_5finclude_5ffiltertan_5ftable_1828',['LEAF_INCLUDE_FILTERTAN_TABLE',['../leaf-config_8h.html#aab2893efe703eab3bb551c9add5ef387',1,'leaf-config.h']]],
+  ['leaf_5finclude_5fminblep_5ftables_1829',['LEAF_INCLUDE_MINBLEP_TABLES',['../leaf-config_8h.html#a48382d3ccd1f8b5133cc39e5dfec6407',1,'leaf-config.h']]],
+  ['leaf_5finclude_5foversampler_5ftables_1830',['LEAF_INCLUDE_OVERSAMPLER_TABLES',['../leaf-config_8h.html#aa1d86fcc131ab6f1789217ed6706606b',1,'leaf-config.h']]],
+  ['leaf_5finclude_5fsawtooth_5ftable_1831',['LEAF_INCLUDE_SAWTOOTH_TABLE',['../leaf-config_8h.html#adc140cd309979869fe8a593cb4f1ee48',1,'leaf-config.h']]],
+  ['leaf_5finclude_5fsine_5ftable_1832',['LEAF_INCLUDE_SINE_TABLE',['../leaf-config_8h.html#a6b45f1d5e0e5f16ef2b7bcfa5c2b69c3',1,'leaf-config.h']]],
+  ['leaf_5finclude_5fsquare_5ftable_1833',['LEAF_INCLUDE_SQUARE_TABLE',['../leaf-config_8h.html#aeea32201ca1663099f453916e852547d',1,'leaf-config.h']]],
+  ['leaf_5finclude_5ftriangle_5ftable_1834',['LEAF_INCLUDE_TRIANGLE_TABLE',['../leaf-config_8h.html#aae5a99a230cd12d10d9b2011c8461787',1,'leaf-config.h']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/enums_0.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/enums_0.js
@@ -1,0 +1,5 @@
+var searchData=
+[
+  ['neuronmode_1820',['NeuronMode',['../group__tneuron.html#ga39c8ad8b35bf050f69b21ca34b56cc01',1,'leaf-oscillators.h']]],
+  ['noisetype_1821',['NoiseType',['../group__tnoise.html#ga9253d111035d4a83996ec5bbfd3d8963',1,'leaf-oscillators.h']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/enumvalues_0.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/enumvalues_0.js
@@ -1,0 +1,6 @@
+var searchData=
+[
+  ['neuronaaltoshaper_1822',['NeuronAaltoShaper',['../group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01acdbcb725e463ccad89f2384b1254ab0c',1,'leaf-oscillators.h']]],
+  ['neuronnormal_1823',['NeuronNormal',['../group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01acedc049c7a14e2b30b266d88d46b3f76',1,'leaf-oscillators.h']]],
+  ['neurontanh_1824',['NeuronTanh',['../group__tneuron.html#gga39c8ad8b35bf050f69b21ca34b56cc01a0f637d7316b91b66dfea6ef832b1d178',1,'leaf-oscillators.h']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/enumvalues_1.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/enumvalues_1.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['pinknoise_1825',['PinkNoise',['../group__tnoise.html#gga9253d111035d4a83996ec5bbfd3d8963a0793318314019dbf241d6de4e8fcf310',1,'leaf-oscillators.h']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/enumvalues_2.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/enumvalues_2.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['whitenoise_1826',['WhiteNoise',['../group__tnoise.html#gga9253d111035d4a83996ec5bbfd3d8963a7c87739bebf0e95f4e6b8d9e5432b8f1',1,'leaf-oscillators.h']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/files_0.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/files_0.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['leaf_2dconfig_2eh_974',['leaf-config.h',['../leaf-config_8h.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/functions_0.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/functions_0.js
@@ -1,0 +1,8 @@
+var searchData=
+[
+  ['leaf_5fdefaulterrorcallback_975',['LEAF_defaultErrorCallback',['../group__leaf.html#ga6ad73444bc6f242c30a83bddbd120052',1,'leaf.c']]],
+  ['leaf_5fgetsamplerate_976',['LEAF_getSampleRate',['../group__leaf.html#gaf680c38a6e3234739e57391650dea267',1,'leaf.c']]],
+  ['leaf_5finit_977',['LEAF_init',['../group__leaf.html#ga13fefd14706bd5d85346066660f3c9eb',1,'LEAF_init(LEAF *const leaf, float sampleRate, int blockSize, char *memory, size_t memorySize, float(*random)(void)):&#160;leaf.c'],['../group__leaf.html#ga13fefd14706bd5d85346066660f3c9eb',1,'LEAF_init(LEAF *const leaf, float sr, int blocksize, char *memory, size_t memorysize, float(*random)(void)):&#160;leaf.c']]],
+  ['leaf_5fseterrorcallback_978',['LEAF_setErrorCallback',['../group__leaf.html#ga046f5f075ebc4562b8e2d97de4b69536',1,'leaf.c']]],
+  ['leaf_5fsetsamplerate_979',['LEAF_setSampleRate',['../group__leaf.html#gab84d5b2ad600cc920248996c86b72f9f',1,'leaf.c']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/functions_1.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/functions_1.js
@@ -1,0 +1,833 @@
+var searchData=
+[
+  ['t808cowbell_5ffree_980',['t808Cowbell_free',['../group__t808cowbell.html#gaf582d380f2b6af70344a3a8b4ae04d09',1,'t808Cowbell_free(t808Cowbell *const):&#160;leaf-instruments.c'],['../group__t808cowbell.html#gaf582d380f2b6af70344a3a8b4ae04d09',1,'t808Cowbell_free(t808Cowbell *const cowbellInst):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5finit_981',['t808Cowbell_init',['../group__t808cowbell.html#gad73082119a3ea30b5531c683617d007b',1,'t808Cowbell_init(t808Cowbell *const, int useStick, LEAF *const leaf):&#160;leaf-instruments.c'],['../group__t808cowbell.html#gad73082119a3ea30b5531c683617d007b',1,'t808Cowbell_init(t808Cowbell *const cowbellInst, int useStick, LEAF *const leaf):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5finittopool_982',['t808Cowbell_initToPool',['../group__t808cowbell.html#ga99059721c541953474999ddd3bb59913',1,'t808Cowbell_initToPool(t808Cowbell *const, int useStick, tMempool *const):&#160;leaf-instruments.c'],['../group__t808cowbell.html#ga99059721c541953474999ddd3bb59913',1,'t808Cowbell_initToPool(t808Cowbell *const cowbellInst, int useStick, tMempool *const mp):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5fon_983',['t808Cowbell_on',['../group__t808cowbell.html#ga0345c870253d83d7328ddcaa8cd5962f',1,'t808Cowbell_on(t808Cowbell *const, float vel):&#160;leaf-instruments.c'],['../group__t808cowbell.html#ga0345c870253d83d7328ddcaa8cd5962f',1,'t808Cowbell_on(t808Cowbell *const cowbellInst, float vel):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5fsetbandpassfreq_984',['t808Cowbell_setBandpassFreq',['../group__t808cowbell.html#gab2b2eb374bdd28d96dc91e279cf7f8c8',1,'t808Cowbell_setBandpassFreq(t808Cowbell *const, float freq):&#160;leaf-instruments.c'],['../group__t808cowbell.html#gab2b2eb374bdd28d96dc91e279cf7f8c8',1,'t808Cowbell_setBandpassFreq(t808Cowbell *const cowbellInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5fsetdecay_985',['t808Cowbell_setDecay',['../group__t808cowbell.html#gaa7f1e2a1ce97bb32cba4c8c55ea23ccd',1,'t808Cowbell_setDecay(t808Cowbell *const, float decay):&#160;leaf-instruments.c'],['../group__t808cowbell.html#gaa7f1e2a1ce97bb32cba4c8c55ea23ccd',1,'t808Cowbell_setDecay(t808Cowbell *const cowbellInst, float decay):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5fsetfreq_986',['t808Cowbell_setFreq',['../group__t808cowbell.html#ga231f7ba0e351caf6989db61a37229c49',1,'t808Cowbell_setFreq(t808Cowbell *const, float freq):&#160;leaf-instruments.c'],['../group__t808cowbell.html#ga231f7ba0e351caf6989db61a37229c49',1,'t808Cowbell_setFreq(t808Cowbell *const cowbellInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5fsethighpassfreq_987',['t808Cowbell_setHighpassFreq',['../group__t808cowbell.html#ga7d3ae5159a1e71f7a48e2888b931d6a6',1,'t808Cowbell_setHighpassFreq(t808Cowbell *const, float freq):&#160;leaf-instruments.c'],['../group__t808cowbell.html#ga7d3ae5159a1e71f7a48e2888b931d6a6',1,'t808Cowbell_setHighpassFreq(t808Cowbell *cowbellInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5fsetoscmix_988',['t808Cowbell_setOscMix',['../group__t808cowbell.html#ga8547ef62c511459d58c1c10636a4ff0e',1,'t808Cowbell_setOscMix(t808Cowbell *const, float oscMix):&#160;leaf-instruments.c'],['../group__t808cowbell.html#ga8547ef62c511459d58c1c10636a4ff0e',1,'t808Cowbell_setOscMix(t808Cowbell *const cowbellInst, float oscMix):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5fsetstick_989',['t808Cowbell_setStick',['../group__t808cowbell.html#ga2da4c28c28924e77adb14a477bc2b099',1,'t808Cowbell_setStick(t808Cowbell *const, int useStick):&#160;leaf-instruments.c'],['../group__t808cowbell.html#ga2da4c28c28924e77adb14a477bc2b099',1,'t808Cowbell_setStick(t808Cowbell *const cowbellInst, int useStick):&#160;leaf-instruments.c']]],
+  ['t808cowbell_5ftick_990',['t808Cowbell_tick',['../group__t808cowbell.html#ga58c18da70d7dbe34f5074dd3864950ec',1,'t808Cowbell_tick(t808Cowbell *const):&#160;leaf-instruments.c'],['../group__t808cowbell.html#ga58c18da70d7dbe34f5074dd3864950ec',1,'t808Cowbell_tick(t808Cowbell *const cowbellInst):&#160;leaf-instruments.c']]],
+  ['t808hihat_5ffree_991',['t808Hihat_free',['../group__t808hihat.html#gacdf51e9c89696dfe6347bbf5bd750795',1,'t808Hihat_free(t808Hihat *const):&#160;leaf-instruments.c'],['../group__t808hihat.html#gacdf51e9c89696dfe6347bbf5bd750795',1,'t808Hihat_free(t808Hihat *const hihatInst):&#160;leaf-instruments.c']]],
+  ['t808hihat_5finit_992',['t808Hihat_init',['../group__t808hihat.html#ga90cf7603e94540308461463f738d120a',1,'t808Hihat_init(t808Hihat *const, LEAF *const leaf):&#160;leaf-instruments.c'],['../group__t808hihat.html#ga90cf7603e94540308461463f738d120a',1,'t808Hihat_init(t808Hihat *const hihatInst, LEAF *const leaf):&#160;leaf-instruments.c']]],
+  ['t808hihat_5finittopool_993',['t808Hihat_initToPool',['../group__t808hihat.html#ga1aa220309fb3475977ea7878105a8d1d',1,'t808Hihat_initToPool(t808Hihat *const, tMempool *const):&#160;leaf-instruments.c'],['../group__t808hihat.html#ga1aa220309fb3475977ea7878105a8d1d',1,'t808Hihat_initToPool(t808Hihat *const hihatInst, tMempool *const mp):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fon_994',['t808Hihat_on',['../group__t808hihat.html#gae906b0f89ba9a5ec113512e943b06762',1,'t808Hihat_on(t808Hihat *const, float vel):&#160;leaf-instruments.c'],['../group__t808hihat.html#gae906b0f89ba9a5ec113512e943b06762',1,'t808Hihat_on(t808Hihat *const hihatInst, float vel):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetdecay_995',['t808Hihat_setDecay',['../group__t808hihat.html#gafe362829712b47febbc622a133c978eb',1,'t808Hihat_setDecay(t808Hihat *const, float decay):&#160;leaf-instruments.c'],['../group__t808hihat.html#gafe362829712b47febbc622a133c978eb',1,'t808Hihat_setDecay(t808Hihat *const hihatInst, float decay):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetfm_996',['t808Hihat_setFM',['../group__t808hihat.html#gaa2611ffc113296265543a92ebcb1b772',1,'t808Hihat_setFM(t808Hihat *const hihat, float FM_amount):&#160;leaf-instruments.c'],['../group__t808hihat.html#gaa2611ffc113296265543a92ebcb1b772',1,'t808Hihat_setFM(t808Hihat *const hihatInst, float FM_amount):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsethighpassfreq_997',['t808Hihat_setHighpassFreq',['../group__t808hihat.html#gacece6ca1e3cc6bfe0b5b1ba1ef310a4d',1,'t808Hihat_setHighpassFreq(t808Hihat *const, float freq):&#160;leaf-instruments.c'],['../group__t808hihat.html#gacece6ca1e3cc6bfe0b5b1ba1ef310a4d',1,'t808Hihat_setHighpassFreq(t808Hihat *const hihatInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetoscbandpassfreq_998',['t808Hihat_setOscBandpassFreq',['../group__t808hihat.html#ga86f81ed83bf120be74b1d49c8e409ba9',1,'t808Hihat_setOscBandpassFreq(t808Hihat *const, float freq):&#160;leaf-instruments.c'],['../group__t808hihat.html#ga86f81ed83bf120be74b1d49c8e409ba9',1,'t808Hihat_setOscBandpassFreq(t808Hihat *const hihatInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetoscbandpassq_999',['t808Hihat_setOscBandpassQ',['../group__t808hihat.html#gacfd6ccfd7606aa878c6b5a2b4abb646c',1,'t808Hihat_setOscBandpassQ(t808Hihat *const hihat, float Q):&#160;leaf-instruments.c'],['../group__t808hihat.html#gacfd6ccfd7606aa878c6b5a2b4abb646c',1,'t808Hihat_setOscBandpassQ(t808Hihat *const hihatInst, float Q):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetoscfreq_1000',['t808Hihat_setOscFreq',['../group__t808hihat.html#gad9633cc3f51a6ce583c1941309582427',1,'t808Hihat_setOscFreq(t808Hihat *const, float freq):&#160;leaf-instruments.c'],['../group__t808hihat.html#gad9633cc3f51a6ce583c1941309582427',1,'t808Hihat_setOscFreq(t808Hihat *const hihatInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetoscnoisemix_1001',['t808Hihat_setOscNoiseMix',['../group__t808hihat.html#ga450a85981e478ea7bf7990b7867dfa7c',1,'t808Hihat_setOscNoiseMix(t808Hihat *const, float oscNoiseMix):&#160;leaf-instruments.c'],['../group__t808hihat.html#ga450a85981e478ea7bf7990b7867dfa7c',1,'t808Hihat_setOscNoiseMix(t808Hihat *const hihatInst, float oscNoiseMix):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetstickbandpassfreq_1002',['t808Hihat_setStickBandPassFreq',['../group__t808hihat.html#gac877fd8a5108ee60ce9bc9629c673749',1,'t808Hihat_setStickBandPassFreq(t808Hihat *const, float freq):&#160;leaf-instruments.c'],['../group__t808hihat.html#gac877fd8a5108ee60ce9bc9629c673749',1,'t808Hihat_setStickBandPassFreq(t808Hihat *const hihatInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetstickbandpassq_1003',['t808Hihat_setStickBandPassQ',['../group__t808hihat.html#ga554517ecfcd8d7c4f46d97a2be3d11ee',1,'t808Hihat_setStickBandPassQ(t808Hihat *const hihat, float Q):&#160;leaf-instruments.c'],['../group__t808hihat.html#ga554517ecfcd8d7c4f46d97a2be3d11ee',1,'t808Hihat_setStickBandPassQ(t808Hihat *const hihatInst, float Q):&#160;leaf-instruments.c']]],
+  ['t808hihat_5fsetstretch_1004',['t808Hihat_setStretch',['../group__t808hihat.html#gae236e3f43e6099c9b6047bac2b72ab9a',1,'t808Hihat_setStretch(t808Hihat *const hihat, float stretch):&#160;leaf-instruments.c'],['../group__t808hihat.html#gae236e3f43e6099c9b6047bac2b72ab9a',1,'t808Hihat_setStretch(t808Hihat *const hihatInst, float stretch):&#160;leaf-instruments.c']]],
+  ['t808hihat_5ftick_1005',['t808Hihat_tick',['../group__t808hihat.html#gacd110ae0db13491f0eb4aa27b75b3cc0',1,'t808Hihat_tick(t808Hihat *const):&#160;leaf-instruments.c'],['../group__t808hihat.html#gacd110ae0db13491f0eb4aa27b75b3cc0',1,'t808Hihat_tick(t808Hihat *const hihatInst):&#160;leaf-instruments.c']]],
+  ['t808kick_5ffree_1006',['t808Kick_free',['../group__t808kick.html#ga29c6085b72a735d53c2112d574b53019',1,'t808Kick_free(t808Kick *const):&#160;leaf-instruments.c'],['../group__t808kick.html#ga29c6085b72a735d53c2112d574b53019',1,'t808Kick_free(t808Kick *const kickInst):&#160;leaf-instruments.c']]],
+  ['t808kick_5finit_1007',['t808Kick_init',['../group__t808kick.html#gadf0610a6f55caa8fe2bce29be8ae5866',1,'t808Kick_init(t808Kick *const, LEAF *const leaf):&#160;leaf-instruments.c'],['../group__t808kick.html#gadf0610a6f55caa8fe2bce29be8ae5866',1,'t808Kick_init(t808Kick *const kickInst, LEAF *const leaf):&#160;leaf-instruments.c']]],
+  ['t808kick_5finittopool_1008',['t808Kick_initToPool',['../group__t808kick.html#ga0126a59483e835ffb84686ded5ffe4db',1,'t808Kick_initToPool(t808Kick *const, tMempool *const):&#160;leaf-instruments.c'],['../group__t808kick.html#ga0126a59483e835ffb84686ded5ffe4db',1,'t808Kick_initToPool(t808Kick *const kickInst, tMempool *const mp):&#160;leaf-instruments.c']]],
+  ['t808kick_5fon_1009',['t808Kick_on',['../group__t808kick.html#ga412fef7686fb7b6a6f9a545de1dd66c6',1,'t808Kick_on(t808Kick *const, float vel):&#160;leaf-instruments.c'],['../group__t808kick.html#ga412fef7686fb7b6a6f9a545de1dd66c6',1,'t808Kick_on(t808Kick *const kickInst, float vel):&#160;leaf-instruments.c']]],
+  ['t808kick_5fsetchirpamount_1010',['t808Kick_setChirpAmount',['../group__t808kick.html#ga5d87bb00168c68eb2c818bcb215998a4',1,'leaf-instruments.h']]],
+  ['t808kick_5fsetnoisedecay_1011',['t808Kick_setNoiseDecay',['../group__t808kick.html#gaf7d43ae5eeb2f104773e33f128d04ad7',1,'leaf-instruments.h']]],
+  ['t808kick_5fsetnoisefilterfreq_1012',['t808Kick_setNoiseFilterFreq',['../group__t808kick.html#ga8595d5622afa9ca641b082f016969d25',1,'leaf-instruments.h']]],
+  ['t808kick_5fsetnoisefilterq_1013',['t808Kick_setNoiseFilterQ',['../group__t808kick.html#gafccd007bf99d7997189694ae37ec568e',1,'leaf-instruments.h']]],
+  ['t808kick_5fsetsighamount_1014',['t808Kick_setSighAmount',['../group__t808kick.html#gacc0caa60a523b68eec29d7a6391021ba',1,'leaf-instruments.h']]],
+  ['t808kick_5fsettonedecay_1015',['t808Kick_setToneDecay',['../group__t808kick.html#ga5c40b2f7ee8815cd3b50a52f33f69e50',1,'t808Kick_setToneDecay(t808Kick *const, float decay):&#160;leaf-instruments.c'],['../group__t808kick.html#ga5c40b2f7ee8815cd3b50a52f33f69e50',1,'t808Kick_setToneDecay(t808Kick *const kickInst, float decay):&#160;leaf-instruments.c']]],
+  ['t808kick_5fsettonefreq_1016',['t808Kick_setToneFreq',['../group__t808kick.html#gabb6ccbf278eacb145026c24591a0d37c',1,'t808Kick_setToneFreq(t808Kick *const, float freq):&#160;leaf-instruments.c'],['../group__t808kick.html#gabb6ccbf278eacb145026c24591a0d37c',1,'t808Kick_setToneFreq(t808Kick *const kickInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808kick_5fsettonenoisemix_1017',['t808Kick_setToneNoiseMix',['../group__t808kick.html#ga8f8bf7a1fcd13931e431e7adf073de68',1,'leaf-instruments.h']]],
+  ['t808kick_5ftick_1018',['t808Kick_tick',['../group__t808kick.html#ga3bba7e177c2b54fadb802277ee4df1d1',1,'t808Kick_tick(t808Kick *const):&#160;leaf-instruments.c'],['../group__t808kick.html#ga3bba7e177c2b54fadb802277ee4df1d1',1,'t808Kick_tick(t808Kick *const kickInst):&#160;leaf-instruments.c']]],
+  ['t808snare_5ffree_1019',['t808Snare_free',['../group__t808snare.html#ga61d0f7d53b904cf9919a767abe274d10',1,'t808Snare_free(t808Snare *const):&#160;leaf-instruments.c'],['../group__t808snare.html#ga61d0f7d53b904cf9919a767abe274d10',1,'t808Snare_free(t808Snare *const snareInst):&#160;leaf-instruments.c']]],
+  ['t808snare_5finit_1020',['t808Snare_init',['../group__t808snare.html#gacd0d752096b9eb8c14b7bd5e7088f6df',1,'t808Snare_init(t808Snare *const, LEAF *const leaf):&#160;leaf-instruments.c'],['../group__t808snare.html#gacd0d752096b9eb8c14b7bd5e7088f6df',1,'t808Snare_init(t808Snare *const snareInst, LEAF *const leaf):&#160;leaf-instruments.c']]],
+  ['t808snare_5finittopool_1021',['t808Snare_initToPool',['../group__t808snare.html#ga2aca77d2a4474881901ede4e03bd6209',1,'t808Snare_initToPool(t808Snare *const, tMempool *const):&#160;leaf-instruments.c'],['../group__t808snare.html#ga2aca77d2a4474881901ede4e03bd6209',1,'t808Snare_initToPool(t808Snare *const snareInst, tMempool *const mp):&#160;leaf-instruments.c']]],
+  ['t808snare_5fon_1022',['t808Snare_on',['../group__t808snare.html#gae053deab7660527b10d71b087e880565',1,'t808Snare_on(t808Snare *const, float vel):&#160;leaf-instruments.c'],['../group__t808snare.html#gae053deab7660527b10d71b087e880565',1,'t808Snare_on(t808Snare *const snareInst, float vel):&#160;leaf-instruments.c']]],
+  ['t808snare_5fsetnoisedecay_1023',['t808Snare_setNoiseDecay',['../group__t808snare.html#gac4d1025b896f471d4eaa28a00332ffd7',1,'t808Snare_setNoiseDecay(t808Snare *const, float decay):&#160;leaf-instruments.c'],['../group__t808snare.html#gac4d1025b896f471d4eaa28a00332ffd7',1,'t808Snare_setNoiseDecay(t808Snare *const snareInst, float decay):&#160;leaf-instruments.c']]],
+  ['t808snare_5fsetnoisefilterfreq_1024',['t808Snare_setNoiseFilterFreq',['../group__t808snare.html#gafaee814013dd2d593d88edb94760f4ab',1,'t808Snare_setNoiseFilterFreq(t808Snare *const, float noiseFilterFreq):&#160;leaf-instruments.c'],['../group__t808snare.html#gafaee814013dd2d593d88edb94760f4ab',1,'t808Snare_setNoiseFilterFreq(t808Snare *const snareInst, float noiseFilterFreq):&#160;leaf-instruments.c']]],
+  ['t808snare_5fsetnoisefilterq_1025',['t808Snare_setNoiseFilterQ',['../group__t808snare.html#ga6777f759f2d5969d1ce54337e85f00f2',1,'t808Snare_setNoiseFilterQ(t808Snare *const, float noiseFilterQ):&#160;leaf-instruments.c'],['../group__t808snare.html#ga6777f759f2d5969d1ce54337e85f00f2',1,'t808Snare_setNoiseFilterQ(t808Snare *const snareInst, float noiseFilterQ):&#160;leaf-instruments.c']]],
+  ['t808snare_5fsettone1decay_1026',['t808Snare_setTone1Decay',['../group__t808snare.html#ga2428f86cd194304d8473720dde039964',1,'t808Snare_setTone1Decay(t808Snare *const, float decay):&#160;leaf-instruments.c'],['../group__t808snare.html#ga2428f86cd194304d8473720dde039964',1,'t808Snare_setTone1Decay(t808Snare *const snareInst, float decay):&#160;leaf-instruments.c']]],
+  ['t808snare_5fsettone1freq_1027',['t808Snare_setTone1Freq',['../group__t808snare.html#gac2203aab6623948c0516eac99caff599',1,'t808Snare_setTone1Freq(t808Snare *const, float freq):&#160;leaf-instruments.c'],['../group__t808snare.html#gac2203aab6623948c0516eac99caff599',1,'t808Snare_setTone1Freq(t808Snare *const snareInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808snare_5fsettone2decay_1028',['t808Snare_setTone2Decay',['../group__t808snare.html#ga9fd3b086cf100b54d044f8a4be211ffe',1,'t808Snare_setTone2Decay(t808Snare *const, float decay):&#160;leaf-instruments.c'],['../group__t808snare.html#ga9fd3b086cf100b54d044f8a4be211ffe',1,'t808Snare_setTone2Decay(t808Snare *const snareInst, float decay):&#160;leaf-instruments.c']]],
+  ['t808snare_5fsettone2freq_1029',['t808Snare_setTone2Freq',['../group__t808snare.html#gae29d81ddb62b86a01e9d9f91af2727ae',1,'t808Snare_setTone2Freq(t808Snare *const, float freq):&#160;leaf-instruments.c'],['../group__t808snare.html#gae29d81ddb62b86a01e9d9f91af2727ae',1,'t808Snare_setTone2Freq(t808Snare *const snareInst, float freq):&#160;leaf-instruments.c']]],
+  ['t808snare_5fsettonenoisemix_1030',['t808Snare_setToneNoiseMix',['../group__t808snare.html#gac2d85920c25919c4d647243f32453229',1,'t808Snare_setToneNoiseMix(t808Snare *const, float toneNoiseMix):&#160;leaf-instruments.c'],['../group__t808snare.html#gac2d85920c25919c4d647243f32453229',1,'t808Snare_setToneNoiseMix(t808Snare *const snareInst, float toneNoiseMix):&#160;leaf-instruments.c']]],
+  ['t808snare_5ftick_1031',['t808Snare_tick',['../group__t808snare.html#ga517c3b4cfe9e4d362b37d897b852243c',1,'t808Snare_tick(t808Snare *const):&#160;leaf-instruments.c'],['../group__t808snare.html#ga517c3b4cfe9e4d362b37d897b852243c',1,'t808Snare_tick(t808Snare *const snareInst):&#160;leaf-instruments.c']]],
+  ['tadsr2_5ffree_1032',['tADSR2_free',['../group__tasdr2.html#ga3d78c0c766ca431b535d3adb0bc2f684',1,'tADSR2_free(tADSR2 *const):&#160;leaf-envelopes.c'],['../group__tasdr2.html#ga3d78c0c766ca431b535d3adb0bc2f684',1,'tADSR2_free(tADSR2 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5finit_1033',['tADSR2_init',['../group__tasdr2.html#ga5b195997b8fc1934c6cb06cc13f09c13',1,'tADSR2_init(tADSR2 *const, float attack, float decay, float sustain, float release, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__tasdr2.html#ga5b195997b8fc1934c6cb06cc13f09c13',1,'tADSR2_init(tADSR2 *const adsrenv, float attack, float decay, float sustain, float release, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5finittopool_1034',['tADSR2_initToPool',['../group__tasdr2.html#ga15dbf5b654eb51489bef787f4c9c23b7',1,'tADSR2_initToPool(tADSR2 *const, float attack, float decay, float sustain, float release, tMempool *const):&#160;leaf-envelopes.c'],['../group__tasdr2.html#ga15dbf5b654eb51489bef787f4c9c23b7',1,'tADSR2_initToPool(tADSR2 *const adsrenv, float attack, float decay, float sustain, float release, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5foff_1035',['tADSR2_off',['../group__tasdr2.html#gadd6f357864babc27382363b314efd70d',1,'tADSR2_off(tADSR2 *const):&#160;leaf-envelopes.c'],['../group__tasdr2.html#gadd6f357864babc27382363b314efd70d',1,'tADSR2_off(tADSR2 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5fon_1036',['tADSR2_on',['../group__tasdr2.html#ga2ba1656a4f5d1f8dcecde930ea54c7b7',1,'tADSR2_on(tADSR2 *const, float velocity):&#160;leaf-envelopes.c'],['../group__tasdr2.html#ga2ba1656a4f5d1f8dcecde930ea54c7b7',1,'tADSR2_on(tADSR2 *const adsrenv, float velocity):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5fsetattack_1037',['tADSR2_setAttack',['../group__tasdr2.html#ga19f6d152bd5b351dcc4416f4a5f51555',1,'tADSR2_setAttack(tADSR2 *const, float attack):&#160;leaf-envelopes.c'],['../group__tasdr2.html#ga19f6d152bd5b351dcc4416f4a5f51555',1,'tADSR2_setAttack(tADSR2 *const adsrenv, float attack):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5fsetdecay_1038',['tADSR2_setDecay',['../group__tasdr2.html#gab50e8fb5a053b908b69315cd83e1840a',1,'tADSR2_setDecay(tADSR2 *const, float decay):&#160;leaf-envelopes.c'],['../group__tasdr2.html#gab50e8fb5a053b908b69315cd83e1840a',1,'tADSR2_setDecay(tADSR2 *const adsrenv, float decay):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5fsetleakfactor_1039',['tADSR2_setLeakFactor',['../group__tasdr2.html#ga8490472fff769f548a45739892a31758',1,'tADSR2_setLeakFactor(tADSR2 *const, float leakFactor):&#160;leaf-envelopes.c'],['../group__tasdr2.html#ga8490472fff769f548a45739892a31758',1,'tADSR2_setLeakFactor(tADSR2 *const adsrenv, float leakFactor):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5fsetrelease_1040',['tADSR2_setRelease',['../group__tasdr2.html#gaf68f6a5e10f25998f33d65162f9eb583',1,'tADSR2_setRelease(tADSR2 *const, float release):&#160;leaf-envelopes.c'],['../group__tasdr2.html#gaf68f6a5e10f25998f33d65162f9eb583',1,'tADSR2_setRelease(tADSR2 *const adsrenv, float release):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5fsetsustain_1041',['tADSR2_setSustain',['../group__tasdr2.html#ga3910c7c0360e0d7859e4bcf5521b3e7d',1,'tADSR2_setSustain(tADSR2 *const, float sustain):&#160;leaf-envelopes.c'],['../group__tasdr2.html#ga3910c7c0360e0d7859e4bcf5521b3e7d',1,'tADSR2_setSustain(tADSR2 *const adsrenv, float sustain):&#160;leaf-envelopes.c']]],
+  ['tadsr2_5ftick_1042',['tADSR2_tick',['../group__tasdr2.html#ga3033906b9b5a6688818059210b10799e',1,'tADSR2_tick(tADSR2 *const):&#160;leaf-envelopes.c'],['../group__tasdr2.html#ga3033906b9b5a6688818059210b10799e',1,'tADSR2_tick(tADSR2 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5ffree_1043',['tADSR3_free',['../group__tadsr3.html#gaf633a93865d4a9d4ba4840624f2b41bf',1,'tADSR3_free(tADSR3 *const):&#160;leaf-envelopes.c'],['../group__tadsr3.html#gaf633a93865d4a9d4ba4840624f2b41bf',1,'tADSR3_free(tADSR3 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5finit_1044',['tADSR3_init',['../group__tadsr3.html#ga61f1fd529df0d97a9a74b9523024b1fe',1,'tADSR3_init(tADSR3 *const, float attack, float decay, float sustain, float release, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__tadsr3.html#ga61f1fd529df0d97a9a74b9523024b1fe',1,'tADSR3_init(tADSR3 *const adsrenv, float attack, float decay, float sustain, float release, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5finittopool_1045',['tADSR3_initToPool',['../group__tadsr3.html#ga7e0784b34c2fef54de2ed993d68f9b7c',1,'tADSR3_initToPool(tADSR3 *const, float attack, float decay, float sustain, float release, tMempool *const):&#160;leaf-envelopes.c'],['../group__tadsr3.html#ga7e0784b34c2fef54de2ed993d68f9b7c',1,'tADSR3_initToPool(tADSR3 *const adsrenv, float attack, float decay, float sustain, float release, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5foff_1046',['tADSR3_off',['../group__tadsr3.html#gad48b26429b4224b199b26690a0d480f1',1,'tADSR3_off(tADSR3 *const):&#160;leaf-envelopes.c'],['../group__tadsr3.html#gad48b26429b4224b199b26690a0d480f1',1,'tADSR3_off(tADSR3 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5fon_1047',['tADSR3_on',['../group__tadsr3.html#ga6054295d933bb2d27898664f4b6f067e',1,'tADSR3_on(tADSR3 *const, float velocity):&#160;leaf-envelopes.c'],['../group__tadsr3.html#ga6054295d933bb2d27898664f4b6f067e',1,'tADSR3_on(tADSR3 *const adsrenv, float velocity):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5fsetattack_1048',['tADSR3_setAttack',['../group__tadsr3.html#ga0a6a119590346ee356f486d8af00567a',1,'tADSR3_setAttack(tADSR3 *const, float attack):&#160;leaf-envelopes.c'],['../group__tadsr3.html#ga0a6a119590346ee356f486d8af00567a',1,'tADSR3_setAttack(tADSR3 *const adsrenv, float attack):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5fsetdecay_1049',['tADSR3_setDecay',['../group__tadsr3.html#ga325386ad4640ec898971fdedf87b3b49',1,'tADSR3_setDecay(tADSR3 *const, float decay):&#160;leaf-envelopes.c'],['../group__tadsr3.html#ga325386ad4640ec898971fdedf87b3b49',1,'tADSR3_setDecay(tADSR3 *const adsrenv, float decay):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5fsetleakfactor_1050',['tADSR3_setLeakFactor',['../group__tadsr3.html#ga589972bef8fca1a6a99064b92968c9fc',1,'tADSR3_setLeakFactor(tADSR3 *const, float leakFactor):&#160;leaf-envelopes.c'],['../group__tadsr3.html#ga589972bef8fca1a6a99064b92968c9fc',1,'tADSR3_setLeakFactor(tADSR3 *const adsrenv, float leakFactor):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5fsetrelease_1051',['tADSR3_setRelease',['../group__tadsr3.html#ga3ac9763101f9e3b5338ea92cc02a6032',1,'tADSR3_setRelease(tADSR3 *const, float release):&#160;leaf-envelopes.c'],['../group__tadsr3.html#ga3ac9763101f9e3b5338ea92cc02a6032',1,'tADSR3_setRelease(tADSR3 *const adsrenv, float release):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5fsetsustain_1052',['tADSR3_setSustain',['../group__tadsr3.html#gae5695ee654846bf4f3f092c3f2136ca8',1,'tADSR3_setSustain(tADSR3 *const, float sustain):&#160;leaf-envelopes.c'],['../group__tadsr3.html#gae5695ee654846bf4f3f092c3f2136ca8',1,'tADSR3_setSustain(tADSR3 *const adsrenv, float sustain):&#160;leaf-envelopes.c']]],
+  ['tadsr3_5ftick_1053',['tADSR3_tick',['../group__tadsr3.html#ga3b959e263e7322d7876bdf5e9b633a16',1,'tADSR3_tick(tADSR3 *const):&#160;leaf-envelopes.c'],['../group__tadsr3.html#ga3b959e263e7322d7876bdf5e9b633a16',1,'tADSR3_tick(tADSR3 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5ffree_1054',['tADSR4_free',['../group__tadsr4.html#ga2889f7a9596ba5e9d386c9913e51e62d',1,'tADSR4_free(tADSR4 *const):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga2889f7a9596ba5e9d386c9913e51e62d',1,'tADSR4_free(tADSR4 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5finit_1055',['tADSR4_init',['../group__tadsr4.html#ga18f8440695a8f99ff6469ff9df6395c2',1,'tADSR4_init(tADSR4 *const, float attack, float decay, float sustain, float release, float *expBuffer, int bufferSize, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga18f8440695a8f99ff6469ff9df6395c2',1,'tADSR4_init(tADSR4 *const adsrenv, float attack, float decay, float sustain, float release, float *expBuffer, int bufferSize, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5finittopool_1056',['tADSR4_initToPool',['../group__tadsr4.html#ga731d6838ae65373c787ecf977523c121',1,'tADSR4_initToPool(tADSR4 *const, float attack, float decay, float sustain, float release, float *expBuffer, int bufferSize, tMempool *const):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga731d6838ae65373c787ecf977523c121',1,'tADSR4_initToPool(tADSR4 *const adsrenv, float attack, float decay, float sustain, float release, float *expBuffer, int bufferSize, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5foff_1057',['tADSR4_off',['../group__tadsr4.html#ga0271a2f741bed72edb08dc965433dade',1,'tADSR4_off(tADSR4 *const):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga0271a2f741bed72edb08dc965433dade',1,'tADSR4_off(tADSR4 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5fon_1058',['tADSR4_on',['../group__tadsr4.html#ga63a8a38f1f6f319d0103acf7d0fb21ad',1,'tADSR4_on(tADSR4 *const, float velocity):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga63a8a38f1f6f319d0103acf7d0fb21ad',1,'tADSR4_on(tADSR4 *const adsrenv, float velocity):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5fsetattack_1059',['tADSR4_setAttack',['../group__tadsr4.html#ga5059a2109760aa0188c4769a52b4a4a3',1,'tADSR4_setAttack(tADSR4 *const, float attack):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga5059a2109760aa0188c4769a52b4a4a3',1,'tADSR4_setAttack(tADSR4 *const adsrenv, float attack):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5fsetdecay_1060',['tADSR4_setDecay',['../group__tadsr4.html#gab5b58a1067454a87cdff5e09a86e4af3',1,'tADSR4_setDecay(tADSR4 *const, float decay):&#160;leaf-envelopes.c'],['../group__tadsr4.html#gab5b58a1067454a87cdff5e09a86e4af3',1,'tADSR4_setDecay(tADSR4 *const adsrenv, float decay):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5fsetleakfactor_1061',['tADSR4_setLeakFactor',['../group__tadsr4.html#gad79710f31593ada4e3834ebefd67a388',1,'tADSR4_setLeakFactor(tADSR4 *const, float leakFactor):&#160;leaf-envelopes.c'],['../group__tadsr4.html#gad79710f31593ada4e3834ebefd67a388',1,'tADSR4_setLeakFactor(tADSR4 *const adsrenv, float leakFactor):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5fsetrelease_1062',['tADSR4_setRelease',['../group__tadsr4.html#ga7a53860240f681a65d90302145702697',1,'tADSR4_setRelease(tADSR4 *const, float release):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga7a53860240f681a65d90302145702697',1,'tADSR4_setRelease(tADSR4 *const adsrenv, float release):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5fsetsustain_1063',['tADSR4_setSustain',['../group__tadsr4.html#ga691edaf4b254d1d44bee378312e370be',1,'tADSR4_setSustain(tADSR4 *const, float sustain):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga691edaf4b254d1d44bee378312e370be',1,'tADSR4_setSustain(tADSR4 *const adsrenv, float sustain):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5ftick_1064',['tADSR4_tick',['../group__tadsr4.html#ga5f4cc4b20251f8240c0208b452b8eff3',1,'tADSR4_tick(tADSR4 *const):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga5f4cc4b20251f8240c0208b452b8eff3',1,'tADSR4_tick(tADSR4 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr4_5fticknointerp_1065',['tADSR4_tickNoInterp',['../group__tadsr4.html#ga32a5545ca2510d666b9c59d9106888c5',1,'tADSR4_tickNoInterp(tADSR4 *const adsrenv):&#160;leaf-envelopes.c'],['../group__tadsr4.html#ga32a5545ca2510d666b9c59d9106888c5',1,'tADSR4_tickNoInterp(tADSR4 *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr_5ffree_1066',['tADSR_free',['../group__tadsr.html#gaccc3f988aaab5a39b495b1ccd21da608',1,'tADSR_free(tADSR *const):&#160;leaf-envelopes.c'],['../group__tadsr.html#gaccc3f988aaab5a39b495b1ccd21da608',1,'tADSR_free(tADSR *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr_5finit_1067',['tADSR_init',['../group__tadsr.html#gafa76d2b76694362abf9cf0ed987b7106',1,'tADSR_init(tADSR *const adsrenv, float attack, float decay, float sustain, float release, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__tadsr.html#gafa76d2b76694362abf9cf0ed987b7106',1,'tADSR_init(tADSR *const adsrenv, float attack, float decay, float sustain, float release, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['tadsr_5finittopool_1068',['tADSR_initToPool',['../group__tadsr.html#gada1d7d74e13cfddaba736b2920b79d9f',1,'tADSR_initToPool(tADSR *const adsrenv, float attack, float decay, float sustain, float release, tMempool *const mp):&#160;leaf-envelopes.c'],['../group__tadsr.html#gada1d7d74e13cfddaba736b2920b79d9f',1,'tADSR_initToPool(tADSR *const adsrenv, float attack, float decay, float sustain, float release, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['tadsr_5foff_1069',['tADSR_off',['../group__tadsr.html#ga1a41adcdea81db09f04d008b9b8e62b8',1,'tADSR_off(tADSR *const):&#160;leaf-envelopes.c'],['../group__tadsr.html#ga1a41adcdea81db09f04d008b9b8e62b8',1,'tADSR_off(tADSR *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tadsr_5fon_1070',['tADSR_on',['../group__tadsr.html#gaffd817040cc125f3b8204e756a16085c',1,'tADSR_on(tADSR *const, float velocity):&#160;leaf-envelopes.c'],['../group__tadsr.html#gaffd817040cc125f3b8204e756a16085c',1,'tADSR_on(tADSR *const adsrenv, float velocity):&#160;leaf-envelopes.c']]],
+  ['tadsr_5fsetattack_1071',['tADSR_setAttack',['../group__tadsr.html#ga1cceb7951e999aa388bd72a7bb3901f6',1,'tADSR_setAttack(tADSR *const, float attack):&#160;leaf-envelopes.c'],['../group__tadsr.html#ga1cceb7951e999aa388bd72a7bb3901f6',1,'tADSR_setAttack(tADSR *const adsrenv, float attack):&#160;leaf-envelopes.c']]],
+  ['tadsr_5fsetdecay_1072',['tADSR_setDecay',['../group__tadsr.html#ga7f305ead6d014fbafcb132ebcc81dddb',1,'tADSR_setDecay(tADSR *const, float decay):&#160;leaf-envelopes.c'],['../group__tadsr.html#ga7f305ead6d014fbafcb132ebcc81dddb',1,'tADSR_setDecay(tADSR *const adsrenv, float decay):&#160;leaf-envelopes.c']]],
+  ['tadsr_5fsetleakfactor_1073',['tADSR_setLeakFactor',['../group__tadsr.html#ga1802708b1a0c0ce324c3072554c01624',1,'tADSR_setLeakFactor(tADSR *const, float leakFactor):&#160;leaf-envelopes.c'],['../group__tadsr.html#ga1802708b1a0c0ce324c3072554c01624',1,'tADSR_setLeakFactor(tADSR *const adsrenv, float leakFactor):&#160;leaf-envelopes.c']]],
+  ['tadsr_5fsetrelease_1074',['tADSR_setRelease',['../group__tadsr.html#ga3d62827bbd4f058d07e6cb1a8b92cb9f',1,'tADSR_setRelease(tADSR *const, float release):&#160;leaf-envelopes.c'],['../group__tadsr.html#ga3d62827bbd4f058d07e6cb1a8b92cb9f',1,'tADSR_setRelease(tADSR *const adsrenv, float release):&#160;leaf-envelopes.c']]],
+  ['tadsr_5fsetsustain_1075',['tADSR_setSustain',['../group__tadsr.html#gac676d5a70fe7a8487d125e5aff250fd0',1,'tADSR_setSustain(tADSR *const, float sustain):&#160;leaf-envelopes.c'],['../group__tadsr.html#gac676d5a70fe7a8487d125e5aff250fd0',1,'tADSR_setSustain(tADSR *const adsrenv, float sustain):&#160;leaf-envelopes.c']]],
+  ['tadsr_5ftick_1076',['tADSR_tick',['../group__tadsr.html#gabbc3685eb6c47a49e657a1792d38dfc7',1,'tADSR_tick(tADSR *const):&#160;leaf-envelopes.c'],['../group__tadsr.html#gabbc3685eb6c47a49e657a1792d38dfc7',1,'tADSR_tick(tADSR *const adsrenv):&#160;leaf-envelopes.c']]],
+  ['tallpass_5ffree_1077',['tAllpass_free',['../group__tallpass.html#ga177191c8cb437f2a255f02ee476d6ee0',1,'tAllpass_free(tAllpass *const):&#160;leaf-filters.c'],['../group__tallpass.html#ga177191c8cb437f2a255f02ee476d6ee0',1,'tAllpass_free(tAllpass *const ft):&#160;leaf-filters.c']]],
+  ['tallpass_5finit_1078',['tAllpass_init',['../group__tallpass.html#ga49f8da193def13b70b2380288dbd96d2',1,'tAllpass_init(tAllpass *const, float initDelay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tallpass.html#ga49f8da193def13b70b2380288dbd96d2',1,'tAllpass_init(tAllpass *const ft, float initDelay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tallpass_5finittopool_1079',['tAllpass_initToPool',['../group__tallpass.html#ga51e3ba1dedc220c6f466704870614ec7',1,'tAllpass_initToPool(tAllpass *const, float initDelay, uint32_t maxDelay, tMempool *const):&#160;leaf-filters.c'],['../group__tallpass.html#ga51e3ba1dedc220c6f466704870614ec7',1,'tAllpass_initToPool(tAllpass *const ft, float initDelay, uint32_t maxDelay, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tallpass_5fsetdelay_1080',['tAllpass_setDelay',['../group__tallpass.html#gaa0e5e88f6000959b4a6146e0c1ce4553',1,'tAllpass_setDelay(tAllpass *const, float delay):&#160;leaf-filters.c'],['../group__tallpass.html#gaa0e5e88f6000959b4a6146e0c1ce4553',1,'tAllpass_setDelay(tAllpass *const ft, float delay):&#160;leaf-filters.c']]],
+  ['tallpass_5fsetgain_1081',['tAllpass_setGain',['../group__tallpass.html#gac301093f1c86a58e33f0d197e4f49719',1,'tAllpass_setGain(tAllpass *const, float gain):&#160;leaf-filters.c'],['../group__tallpass.html#gac301093f1c86a58e33f0d197e4f49719',1,'tAllpass_setGain(tAllpass *const ft, float gain):&#160;leaf-filters.c']]],
+  ['tallpass_5ftick_1082',['tAllpass_tick',['../group__tallpass.html#gac0b56b4935f44e73e86566289d16aaa5',1,'tAllpass_tick(tAllpass *const, float input):&#160;leaf-filters.c'],['../group__tallpass.html#gac0b56b4935f44e73e86566289d16aaa5',1,'tAllpass_tick(tAllpass *const ft, float input):&#160;leaf-filters.c']]],
+  ['tallpassdelay_5faddto_1083',['tAllpassDelay_addTo',['../group__tallpassdelay.html#ga25124f2fc78144daa86e0008417f410c',1,'tAllpassDelay_addTo(tAllpassDelay *const, float value, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga25124f2fc78144daa86e0008417f410c',1,'tAllpassDelay_addTo(tAllpassDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5fclear_1084',['tAllpassDelay_clear',['../group__tallpassdelay.html#ga22a3124a087816518ae22e7dd57049dd',1,'tAllpassDelay_clear(tAllpassDelay *const):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga22a3124a087816518ae22e7dd57049dd',1,'tAllpassDelay_clear(tAllpassDelay *const dl):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5ffree_1085',['tAllpassDelay_free',['../group__tallpassdelay.html#gaae4b75bede117322eedbb806f92af672',1,'tAllpassDelay_free(tAllpassDelay *const):&#160;leaf-delay.c'],['../group__tallpassdelay.html#gaae4b75bede117322eedbb806f92af672',1,'tAllpassDelay_free(tAllpassDelay *const dl):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5fgetdelay_1086',['tAllpassDelay_getDelay',['../group__tallpassdelay.html#ga7cda781e73a82d91e49f3ce5955cbd0a',1,'tAllpassDelay_getDelay(tAllpassDelay *const):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga7cda781e73a82d91e49f3ce5955cbd0a',1,'tAllpassDelay_getDelay(tAllpassDelay *const dl):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5fgetlastin_1087',['tAllpassDelay_getLastIn',['../group__tallpassdelay.html#ga01be8563825023d090b5dbd750f2bba3',1,'tAllpassDelay_getLastIn(tAllpassDelay *const):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga01be8563825023d090b5dbd750f2bba3',1,'tAllpassDelay_getLastIn(tAllpassDelay *const dl):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5fgetlastout_1088',['tAllpassDelay_getLastOut',['../group__tallpassdelay.html#gab6937352ad500b205c4fc5e822937735',1,'tAllpassDelay_getLastOut(tAllpassDelay *const):&#160;leaf-delay.c'],['../group__tallpassdelay.html#gab6937352ad500b205c4fc5e822937735',1,'tAllpassDelay_getLastOut(tAllpassDelay *const dl):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5finit_1089',['tAllpassDelay_init',['../group__tallpassdelay.html#gac68b64e119c315b545227a9404c2dedc',1,'tAllpassDelay_init(tAllpassDelay *const, float delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c'],['../group__tallpassdelay.html#gac68b64e119c315b545227a9404c2dedc',1,'tAllpassDelay_init(tAllpassDelay *const dl, float delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5finittopool_1090',['tAllpassDelay_initToPool',['../group__tallpassdelay.html#ga9a65c14cde90540162d7fb94bedd4013',1,'tAllpassDelay_initToPool(tAllpassDelay *const, float delay, uint32_t maxDelay, tMempool *const):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga9a65c14cde90540162d7fb94bedd4013',1,'tAllpassDelay_initToPool(tAllpassDelay *const dl, float delay, uint32_t maxDelay, tMempool *const mp):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5fsetdelay_1091',['tAllpassDelay_setDelay',['../group__tallpassdelay.html#ga83b93819de2b2d825247c47b830d918c',1,'tAllpassDelay_setDelay(tAllpassDelay *const, float delay):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga83b93819de2b2d825247c47b830d918c',1,'tAllpassDelay_setDelay(tAllpassDelay *const dl, float delay):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5ftapin_1092',['tAllpassDelay_tapIn',['../group__tallpassdelay.html#ga000dae89babb537265f9b56f8ce5560b',1,'tAllpassDelay_tapIn(tAllpassDelay *const, float in, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga000dae89babb537265f9b56f8ce5560b',1,'tAllpassDelay_tapIn(tAllpassDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5ftapout_1093',['tAllpassDelay_tapOut',['../group__tallpassdelay.html#ga0348f7e531aa956c0e4f1e9eb3bb208a',1,'tAllpassDelay_tapOut(tAllpassDelay *const, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga0348f7e531aa956c0e4f1e9eb3bb208a',1,'tAllpassDelay_tapOut(tAllpassDelay *const dl, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tallpassdelay_5ftick_1094',['tAllpassDelay_tick',['../group__tallpassdelay.html#ga6145fe6d2e4fd9e423d96725183498cc',1,'tAllpassDelay_tick(tAllpassDelay *const, float sample):&#160;leaf-delay.c'],['../group__tallpassdelay.html#ga6145fe6d2e4fd9e423d96725183498cc',1,'tAllpassDelay_tick(tAllpassDelay *const dl, float input):&#160;leaf-delay.c']]],
+  ['tattackdetection_5fdetect_1095',['tAttackDetection_detect',['../group__tattackdetection.html#ga628b4e4305fb135f7f363b94a209cb37',1,'tAttackDetection_detect(tAttackDetection *const, float *in):&#160;leaf-analysis.c'],['../group__tattackdetection.html#ga628b4e4305fb135f7f363b94a209cb37',1,'tAttackDetection_detect(tAttackDetection *const ad, float *in):&#160;leaf-analysis.c']]],
+  ['tattackdetection_5ffree_1096',['tAttackDetection_free',['../group__tattackdetection.html#gac0cecbd3eb9478a8ac62ad056b4e65e8',1,'tAttackDetection_free(tAttackDetection *const):&#160;leaf-analysis.c'],['../group__tattackdetection.html#gac0cecbd3eb9478a8ac62ad056b4e65e8',1,'tAttackDetection_free(tAttackDetection *const ad):&#160;leaf-analysis.c']]],
+  ['tattackdetection_5finit_1097',['tAttackDetection_init',['../group__tattackdetection.html#gaa7cf7c473a720eb6e034661a92a9164a',1,'tAttackDetection_init(tAttackDetection *const, int blocksize, int atk, int rel, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tattackdetection.html#gaa7cf7c473a720eb6e034661a92a9164a',1,'tAttackDetection_init(tAttackDetection *const ad, int blocksize, int atk, int rel, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tattackdetection_5finittopool_1098',['tAttackDetection_initToPool',['../group__tattackdetection.html#ga159b77e3617708f63d34705f66891eca',1,'tAttackDetection_initToPool(tAttackDetection *const, int blocksize, int atk, int rel, tMempool *const):&#160;leaf-analysis.c'],['../group__tattackdetection.html#ga159b77e3617708f63d34705f66891eca',1,'tAttackDetection_initToPool(tAttackDetection *const ad, int blocksize, int atk, int rel, tMempool *const mp):&#160;leaf-analysis.c']]],
+  ['tattackdetection_5fsetattack_1099',['tAttackDetection_setAttack',['../group__tattackdetection.html#gae1258e29699c07368168a5a06e847c1c',1,'tAttackDetection_setAttack(tAttackDetection *const, int inAtk):&#160;leaf-analysis.c'],['../group__tattackdetection.html#gae1258e29699c07368168a5a06e847c1c',1,'tAttackDetection_setAttack(tAttackDetection *const ad, int inAtk):&#160;leaf-analysis.c']]],
+  ['tattackdetection_5fsetblocksize_1100',['tAttackDetection_setBlocksize',['../group__tattackdetection.html#ga330419a7bcf2aea460cbb8341d0cc7a1',1,'tAttackDetection_setBlocksize(tAttackDetection *const, int size):&#160;leaf-analysis.c'],['../group__tattackdetection.html#ga330419a7bcf2aea460cbb8341d0cc7a1',1,'tAttackDetection_setBlocksize(tAttackDetection *const ad, int size):&#160;leaf-analysis.c']]],
+  ['tattackdetection_5fsetrelease_1101',['tAttackDetection_setRelease',['../group__tattackdetection.html#ga849d76be546d42e00dcfaee4ca326adb',1,'tAttackDetection_setRelease(tAttackDetection *const, int inRel):&#160;leaf-analysis.c'],['../group__tattackdetection.html#ga849d76be546d42e00dcfaee4ca326adb',1,'tAttackDetection_setRelease(tAttackDetection *const ad, int inRel):&#160;leaf-analysis.c']]],
+  ['tattackdetection_5fsetsamplerate_1102',['tAttackDetection_setSamplerate',['../group__tattackdetection.html#gafc1088d0fc65cb8c9ca3e219dc6ee23e',1,'tAttackDetection_setSamplerate(tAttackDetection *const, int inRate):&#160;leaf-analysis.c'],['../group__tattackdetection.html#gafc1088d0fc65cb8c9ca3e219dc6ee23e',1,'tAttackDetection_setSamplerate(tAttackDetection *const ad, int inRate):&#160;leaf-analysis.c']]],
+  ['tattackdetection_5fsetthreshold_1103',['tAttackDetection_setThreshold',['../group__tattackdetection.html#gafc46d23c20523048eaf45a68e146dbcf',1,'tAttackDetection_setThreshold(tAttackDetection *const, float thres):&#160;leaf-analysis.c'],['../group__tattackdetection.html#gafc46d23c20523048eaf45a68e146dbcf',1,'tAttackDetection_setThreshold(tAttackDetection *const ad, float thres):&#160;leaf-analysis.c']]],
+  ['tautosampler_5ffree_1104',['tAutoSampler_free',['../group__tautosampler.html#ga1317602e4195ebc58d6df3f0263c4bb8',1,'tAutoSampler_free(tAutoSampler *const):&#160;leaf-sampling.c'],['../group__tautosampler.html#ga1317602e4195ebc58d6df3f0263c4bb8',1,'tAutoSampler_free(tAutoSampler *const as):&#160;leaf-sampling.c']]],
+  ['tautosampler_5finit_1105',['tAutoSampler_init',['../group__tautosampler.html#gafbc477a175f7abfd083b150e7fb425eb',1,'tAutoSampler_init(tAutoSampler *const, tBuffer *const, LEAF *const leaf):&#160;leaf-sampling.c'],['../group__tautosampler.html#gafbc477a175f7abfd083b150e7fb425eb',1,'tAutoSampler_init(tAutoSampler *const as, tBuffer *const b, LEAF *const leaf):&#160;leaf-sampling.c']]],
+  ['tautosampler_5fplay_1106',['tAutoSampler_play',['../group__tautosampler.html#ga49675d40778b000fce44454eca05f476',1,'tAutoSampler_play(tAutoSampler *const):&#160;leaf-sampling.c'],['../group__tautosampler.html#ga49675d40778b000fce44454eca05f476',1,'tAutoSampler_play(tAutoSampler *const as):&#160;leaf-sampling.c']]],
+  ['tautosampler_5fsetbuffer_1107',['tAutoSampler_setBuffer',['../group__tautosampler.html#gae3740600b81b2d3ecc2f76b354996873',1,'tAutoSampler_setBuffer(tAutoSampler *const, tBuffer *const):&#160;leaf-sampling.c'],['../group__tautosampler.html#gae3740600b81b2d3ecc2f76b354996873',1,'tAutoSampler_setBuffer(tAutoSampler *const as, tBuffer *const b):&#160;leaf-sampling.c']]],
+  ['tautosampler_5fsetcrossfadelength_1108',['tAutoSampler_setCrossfadeLength',['../group__tautosampler.html#ga45d69e59ff3924446ff833940adba2db',1,'tAutoSampler_setCrossfadeLength(tAutoSampler *const, uint32_t length):&#160;leaf-sampling.c'],['../group__tautosampler.html#ga45d69e59ff3924446ff833940adba2db',1,'tAutoSampler_setCrossfadeLength(tAutoSampler *const as, uint32_t length):&#160;leaf-sampling.c']]],
+  ['tautosampler_5fsetmode_1109',['tAutoSampler_setMode',['../group__tautosampler.html#ga2310af54d4e60debedd10003d6ec8113',1,'tAutoSampler_setMode(tAutoSampler *const, PlayMode mode):&#160;leaf-sampling.c'],['../group__tautosampler.html#ga2310af54d4e60debedd10003d6ec8113',1,'tAutoSampler_setMode(tAutoSampler *const as, PlayMode mode):&#160;leaf-sampling.c']]],
+  ['tautosampler_5fsetrate_1110',['tAutoSampler_setRate',['../group__tautosampler.html#ga8abfe84e7aaf00dc70b5b6e96d99af63',1,'tAutoSampler_setRate(tAutoSampler *const, float rate):&#160;leaf-sampling.c'],['../group__tautosampler.html#ga8abfe84e7aaf00dc70b5b6e96d99af63',1,'tAutoSampler_setRate(tAutoSampler *const as, float rate):&#160;leaf-sampling.c']]],
+  ['tautosampler_5fsetthreshold_1111',['tAutoSampler_setThreshold',['../group__tautosampler.html#gaa163a4ea5f76285fdb51de157185740e',1,'tAutoSampler_setThreshold(tAutoSampler *const, float thresh):&#160;leaf-sampling.c'],['../group__tautosampler.html#gaa163a4ea5f76285fdb51de157185740e',1,'tAutoSampler_setThreshold(tAutoSampler *const as, float thresh):&#160;leaf-sampling.c']]],
+  ['tautosampler_5fsetwindowsize_1112',['tAutoSampler_setWindowSize',['../group__tautosampler.html#gabe80e37e28f7b454acf1621ab703506f',1,'tAutoSampler_setWindowSize(tAutoSampler *const, uint32_t size):&#160;leaf-sampling.c'],['../group__tautosampler.html#gabe80e37e28f7b454acf1621ab703506f',1,'tAutoSampler_setWindowSize(tAutoSampler *const as, uint32_t size):&#160;leaf-sampling.c']]],
+  ['tautosampler_5fstop_1113',['tAutoSampler_stop',['../group__tautosampler.html#gaa267e6bad2805ca746b9189ea38cf040',1,'tAutoSampler_stop(tAutoSampler *const):&#160;leaf-sampling.c'],['../group__tautosampler.html#gaa267e6bad2805ca746b9189ea38cf040',1,'tAutoSampler_stop(tAutoSampler *const as):&#160;leaf-sampling.c']]],
+  ['tautosampler_5ftick_1114',['tAutoSampler_tick',['../group__tautosampler.html#ga201113e0c5d4a209bc98719162d256c0',1,'tAutoSampler_tick(tAutoSampler *const, float input):&#160;leaf-sampling.c'],['../group__tautosampler.html#ga201113e0c5d4a209bc98719162d256c0',1,'tAutoSampler_tick(tAutoSampler *const as, float input):&#160;leaf-sampling.c']]],
+  ['tbiquad_5ffree_1115',['tBiQuad_free',['../group__tbiquad.html#gaa73dd0d8efd4d147184a3af3243f50db',1,'tBiQuad_free(tBiQuad *const):&#160;leaf-filters.c'],['../group__tbiquad.html#gaa73dd0d8efd4d147184a3af3243f50db',1,'tBiQuad_free(tBiQuad *const ft):&#160;leaf-filters.c']]],
+  ['tbiquad_5finit_1116',['tBiQuad_init',['../group__tbiquad.html#ga7a8d9261b37e588479b6a9548a28a2ae',1,'tBiQuad_init(tBiQuad *const, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tbiquad.html#ga7a8d9261b37e588479b6a9548a28a2ae',1,'tBiQuad_init(tBiQuad *const ft, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tbiquad_5finittopool_1117',['tBiQuad_initToPool',['../group__tbiquad.html#gab56ac6460715286ab98439dd8e7e346c',1,'tBiQuad_initToPool(tBiQuad *const, tMempool *const):&#160;leaf-filters.c'],['../group__tbiquad.html#gab56ac6460715286ab98439dd8e7e346c',1,'tBiQuad_initToPool(tBiQuad *const ft, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tbiquad_5fseta1_1118',['tBiQuad_setA1',['../group__tbiquad.html#ga18eef101bdb03775d51acec6c6eebdaa',1,'tBiQuad_setA1(tBiQuad *const, float a1):&#160;leaf-filters.c'],['../group__tbiquad.html#ga18eef101bdb03775d51acec6c6eebdaa',1,'tBiQuad_setA1(tBiQuad *const ft, float a1):&#160;leaf-filters.c']]],
+  ['tbiquad_5fseta2_1119',['tBiQuad_setA2',['../group__tbiquad.html#ga1583768209208a3f9d9135636fb505e6',1,'tBiQuad_setA2(tBiQuad *const, float a2):&#160;leaf-filters.c'],['../group__tbiquad.html#ga1583768209208a3f9d9135636fb505e6',1,'tBiQuad_setA2(tBiQuad *const ft, float a2):&#160;leaf-filters.c']]],
+  ['tbiquad_5fsetb0_1120',['tBiQuad_setB0',['../group__tbiquad.html#ga2f804ac8c8ccea56bbb3dae661b82692',1,'tBiQuad_setB0(tBiQuad *const, float b0):&#160;leaf-filters.c'],['../group__tbiquad.html#ga2f804ac8c8ccea56bbb3dae661b82692',1,'tBiQuad_setB0(tBiQuad *const ft, float b0):&#160;leaf-filters.c']]],
+  ['tbiquad_5fsetb1_1121',['tBiQuad_setB1',['../group__tbiquad.html#ga6a2d07723a0652c959c529274b1ca783',1,'tBiQuad_setB1(tBiQuad *const, float b1):&#160;leaf-filters.c'],['../group__tbiquad.html#ga6a2d07723a0652c959c529274b1ca783',1,'tBiQuad_setB1(tBiQuad *const ft, float b1):&#160;leaf-filters.c']]],
+  ['tbiquad_5fsetb2_1122',['tBiQuad_setB2',['../group__tbiquad.html#gab3602dd88664599839ea67c6797cc4c2',1,'tBiQuad_setB2(tBiQuad *const, float b2):&#160;leaf-filters.c'],['../group__tbiquad.html#gab3602dd88664599839ea67c6797cc4c2',1,'tBiQuad_setB2(tBiQuad *const ft, float b2):&#160;leaf-filters.c']]],
+  ['tbiquad_5fsetcoefficients_1123',['tBiQuad_setCoefficients',['../group__tbiquad.html#gac0b42b1f3660dd1827b0e0a4150aadcd',1,'tBiQuad_setCoefficients(tBiQuad *const, float b0, float b1, float b2, float a1, float a2):&#160;leaf-filters.c'],['../group__tbiquad.html#gac0b42b1f3660dd1827b0e0a4150aadcd',1,'tBiQuad_setCoefficients(tBiQuad *const ft, float b0, float b1, float b2, float a1, float a2):&#160;leaf-filters.c']]],
+  ['tbiquad_5fsetgain_1124',['tBiQuad_setGain',['../group__tbiquad.html#ga181c340eed069d92eacaadc8466f3218',1,'tBiQuad_setGain(tBiQuad *const, float gain):&#160;leaf-filters.c'],['../group__tbiquad.html#ga181c340eed069d92eacaadc8466f3218',1,'tBiQuad_setGain(tBiQuad *const ft, float gain):&#160;leaf-filters.c']]],
+  ['tbiquad_5fsetnotch_1125',['tBiQuad_setNotch',['../group__tbiquad.html#gad74e2504b0128119213eceba36f92879',1,'tBiQuad_setNotch(tBiQuad *const, float freq, float radius):&#160;leaf-filters.c'],['../group__tbiquad.html#gad74e2504b0128119213eceba36f92879',1,'tBiQuad_setNotch(tBiQuad *const ft, float freq, float radius):&#160;leaf-filters.c']]],
+  ['tbiquad_5fsetresonance_1126',['tBiQuad_setResonance',['../group__tbiquad.html#gaab73d7a7a79dccd112ec4d130b8e6d64',1,'tBiQuad_setResonance(tBiQuad *const, float freq, float radius, int normalize):&#160;leaf-filters.c'],['../group__tbiquad.html#gaab73d7a7a79dccd112ec4d130b8e6d64',1,'tBiQuad_setResonance(tBiQuad *const ft, float freq, float radius, int normalize):&#160;leaf-filters.c']]],
+  ['tbiquad_5ftick_1127',['tBiQuad_tick',['../group__tbiquad.html#ga2acfc9097aa260ff141d79199f64fc88',1,'tBiQuad_tick(tBiQuad *const, float input):&#160;leaf-filters.c'],['../group__tbiquad.html#ga2acfc9097aa260ff141d79199f64fc88',1,'tBiQuad_tick(tBiQuad *const ft, float input):&#160;leaf-filters.c']]],
+  ['tbuffer_5fclear_1128',['tBuffer_clear',['../group__tbuffer.html#ga39fb5d9d5ed963390e45322a2a97a1f1',1,'tBuffer_clear(tBuffer *const):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga39fb5d9d5ed963390e45322a2a97a1f1',1,'tBuffer_clear(tBuffer *const sb):&#160;leaf-sampling.c']]],
+  ['tbuffer_5ffree_1129',['tBuffer_free',['../group__tbuffer.html#gaa7addef34b26a9464a59f023d690ec04',1,'tBuffer_free(tBuffer *const):&#160;leaf-sampling.c'],['../group__tbuffer.html#gaa7addef34b26a9464a59f023d690ec04',1,'tBuffer_free(tBuffer *const sb):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fget_1130',['tBuffer_get',['../group__tbuffer.html#ga69d5397829f174b81a621170367a8550',1,'tBuffer_get(tBuffer *const, int idx):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga69d5397829f174b81a621170367a8550',1,'tBuffer_get(tBuffer *const sb, int idx):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fgetbufferlength_1131',['tBuffer_getBufferLength',['../group__tbuffer.html#ga79955880600cfd3ec722b7110a4aab33',1,'tBuffer_getBufferLength(tBuffer *const):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga79955880600cfd3ec722b7110a4aab33',1,'tBuffer_getBufferLength(tBuffer *const sb):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fgetrecordedlength_1132',['tBuffer_getRecordedLength',['../group__tbuffer.html#gaa68440f784cd947e6bb4eb00cd6473b5',1,'tBuffer_getRecordedLength(tBuffer *const sb):&#160;leaf-sampling.c'],['../group__tbuffer.html#gaa68440f784cd947e6bb4eb00cd6473b5',1,'tBuffer_getRecordedLength(tBuffer *const sb):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fgetrecordposition_1133',['tBuffer_getRecordPosition',['../group__tbuffer.html#gaa7ff30c7c2c6de87ed61c8025620429f',1,'tBuffer_getRecordPosition(tBuffer *const):&#160;leaf-sampling.c'],['../group__tbuffer.html#gaa7ff30c7c2c6de87ed61c8025620429f',1,'tBuffer_getRecordPosition(tBuffer *const sb):&#160;leaf-sampling.c']]],
+  ['tbuffer_5finit_1134',['tBuffer_init',['../group__tbuffer.html#ga91d93789b64c9306b30933c5e8d001fd',1,'tBuffer_init(tBuffer *const, uint32_t length, LEAF *const leaf):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga91d93789b64c9306b30933c5e8d001fd',1,'tBuffer_init(tBuffer *const sb, uint32_t length, LEAF *const leaf):&#160;leaf-sampling.c']]],
+  ['tbuffer_5finittopool_1135',['tBuffer_initToPool',['../group__tbuffer.html#gad24562bae9e5411aa917bee6f27d4153',1,'tBuffer_initToPool(tBuffer *const sb, uint32_t length, tMempool *const mp):&#160;leaf-sampling.c'],['../group__tbuffer.html#gad24562bae9e5411aa917bee6f27d4153',1,'tBuffer_initToPool(tBuffer *const sb, uint32_t length, tMempool *const mp):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fisactive_1136',['tBuffer_isActive',['../group__tbuffer.html#ga37ffab4845668d588eac944f4adb1f65',1,'tBuffer_isActive(tBuffer *const sb):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga37ffab4845668d588eac944f4adb1f65',1,'tBuffer_isActive(tBuffer *const sb):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fread_1137',['tBuffer_read',['../group__tbuffer.html#ga73438e2159fac7b67563b1009ca9c7f6',1,'tBuffer_read(tBuffer *const, float *buff, uint32_t len):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga73438e2159fac7b67563b1009ca9c7f6',1,'tBuffer_read(tBuffer *const sb, float *buff, uint32_t len):&#160;leaf-sampling.c']]],
+  ['tbuffer_5frecord_1138',['tBuffer_record',['../group__tbuffer.html#ga55baf7685651fd7f9926dc0ed5b2d73b',1,'tBuffer_record(tBuffer *const):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga55baf7685651fd7f9926dc0ed5b2d73b',1,'tBuffer_record(tBuffer *const sb):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fsetrecordedlength_1139',['tBuffer_setRecordedLength',['../group__tbuffer.html#ga28a6063f2d763e4ba9414c797c1884b4',1,'tBuffer_setRecordedLength(tBuffer *const sb, int length):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga28a6063f2d763e4ba9414c797c1884b4',1,'tBuffer_setRecordedLength(tBuffer *const sb, int length):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fsetrecordmode_1140',['tBuffer_setRecordMode',['../group__tbuffer.html#ga22b4855b2f2e94a7f870de419b3c3c84',1,'tBuffer_setRecordMode(tBuffer *const, RecordMode mode):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga22b4855b2f2e94a7f870de419b3c3c84',1,'tBuffer_setRecordMode(tBuffer *const sb, RecordMode mode):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fsetrecordposition_1141',['tBuffer_setRecordPosition',['../group__tbuffer.html#ga893981a1b088cb6cd43359f869069689',1,'tBuffer_setRecordPosition(tBuffer *const, int pos):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga893981a1b088cb6cd43359f869069689',1,'tBuffer_setRecordPosition(tBuffer *const sb, int pos):&#160;leaf-sampling.c']]],
+  ['tbuffer_5fstop_1142',['tBuffer_stop',['../group__tbuffer.html#ga9fcb0f6e0fb037edf1146a3983d8424d',1,'tBuffer_stop(tBuffer *const):&#160;leaf-sampling.c'],['../group__tbuffer.html#ga9fcb0f6e0fb037edf1146a3983d8424d',1,'tBuffer_stop(tBuffer *const sb):&#160;leaf-sampling.c']]],
+  ['tbuffer_5ftick_1143',['tBuffer_tick',['../group__tbuffer.html#gadad3503c475071c5240b37c768f64be2',1,'tBuffer_tick(tBuffer *const, float sample):&#160;leaf-sampling.c'],['../group__tbuffer.html#gadad3503c475071c5240b37c768f64be2',1,'tBuffer_tick(tBuffer *const sb, float sample):&#160;leaf-sampling.c']]],
+  ['tbutterworth_5ffree_1144',['tButterworth_free',['../group__tbutterworth.html#ga340f64a2f39d6a75dddbff0664c6a0c2',1,'tButterworth_free(tButterworth *const):&#160;leaf-filters.c'],['../group__tbutterworth.html#ga340f64a2f39d6a75dddbff0664c6a0c2',1,'tButterworth_free(tButterworth *const ft):&#160;leaf-filters.c']]],
+  ['tbutterworth_5finittopool_1145',['tButterworth_initToPool',['../group__tbutterworth.html#ga567582dd961193c6a49ebcb5f78db211',1,'tButterworth_initToPool(tButterworth *const, int N, float f1, float f2, tMempool *const):&#160;leaf-filters.c'],['../group__tbutterworth.html#ga567582dd961193c6a49ebcb5f78db211',1,'tButterworth_initToPool(tButterworth *const ft, int order, float f1, float f2, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tbutterworth_5fsetf1_1146',['tButterworth_setF1',['../group__tbutterworth.html#ga12a4c927d24d1664d0beb425cf64e284',1,'tButterworth_setF1(tButterworth *const, float in):&#160;leaf-filters.c'],['../group__tbutterworth.html#ga12a4c927d24d1664d0beb425cf64e284',1,'tButterworth_setF1(tButterworth *const ft, float f1):&#160;leaf-filters.c']]],
+  ['tbutterworth_5fsetf2_1147',['tButterworth_setF2',['../group__tbutterworth.html#ga86218245c60fb73eec98edcdce565a1c',1,'tButterworth_setF2(tButterworth *const, float in):&#160;leaf-filters.c'],['../group__tbutterworth.html#ga86218245c60fb73eec98edcdce565a1c',1,'tButterworth_setF2(tButterworth *const ft, float f2):&#160;leaf-filters.c']]],
+  ['tbutterworth_5fsetfreqs_1148',['tButterworth_setFreqs',['../group__tbutterworth.html#ga5cde91a986d40a6764d07ffde532a1a7',1,'tButterworth_setFreqs(tButterworth *const, float f1, float f2):&#160;leaf-filters.c'],['../group__tbutterworth.html#ga5cde91a986d40a6764d07ffde532a1a7',1,'tButterworth_setFreqs(tButterworth *const ft, float f1, float f2):&#160;leaf-filters.c']]],
+  ['tbutterworth_5ftick_1149',['tButterworth_tick',['../group__tbutterworth.html#gac4729b8e622da0d570efe80ac1c54707',1,'tButterworth_tick(tButterworth *const, float input):&#160;leaf-filters.c'],['../group__tbutterworth.html#gac4729b8e622da0d570efe80ac1c54707',1,'tButterworth_tick(tButterworth *const ft, float samp):&#160;leaf-filters.c']]],
+  ['tcompactwavetable_5ffree_1150',['tCompactWavetable_free',['../group__tcompactwavetable.html#ga31c71e150c921c9c2a6b99b47ed995f5',1,'tCompactWavetable_free(tCompactWavetable *const osc):&#160;leaf-oscillators.c'],['../group__tcompactwavetable.html#ga31c71e150c921c9c2a6b99b47ed995f5',1,'tCompactWavetable_free(tCompactWavetable *const cy):&#160;leaf-oscillators.c']]],
+  ['tcompactwavetable_5fsetfreq_1151',['tCompactWavetable_setFreq',['../group__tcompactwavetable.html#ga49955d040284b3e1a40f2288cb89c54d',1,'tCompactWavetable_setFreq(tCompactWavetable *const osc, float freq):&#160;leaf-oscillators.c'],['../group__tcompactwavetable.html#ga49955d040284b3e1a40f2288cb89c54d',1,'tCompactWavetable_setFreq(tCompactWavetable *const cy, float freq):&#160;leaf-oscillators.c']]],
+  ['tcompactwavetable_5ftick_1152',['tCompactWavetable_tick',['../group__tcompactwavetable.html#ga3057038710e1b064968f8d290e753e5f',1,'tCompactWavetable_tick(tCompactWavetable *const osc):&#160;leaf-oscillators.c'],['../group__tcompactwavetable.html#ga3057038710e1b064968f8d290e753e5f',1,'tCompactWavetable_tick(tCompactWavetable *const cy):&#160;leaf-oscillators.c']]],
+  ['tcomplexlivingstring_5ffree_1153',['tComplexLivingString_free',['../group__tcomplexlivingstring.html#ga3a7b657a97195d44907de707485d25cb',1,'tComplexLivingString_free(tComplexLivingString *const):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga3a7b657a97195d44907de707485d25cb',1,'tComplexLivingString_free(tComplexLivingString *const pl):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5finit_1154',['tComplexLivingString_init',['../group__tcomplexlivingstring.html#gabdc7c63658712975d512e17a82f96b26',1,'tComplexLivingString_init(tComplexLivingString *const, float freq, float pickPos, float prepPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, LEAF *const leaf):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#gabdc7c63658712975d512e17a82f96b26',1,'tComplexLivingString_init(tComplexLivingString *const pl, float freq, float pickPos, float prepPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, LEAF *const leaf):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5finittopool_1155',['tComplexLivingString_initToPool',['../group__tcomplexlivingstring.html#gaf8d2d61f57a0b916002dafc427a8b092',1,'tComplexLivingString_initToPool(tComplexLivingString *const, float freq, float pickPos, float prepPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#gaf8d2d61f57a0b916002dafc427a8b092',1,'tComplexLivingString_initToPool(tComplexLivingString *const pl, float freq, float pickPos, float prepPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const mp):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsample_1156',['tComplexLivingString_sample',['../group__tcomplexlivingstring.html#ga87ae54f64d1dacee2ba06639cfd30ba6',1,'tComplexLivingString_sample(tComplexLivingString *const):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga87ae54f64d1dacee2ba06639cfd30ba6',1,'tComplexLivingString_sample(tComplexLivingString *const pl):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetdampfreq_1157',['tComplexLivingString_setDampFreq',['../group__tcomplexlivingstring.html#ga08b249830479e2981d3653728f8a138b',1,'tComplexLivingString_setDampFreq(tComplexLivingString *const, float dampFreq):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga08b249830479e2981d3653728f8a138b',1,'tComplexLivingString_setDampFreq(tComplexLivingString *const pl, float dampFreq):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetdecay_1158',['tComplexLivingString_setDecay',['../group__tcomplexlivingstring.html#ga130cac764eb32901429fe3225e1a7094',1,'tComplexLivingString_setDecay(tComplexLivingString *const, float decay):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga130cac764eb32901429fe3225e1a7094',1,'tComplexLivingString_setDecay(tComplexLivingString *const pl, float decay):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetfreq_1159',['tComplexLivingString_setFreq',['../group__tcomplexlivingstring.html#gabb770494f478d48ab52e44bd3c4f2ecc',1,'tComplexLivingString_setFreq(tComplexLivingString *const, float freq):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#gabb770494f478d48ab52e44bd3c4f2ecc',1,'tComplexLivingString_setFreq(tComplexLivingString *const pl, float freq):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetlevmode_1160',['tComplexLivingString_setLevMode',['../group__tcomplexlivingstring.html#ga2883cb67acc06cc1580702b3635e9780',1,'tComplexLivingString_setLevMode(tComplexLivingString *const, int levMode):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga2883cb67acc06cc1580702b3635e9780',1,'tComplexLivingString_setLevMode(tComplexLivingString *const pl, int levMode):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetlevsmoothfactor_1161',['tComplexLivingString_setLevSmoothFactor',['../group__tcomplexlivingstring.html#gabc0a4196ec94ca64c223560ddadf17c6',1,'tComplexLivingString_setLevSmoothFactor(tComplexLivingString *const, float levSmoothFactor):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#gabc0a4196ec94ca64c223560ddadf17c6',1,'tComplexLivingString_setLevSmoothFactor(tComplexLivingString *const pl, float levSmoothFactor):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetlevstrength_1162',['tComplexLivingString_setLevStrength',['../group__tcomplexlivingstring.html#gaa2798083851981b869ad0439bfcbcab2',1,'tComplexLivingString_setLevStrength(tComplexLivingString *const, float levStrength):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#gaa2798083851981b869ad0439bfcbcab2',1,'tComplexLivingString_setLevStrength(tComplexLivingString *const pl, float levStrength):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetpickpos_1163',['tComplexLivingString_setPickPos',['../group__tcomplexlivingstring.html#ga845a6f0ff9a7ee28bd8bfc72c31fd847',1,'tComplexLivingString_setPickPos(tComplexLivingString *const, float pickPos):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga845a6f0ff9a7ee28bd8bfc72c31fd847',1,'tComplexLivingString_setPickPos(tComplexLivingString *const pl, float pickPos):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetprepindex_1164',['tComplexLivingString_setPrepIndex',['../group__tcomplexlivingstring.html#ga520c912a5c42bfb9a6d8b25bdcbbcf7a',1,'tComplexLivingString_setPrepIndex(tComplexLivingString *const, float prepIndex):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga520c912a5c42bfb9a6d8b25bdcbbcf7a',1,'tComplexLivingString_setPrepIndex(tComplexLivingString *const pl, float prepIndex):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetpreppos_1165',['tComplexLivingString_setPrepPos',['../group__tcomplexlivingstring.html#ga59d258180890d388614b8e9d55e6dc91',1,'tComplexLivingString_setPrepPos(tComplexLivingString *const, float prepPos):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga59d258180890d388614b8e9d55e6dc91',1,'tComplexLivingString_setPrepPos(tComplexLivingString *const pl, float prepPos):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsettargetlev_1166',['tComplexLivingString_setTargetLev',['../group__tcomplexlivingstring.html#ga92d9f6282c0bed639d853f61e19bca83',1,'tComplexLivingString_setTargetLev(tComplexLivingString *const, float targetLev):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga92d9f6282c0bed639d853f61e19bca83',1,'tComplexLivingString_setTargetLev(tComplexLivingString *const pl, float targetLev):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5fsetwavelength_1167',['tComplexLivingString_setWaveLength',['../group__tcomplexlivingstring.html#ga567590c59dcaee1bfe8261fdef6bf6a3',1,'tComplexLivingString_setWaveLength(tComplexLivingString *const, float waveLength):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#ga567590c59dcaee1bfe8261fdef6bf6a3',1,'tComplexLivingString_setWaveLength(tComplexLivingString *const pl, float waveLength):&#160;leaf-physical.c']]],
+  ['tcomplexlivingstring_5ftick_1168',['tComplexLivingString_tick',['../group__tcomplexlivingstring.html#gaf65d7ea89eff0c65bd81573f83506808',1,'tComplexLivingString_tick(tComplexLivingString *const, float input):&#160;leaf-physical.c'],['../group__tcomplexlivingstring.html#gaf65d7ea89eff0c65bd81573f83506808',1,'tComplexLivingString_tick(tComplexLivingString *const pl, float input):&#160;leaf-physical.c']]],
+  ['tcompressor_5ffree_1169',['tCompressor_free',['../group__tcompressor.html#gaa3369bf1a4eef5d5bce64db6bf962618',1,'tCompressor_free(tCompressor *const):&#160;leaf-dynamics.c'],['../group__tcompressor.html#gaa3369bf1a4eef5d5bce64db6bf962618',1,'tCompressor_free(tCompressor *const comp):&#160;leaf-dynamics.c']]],
+  ['tcompressor_5finit_1170',['tCompressor_init',['../group__tcompressor.html#ga831af7fdc81866f746f3ec5552589e05',1,'tCompressor_init(tCompressor *const, LEAF *const leaf):&#160;leaf-dynamics.c'],['../group__tcompressor.html#ga831af7fdc81866f746f3ec5552589e05',1,'tCompressor_init(tCompressor *const comp, LEAF *const leaf):&#160;leaf-dynamics.c']]],
+  ['tcompressor_5finittopool_1171',['tCompressor_initToPool',['../group__tcompressor.html#ga305d1f036bb4844429687afdc1a8053c',1,'tCompressor_initToPool(tCompressor *const, tMempool *const):&#160;leaf-dynamics.c'],['../group__tcompressor.html#ga305d1f036bb4844429687afdc1a8053c',1,'tCompressor_initToPool(tCompressor *const comp, tMempool *const mp):&#160;leaf-dynamics.c']]],
+  ['tcompressor_5ftick_1172',['tCompressor_tick',['../group__tcompressor.html#ga129d5624d13d79f9ad7bb29c84ee0c42',1,'tCompressor_tick(tCompressor *const, float input):&#160;leaf-dynamics.c'],['../group__tcompressor.html#ga129d5624d13d79f9ad7bb29c84ee0c42',1,'tCompressor_tick(tCompressor *const comp, float in):&#160;leaf-dynamics.c']]],
+  ['tcrusher_5ffree_1173',['tCrusher_free',['../group__tcrusher.html#gaa9dbb4f12f21f015b4f322be6de511c6',1,'tCrusher_free(tCrusher *const):&#160;leaf-distortion.c'],['../group__tcrusher.html#gaa9dbb4f12f21f015b4f322be6de511c6',1,'tCrusher_free(tCrusher *const cr):&#160;leaf-distortion.c']]],
+  ['tcrusher_5finit_1174',['tCrusher_init',['../group__tcrusher.html#gafd391e483eb15ab1e220867b2bc37537',1,'tCrusher_init(tCrusher *const, LEAF *const leaf):&#160;leaf-distortion.c'],['../group__tcrusher.html#gafd391e483eb15ab1e220867b2bc37537',1,'tCrusher_init(tCrusher *const cr, LEAF *const leaf):&#160;leaf-distortion.c']]],
+  ['tcrusher_5finittopool_1175',['tCrusher_initToPool',['../group__tcrusher.html#ga7ee1052fbd8183d322cc6513e563c0af',1,'tCrusher_initToPool(tCrusher *const, tMempool *const):&#160;leaf-distortion.c'],['../group__tcrusher.html#ga7ee1052fbd8183d322cc6513e563c0af',1,'tCrusher_initToPool(tCrusher *const cr, tMempool *const mp):&#160;leaf-distortion.c']]],
+  ['tcrusher_5fsetoperation_1176',['tCrusher_setOperation',['../group__tcrusher.html#gaaf3aba23313797b2e72384d9bd26bc4f',1,'tCrusher_setOperation(tCrusher *const, float op):&#160;leaf-distortion.c'],['../group__tcrusher.html#gaaf3aba23313797b2e72384d9bd26bc4f',1,'tCrusher_setOperation(tCrusher *const cr, float op):&#160;leaf-distortion.c']]],
+  ['tcrusher_5fsetquality_1177',['tCrusher_setQuality',['../group__tcrusher.html#gaef65521d221f1bd3654793ae9441cd45',1,'tCrusher_setQuality(tCrusher *const, float val):&#160;leaf-distortion.c'],['../group__tcrusher.html#gaef65521d221f1bd3654793ae9441cd45',1,'tCrusher_setQuality(tCrusher *const cr, float val):&#160;leaf-distortion.c']]],
+  ['tcrusher_5fsetround_1178',['tCrusher_setRound',['../group__tcrusher.html#ga0e5c86da40325cd15ef654c4558d663b',1,'tCrusher_setRound(tCrusher *const, float rnd):&#160;leaf-distortion.c'],['../group__tcrusher.html#ga0e5c86da40325cd15ef654c4558d663b',1,'tCrusher_setRound(tCrusher *const cr, float rnd):&#160;leaf-distortion.c']]],
+  ['tcrusher_5fsetsamplingratio_1179',['tCrusher_setSamplingRatio',['../group__tcrusher.html#ga34c59ae78019c8d903b051fc61b4d019',1,'tCrusher_setSamplingRatio(tCrusher *const, float ratio):&#160;leaf-distortion.c'],['../group__tcrusher.html#ga34c59ae78019c8d903b051fc61b4d019',1,'tCrusher_setSamplingRatio(tCrusher *const cr, float ratio):&#160;leaf-distortion.c']]],
+  ['tcrusher_5ftick_1180',['tCrusher_tick',['../group__tcrusher.html#gabc887b903fc48ac650174402a8c74533',1,'tCrusher_tick(tCrusher *const, float input):&#160;leaf-distortion.c'],['../group__tcrusher.html#gabc887b903fc48ac650174402a8c74533',1,'tCrusher_tick(tCrusher *const cr, float input):&#160;leaf-distortion.c']]],
+  ['tcycle_5ffree_1181',['tCycle_free',['../group__tcycle.html#gacb267508910aefc3686366ba7f296938',1,'tCycle_free(tCycle *const osc):&#160;leaf-oscillators.c'],['../group__tcycle.html#gacb267508910aefc3686366ba7f296938',1,'tCycle_free(tCycle *const cy):&#160;leaf-oscillators.c']]],
+  ['tcycle_5finit_1182',['tCycle_init',['../group__tcycle.html#ga3ae2b653f390bdacdfe952e22a7aa5c4',1,'tCycle_init(tCycle *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tcycle.html#ga3ae2b653f390bdacdfe952e22a7aa5c4',1,'tCycle_init(tCycle *const cy, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tcycle_5finittopool_1183',['tCycle_initToPool',['../group__tcycle.html#gacbd4afb6c3307d92e19a8e308ba7540b',1,'tCycle_initToPool(tCycle *const osc, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__tcycle.html#gacbd4afb6c3307d92e19a8e308ba7540b',1,'tCycle_initToPool(tCycle *const cy, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['tcycle_5fsetfreq_1184',['tCycle_setFreq',['../group__tcycle.html#ga7eeb58e2292483416474bf83bf313deb',1,'tCycle_setFreq(tCycle *const osc, float freq):&#160;leaf-oscillators.c'],['../group__tcycle.html#ga7eeb58e2292483416474bf83bf313deb',1,'tCycle_setFreq(tCycle *const cy, float freq):&#160;leaf-oscillators.c']]],
+  ['tcycle_5ftick_1185',['tCycle_tick',['../group__tcycle.html#ga4fd599981f6caf87720db3a9811716cf',1,'tCycle_tick(tCycle *const osc):&#160;leaf-oscillators.c'],['../group__tcycle.html#ga4fd599981f6caf87720db3a9811716cf',1,'tCycle_tick(tCycle *const cy):&#160;leaf-oscillators.c']]],
+  ['tdattorroreverb_5fclear_1186',['tDattorroReverb_clear',['../group__tdattorroreverb.html#ga7f6787dc77153fe5445aa4b463d52806',1,'tDattorroReverb_clear(tDattorroReverb *const):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga7f6787dc77153fe5445aa4b463d52806',1,'tDattorroReverb_clear(tDattorroReverb *const rev):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5ffree_1187',['tDattorroReverb_free',['../group__tdattorroreverb.html#ga9615f3139fd6575f1195357498cf2ed7',1,'tDattorroReverb_free(tDattorroReverb *const):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga9615f3139fd6575f1195357498cf2ed7',1,'tDattorroReverb_free(tDattorroReverb *const rev):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5finit_1188',['tDattorroReverb_init',['../group__tdattorroreverb.html#ga1fbf4d2737ea1b0b97a01178e4d1877d',1,'tDattorroReverb_init(tDattorroReverb *const, LEAF *const leaf):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga1fbf4d2737ea1b0b97a01178e4d1877d',1,'tDattorroReverb_init(tDattorroReverb *const rev, LEAF *const leaf):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5finittopool_1189',['tDattorroReverb_initToPool',['../group__tdattorroreverb.html#gae51b1343ff796699056c38c8b0284457',1,'tDattorroReverb_initToPool(tDattorroReverb *const, tMempool *const):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#gae51b1343ff796699056c38c8b0284457',1,'tDattorroReverb_initToPool(tDattorroReverb *const rev, tMempool *const mp):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5fsetfeedbackfilter_1190',['tDattorroReverb_setFeedbackFilter',['../group__tdattorroreverb.html#ga6bdaee9a877fb5258242b38c7129e87f',1,'tDattorroReverb_setFeedbackFilter(tDattorroReverb *const, float freq):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga6bdaee9a877fb5258242b38c7129e87f',1,'tDattorroReverb_setFeedbackFilter(tDattorroReverb *const rev, float freq):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5fsetfeedbackgain_1191',['tDattorroReverb_setFeedbackGain',['../group__tdattorroreverb.html#ga397ca662f24dc8850d68fb2d9f134e75',1,'tDattorroReverb_setFeedbackGain(tDattorroReverb *const, float gain):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga397ca662f24dc8850d68fb2d9f134e75',1,'tDattorroReverb_setFeedbackGain(tDattorroReverb *const rev, float gain):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5fsetfreeze_1192',['tDattorroReverb_setFreeze',['../group__tdattorroreverb.html#ga61767ff6ff79c978ccd31533ab528b5e',1,'tDattorroReverb_setFreeze(tDattorroReverb *const rev, uint32_t freeze):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga61767ff6ff79c978ccd31533ab528b5e',1,'tDattorroReverb_setFreeze(tDattorroReverb *const rev, uint32_t freeze):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5fsethp_1193',['tDattorroReverb_setHP',['../group__tdattorroreverb.html#gab035568f53e3afa55e7ca24770ece876',1,'tDattorroReverb_setHP(tDattorroReverb *const, float freq):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#gab035568f53e3afa55e7ca24770ece876',1,'tDattorroReverb_setHP(tDattorroReverb *const rev, float freq):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5fsetinputdelay_1194',['tDattorroReverb_setInputDelay',['../group__tdattorroreverb.html#ga3ea62bc97dde4dfb099373a19b699024',1,'tDattorroReverb_setInputDelay(tDattorroReverb *const, float preDelay):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga3ea62bc97dde4dfb099373a19b699024',1,'tDattorroReverb_setInputDelay(tDattorroReverb *const rev, float preDelay):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5fsetinputfilter_1195',['tDattorroReverb_setInputFilter',['../group__tdattorroreverb.html#ga58a92c0ece1d13df4b6e860c76d5bc4e',1,'tDattorroReverb_setInputFilter(tDattorroReverb *const, float freq):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga58a92c0ece1d13df4b6e860c76d5bc4e',1,'tDattorroReverb_setInputFilter(tDattorroReverb *const rev, float freq):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5fsetmix_1196',['tDattorroReverb_setMix',['../group__tdattorroreverb.html#gaaab4b58c9edecbd36f8fed4676074cf4',1,'tDattorroReverb_setMix(tDattorroReverb *const, float mix):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#gaaab4b58c9edecbd36f8fed4676074cf4',1,'tDattorroReverb_setMix(tDattorroReverb *const rev, float mix):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5fsetsize_1197',['tDattorroReverb_setSize',['../group__tdattorroreverb.html#ga8286f438259920862757bac42c208ec4',1,'tDattorroReverb_setSize(tDattorroReverb *const, float size):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#ga8286f438259920862757bac42c208ec4',1,'tDattorroReverb_setSize(tDattorroReverb *const rev, float size):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5ftick_1198',['tDattorroReverb_tick',['../group__tdattorroreverb.html#gad857360fa2a7ec20d27256a13b3483e7',1,'tDattorroReverb_tick(tDattorroReverb *const, float input):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#gad857360fa2a7ec20d27256a13b3483e7',1,'tDattorroReverb_tick(tDattorroReverb *const rev, float input):&#160;leaf-reverb.c']]],
+  ['tdattorroreverb_5ftickstereo_1199',['tDattorroReverb_tickStereo',['../group__tdattorroreverb.html#gae9da039d8745027c1c477e4a2192ca49',1,'tDattorroReverb_tickStereo(tDattorroReverb *const rev, float input, float *output):&#160;leaf-reverb.c'],['../group__tdattorroreverb.html#gae9da039d8745027c1c477e4a2192ca49',1,'tDattorroReverb_tickStereo(tDattorroReverb *const rev, float input, float *output):&#160;leaf-reverb.c']]],
+  ['tdelay_5faddto_1200',['tDelay_addTo',['../group__tdelay.html#gac4014573da91d0da9c8b7d48d515de5a',1,'tDelay_addTo(tDelay *const, float value, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tdelay.html#gac4014573da91d0da9c8b7d48d515de5a',1,'tDelay_addTo(tDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tdelay_5fclear_1201',['tDelay_clear',['../group__tdelay.html#ga10738582699eb8e6ff892b4ba662c4ef',1,'tDelay_clear(tDelay *const):&#160;leaf-delay.c'],['../group__tdelay.html#ga10738582699eb8e6ff892b4ba662c4ef',1,'tDelay_clear(tDelay *const dl):&#160;leaf-delay.c']]],
+  ['tdelay_5ffree_1202',['tDelay_free',['../group__tdelay.html#gac96fb1d4b4997a3137f211b6f22e14ba',1,'tDelay_free(tDelay *const):&#160;leaf-delay.c'],['../group__tdelay.html#gac96fb1d4b4997a3137f211b6f22e14ba',1,'tDelay_free(tDelay *const dl):&#160;leaf-delay.c']]],
+  ['tdelay_5fgetdelay_1203',['tDelay_getDelay',['../group__tdelay.html#ga5686cf386894dcee3c9241bef0ca4c41',1,'tDelay_getDelay(tDelay *const):&#160;leaf-delay.c'],['../group__tdelay.html#ga5686cf386894dcee3c9241bef0ca4c41',1,'tDelay_getDelay(tDelay *const dl):&#160;leaf-delay.c']]],
+  ['tdelay_5fgetlastin_1204',['tDelay_getLastIn',['../group__tdelay.html#gab23b7051f02d2f7108939bdb034fe308',1,'tDelay_getLastIn(tDelay *const):&#160;leaf-delay.c'],['../group__tdelay.html#gab23b7051f02d2f7108939bdb034fe308',1,'tDelay_getLastIn(tDelay *const dl):&#160;leaf-delay.c']]],
+  ['tdelay_5fgetlastout_1205',['tDelay_getLastOut',['../group__tdelay.html#ga3e00ec62933b69e09d9eed5b7608e094',1,'tDelay_getLastOut(tDelay *const):&#160;leaf-delay.c'],['../group__tdelay.html#ga3e00ec62933b69e09d9eed5b7608e094',1,'tDelay_getLastOut(tDelay *const dl):&#160;leaf-delay.c']]],
+  ['tdelay_5finit_1206',['tDelay_init',['../group__tdelay.html#ga22597de02abb939743a18ec38ff08a0f',1,'tDelay_init(tDelay *const, uint32_t delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c'],['../group__tdelay.html#ga22597de02abb939743a18ec38ff08a0f',1,'tDelay_init(tDelay *const dl, uint32_t delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c']]],
+  ['tdelay_5finittopool_1207',['tDelay_initToPool',['../group__tdelay.html#gacaaaaabc7ddb4259f05481f10ba5c403',1,'tDelay_initToPool(tDelay *const, uint32_t delay, uint32_t maxDelay, tMempool *const):&#160;leaf-delay.c'],['../group__tdelay.html#gacaaaaabc7ddb4259f05481f10ba5c403',1,'tDelay_initToPool(tDelay *const dl, uint32_t delay, uint32_t maxDelay, tMempool *const mp):&#160;leaf-delay.c']]],
+  ['tdelay_5fsetdelay_1208',['tDelay_setDelay',['../group__tdelay.html#ga364a63687af1a63b7daa8a8431527a6a',1,'tDelay_setDelay(tDelay *const, uint32_t delay):&#160;leaf-delay.c'],['../group__tdelay.html#ga364a63687af1a63b7daa8a8431527a6a',1,'tDelay_setDelay(tDelay *const dl, uint32_t delay):&#160;leaf-delay.c']]],
+  ['tdelay_5ftapin_1209',['tDelay_tapIn',['../group__tdelay.html#gadc5709febff70f7cbca38c2508103ac0',1,'tDelay_tapIn(tDelay *const, float in, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tdelay.html#gadc5709febff70f7cbca38c2508103ac0',1,'tDelay_tapIn(tDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tdelay_5ftapout_1210',['tDelay_tapOut',['../group__tdelay.html#ga94c07f9e8bfdaf402ebfbcd38d0150b5',1,'tDelay_tapOut(tDelay *const, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tdelay.html#ga94c07f9e8bfdaf402ebfbcd38d0150b5',1,'tDelay_tapOut(tDelay *const dl, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tdelay_5ftick_1211',['tDelay_tick',['../group__tdelay.html#ga2f3b8939018fd6972756a9137cab3567',1,'tDelay_tick(tDelay *const, float sample):&#160;leaf-delay.c'],['../group__tdelay.html#ga2f3b8939018fd6972756a9137cab3567',1,'tDelay_tick(tDelay *const dl, float input):&#160;leaf-delay.c']]],
+  ['tdiodefilter_5ffree_1212',['tDiodeFilter_free',['../group__tdiodefilter.html#gaa945fd56abedc7829784cc76e5876b84',1,'tDiodeFilter_free(tDiodeFilter *const):&#160;leaf-filters.c'],['../group__tdiodefilter.html#gaa945fd56abedc7829784cc76e5876b84',1,'tDiodeFilter_free(tDiodeFilter *const vf):&#160;leaf-filters.c']]],
+  ['tdiodefilter_5finit_1213',['tDiodeFilter_init',['../group__tdiodefilter.html#ga279cd7e6bbaf37ee42a679680e13ff3b',1,'tDiodeFilter_init(tDiodeFilter *const, float freq, float Q, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tdiodefilter.html#ga279cd7e6bbaf37ee42a679680e13ff3b',1,'tDiodeFilter_init(tDiodeFilter *const vf, float cutoff, float resonance, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tdiodefilter_5finittopool_1214',['tDiodeFilter_initToPool',['../group__tdiodefilter.html#gaf485c66d9505471775fecc3405321b7b',1,'tDiodeFilter_initToPool(tDiodeFilter *const, float freq, float Q, tMempool *const):&#160;leaf-filters.c'],['../group__tdiodefilter.html#gaf485c66d9505471775fecc3405321b7b',1,'tDiodeFilter_initToPool(tDiodeFilter *const vf, float cutoff, float resonance, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tdiodefilter_5fsetfreq_1215',['tDiodeFilter_setFreq',['../group__tdiodefilter.html#ga2854b7be078fb842f6e9c3c2a0f22151',1,'tDiodeFilter_setFreq(tDiodeFilter *const vf, float cutoff):&#160;leaf-filters.c'],['../group__tdiodefilter.html#ga2854b7be078fb842f6e9c3c2a0f22151',1,'tDiodeFilter_setFreq(tDiodeFilter *const vf, float cutoff):&#160;leaf-filters.c']]],
+  ['tdiodefilter_5fsetq_1216',['tDiodeFilter_setQ',['../group__tdiodefilter.html#ga386a8e90939c6bd22d467e33317e0e04',1,'tDiodeFilter_setQ(tDiodeFilter *const vf, float resonance):&#160;leaf-filters.c'],['../group__tdiodefilter.html#ga386a8e90939c6bd22d467e33317e0e04',1,'tDiodeFilter_setQ(tDiodeFilter *const vf, float resonance):&#160;leaf-filters.c']]],
+  ['tdiodefilter_5ftick_1217',['tDiodeFilter_tick',['../group__tdiodefilter.html#gabbb00b79ceaf9b1b3b028d01218a738b',1,'tDiodeFilter_tick(tDiodeFilter *const, float input):&#160;leaf-filters.c'],['../group__tdiodefilter.html#gabbb00b79ceaf9b1b3b028d01218a738b',1,'tDiodeFilter_tick(tDiodeFilter *const vf, float in):&#160;leaf-filters.c']]],
+  ['tdualpitchdetector_5ffree_1218',['tDualPitchDetector_free',['../group__tdualpitchdetector.html#ga0f104dc5171d8cf3cf5e01d3d52f20e4',1,'tDualPitchDetector_free(tDualPitchDetector *const detector):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#ga0f104dc5171d8cf3cf5e01d3d52f20e4',1,'tDualPitchDetector_free(tDualPitchDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tdualpitchdetector_5fgetfrequency_1219',['tDualPitchDetector_getFrequency',['../group__tdualpitchdetector.html#gae647948c3fad09263e02625d52a0f9f0',1,'tDualPitchDetector_getFrequency(tDualPitchDetector *const detector):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#gae647948c3fad09263e02625d52a0f9f0',1,'tDualPitchDetector_getFrequency(tDualPitchDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tdualpitchdetector_5fgetperiodicity_1220',['tDualPitchDetector_getPeriodicity',['../group__tdualpitchdetector.html#ga013b0b209ac1fe9268f88ed4925c7905',1,'tDualPitchDetector_getPeriodicity(tDualPitchDetector *const detector):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#ga013b0b209ac1fe9268f88ed4925c7905',1,'tDualPitchDetector_getPeriodicity(tDualPitchDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tdualpitchdetector_5fharmonic_1221',['tDualPitchDetector_harmonic',['../group__tdualpitchdetector.html#gaa80b5da1c459f61396d95066cf8fdbfe',1,'leaf-analysis.h']]],
+  ['tdualpitchdetector_5finit_1222',['tDualPitchDetector_init',['../group__tdualpitchdetector.html#gae41a404e3b1463d626423aa6f4ac56a6',1,'tDualPitchDetector_init(tDualPitchDetector *const detector, float lowestFreq, float highestFreq, float *inBuffer, int bufSize, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#gae41a404e3b1463d626423aa6f4ac56a6',1,'tDualPitchDetector_init(tDualPitchDetector *const detector, float lowestFreq, float highestFreq, float *inBuffer, int bufSize, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tdualpitchdetector_5finittopool_1223',['tDualPitchDetector_initToPool',['../group__tdualpitchdetector.html#gaf9fbf5ecd92f356af0572600ec796556',1,'tDualPitchDetector_initToPool(tDualPitchDetector *const detector, float lowestFreq, float highestFreq, float *inBuffer, int bufSize, tMempool *const mempool):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#gaf9fbf5ecd92f356af0572600ec796556',1,'tDualPitchDetector_initToPool(tDualPitchDetector *const detector, float lowestFreq, float highestFreq, float *inBuffer, int bufSize, tMempool *const mempool):&#160;leaf-analysis.c']]],
+  ['tdualpitchdetector_5fpredictfrequency_1224',['tDualPitchDetector_predictFrequency',['../group__tdualpitchdetector.html#gab5e594fb81c3c6e5c3f3d58a5f98c504',1,'tDualPitchDetector_predictFrequency(tDualPitchDetector *const detector):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#gab5e594fb81c3c6e5c3f3d58a5f98c504',1,'tDualPitchDetector_predictFrequency(tDualPitchDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tdualpitchdetector_5fsethysteresis_1225',['tDualPitchDetector_setHysteresis',['../group__tdualpitchdetector.html#ga0a511f71335134377f4db13f9b6c311e',1,'tDualPitchDetector_setHysteresis(tDualPitchDetector *const detector, float hysteresis):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#ga0a511f71335134377f4db13f9b6c311e',1,'tDualPitchDetector_setHysteresis(tDualPitchDetector *const detector, float hysteresis):&#160;leaf-analysis.c']]],
+  ['tdualpitchdetector_5fsetperiodicitythreshold_1226',['tDualPitchDetector_setPeriodicityThreshold',['../group__tdualpitchdetector.html#gaf1a678d94ea5579c8847e8672541fecd',1,'tDualPitchDetector_setPeriodicityThreshold(tDualPitchDetector *const detector, float thresh):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#gaf1a678d94ea5579c8847e8672541fecd',1,'tDualPitchDetector_setPeriodicityThreshold(tDualPitchDetector *const detector, float thresh):&#160;leaf-analysis.c']]],
+  ['tdualpitchdetector_5ftick_1227',['tDualPitchDetector_tick',['../group__tdualpitchdetector.html#ga25d99f2df26169355fda4810802f7b87',1,'tDualPitchDetector_tick(tDualPitchDetector *const detector, float sample):&#160;leaf-analysis.c'],['../group__tdualpitchdetector.html#ga25d99f2df26169355fda4810802f7b87',1,'tDualPitchDetector_tick(tDualPitchDetector *const detector, float sample):&#160;leaf-analysis.c']]],
+  ['tefficientsvf_5ffree_1228',['tEfficientSVF_free',['../group__tefficientsvf.html#gaa5bc149b9e60cb47235a2e0dc68e2c89',1,'tEfficientSVF_free(tEfficientSVF *const):&#160;leaf-filters.c'],['../group__tefficientsvf.html#gaa5bc149b9e60cb47235a2e0dc68e2c89',1,'tEfficientSVF_free(tEfficientSVF *const svff):&#160;leaf-filters.c']]],
+  ['tefficientsvf_5finit_1229',['tEfficientSVF_init',['../group__tefficientsvf.html#gaac44c74387fbeb20dff0c9f72e5a94ae',1,'tEfficientSVF_init(tEfficientSVF *const, SVFType type, uint16_t input, float Q, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tefficientsvf.html#gaac44c74387fbeb20dff0c9f72e5a94ae',1,'tEfficientSVF_init(tEfficientSVF *const svff, SVFType type, uint16_t input, float Q, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tefficientsvf_5finittopool_1230',['tEfficientSVF_initToPool',['../group__tefficientsvf.html#ga467f74b33e51b8a1dd4e87d0ee71b11a',1,'tEfficientSVF_initToPool(tEfficientSVF *const, SVFType type, uint16_t input, float Q, tMempool *const):&#160;leaf-filters.c'],['../group__tefficientsvf.html#ga467f74b33e51b8a1dd4e87d0ee71b11a',1,'tEfficientSVF_initToPool(tEfficientSVF *const svff, SVFType type, uint16_t input, float Q, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tefficientsvf_5fsetfreq_1231',['tEfficientSVF_setFreq',['../group__tefficientsvf.html#gad9da8495e569aa12165d804b2368147e',1,'tEfficientSVF_setFreq(tEfficientSVF *const, uint16_t controlFreq):&#160;leaf-filters.c'],['../group__tefficientsvf.html#gad9da8495e569aa12165d804b2368147e',1,'tEfficientSVF_setFreq(tEfficientSVF *const svff, uint16_t input):&#160;leaf-filters.c']]],
+  ['tefficientsvf_5fsetq_1232',['tEfficientSVF_setQ',['../group__tefficientsvf.html#ga441c8da00fed2cb9397cbfe6e39f6ed0',1,'tEfficientSVF_setQ(tEfficientSVF *const, float Q):&#160;leaf-filters.c'],['../group__tefficientsvf.html#ga441c8da00fed2cb9397cbfe6e39f6ed0',1,'tEfficientSVF_setQ(tEfficientSVF *const svff, float Q):&#160;leaf-filters.c']]],
+  ['tefficientsvf_5ftick_1233',['tEfficientSVF_tick',['../group__tefficientsvf.html#ga6e00079f0b5094972741342dfdc0e7bf',1,'tEfficientSVF_tick(tEfficientSVF *const, float v0):&#160;leaf-filters.c'],['../group__tefficientsvf.html#ga6e00079f0b5094972741342dfdc0e7bf',1,'tEfficientSVF_tick(tEfficientSVF *const svff, float v0):&#160;leaf-filters.c']]],
+  ['tenvelope_5ffree_1234',['tEnvelope_free',['../group__tenvelope.html#gac9babd2be1211097f9beee044ec4cdd9',1,'tEnvelope_free(tEnvelope *const):&#160;leaf-envelopes.c'],['../group__tenvelope.html#gac9babd2be1211097f9beee044ec4cdd9',1,'tEnvelope_free(tEnvelope *const envlp):&#160;leaf-envelopes.c']]],
+  ['tenvelope_5finit_1235',['tEnvelope_init',['../group__tenvelope.html#ga750a7c8d37cbe768f2392e93f71f926a',1,'tEnvelope_init(tEnvelope *const, float attack, float decay, int loop, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__tenvelope.html#ga750a7c8d37cbe768f2392e93f71f926a',1,'tEnvelope_init(tEnvelope *const envlp, float attack, float decay, int loop, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['tenvelope_5finittopool_1236',['tEnvelope_initToPool',['../group__tenvelope.html#gafb5292f686b84efd0d445a353bf4a37a',1,'tEnvelope_initToPool(tEnvelope *const, float attack, float decay, int loop, tMempool *const):&#160;leaf-envelopes.c'],['../group__tenvelope.html#gafb5292f686b84efd0d445a353bf4a37a',1,'tEnvelope_initToPool(tEnvelope *const envlp, float attack, float decay, int loop, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['tenvelope_5floop_1237',['tEnvelope_loop',['../group__tenvelope.html#gafd5088139edc7b5630a7738efa7bac38',1,'tEnvelope_loop(tEnvelope *const, int loop):&#160;leaf-envelopes.c'],['../group__tenvelope.html#gafd5088139edc7b5630a7738efa7bac38',1,'tEnvelope_loop(tEnvelope *const envlp, int loop):&#160;leaf-envelopes.c']]],
+  ['tenvelope_5fon_1238',['tEnvelope_on',['../group__tenvelope.html#ga27ea23e65d88dee4361325bcb8cd7e23',1,'tEnvelope_on(tEnvelope *const, float velocity):&#160;leaf-envelopes.c'],['../group__tenvelope.html#ga27ea23e65d88dee4361325bcb8cd7e23',1,'tEnvelope_on(tEnvelope *const envlp, float velocity):&#160;leaf-envelopes.c']]],
+  ['tenvelope_5fsetattack_1239',['tEnvelope_setAttack',['../group__tenvelope.html#gad7cb0c772ac308884c50ce88eac76350',1,'tEnvelope_setAttack(tEnvelope *const, float attack):&#160;leaf-envelopes.c'],['../group__tenvelope.html#gad7cb0c772ac308884c50ce88eac76350',1,'tEnvelope_setAttack(tEnvelope *const envlp, float attack):&#160;leaf-envelopes.c']]],
+  ['tenvelope_5fsetdecay_1240',['tEnvelope_setDecay',['../group__tenvelope.html#gadadffd39e47ede9b25e1a9faad8c0bbc',1,'tEnvelope_setDecay(tEnvelope *const, float decay):&#160;leaf-envelopes.c'],['../group__tenvelope.html#gadadffd39e47ede9b25e1a9faad8c0bbc',1,'tEnvelope_setDecay(tEnvelope *const envlp, float decay):&#160;leaf-envelopes.c']]],
+  ['tenvelope_5ftick_1241',['tEnvelope_tick',['../group__tenvelope.html#ga40beb9faaf417398361fe2c4699318f5',1,'tEnvelope_tick(tEnvelope *const):&#160;leaf-envelopes.c'],['../group__tenvelope.html#ga40beb9faaf417398361fe2c4699318f5',1,'tEnvelope_tick(tEnvelope *const envlp):&#160;leaf-envelopes.c']]],
+  ['tenvelopefollower_5ffree_1242',['tEnvelopeFollower_free',['../group__tenvelopefollower.html#ga9ff136abec8842d17d25205787370239',1,'tEnvelopeFollower_free(tEnvelopeFollower *const follower):&#160;leaf-analysis.c'],['../group__tenvelopefollower.html#ga9ff136abec8842d17d25205787370239',1,'tEnvelopeFollower_free(tEnvelopeFollower *const ef):&#160;leaf-analysis.c']]],
+  ['tenvelopefollower_5finit_1243',['tEnvelopeFollower_init',['../group__tenvelopefollower.html#ga5a7749052924bc7ed03051043b5e42bb',1,'tEnvelopeFollower_init(tEnvelopeFollower *const follower, float attackThreshold, float decayCoefficient, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tenvelopefollower.html#ga5a7749052924bc7ed03051043b5e42bb',1,'tEnvelopeFollower_init(tEnvelopeFollower *const ef, float attackThreshold, float decayCoeff, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tenvelopefollower_5finittopool_1244',['tEnvelopeFollower_initToPool',['../group__tenvelopefollower.html#gacd6a2310494413b550ededdaed214d2a',1,'tEnvelopeFollower_initToPool(tEnvelopeFollower *const follower, float attackThreshold, float decayCoefficient, tMempool *const mempool):&#160;leaf-analysis.c'],['../group__tenvelopefollower.html#gacd6a2310494413b550ededdaed214d2a',1,'tEnvelopeFollower_initToPool(tEnvelopeFollower *const ef, float attackThreshold, float decayCoeff, tMempool *const mp):&#160;leaf-analysis.c']]],
+  ['tenvelopefollower_5fsetattackthreshold_1245',['tEnvelopeFollower_setAttackThreshold',['../group__tenvelopefollower.html#ga9d8d4762b016fa57939e5d733e164cb9',1,'tEnvelopeFollower_setAttackThreshold(tEnvelopeFollower *const follower, float attackThreshold):&#160;leaf-analysis.c'],['../group__tenvelopefollower.html#ga9d8d4762b016fa57939e5d733e164cb9',1,'tEnvelopeFollower_setAttackThreshold(tEnvelopeFollower *const ef, float attackThresh):&#160;leaf-analysis.c']]],
+  ['tenvelopefollower_5fsetdecaycoefficient_1246',['tEnvelopeFollower_setDecayCoefficient',['../group__tenvelopefollower.html#ga746d0a9698c22b21091cc6fad79faf85',1,'tEnvelopeFollower_setDecayCoefficient(tEnvelopeFollower *const follower, float decayCoefficient):&#160;leaf-analysis.c'],['../group__tenvelopefollower.html#ga746d0a9698c22b21091cc6fad79faf85',1,'tEnvelopeFollower_setDecayCoefficient(tEnvelopeFollower *const ef, float decayCoeff):&#160;leaf-analysis.c']]],
+  ['tenvelopefollower_5ftick_1247',['tEnvelopeFollower_tick',['../group__tenvelopefollower.html#gadd57dad9c08b2ada6e8c720077256d5a',1,'tEnvelopeFollower_tick(tEnvelopeFollower *const follower, float sample):&#160;leaf-analysis.c'],['../group__tenvelopefollower.html#gadd57dad9c08b2ada6e8c720077256d5a',1,'tEnvelopeFollower_tick(tEnvelopeFollower *const ef, float x):&#160;leaf-analysis.c']]],
+  ['tenvpd_5ffree_1248',['tEnvPD_free',['../group__tenvpd.html#ga28ade0e2893d6e94bca4dfa6cdd0f0ea',1,'tEnvPD_free(tEnvPD *const):&#160;leaf-analysis.c'],['../group__tenvpd.html#ga28ade0e2893d6e94bca4dfa6cdd0f0ea',1,'tEnvPD_free(tEnvPD *const xpd):&#160;leaf-analysis.c']]],
+  ['tenvpd_5finit_1249',['tEnvPD_init',['../group__tenvpd.html#ga49c2752feb9890d139e296e75ea74b9b',1,'tEnvPD_init(tEnvPD *const, int windowSize, int hopSize, int blockSize, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tenvpd.html#ga49c2752feb9890d139e296e75ea74b9b',1,'tEnvPD_init(tEnvPD *const xpd, int ws, int hs, int bs, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tenvpd_5finittopool_1250',['tEnvPD_initToPool',['../group__tenvpd.html#ga31446fa14ee57bd0f19d260f4c748e2e',1,'tEnvPD_initToPool(tEnvPD *const, int windowSize, int hopSize, int blockSize, tMempool *const):&#160;leaf-analysis.c'],['../group__tenvpd.html#ga31446fa14ee57bd0f19d260f4c748e2e',1,'tEnvPD_initToPool(tEnvPD *const xpd, int ws, int hs, int bs, tMempool *const mp):&#160;leaf-analysis.c']]],
+  ['tenvpd_5fprocessblock_1251',['tEnvPD_processBlock',['../group__tenvpd.html#ga15bd0b8018ca2c67120053eb8cd1fc9a',1,'tEnvPD_processBlock(tEnvPD *const, float *in):&#160;leaf-analysis.c'],['../group__tenvpd.html#ga15bd0b8018ca2c67120053eb8cd1fc9a',1,'tEnvPD_processBlock(tEnvPD *const xpd, float *in):&#160;leaf-analysis.c']]],
+  ['tenvpd_5ftick_1252',['tEnvPD_tick',['../group__tenvpd.html#ga73ca443b1b36dc5995bf1659fdb242ab',1,'tEnvPD_tick(tEnvPD *const):&#160;leaf-analysis.c'],['../group__tenvpd.html#ga73ca443b1b36dc5995bf1659fdb242ab',1,'tEnvPD_tick(tEnvPD *const xpd):&#160;leaf-analysis.c']]],
+  ['texpsmooth_5ffree_1253',['tExpSmooth_free',['../group__texpsmooth.html#gaf49340184c2380c43fd0cb990d9a6ea3',1,'tExpSmooth_free(tExpSmooth *const):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#gaf49340184c2380c43fd0cb990d9a6ea3',1,'tExpSmooth_free(tExpSmooth *const expsmooth):&#160;leaf-envelopes.c']]],
+  ['texpsmooth_5finit_1254',['tExpSmooth_init',['../group__texpsmooth.html#ga9074f846bd87a7e9071ff7a0fc77412a',1,'tExpSmooth_init(tExpSmooth *const, float val, float factor, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#ga9074f846bd87a7e9071ff7a0fc77412a',1,'tExpSmooth_init(tExpSmooth *const expsmooth, float val, float factor, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['texpsmooth_5finittopool_1255',['tExpSmooth_initToPool',['../group__texpsmooth.html#ga8b8656a6b3b3f824a3a4b1ad06fc5e9e',1,'tExpSmooth_initToPool(tExpSmooth *const, float val, float factor, tMempool *const):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#ga8b8656a6b3b3f824a3a4b1ad06fc5e9e',1,'tExpSmooth_initToPool(tExpSmooth *const expsmooth, float val, float factor, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['texpsmooth_5fsample_1256',['tExpSmooth_sample',['../group__texpsmooth.html#ga1f96e9a582c3bf85dd600f98eac11243',1,'tExpSmooth_sample(tExpSmooth *const):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#ga1f96e9a582c3bf85dd600f98eac11243',1,'tExpSmooth_sample(tExpSmooth *const expsmooth):&#160;leaf-envelopes.c']]],
+  ['texpsmooth_5fsetdest_1257',['tExpSmooth_setDest',['../group__texpsmooth.html#ga67d45ea3ba251bc651b06733bdd65e60',1,'tExpSmooth_setDest(tExpSmooth *const, float dest):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#ga67d45ea3ba251bc651b06733bdd65e60',1,'tExpSmooth_setDest(tExpSmooth *const expsmooth, float dest):&#160;leaf-envelopes.c']]],
+  ['texpsmooth_5fsetfactor_1258',['tExpSmooth_setFactor',['../group__texpsmooth.html#gaea5297fd207b49cecb42c583fe6549cc',1,'tExpSmooth_setFactor(tExpSmooth *const, float factor):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#gaea5297fd207b49cecb42c583fe6549cc',1,'tExpSmooth_setFactor(tExpSmooth *const expsmooth, float factor):&#160;leaf-envelopes.c']]],
+  ['texpsmooth_5fsetval_1259',['tExpSmooth_setVal',['../group__texpsmooth.html#ga6e215e2d8a7e43e16d009f8eb805330e',1,'tExpSmooth_setVal(tExpSmooth *const, float val):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#ga6e215e2d8a7e43e16d009f8eb805330e',1,'tExpSmooth_setVal(tExpSmooth *const expsmooth, float val):&#160;leaf-envelopes.c']]],
+  ['texpsmooth_5fsetvalanddest_1260',['tExpSmooth_setValAndDest',['../group__texpsmooth.html#ga19fc6917c2d049c72b55f432ea24cfe5',1,'tExpSmooth_setValAndDest(tExpSmooth *const expsmooth, float val):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#ga19fc6917c2d049c72b55f432ea24cfe5',1,'tExpSmooth_setValAndDest(tExpSmooth *const expsmooth, float val):&#160;leaf-envelopes.c']]],
+  ['texpsmooth_5ftick_1261',['tExpSmooth_tick',['../group__texpsmooth.html#ga9c772d0874085e260027716a6850c066',1,'tExpSmooth_tick(tExpSmooth *const):&#160;leaf-envelopes.c'],['../group__texpsmooth.html#ga9c772d0874085e260027716a6850c066',1,'tExpSmooth_tick(tExpSmooth *const expsmooth):&#160;leaf-envelopes.c']]],
+  ['tfeedbackleveler_5ffree_1262',['tFeedbackLeveler_free',['../group__tfeedbackleveler.html#ga821078d9cde9ae2f2c4e78ff3c3b78e6',1,'tFeedbackLeveler_free(tFeedbackLeveler *const):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#ga821078d9cde9ae2f2c4e78ff3c3b78e6',1,'tFeedbackLeveler_free(tFeedbackLeveler *const fb):&#160;leaf-dynamics.c']]],
+  ['tfeedbackleveler_5finit_1263',['tFeedbackLeveler_init',['../group__tfeedbackleveler.html#gad47edde6cb4edcbb2c7b987169fa3894',1,'tFeedbackLeveler_init(tFeedbackLeveler *const, float targetLevel, float factor, float strength, int mode, LEAF *const leaf):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#gad47edde6cb4edcbb2c7b987169fa3894',1,'tFeedbackLeveler_init(tFeedbackLeveler *const fb, float targetLevel, float factor, float strength, int mode, LEAF *const leaf):&#160;leaf-dynamics.c']]],
+  ['tfeedbackleveler_5finittopool_1264',['tFeedbackLeveler_initToPool',['../group__tfeedbackleveler.html#gae7b25faea2961dcf8fc010073f27da01',1,'tFeedbackLeveler_initToPool(tFeedbackLeveler *const, float targetLevel, float factor, float strength, int mode, tMempool *const):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#gae7b25faea2961dcf8fc010073f27da01',1,'tFeedbackLeveler_initToPool(tFeedbackLeveler *const fb, float targetLevel, float factor, float strength, int mode, tMempool *const mp):&#160;leaf-dynamics.c']]],
+  ['tfeedbackleveler_5fsample_1265',['tFeedbackLeveler_sample',['../group__tfeedbackleveler.html#gab451b93e5c3676fae53e44d19f8d949b',1,'tFeedbackLeveler_sample(tFeedbackLeveler *const):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#gab451b93e5c3676fae53e44d19f8d949b',1,'tFeedbackLeveler_sample(tFeedbackLeveler *const fb):&#160;leaf-dynamics.c']]],
+  ['tfeedbackleveler_5fsetfactor_1266',['tFeedbackLeveler_setFactor',['../group__tfeedbackleveler.html#gad1a82f7a3dbd65e3310a7d345b2e4243',1,'tFeedbackLeveler_setFactor(tFeedbackLeveler *const, float factor):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#gad1a82f7a3dbd65e3310a7d345b2e4243',1,'tFeedbackLeveler_setFactor(tFeedbackLeveler *const fb, float factor):&#160;leaf-dynamics.c']]],
+  ['tfeedbackleveler_5fsetmode_1267',['tFeedbackLeveler_setMode',['../group__tfeedbackleveler.html#ga08681640f1442f016e6bcf4d05542aa9',1,'tFeedbackLeveler_setMode(tFeedbackLeveler *const, int mode):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#ga08681640f1442f016e6bcf4d05542aa9',1,'tFeedbackLeveler_setMode(tFeedbackLeveler *const fb, int mode):&#160;leaf-dynamics.c']]],
+  ['tfeedbackleveler_5fsetstrength_1268',['tFeedbackLeveler_setStrength',['../group__tfeedbackleveler.html#gad7bf90dd14e80f6683859aeac2e62e80',1,'tFeedbackLeveler_setStrength(tFeedbackLeveler *const, float strength):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#gad7bf90dd14e80f6683859aeac2e62e80',1,'tFeedbackLeveler_setStrength(tFeedbackLeveler *const fb, float strength):&#160;leaf-dynamics.c']]],
+  ['tfeedbackleveler_5fsettargetlevel_1269',['tFeedbackLeveler_setTargetLevel',['../group__tfeedbackleveler.html#ga4668b5d237be33237f8e4bf0870301f7',1,'tFeedbackLeveler_setTargetLevel(tFeedbackLeveler *const, float TargetLevel):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#ga4668b5d237be33237f8e4bf0870301f7',1,'tFeedbackLeveler_setTargetLevel(tFeedbackLeveler *const fb, float TargetLevel):&#160;leaf-dynamics.c']]],
+  ['tfeedbackleveler_5ftick_1270',['tFeedbackLeveler_tick',['../group__tfeedbackleveler.html#ga5c882adb387363a1aaf9ab89856f22a2',1,'tFeedbackLeveler_tick(tFeedbackLeveler *const, float input):&#160;leaf-dynamics.c'],['../group__tfeedbackleveler.html#ga5c882adb387363a1aaf9ab89856f22a2',1,'tFeedbackLeveler_tick(tFeedbackLeveler *const fb, float input):&#160;leaf-dynamics.c']]],
+  ['tfir_5ffree_1271',['tFIR_free',['../group__tfir.html#gac45d2e019b45dcd2a62ebe0b4bc1ec50',1,'tFIR_free(tFIR *const):&#160;leaf-filters.c'],['../group__tfir.html#gac45d2e019b45dcd2a62ebe0b4bc1ec50',1,'tFIR_free(tFIR *const firf):&#160;leaf-filters.c']]],
+  ['tfir_5finit_1272',['tFIR_init',['../group__tfir.html#ga333f1b826e10b14d932f1282ff72d7fe',1,'tFIR_init(tFIR *const, float *coeffs, int numTaps, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tfir.html#ga333f1b826e10b14d932f1282ff72d7fe',1,'tFIR_init(tFIR *const firf, float *coeffs, int numTaps, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tfir_5finittopool_1273',['tFIR_initToPool',['../group__tfir.html#ga814a59f7c1179b717ce5985ed545004f',1,'tFIR_initToPool(tFIR *const, float *coeffs, int numTaps, tMempool *const):&#160;leaf-filters.c'],['../group__tfir.html#ga814a59f7c1179b717ce5985ed545004f',1,'tFIR_initToPool(tFIR *const firf, float *coeffs, int numTaps, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tfir_5ftick_1274',['tFIR_tick',['../group__tfir.html#ga6ed11191124b872639e12cbe9dcc76e9',1,'tFIR_tick(tFIR *const, float input):&#160;leaf-filters.c'],['../group__tfir.html#ga6ed11191124b872639e12cbe9dcc76e9',1,'tFIR_tick(tFIR *const firf, float input):&#160;leaf-filters.c']]],
+  ['tformantshifter_5fadd_1275',['tFormantShifter_add',['../group__tformantshifter.html#gaa1697aa8f5614be25546943c7a3c6f46',1,'tFormantShifter_add(tFormantShifter *const, float input):&#160;leaf-effects.c'],['../group__tformantshifter.html#gaa1697aa8f5614be25546943c7a3c6f46',1,'tFormantShifter_add(tFormantShifter *const fsr, float in):&#160;leaf-effects.c']]],
+  ['tformantshifter_5ffree_1276',['tFormantShifter_free',['../group__tformantshifter.html#gab4d9198bc06d81125663dd3da00fbf47',1,'tFormantShifter_free(tFormantShifter *const):&#160;leaf-effects.c'],['../group__tformantshifter.html#gab4d9198bc06d81125663dd3da00fbf47',1,'tFormantShifter_free(tFormantShifter *const fsr):&#160;leaf-effects.c']]],
+  ['tformantshifter_5finit_1277',['tFormantShifter_init',['../group__tformantshifter.html#ga42890ba9ac29c3f200d617647fcd321b',1,'tFormantShifter_init(tFormantShifter *const, int order, LEAF *const leaf):&#160;leaf-effects.c'],['../group__tformantshifter.html#ga42890ba9ac29c3f200d617647fcd321b',1,'tFormantShifter_init(tFormantShifter *const fsr, int order, LEAF *const leaf):&#160;leaf-effects.c']]],
+  ['tformantshifter_5finittopool_1278',['tFormantShifter_initToPool',['../group__tformantshifter.html#gad79a5e074c0f99ac7c7af3d530fdd214',1,'tFormantShifter_initToPool(tFormantShifter *const, int order, tMempool *const):&#160;leaf-effects.c'],['../group__tformantshifter.html#gad79a5e074c0f99ac7c7af3d530fdd214',1,'tFormantShifter_initToPool(tFormantShifter *const fsr, int order, tMempool *const mp):&#160;leaf-effects.c']]],
+  ['tformantshifter_5fiosamples_1279',['tFormantShifter_ioSamples',['../group__tformantshifter.html#gadf13d01a3ed6e8941d93e521769f5447',1,'leaf-effects.h']]],
+  ['tformantshifter_5fremove_1280',['tFormantShifter_remove',['../group__tformantshifter.html#ga20c5dcc163a256e5b7792b1cd4788d59',1,'tFormantShifter_remove(tFormantShifter *const, float input):&#160;leaf-effects.c'],['../group__tformantshifter.html#ga20c5dcc163a256e5b7792b1cd4788d59',1,'tFormantShifter_remove(tFormantShifter *const fsr, float in):&#160;leaf-effects.c']]],
+  ['tformantshifter_5fsetintensity_1281',['tFormantShifter_setIntensity',['../group__tformantshifter.html#gaf975f968b7428a7d744b2493c68267d4',1,'tFormantShifter_setIntensity(tFormantShifter *const, float intensity):&#160;leaf-effects.c'],['../group__tformantshifter.html#gaf975f968b7428a7d744b2493c68267d4',1,'tFormantShifter_setIntensity(tFormantShifter *const fsr, float intensity):&#160;leaf-effects.c']]],
+  ['tformantshifter_5fsetshiftfactor_1282',['tFormantShifter_setShiftFactor',['../group__tformantshifter.html#ga3f5493a4bce93a71124aed52d374cfdc',1,'tFormantShifter_setShiftFactor(tFormantShifter *const, float shiftFactor):&#160;leaf-effects.c'],['../group__tformantshifter.html#ga3f5493a4bce93a71124aed52d374cfdc',1,'tFormantShifter_setShiftFactor(tFormantShifter *const fsr, float shiftFactor):&#160;leaf-effects.c']]],
+  ['tformantshifter_5ftick_1283',['tFormantShifter_tick',['../group__tformantshifter.html#ga6e02d685feef8233a0949e19718b2884',1,'tFormantShifter_tick(tFormantShifter *const, float input):&#160;leaf-effects.c'],['../group__tformantshifter.html#ga6e02d685feef8233a0949e19718b2884',1,'tFormantShifter_tick(tFormantShifter *const fsr, float in):&#160;leaf-effects.c']]],
+  ['thermitedelay_5faddto_1284',['tHermiteDelay_addTo',['../group__thermitedelay.html#ga3b94d0644da904535f9f44481a9d2acd',1,'tHermiteDelay_addTo(tHermiteDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga3b94d0644da904535f9f44481a9d2acd',1,'tHermiteDelay_addTo(tHermiteDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['thermitedelay_5fclear_1285',['tHermiteDelay_clear',['../group__thermitedelay.html#gac47ba1719955d115217ce09c1dcd8aa3',1,'tHermiteDelay_clear(tHermiteDelay *const dl):&#160;leaf-delay.c'],['../group__thermitedelay.html#gac47ba1719955d115217ce09c1dcd8aa3',1,'tHermiteDelay_clear(tHermiteDelay *const dl):&#160;leaf-delay.c']]],
+  ['thermitedelay_5ffree_1286',['tHermiteDelay_free',['../group__thermitedelay.html#gaf3e5014213692ec0574c67713d562b83',1,'tHermiteDelay_free(tHermiteDelay *const dl):&#160;leaf-delay.c'],['../group__thermitedelay.html#gaf3e5014213692ec0574c67713d562b83',1,'tHermiteDelay_free(tHermiteDelay *const dl):&#160;leaf-delay.c']]],
+  ['thermitedelay_5fgetdelay_1287',['tHermiteDelay_getDelay',['../group__thermitedelay.html#ga0965274c7d2b3b3af2ad88117476321f',1,'tHermiteDelay_getDelay(tHermiteDelay *const dl):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga0965274c7d2b3b3af2ad88117476321f',1,'tHermiteDelay_getDelay(tHermiteDelay *const dl):&#160;leaf-delay.c']]],
+  ['thermitedelay_5fgetgain_1288',['tHermiteDelay_getGain',['../group__thermitedelay.html#ga5e23e3b036fc9a98494b853794cd8421',1,'tHermiteDelay_getGain(tHermiteDelay *const dl):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga5e23e3b036fc9a98494b853794cd8421',1,'tHermiteDelay_getGain(tHermiteDelay *const dl):&#160;leaf-delay.c']]],
+  ['thermitedelay_5fgetlastin_1289',['tHermiteDelay_getLastIn',['../group__thermitedelay.html#ga81d270041108d9af64f97c83cb096955',1,'tHermiteDelay_getLastIn(tHermiteDelay *const dl):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga81d270041108d9af64f97c83cb096955',1,'tHermiteDelay_getLastIn(tHermiteDelay *const dl):&#160;leaf-delay.c']]],
+  ['thermitedelay_5fgetlastout_1290',['tHermiteDelay_getLastOut',['../group__thermitedelay.html#gab80cc6ce9c6b3909fd3427c4a75e42cb',1,'tHermiteDelay_getLastOut(tHermiteDelay *const dl):&#160;leaf-delay.c'],['../group__thermitedelay.html#gab80cc6ce9c6b3909fd3427c4a75e42cb',1,'tHermiteDelay_getLastOut(tHermiteDelay *const dl):&#160;leaf-delay.c']]],
+  ['thermitedelay_5finit_1291',['tHermiteDelay_init',['../group__thermitedelay.html#ga09adaf3acdcd2ad63ba36f97083ca633',1,'tHermiteDelay_init(tHermiteDelay *const dl, float delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga09adaf3acdcd2ad63ba36f97083ca633',1,'tHermiteDelay_init(tHermiteDelay *const dl, float delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c']]],
+  ['thermitedelay_5finittopool_1292',['tHermiteDelay_initToPool',['../group__thermitedelay.html#ga6d3b413c7a3ac6addae36895e47ae3f4',1,'tHermiteDelay_initToPool(tHermiteDelay *const dl, float delay, uint32_t maxDelay, tMempool *const mp):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga6d3b413c7a3ac6addae36895e47ae3f4',1,'tHermiteDelay_initToPool(tHermiteDelay *const dl, float delay, uint32_t maxDelay, tMempool *const mp):&#160;leaf-delay.c']]],
+  ['thermitedelay_5fsetdelay_1293',['tHermiteDelay_setDelay',['../group__thermitedelay.html#ga76357c59563894699c6d89f958476151',1,'tHermiteDelay_setDelay(tHermiteDelay *const dl, float delay):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga76357c59563894699c6d89f958476151',1,'tHermiteDelay_setDelay(tHermiteDelay *const dl, float delay):&#160;leaf-delay.c']]],
+  ['thermitedelay_5fsetgain_1294',['tHermiteDelay_setGain',['../group__thermitedelay.html#ga8ff412ae2db6aa41afcf812db7c92057',1,'tHermiteDelay_setGain(tHermiteDelay *const dl, float gain):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga8ff412ae2db6aa41afcf812db7c92057',1,'tHermiteDelay_setGain(tHermiteDelay *const dl, float gain):&#160;leaf-delay.c']]],
+  ['thermitedelay_5ftapin_1295',['tHermiteDelay_tapIn',['../group__thermitedelay.html#gac650bbef7f3f47f75160e7b90e65bab5',1,'tHermiteDelay_tapIn(tHermiteDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__thermitedelay.html#gac650bbef7f3f47f75160e7b90e65bab5',1,'tHermiteDelay_tapIn(tHermiteDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['thermitedelay_5ftapout_1296',['tHermiteDelay_tapOut',['../group__thermitedelay.html#ga6aba8a52c0d7a9349fca81e0b7ae05c0',1,'tHermiteDelay_tapOut(tHermiteDelay *const dl, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga6aba8a52c0d7a9349fca81e0b7ae05c0',1,'tHermiteDelay_tapOut(tHermiteDelay *const dl, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['thermitedelay_5ftick_1297',['tHermiteDelay_tick',['../group__thermitedelay.html#gabf6a43f6358e9fcfdb544bf6d93401d5',1,'tHermiteDelay_tick(tHermiteDelay *const dl, float input):&#160;leaf-delay.c'],['../group__thermitedelay.html#gabf6a43f6358e9fcfdb544bf6d93401d5',1,'tHermiteDelay_tick(tHermiteDelay *const dl, float input):&#160;leaf-delay.c']]],
+  ['thermitedelay_5ftickin_1298',['tHermiteDelay_tickIn',['../group__thermitedelay.html#ga9d4b6554bac1a01fcbe1deaf04b02a15',1,'tHermiteDelay_tickIn(tHermiteDelay *const dl, float input):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga9d4b6554bac1a01fcbe1deaf04b02a15',1,'tHermiteDelay_tickIn(tHermiteDelay *const dl, float input):&#160;leaf-delay.c']]],
+  ['thermitedelay_5ftickout_1299',['tHermiteDelay_tickOut',['../group__thermitedelay.html#ga758ba680ae090cc70bc5d9be12332bb9',1,'tHermiteDelay_tickOut(tHermiteDelay *const dl):&#160;leaf-delay.c'],['../group__thermitedelay.html#ga758ba680ae090cc70bc5d9be12332bb9',1,'tHermiteDelay_tickOut(tHermiteDelay *const dl):&#160;leaf-delay.c']]],
+  ['thighpass_5ffree_1300',['tHighpass_free',['../group__thighpass.html#gaaf2a848e9c9f1aa0130cdc8a4de88c2a',1,'tHighpass_free(tHighpass *const):&#160;leaf-filters.c'],['../group__thighpass.html#gaaf2a848e9c9f1aa0130cdc8a4de88c2a',1,'tHighpass_free(tHighpass *const ft):&#160;leaf-filters.c']]],
+  ['thighpass_5fgetfreq_1301',['tHighpass_getFreq',['../group__thighpass.html#ga52802836559273d666031bd33b7ad254',1,'tHighpass_getFreq(tHighpass *const):&#160;leaf-filters.c'],['../group__thighpass.html#ga52802836559273d666031bd33b7ad254',1,'tHighpass_getFreq(tHighpass *const ft):&#160;leaf-filters.c']]],
+  ['thighpass_5finit_1302',['tHighpass_init',['../group__thighpass.html#ga02cc06dfedbbde5c3746b5238c6c80e7',1,'tHighpass_init(tHighpass *const, float freq, LEAF *const leaf):&#160;leaf-filters.c'],['../group__thighpass.html#ga02cc06dfedbbde5c3746b5238c6c80e7',1,'tHighpass_init(tHighpass *const ft, float freq, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['thighpass_5finittopool_1303',['tHighpass_initToPool',['../group__thighpass.html#gaaff0f966ed6e69d21d62bc49d3cd7d0a',1,'tHighpass_initToPool(tHighpass *const, float freq, tMempool *const):&#160;leaf-filters.c'],['../group__thighpass.html#gaaff0f966ed6e69d21d62bc49d3cd7d0a',1,'tHighpass_initToPool(tHighpass *const ft, float freq, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['thighpass_5fsetfreq_1304',['tHighpass_setFreq',['../group__thighpass.html#ga94dddc9bae136df8933a82214ce2f1e3',1,'tHighpass_setFreq(tHighpass *const, float freq):&#160;leaf-filters.c'],['../group__thighpass.html#ga94dddc9bae136df8933a82214ce2f1e3',1,'tHighpass_setFreq(tHighpass *const ft, float freq):&#160;leaf-filters.c']]],
+  ['thighpass_5ftick_1305',['tHighpass_tick',['../group__thighpass.html#gaed6612747075529362ee1e5a984819a2',1,'tHighpass_tick(tHighpass *const, float x):&#160;leaf-filters.c'],['../group__thighpass.html#gaed6612747075529362ee1e5a984819a2',1,'tHighpass_tick(tHighpass *const ft, float x):&#160;leaf-filters.c']]],
+  ['tkarplusstrong_5fcontrolchange_1306',['tKarplusStrong_controlChange',['../group__tkarplusstrong.html#ga6d0d8aaefcb4a3322aeee85ebcd6f19e',1,'tKarplusStrong_controlChange(tKarplusStrong *const, SKControlType type, float value):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga6d0d8aaefcb4a3322aeee85ebcd6f19e',1,'tKarplusStrong_controlChange(tKarplusStrong *const pl, SKControlType type, float value):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5ffree_1307',['tKarplusStrong_free',['../group__tkarplusstrong.html#ga0d98da9c7a0a458d0871399e3235bce5',1,'tKarplusStrong_free(tKarplusStrong *const):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga0d98da9c7a0a458d0871399e3235bce5',1,'tKarplusStrong_free(tKarplusStrong *const pl):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5fgetlastout_1308',['tKarplusStrong_getLastOut',['../group__tkarplusstrong.html#ga32e83815fd063966411e48eaff2a23b8',1,'tKarplusStrong_getLastOut(tKarplusStrong *const):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga32e83815fd063966411e48eaff2a23b8',1,'tKarplusStrong_getLastOut(tKarplusStrong *const pl):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5finit_1309',['tKarplusStrong_init',['../group__tkarplusstrong.html#ga186d7205bac18c523abee2ebc076e341',1,'tKarplusStrong_init(tKarplusStrong *const, float lowestFrequency, LEAF *const leaf):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga186d7205bac18c523abee2ebc076e341',1,'tKarplusStrong_init(tKarplusStrong *const pl, float lowestFrequency, LEAF *const leaf):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5finittopool_1310',['tKarplusStrong_initToPool',['../group__tkarplusstrong.html#ga77d0a866dda8f75f5d587e8167d9c245',1,'tKarplusStrong_initToPool(tKarplusStrong *const, float lowestFrequency, tMempool *const):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga77d0a866dda8f75f5d587e8167d9c245',1,'tKarplusStrong_initToPool(tKarplusStrong *const pl, float lowestFrequency, tMempool *const mp):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5fnoteoff_1311',['tKarplusStrong_noteOff',['../group__tkarplusstrong.html#gad1d984d1439ed44fa749bc6bb30d93a4',1,'tKarplusStrong_noteOff(tKarplusStrong *const, float amplitude):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#gad1d984d1439ed44fa749bc6bb30d93a4',1,'tKarplusStrong_noteOff(tKarplusStrong *const pl, float amplitude):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5fnoteon_1312',['tKarplusStrong_noteOn',['../group__tkarplusstrong.html#ga5b29e0e05ad35914453d732b4978e572',1,'tKarplusStrong_noteOn(tKarplusStrong *const, float frequency, float amplitude):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga5b29e0e05ad35914453d732b4978e572',1,'tKarplusStrong_noteOn(tKarplusStrong *const pl, float frequency, float amplitude):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5fpluck_1313',['tKarplusStrong_pluck',['../group__tkarplusstrong.html#ga3fe232ca203991c000ad17ea41abc5b3',1,'tKarplusStrong_pluck(tKarplusStrong *const, float amplitude):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga3fe232ca203991c000ad17ea41abc5b3',1,'tKarplusStrong_pluck(tKarplusStrong *const pl, float amplitude):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5fsetbaseloopgain_1314',['tKarplusStrong_setBaseLoopGain',['../group__tkarplusstrong.html#gab0d9395a53c6df4699f7cb1b242abf04',1,'tKarplusStrong_setBaseLoopGain(tKarplusStrong *const, float aGain):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#gab0d9395a53c6df4699f7cb1b242abf04',1,'tKarplusStrong_setBaseLoopGain(tKarplusStrong *const pl, float aGain):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5fsetfrequency_1315',['tKarplusStrong_setFrequency',['../group__tkarplusstrong.html#ga5082c474d8ec5885fde227cfa67f180b',1,'tKarplusStrong_setFrequency(tKarplusStrong *const, float frequency):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga5082c474d8ec5885fde227cfa67f180b',1,'tKarplusStrong_setFrequency(tKarplusStrong *const pl, float frequency):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5fsetpickupposition_1316',['tKarplusStrong_setPickupPosition',['../group__tkarplusstrong.html#ga59bc5175836ad9aaf59dd13eb8a23581',1,'tKarplusStrong_setPickupPosition(tKarplusStrong *const, float position):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#ga59bc5175836ad9aaf59dd13eb8a23581',1,'tKarplusStrong_setPickupPosition(tKarplusStrong *const pl, float position):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5fsetstretch_1317',['tKarplusStrong_setStretch',['../group__tkarplusstrong.html#gadade0b8de0fddb719156b9940d72f8ff',1,'tKarplusStrong_setStretch(tKarplusStrong *const, float stretch):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#gadade0b8de0fddb719156b9940d72f8ff',1,'tKarplusStrong_setStretch(tKarplusStrong *const pl, float stretch):&#160;leaf-physical.c']]],
+  ['tkarplusstrong_5ftick_1318',['tKarplusStrong_tick',['../group__tkarplusstrong.html#gacda457f47786fdca8b06a30a01ffc135',1,'tKarplusStrong_tick(tKarplusStrong *const):&#160;leaf-physical.c'],['../group__tkarplusstrong.html#gacda457f47786fdca8b06a30a01ffc135',1,'tKarplusStrong_tick(tKarplusStrong *const pl):&#160;leaf-physical.c']]],
+  ['tlineardelay_5faddto_1319',['tLinearDelay_addTo',['../group__tlineardelay.html#ga39f3f7376b5f38123678fea82c245368',1,'tLinearDelay_addTo(tLinearDelay *const, float value, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga39f3f7376b5f38123678fea82c245368',1,'tLinearDelay_addTo(tLinearDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tlineardelay_5fclear_1320',['tLinearDelay_clear',['../group__tlineardelay.html#ga890124d89744b9621ce802ad9e0e0759',1,'tLinearDelay_clear(tLinearDelay *const dl):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga890124d89744b9621ce802ad9e0e0759',1,'tLinearDelay_clear(tLinearDelay *const dl):&#160;leaf-delay.c']]],
+  ['tlineardelay_5ffree_1321',['tLinearDelay_free',['../group__tlineardelay.html#gaeb62896b4392a7f9ca1c557ccc859f4f',1,'tLinearDelay_free(tLinearDelay *const):&#160;leaf-delay.c'],['../group__tlineardelay.html#gaeb62896b4392a7f9ca1c557ccc859f4f',1,'tLinearDelay_free(tLinearDelay *const dl):&#160;leaf-delay.c']]],
+  ['tlineardelay_5fgetdelay_1322',['tLinearDelay_getDelay',['../group__tlineardelay.html#gac57ca1a251b96ec2aad7550049864b8c',1,'tLinearDelay_getDelay(tLinearDelay *const):&#160;leaf-delay.c'],['../group__tlineardelay.html#gac57ca1a251b96ec2aad7550049864b8c',1,'tLinearDelay_getDelay(tLinearDelay *const dl):&#160;leaf-delay.c']]],
+  ['tlineardelay_5fgetlastin_1323',['tLinearDelay_getLastIn',['../group__tlineardelay.html#ga710bf54a2fec7f40dcd1c5b99a7b44fd',1,'tLinearDelay_getLastIn(tLinearDelay *const):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga710bf54a2fec7f40dcd1c5b99a7b44fd',1,'tLinearDelay_getLastIn(tLinearDelay *const dl):&#160;leaf-delay.c']]],
+  ['tlineardelay_5fgetlastout_1324',['tLinearDelay_getLastOut',['../group__tlineardelay.html#ga97b8b25f279b974a969dc0bd46b7547b',1,'tLinearDelay_getLastOut(tLinearDelay *const):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga97b8b25f279b974a969dc0bd46b7547b',1,'tLinearDelay_getLastOut(tLinearDelay *const dl):&#160;leaf-delay.c']]],
+  ['tlineardelay_5finit_1325',['tLinearDelay_init',['../group__tlineardelay.html#gaffbe3ac134a45c164eded9d4dc3304f7',1,'tLinearDelay_init(tLinearDelay *const, float delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c'],['../group__tlineardelay.html#gaffbe3ac134a45c164eded9d4dc3304f7',1,'tLinearDelay_init(tLinearDelay *const dl, float delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c']]],
+  ['tlineardelay_5finittopool_1326',['tLinearDelay_initToPool',['../group__tlineardelay.html#ga6cb9f12ba9262386d8ecbf0dd8151b69',1,'tLinearDelay_initToPool(tLinearDelay *const, float delay, uint32_t maxDelay, tMempool *const):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga6cb9f12ba9262386d8ecbf0dd8151b69',1,'tLinearDelay_initToPool(tLinearDelay *const dl, float delay, uint32_t maxDelay, tMempool *const mp):&#160;leaf-delay.c']]],
+  ['tlineardelay_5fsetdelay_1327',['tLinearDelay_setDelay',['../group__tlineardelay.html#ga02ae58cb385f4d598bd4c57903dd365a',1,'tLinearDelay_setDelay(tLinearDelay *const, float delay):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga02ae58cb385f4d598bd4c57903dd365a',1,'tLinearDelay_setDelay(tLinearDelay *const dl, float delay):&#160;leaf-delay.c']]],
+  ['tlineardelay_5ftapin_1328',['tLinearDelay_tapIn',['../group__tlineardelay.html#ga16350a1576f9662c7ef8dade853c8f93',1,'tLinearDelay_tapIn(tLinearDelay *const, float in, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga16350a1576f9662c7ef8dade853c8f93',1,'tLinearDelay_tapIn(tLinearDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tlineardelay_5ftapout_1329',['tLinearDelay_tapOut',['../group__tlineardelay.html#ga8b5a87f1a03b6456cac6334085bf8be6',1,'tLinearDelay_tapOut(tLinearDelay *const, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga8b5a87f1a03b6456cac6334085bf8be6',1,'tLinearDelay_tapOut(tLinearDelay *const dl, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['tlineardelay_5ftick_1330',['tLinearDelay_tick',['../group__tlineardelay.html#ga2f4a6a73eea16bb9ce3408b945ddb8f7',1,'tLinearDelay_tick(tLinearDelay *const, float sample):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga2f4a6a73eea16bb9ce3408b945ddb8f7',1,'tLinearDelay_tick(tLinearDelay *const dl, float input):&#160;leaf-delay.c']]],
+  ['tlineardelay_5ftickin_1331',['tLinearDelay_tickIn',['../group__tlineardelay.html#ga8f9c2a86422204321dbd56ba317a5662',1,'tLinearDelay_tickIn(tLinearDelay *const, float input):&#160;leaf-delay.c'],['../group__tlineardelay.html#ga8f9c2a86422204321dbd56ba317a5662',1,'tLinearDelay_tickIn(tLinearDelay *const dl, float input):&#160;leaf-delay.c']]],
+  ['tlineardelay_5ftickout_1332',['tLinearDelay_tickOut',['../group__tlineardelay.html#gad7f62bcf8446ee6a3987ffa3c01bf31c',1,'tLinearDelay_tickOut(tLinearDelay *const):&#160;leaf-delay.c'],['../group__tlineardelay.html#gad7f62bcf8446ee6a3987ffa3c01bf31c',1,'tLinearDelay_tickOut(tLinearDelay *const dl):&#160;leaf-delay.c']]],
+  ['tlivingstring_5ffree_1333',['tLivingString_free',['../group__tlivingstring.html#ga218b97b43f8b5183be6f64bd48c33363',1,'tLivingString_free(tLivingString *const):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga218b97b43f8b5183be6f64bd48c33363',1,'tLivingString_free(tLivingString *const pl):&#160;leaf-physical.c']]],
+  ['tlivingstring_5finit_1334',['tLivingString_init',['../group__tlivingstring.html#ga7f29c68e9b01878aa3e0bf1d2029e617',1,'tLivingString_init(tLivingString *const, float freq, float pickPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, LEAF *const leaf):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga7f29c68e9b01878aa3e0bf1d2029e617',1,'tLivingString_init(tLivingString *const pl, float freq, float pickPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, LEAF *const leaf):&#160;leaf-physical.c']]],
+  ['tlivingstring_5finittopool_1335',['tLivingString_initToPool',['../group__tlivingstring.html#ga1d4d5b8511cbd1242e63b9eb1310a27c',1,'tLivingString_initToPool(tLivingString *const, float freq, float pickPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga1d4d5b8511cbd1242e63b9eb1310a27c',1,'tLivingString_initToPool(tLivingString *const pl, float freq, float pickPos, float prepIndex, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const mp):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsample_1336',['tLivingString_sample',['../group__tlivingstring.html#gac1740a1f1c9c8f319d0317b21343bfa2',1,'tLivingString_sample(tLivingString *const):&#160;leaf-physical.c'],['../group__tlivingstring.html#gac1740a1f1c9c8f319d0317b21343bfa2',1,'tLivingString_sample(tLivingString *const pl):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetdampfreq_1337',['tLivingString_setDampFreq',['../group__tlivingstring.html#ga4bb7183baf3014d12ca553b2238ba4da',1,'tLivingString_setDampFreq(tLivingString *const, float dampFreq):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga4bb7183baf3014d12ca553b2238ba4da',1,'tLivingString_setDampFreq(tLivingString *const pl, float dampFreq):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetdecay_1338',['tLivingString_setDecay',['../group__tlivingstring.html#gaf0bd03d4756f67c29bedfed6ae8a2462',1,'tLivingString_setDecay(tLivingString *const, float decay):&#160;leaf-physical.c'],['../group__tlivingstring.html#gaf0bd03d4756f67c29bedfed6ae8a2462',1,'tLivingString_setDecay(tLivingString *const pl, float decay):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetfreq_1339',['tLivingString_setFreq',['../group__tlivingstring.html#ga27d918a9c2031fb6e08a3ceb1cd40be8',1,'tLivingString_setFreq(tLivingString *const, float freq):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga27d918a9c2031fb6e08a3ceb1cd40be8',1,'tLivingString_setFreq(tLivingString *const pl, float freq):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetlevmode_1340',['tLivingString_setLevMode',['../group__tlivingstring.html#gab589985207a6de71c6ef03b7fe8aa5cb',1,'tLivingString_setLevMode(tLivingString *const, int levMode):&#160;leaf-physical.c'],['../group__tlivingstring.html#gab589985207a6de71c6ef03b7fe8aa5cb',1,'tLivingString_setLevMode(tLivingString *const pl, int levMode):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetlevsmoothfactor_1341',['tLivingString_setLevSmoothFactor',['../group__tlivingstring.html#gac5e7d1412dd4ffa46fae5e77f64437aa',1,'tLivingString_setLevSmoothFactor(tLivingString *const, float levSmoothFactor):&#160;leaf-physical.c'],['../group__tlivingstring.html#gac5e7d1412dd4ffa46fae5e77f64437aa',1,'tLivingString_setLevSmoothFactor(tLivingString *const pl, float levSmoothFactor):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetlevstrength_1342',['tLivingString_setLevStrength',['../group__tlivingstring.html#ga0be415268ce535555db9b48c7a6c3bbb',1,'tLivingString_setLevStrength(tLivingString *const, float levStrength):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga0be415268ce535555db9b48c7a6c3bbb',1,'tLivingString_setLevStrength(tLivingString *const pl, float levStrength):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetpickpos_1343',['tLivingString_setPickPos',['../group__tlivingstring.html#ga894b268e4c994e87ecfa92ebc6098453',1,'tLivingString_setPickPos(tLivingString *const, float pickPos):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga894b268e4c994e87ecfa92ebc6098453',1,'tLivingString_setPickPos(tLivingString *const pl, float pickPos):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetprepindex_1344',['tLivingString_setPrepIndex',['../group__tlivingstring.html#ga60dff1ade447e15dfb3d4f07dc04020e',1,'tLivingString_setPrepIndex(tLivingString *const, float prepIndex):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga60dff1ade447e15dfb3d4f07dc04020e',1,'tLivingString_setPrepIndex(tLivingString *const pl, float prepIndex):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsettargetlev_1345',['tLivingString_setTargetLev',['../group__tlivingstring.html#ga53912452a30d9bcf1a7981487b98e7b9',1,'tLivingString_setTargetLev(tLivingString *const, float targetLev):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga53912452a30d9bcf1a7981487b98e7b9',1,'tLivingString_setTargetLev(tLivingString *const pl, float targetLev):&#160;leaf-physical.c']]],
+  ['tlivingstring_5fsetwavelength_1346',['tLivingString_setWaveLength',['../group__tlivingstring.html#ga58b626a71daeec65a9ddf3f6925a767e',1,'tLivingString_setWaveLength(tLivingString *const, float waveLength):&#160;leaf-physical.c'],['../group__tlivingstring.html#ga58b626a71daeec65a9ddf3f6925a767e',1,'tLivingString_setWaveLength(tLivingString *const pl, float waveLength):&#160;leaf-physical.c']]],
+  ['tlivingstring_5ftick_1347',['tLivingString_tick',['../group__tlivingstring.html#gab97180cbfaebe42696eaa6e4d60f18a8',1,'tLivingString_tick(tLivingString *const, float input):&#160;leaf-physical.c'],['../group__tlivingstring.html#gab97180cbfaebe42696eaa6e4d60f18a8',1,'tLivingString_tick(tLivingString *const pl, float input):&#160;leaf-physical.c']]],
+  ['tlockhartwavefolder_5ffree_1348',['tLockhartWavefolder_free',['../group__tlockhartwavefolder.html#ga1d6c822538b7fd10b36d137aec039e58',1,'tLockhartWavefolder_free(tLockhartWavefolder *const):&#160;leaf-distortion.c'],['../group__tlockhartwavefolder.html#ga1d6c822538b7fd10b36d137aec039e58',1,'tLockhartWavefolder_free(tLockhartWavefolder *const wf):&#160;leaf-distortion.c']]],
+  ['tlockhartwavefolder_5finit_1349',['tLockhartWavefolder_init',['../group__tlockhartwavefolder.html#gaaaccced3a742e99031ec5aa09604e376',1,'tLockhartWavefolder_init(tLockhartWavefolder *const, LEAF *const leaf):&#160;leaf-distortion.c'],['../group__tlockhartwavefolder.html#gaaaccced3a742e99031ec5aa09604e376',1,'tLockhartWavefolder_init(tLockhartWavefolder *const wf, LEAF *const leaf):&#160;leaf-distortion.c']]],
+  ['tlockhartwavefolder_5finittopool_1350',['tLockhartWavefolder_initToPool',['../group__tlockhartwavefolder.html#gab130d6243f2c51fe55f1e23e2a7f65ff',1,'tLockhartWavefolder_initToPool(tLockhartWavefolder *const, tMempool *const):&#160;leaf-distortion.c'],['../group__tlockhartwavefolder.html#gab130d6243f2c51fe55f1e23e2a7f65ff',1,'tLockhartWavefolder_initToPool(tLockhartWavefolder *const wf, tMempool *const mp):&#160;leaf-distortion.c']]],
+  ['tlockhartwavefolder_5ftick_1351',['tLockhartWavefolder_tick',['../group__tlockhartwavefolder.html#gaaa9ddfb64262aa97804144c96d2d400f',1,'tLockhartWavefolder_tick(tLockhartWavefolder *const, float samp):&#160;leaf-distortion.c'],['../group__tlockhartwavefolder.html#gaaa9ddfb64262aa97804144c96d2d400f',1,'tLockhartWavefolder_tick(tLockhartWavefolder *const wf, float in):&#160;leaf-distortion.c']]],
+  ['tmbpulse_5ffree_1352',['tMBPulse_free',['../group__tmbpulse.html#gac07d7bffe4cc28fb90825b2b1692bd85',1,'tMBPulse_free(tMBPulse *const osc):&#160;leaf-oscillators.c'],['../group__tmbpulse.html#gac07d7bffe4cc28fb90825b2b1692bd85',1,'tMBPulse_free(tMBPulse *const osc):&#160;leaf-oscillators.c']]],
+  ['tmbpulse_5finit_1353',['tMBPulse_init',['../group__tmbpulse.html#gabd7bb2639349323c56d8e49e1e242a4c',1,'tMBPulse_init(tMBPulse *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tmbpulse.html#gabd7bb2639349323c56d8e49e1e242a4c',1,'tMBPulse_init(tMBPulse *const osc, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tmbpulse_5finittopool_1354',['tMBPulse_initToPool',['../group__tmbpulse.html#gaa36a0b547fef520a9ba55df50b7bbb70',1,'tMBPulse_initToPool(tMBPulse *const osc, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__tmbpulse.html#gaa36a0b547fef520a9ba55df50b7bbb70',1,'tMBPulse_initToPool(tMBPulse *const osc, tMempool *const pool):&#160;leaf-oscillators.c']]],
+  ['tmbpulse_5fsetfreq_1355',['tMBPulse_setFreq',['../group__tmbpulse.html#gacda622592ebee8942e11209e62ee33bc',1,'tMBPulse_setFreq(tMBPulse *const osc, float f):&#160;leaf-oscillators.c'],['../group__tmbpulse.html#gacda622592ebee8942e11209e62ee33bc',1,'tMBPulse_setFreq(tMBPulse *const osc, float f):&#160;leaf-oscillators.c']]],
+  ['tmbpulse_5fsetwidth_1356',['tMBPulse_setWidth',['../group__tmbpulse.html#ga071f98a4a4981b2d9c2e917c5c5fdb40',1,'tMBPulse_setWidth(tMBPulse *const osc, float w):&#160;leaf-oscillators.c'],['../group__tmbpulse.html#ga071f98a4a4981b2d9c2e917c5c5fdb40',1,'tMBPulse_setWidth(tMBPulse *const osc, float w):&#160;leaf-oscillators.c']]],
+  ['tmbpulse_5fsyncin_1357',['tMBPulse_syncIn',['../group__tmbpulse.html#gad963722a79ea1c5b240e97405f3a8451',1,'tMBPulse_syncIn(tMBPulse *const osc, float sync):&#160;leaf-oscillators.c'],['../group__tmbpulse.html#gad963722a79ea1c5b240e97405f3a8451',1,'tMBPulse_syncIn(tMBPulse *const osc, float sync):&#160;leaf-oscillators.c']]],
+  ['tmbpulse_5fsyncout_1358',['tMBPulse_syncOut',['../group__tmbpulse.html#ga199661893e765676a0c53c6d3661711b',1,'tMBPulse_syncOut(tMBPulse *const osc):&#160;leaf-oscillators.c'],['../group__tmbpulse.html#ga199661893e765676a0c53c6d3661711b',1,'tMBPulse_syncOut(tMBPulse *const osc):&#160;leaf-oscillators.c']]],
+  ['tmbpulse_5ftick_1359',['tMBPulse_tick',['../group__tmbpulse.html#ga710dd6a7764807029c193cf44c923737',1,'tMBPulse_tick(tMBPulse *const osc):&#160;leaf-oscillators.c'],['../group__tmbpulse.html#ga710dd6a7764807029c193cf44c923737',1,'tMBPulse_tick(tMBPulse *const osc):&#160;leaf-oscillators.c']]],
+  ['tmbsampler_5ffree_1360',['tMBSampler_free',['../group__t_m_b_sampler.html#gabf7ea61189e14b7df128c279342ecabb',1,'tMBSampler_free(tMBSampler *const):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#gabf7ea61189e14b7df128c279342ecabb',1,'tMBSampler_free(tMBSampler *const sp):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5finit_1361',['tMBSampler_init',['../group__t_m_b_sampler.html#gaca3e3353a058e3b2d2231daba80e2cba',1,'tMBSampler_init(tMBSampler *const, tBuffer *const, LEAF *const leaf):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#gaca3e3353a058e3b2d2231daba80e2cba',1,'tMBSampler_init(tMBSampler *const sp, tBuffer *const b, LEAF *const leaf):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5finittopool_1362',['tMBSampler_initToPool',['../group__t_m_b_sampler.html#ga0cf8b1c9137072b7c99deeb3749a8f13',1,'tMBSampler_initToPool(tMBSampler *const, tBuffer *const, tMempool *const):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#ga0cf8b1c9137072b7c99deeb3749a8f13',1,'tMBSampler_initToPool(tMBSampler *const sp, tBuffer *const b, tMempool *const mp):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5fplay_1363',['tMBSampler_play',['../group__t_m_b_sampler.html#ga8b91b8513f515bd0a26411b14c2c43d6',1,'tMBSampler_play(tMBSampler *const):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#ga8b91b8513f515bd0a26411b14c2c43d6',1,'tMBSampler_play(tMBSampler *const sp):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5fsetend_1364',['tMBSampler_setEnd',['../group__t_m_b_sampler.html#gaf3fcfc2f5f9b14c712bc59d9e91d5365',1,'tMBSampler_setEnd(tMBSampler *const, int32_t end):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#gaf3fcfc2f5f9b14c712bc59d9e91d5365',1,'tMBSampler_setEnd(tMBSampler *const sp, int32_t end):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5fsetlength_1365',['tMBSampler_setLength',['../group__t_m_b_sampler.html#ga066b4da5f29266f9138772944f403d8b',1,'tMBSampler_setLength(tMBSampler *const, int32_t length):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#ga066b4da5f29266f9138772944f403d8b',1,'tMBSampler_setLength(tMBSampler *const sp, int32_t length):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5fsetmode_1366',['tMBSampler_setMode',['../group__t_m_b_sampler.html#ga7017647251f4c6bf8ab2e919cf1d72a0',1,'tMBSampler_setMode(tMBSampler *const, PlayMode mode):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#ga7017647251f4c6bf8ab2e919cf1d72a0',1,'tMBSampler_setMode(tMBSampler *const sp, PlayMode mode):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5fsetrate_1367',['tMBSampler_setRate',['../group__t_m_b_sampler.html#gafd87c733fd6c73885b84ac9d02b43f5a',1,'tMBSampler_setRate(tMBSampler *const, float rate):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#gafd87c733fd6c73885b84ac9d02b43f5a',1,'tMBSampler_setRate(tMBSampler *const sp, float rate):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5fsetsample_1368',['tMBSampler_setSample',['../group__t_m_b_sampler.html#ga5df0750a1c82828dc7c3d654fd633c63',1,'tMBSampler_setSample(tMBSampler *const, tBuffer *const):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#ga5df0750a1c82828dc7c3d654fd633c63',1,'tMBSampler_setSample(tMBSampler *const sp, tBuffer *const b):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5fsetstart_1369',['tMBSampler_setStart',['../group__t_m_b_sampler.html#ga2adcb66cf57f16c7852fbffb4b6d2201',1,'tMBSampler_setStart(tMBSampler *const, int32_t start):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#ga2adcb66cf57f16c7852fbffb4b6d2201',1,'tMBSampler_setStart(tMBSampler *const sp, int32_t start):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5fstop_1370',['tMBSampler_stop',['../group__t_m_b_sampler.html#ga4f7de005419ba042c280bc6aa0a43013',1,'tMBSampler_stop(tMBSampler *const):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#ga4f7de005419ba042c280bc6aa0a43013',1,'tMBSampler_stop(tMBSampler *const sp):&#160;leaf-sampling.c']]],
+  ['tmbsampler_5ftick_1371',['tMBSampler_tick',['../group__t_m_b_sampler.html#gaa96c1712d883af90494934258901ef98',1,'tMBSampler_tick(tMBSampler *const):&#160;leaf-sampling.c'],['../group__t_m_b_sampler.html#gaa96c1712d883af90494934258901ef98',1,'tMBSampler_tick(tMBSampler *const sp):&#160;leaf-sampling.c']]],
+  ['tmbsaw_5ffree_1372',['tMBSaw_free',['../group__tmbsaw.html#gabf4312918312e89cc6cf9f116ec48a94',1,'tMBSaw_free(tMBSaw *const osc):&#160;leaf-oscillators.c'],['../group__tmbsaw.html#gabf4312918312e89cc6cf9f116ec48a94',1,'tMBSaw_free(tMBSaw *const osc):&#160;leaf-oscillators.c']]],
+  ['tmbsaw_5finit_1373',['tMBSaw_init',['../group__tmbsaw.html#ga4792d509595b94f20e515b077b476884',1,'tMBSaw_init(tMBSaw *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tmbsaw.html#ga4792d509595b94f20e515b077b476884',1,'tMBSaw_init(tMBSaw *const osc, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tmbsaw_5finittopool_1374',['tMBSaw_initToPool',['../group__tmbsaw.html#ga9405dbc7af1c8687690e7d31f8e105b5',1,'tMBSaw_initToPool(tMBSaw *const osc, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__tmbsaw.html#ga9405dbc7af1c8687690e7d31f8e105b5',1,'tMBSaw_initToPool(tMBSaw *const osc, tMempool *const pool):&#160;leaf-oscillators.c']]],
+  ['tmbsaw_5fsetfreq_1375',['tMBSaw_setFreq',['../group__tmbsaw.html#gaa7e8996e6780f64c5530600d13e68dfa',1,'tMBSaw_setFreq(tMBSaw *const osc, float f):&#160;leaf-oscillators.c'],['../group__tmbsaw.html#gaa7e8996e6780f64c5530600d13e68dfa',1,'tMBSaw_setFreq(tMBSaw *const osc, float f):&#160;leaf-oscillators.c']]],
+  ['tmbsaw_5fsyncin_1376',['tMBSaw_syncIn',['../group__tmbsaw.html#gaf8c1832d4612b09186f039dae141c55e',1,'tMBSaw_syncIn(tMBSaw *const osc, float sync):&#160;leaf-oscillators.c'],['../group__tmbsaw.html#gaf8c1832d4612b09186f039dae141c55e',1,'tMBSaw_syncIn(tMBSaw *const osc, float sync):&#160;leaf-oscillators.c']]],
+  ['tmbsaw_5fsyncout_1377',['tMBSaw_syncOut',['../group__tmbsaw.html#ga7a3f14f56043adf51d48b8a3c6aebf77',1,'tMBSaw_syncOut(tMBSaw *const osc):&#160;leaf-oscillators.c'],['../group__tmbsaw.html#ga7a3f14f56043adf51d48b8a3c6aebf77',1,'tMBSaw_syncOut(tMBSaw *const osc):&#160;leaf-oscillators.c']]],
+  ['tmbsaw_5ftick_1378',['tMBSaw_tick',['../group__tmbsaw.html#ga200361c3174c419e413a2b8b4e988fc4',1,'tMBSaw_tick(tMBSaw *const osc):&#160;leaf-oscillators.c'],['../group__tmbsaw.html#ga200361c3174c419e413a2b8b4e988fc4',1,'tMBSaw_tick(tMBSaw *const osc):&#160;leaf-oscillators.c']]],
+  ['tmbtriangle_5ffree_1379',['tMBTriangle_free',['../group__tmbtriangle.html#ga4a398681a83d517465c1f1373ecdff58',1,'tMBTriangle_free(tMBTriangle *const osc):&#160;leaf-oscillators.c'],['../group__tmbtriangle.html#ga4a398681a83d517465c1f1373ecdff58',1,'tMBTriangle_free(tMBTriangle *const osc):&#160;leaf-oscillators.c']]],
+  ['tmbtriangle_5finit_1380',['tMBTriangle_init',['../group__tmbtriangle.html#gaaa43deb9cb1263b048346ddced186ae1',1,'tMBTriangle_init(tMBTriangle *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tmbtriangle.html#gaaa43deb9cb1263b048346ddced186ae1',1,'tMBTriangle_init(tMBTriangle *const osc, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tmbtriangle_5finittopool_1381',['tMBTriangle_initToPool',['../group__tmbtriangle.html#ga1059c905fff781ffc59ffed1fefc3733',1,'tMBTriangle_initToPool(tMBTriangle *const osc, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__tmbtriangle.html#ga1059c905fff781ffc59ffed1fefc3733',1,'tMBTriangle_initToPool(tMBTriangle *const osc, tMempool *const pool):&#160;leaf-oscillators.c']]],
+  ['tmbtriangle_5fsetfreq_1382',['tMBTriangle_setFreq',['../group__tmbtriangle.html#ga2d5a172cbfc2df0d71e9c8732fbe949e',1,'tMBTriangle_setFreq(tMBTriangle *const osc, float f):&#160;leaf-oscillators.c'],['../group__tmbtriangle.html#ga2d5a172cbfc2df0d71e9c8732fbe949e',1,'tMBTriangle_setFreq(tMBTriangle *const osc, float f):&#160;leaf-oscillators.c']]],
+  ['tmbtriangle_5fsetwidth_1383',['tMBTriangle_setWidth',['../group__tmbtriangle.html#ga3d1220d479ab00cfdf07eda2bacd6eb6',1,'tMBTriangle_setWidth(tMBTriangle *const osc, float w):&#160;leaf-oscillators.c'],['../group__tmbtriangle.html#ga3d1220d479ab00cfdf07eda2bacd6eb6',1,'tMBTriangle_setWidth(tMBTriangle *const osc, float w):&#160;leaf-oscillators.c']]],
+  ['tmbtriangle_5fsyncin_1384',['tMBTriangle_syncIn',['../group__tmbtriangle.html#gae3ebade6ea067daf671c06a45c7159ab',1,'tMBTriangle_syncIn(tMBTriangle *const osc, float sync):&#160;leaf-oscillators.c'],['../group__tmbtriangle.html#gae3ebade6ea067daf671c06a45c7159ab',1,'tMBTriangle_syncIn(tMBTriangle *const osc, float sync):&#160;leaf-oscillators.c']]],
+  ['tmbtriangle_5fsyncout_1385',['tMBTriangle_syncOut',['../group__tmbtriangle.html#gad0326131f43ef1a605faa75d2b1ff793',1,'tMBTriangle_syncOut(tMBTriangle *const osc):&#160;leaf-oscillators.c'],['../group__tmbtriangle.html#gad0326131f43ef1a605faa75d2b1ff793',1,'tMBTriangle_syncOut(tMBTriangle *const osc):&#160;leaf-oscillators.c']]],
+  ['tmbtriangle_5ftick_1386',['tMBTriangle_tick',['../group__tmbtriangle.html#gad01e9918a433aae65ec099301edc9e42',1,'tMBTriangle_tick(tMBTriangle *const osc):&#160;leaf-oscillators.c'],['../group__tmbtriangle.html#gad01e9918a433aae65ec099301edc9e42',1,'tMBTriangle_tick(tMBTriangle *const osc):&#160;leaf-oscillators.c']]],
+  ['tmedianfilter_5ffree_1387',['tMedianFilter_free',['../group__tmedianfilter.html#ga8f504c9799e7d7c782df97b8d104bca8',1,'tMedianFilter_free(tMedianFilter *const):&#160;leaf-filters.c'],['../group__tmedianfilter.html#ga8f504c9799e7d7c782df97b8d104bca8',1,'tMedianFilter_free(tMedianFilter *const mf):&#160;leaf-filters.c']]],
+  ['tmedianfilter_5finit_1388',['tMedianFilter_init',['../group__tmedianfilter.html#ga681edc6f80e60403e48d6228010242c7',1,'tMedianFilter_init(tMedianFilter *const, int size, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tmedianfilter.html#ga681edc6f80e60403e48d6228010242c7',1,'tMedianFilter_init(tMedianFilter *const f, int size, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tmedianfilter_5finittopool_1389',['tMedianFilter_initToPool',['../group__tmedianfilter.html#ga11aa8d228031cd4b493ea22cb56fc7fd',1,'tMedianFilter_initToPool(tMedianFilter *const, int size, tMempool *const):&#160;leaf-filters.c'],['../group__tmedianfilter.html#ga11aa8d228031cd4b493ea22cb56fc7fd',1,'tMedianFilter_initToPool(tMedianFilter *const mf, int size, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tmedianfilter_5ftick_1390',['tMedianFilter_tick',['../group__tmedianfilter.html#ga07f8bc00264d3e544a2172e5a9bd5420',1,'tMedianFilter_tick(tMedianFilter *const, float input):&#160;leaf-filters.c'],['../group__tmedianfilter.html#ga07f8bc00264d3e544a2172e5a9bd5420',1,'tMedianFilter_tick(tMedianFilter *const mf, float input):&#160;leaf-filters.c']]],
+  ['tmempool_5ffree_1391',['tMempool_free',['../group__tmempool.html#ga374f00b950bef471dce439c54de88c6b',1,'tMempool_free(tMempool *const pool):&#160;leaf-mempool.c'],['../group__tmempool.html#ga374f00b950bef471dce439c54de88c6b',1,'tMempool_free(tMempool *const mp):&#160;leaf-mempool.c']]],
+  ['tmempool_5finit_1392',['tMempool_init',['../group__tmempool.html#ga7d57d178dbc5f510e139a303ff82f950',1,'tMempool_init(tMempool *const pool, char *memory, size_t size, LEAF *const leaf):&#160;leaf-mempool.c'],['../group__tmempool.html#ga7d57d178dbc5f510e139a303ff82f950',1,'tMempool_init(tMempool *const mp, char *memory, size_t size, LEAF *const leaf):&#160;leaf-mempool.c']]],
+  ['tmempool_5finittopool_1393',['tMempool_initToPool',['../group__tmempool.html#ga74e9d1987d7e4f680dfc091c96ffbcce',1,'tMempool_initToPool(tMempool *const mp, char *memory, size_t size, tMempool *const mem):&#160;leaf-mempool.c'],['../group__tmempool.html#ga74e9d1987d7e4f680dfc091c96ffbcce',1,'tMempool_initToPool(tMempool *const mp, char *memory, size_t size, tMempool *const mem):&#160;leaf-mempool.c']]],
+  ['tneuron_5ffree_1394',['tNeuron_free',['../group__tneuron.html#ga8e7767ba34797b6e41cd47fee21a674b',1,'tNeuron_free(tNeuron *const neuron):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga8e7767ba34797b6e41cd47fee21a674b',1,'tNeuron_free(tNeuron *const nr):&#160;leaf-oscillators.c']]],
+  ['tneuron_5finit_1395',['tNeuron_init',['../group__tneuron.html#gaaf7fb0a50cde5d02085bae982f355d98',1,'tNeuron_init(tNeuron *const neuron, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tneuron.html#gaaf7fb0a50cde5d02085bae982f355d98',1,'tNeuron_init(tNeuron *const nr, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tneuron_5finittopool_1396',['tNeuron_initToPool',['../group__tneuron.html#ga64ec0be41011ffc7fdea5c03359a032c',1,'tNeuron_initToPool(tNeuron *const neuron, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga64ec0be41011ffc7fdea5c03359a032c',1,'tNeuron_initToPool(tNeuron *const nr, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['tneuron_5freset_1397',['tNeuron_reset',['../group__tneuron.html#ga3e37f3a7de15a04e697f52cb72a5b094',1,'tNeuron_reset(tNeuron *const neuron):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga3e37f3a7de15a04e697f52cb72a5b094',1,'tNeuron_reset(tNeuron *const nr):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetc_1398',['tNeuron_setC',['../group__tneuron.html#gad67b6b0f22c03de1995e07bbf422c111',1,'tNeuron_setC(tNeuron *const neuron, float C):&#160;leaf-oscillators.c'],['../group__tneuron.html#gad67b6b0f22c03de1995e07bbf422c111',1,'tNeuron_setC(tNeuron *const nr, float C):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetcurrent_1399',['tNeuron_setCurrent',['../group__tneuron.html#gad683dcc57adbc4e94baedae51005f5a9',1,'tNeuron_setCurrent(tNeuron *const neuron, float current):&#160;leaf-oscillators.c'],['../group__tneuron.html#gad683dcc57adbc4e94baedae51005f5a9',1,'tNeuron_setCurrent(tNeuron *const nr, float current):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetk_1400',['tNeuron_setK',['../group__tneuron.html#ga933040791b44ff8d7ada7aa825c48935',1,'tNeuron_setK(tNeuron *const neuron, float K):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga933040791b44ff8d7ada7aa825c48935',1,'tNeuron_setK(tNeuron *const nr, float K):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetl_1401',['tNeuron_setL',['../group__tneuron.html#ga0813977adaef8fa375c5b0f5e59908b6',1,'tNeuron_setL(tNeuron *const neuron, float L):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga0813977adaef8fa375c5b0f5e59908b6',1,'tNeuron_setL(tNeuron *const nr, float L):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetmode_1402',['tNeuron_setMode',['../group__tneuron.html#gad69adcd45e4dabc947fabbc9baf7d849',1,'tNeuron_setMode(tNeuron *const neuron, NeuronMode mode):&#160;leaf-oscillators.c'],['../group__tneuron.html#gad69adcd45e4dabc947fabbc9baf7d849',1,'tNeuron_setMode(tNeuron *const nr, NeuronMode mode):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetn_1403',['tNeuron_setN',['../group__tneuron.html#ga1969098711805e2b8a68bc115bb113d5',1,'tNeuron_setN(tNeuron *const neuron, float N):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga1969098711805e2b8a68bc115bb113d5',1,'tNeuron_setN(tNeuron *const nr, float N):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsettimestep_1404',['tNeuron_setTimeStep',['../group__tneuron.html#ga92c05fe0216beaf2a430bf45898c46d5',1,'tNeuron_setTimeStep(tNeuron *const neuron, float timestep):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga92c05fe0216beaf2a430bf45898c46d5',1,'tNeuron_setTimeStep(tNeuron *const nr, float timeStep):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetv1_1405',['tNeuron_setV1',['../group__tneuron.html#ga0f4241ab21570d8accef6cdb468f24c1',1,'tNeuron_setV1(tNeuron *const neuron, float V1):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga0f4241ab21570d8accef6cdb468f24c1',1,'tNeuron_setV1(tNeuron *const nr, float V1):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetv2_1406',['tNeuron_setV2',['../group__tneuron.html#ga7bc12acf05b0763e80945808cf76102d',1,'tNeuron_setV2(tNeuron *const neuron, float V2):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga7bc12acf05b0763e80945808cf76102d',1,'tNeuron_setV2(tNeuron *const nr, float V2):&#160;leaf-oscillators.c']]],
+  ['tneuron_5fsetv3_1407',['tNeuron_setV3',['../group__tneuron.html#ga49e7f07a28b9e12d1fd9ed9dda6fd88d',1,'tNeuron_setV3(tNeuron *const neuron, float V3):&#160;leaf-oscillators.c'],['../group__tneuron.html#ga49e7f07a28b9e12d1fd9ed9dda6fd88d',1,'tNeuron_setV3(tNeuron *const nr, float V3):&#160;leaf-oscillators.c']]],
+  ['tneuron_5ftick_1408',['tNeuron_tick',['../group__tneuron.html#gacbbb031eee9c36e21e24e54b43290bc0',1,'tNeuron_tick(tNeuron *const neuron):&#160;leaf-oscillators.c'],['../group__tneuron.html#gacbbb031eee9c36e21e24e54b43290bc0',1,'tNeuron_tick(tNeuron *const nr):&#160;leaf-oscillators.c']]],
+  ['tnoise_5ffree_1409',['tNoise_free',['../group__tnoise.html#gab51a77f9ab3888d706ed0fb30cdf217d',1,'tNoise_free(tNoise *const noise):&#160;leaf-oscillators.c'],['../group__tnoise.html#gab51a77f9ab3888d706ed0fb30cdf217d',1,'tNoise_free(tNoise *const ns):&#160;leaf-oscillators.c']]],
+  ['tnoise_5finit_1410',['tNoise_init',['../group__tnoise.html#ga4e30b8b212200e17e73b0fb96293c386',1,'tNoise_init(tNoise *const noise, NoiseType type, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tnoise.html#ga4e30b8b212200e17e73b0fb96293c386',1,'tNoise_init(tNoise *const ns, NoiseType type, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tnoise_5finittopool_1411',['tNoise_initToPool',['../group__tnoise.html#ga6eec0a5fbc79f448a89258d9b956dfa4',1,'tNoise_initToPool(tNoise *const noise, NoiseType type, tMempool *const):&#160;leaf-oscillators.c'],['../group__tnoise.html#ga6eec0a5fbc79f448a89258d9b956dfa4',1,'tNoise_initToPool(tNoise *const ns, NoiseType type, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['tnoise_5ftick_1412',['tNoise_tick',['../group__tnoise.html#ga867c2ace286c8fdd886f7f9357821330',1,'tNoise_tick(tNoise *const noise):&#160;leaf-oscillators.c'],['../group__tnoise.html#ga867c2ace286c8fdd886f7f9357821330',1,'tNoise_tick(tNoise *const ns):&#160;leaf-oscillators.c']]],
+  ['tnreverb_5fclear_1413',['tNReverb_clear',['../group__tnreverb.html#gaa349525bb82ec4c02de42d9571cc4bb3',1,'tNReverb_clear(tNReverb *const):&#160;leaf-reverb.c'],['../group__tnreverb.html#gaa349525bb82ec4c02de42d9571cc4bb3',1,'tNReverb_clear(tNReverb *const rev):&#160;leaf-reverb.c']]],
+  ['tnreverb_5ffree_1414',['tNReverb_free',['../group__tnreverb.html#ga5fd99fec8124a8874fd3ac460a24f670',1,'tNReverb_free(tNReverb *const):&#160;leaf-reverb.c'],['../group__tnreverb.html#ga5fd99fec8124a8874fd3ac460a24f670',1,'tNReverb_free(tNReverb *const rev):&#160;leaf-reverb.c']]],
+  ['tnreverb_5finit_1415',['tNReverb_init',['../group__tnreverb.html#ga3f5f7bc51b7243b388b9efce99c4d409',1,'tNReverb_init(tNReverb *const, float t60, LEAF *const leaf):&#160;leaf-reverb.c'],['../group__tnreverb.html#ga3f5f7bc51b7243b388b9efce99c4d409',1,'tNReverb_init(tNReverb *const rev, float t60, LEAF *const leaf):&#160;leaf-reverb.c']]],
+  ['tnreverb_5finittopool_1416',['tNReverb_initToPool',['../group__tnreverb.html#ga7706f638cebfe55b14524e4a79889046',1,'tNReverb_initToPool(tNReverb *const, float t60, tMempool *const):&#160;leaf-reverb.c'],['../group__tnreverb.html#ga7706f638cebfe55b14524e4a79889046',1,'tNReverb_initToPool(tNReverb *const rev, float t60, tMempool *const mp):&#160;leaf-reverb.c']]],
+  ['tnreverb_5fsetmix_1417',['tNReverb_setMix',['../group__tnreverb.html#gab915282eb337ebbf4ced8e20827d082b',1,'tNReverb_setMix(tNReverb *const, float mix):&#160;leaf-reverb.c'],['../group__tnreverb.html#gab915282eb337ebbf4ced8e20827d082b',1,'tNReverb_setMix(tNReverb *const rev, float mix):&#160;leaf-reverb.c']]],
+  ['tnreverb_5fsett60_1418',['tNReverb_setT60',['../group__tnreverb.html#ga7355a61ee1185d19e9265e5e7797cf95',1,'tNReverb_setT60(tNReverb *const, float t60):&#160;leaf-reverb.c'],['../group__tnreverb.html#ga7355a61ee1185d19e9265e5e7797cf95',1,'tNReverb_setT60(tNReverb *const rev, float t60):&#160;leaf-reverb.c']]],
+  ['tnreverb_5ftick_1419',['tNReverb_tick',['../group__tnreverb.html#gad13adebe50c0f7af789ee4866720ee41',1,'tNReverb_tick(tNReverb *const, float input):&#160;leaf-reverb.c'],['../group__tnreverb.html#gad13adebe50c0f7af789ee4866720ee41',1,'tNReverb_tick(tNReverb *const rev, float input):&#160;leaf-reverb.c']]],
+  ['tnreverb_5ftickstereo_1420',['tNReverb_tickStereo',['../group__tnreverb.html#gac8ae2782156ef22133de8acd9f4fe6fa',1,'tNReverb_tickStereo(tNReverb *const rev, float input, float *output):&#160;leaf-reverb.c'],['../group__tnreverb.html#gac8ae2782156ef22133de8acd9f4fe6fa',1,'tNReverb_tickStereo(tNReverb *const rev, float input, float *output):&#160;leaf-reverb.c']]],
+  ['tonepole_5ffree_1421',['tOnePole_free',['../group__tonepole.html#gae62f76fc8009569f5dc89388d0598b62',1,'tOnePole_free(tOnePole *const):&#160;leaf-filters.c'],['../group__tonepole.html#gae62f76fc8009569f5dc89388d0598b62',1,'tOnePole_free(tOnePole *const ft):&#160;leaf-filters.c']]],
+  ['tonepole_5finit_1422',['tOnePole_init',['../group__tonepole.html#gabcdda318381d2d2dd314c3ec4399944d',1,'tOnePole_init(tOnePole *const, float thePole, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tonepole.html#gabcdda318381d2d2dd314c3ec4399944d',1,'tOnePole_init(tOnePole *const ft, float freq, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tonepole_5finittopool_1423',['tOnePole_initToPool',['../group__tonepole.html#ga08050cc38be920cf41bfdf4fc07fd81b',1,'tOnePole_initToPool(tOnePole *const, float thePole, tMempool *const):&#160;leaf-filters.c'],['../group__tonepole.html#ga08050cc38be920cf41bfdf4fc07fd81b',1,'tOnePole_initToPool(tOnePole *const ft, float freq, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tonepole_5fseta1_1424',['tOnePole_setA1',['../group__tonepole.html#ga255cd0e1e27c6dfced99c68ac352e57f',1,'tOnePole_setA1(tOnePole *const, float a1):&#160;leaf-filters.c'],['../group__tonepole.html#ga255cd0e1e27c6dfced99c68ac352e57f',1,'tOnePole_setA1(tOnePole *const ft, float a1):&#160;leaf-filters.c']]],
+  ['tonepole_5fsetb0_1425',['tOnePole_setB0',['../group__tonepole.html#gac83d1fd7167c1bd78cf4b44fa2d18562',1,'tOnePole_setB0(tOnePole *const, float b0):&#160;leaf-filters.c'],['../group__tonepole.html#gac83d1fd7167c1bd78cf4b44fa2d18562',1,'tOnePole_setB0(tOnePole *const ft, float b0):&#160;leaf-filters.c']]],
+  ['tonepole_5fsetcoefficients_1426',['tOnePole_setCoefficients',['../group__tonepole.html#gad7a7e9061389b83a4efed8e9d30f9047',1,'tOnePole_setCoefficients(tOnePole *const, float b0, float a1):&#160;leaf-filters.c'],['../group__tonepole.html#gad7a7e9061389b83a4efed8e9d30f9047',1,'tOnePole_setCoefficients(tOnePole *const ft, float b0, float a1):&#160;leaf-filters.c']]],
+  ['tonepole_5fsetfreq_1427',['tOnePole_setFreq',['../group__tonepole.html#gaa2fe72283746cd156766fd07f6604430',1,'tOnePole_setFreq(tOnePole *const, float freq):&#160;leaf-filters.c'],['../group__tonepole.html#gaa2fe72283746cd156766fd07f6604430',1,'tOnePole_setFreq(tOnePole *const ft, float freq):&#160;leaf-filters.c']]],
+  ['tonepole_5fsetgain_1428',['tOnePole_setGain',['../group__tonepole.html#gab5abc7f67dc57d2475e3880c864c3717',1,'tOnePole_setGain(tOnePole *const, float gain):&#160;leaf-filters.c'],['../group__tonepole.html#gab5abc7f67dc57d2475e3880c864c3717',1,'tOnePole_setGain(tOnePole *const ft, float gain):&#160;leaf-filters.c']]],
+  ['tonepole_5fsetpole_1429',['tOnePole_setPole',['../group__tonepole.html#gac20aca828debbc4fae6b62ea6e085356',1,'tOnePole_setPole(tOnePole *const, float thePole):&#160;leaf-filters.c'],['../group__tonepole.html#gac20aca828debbc4fae6b62ea6e085356',1,'tOnePole_setPole(tOnePole *const ft, float thePole):&#160;leaf-filters.c']]],
+  ['tonepole_5ftick_1430',['tOnePole_tick',['../group__tonepole.html#gaf0f1f40fccb864cdf7310fffbdcfcf5f',1,'tOnePole_tick(tOnePole *const, float input):&#160;leaf-filters.c'],['../group__tonepole.html#gaf0f1f40fccb864cdf7310fffbdcfcf5f',1,'tOnePole_tick(tOnePole *const ft, float input):&#160;leaf-filters.c']]],
+  ['tonezero_5ffree_1431',['tOneZero_free',['../group__tonezero.html#ga06bbbfdb22d7b291f73489981c311bc0',1,'tOneZero_free(tOneZero *const):&#160;leaf-filters.c'],['../group__tonezero.html#ga06bbbfdb22d7b291f73489981c311bc0',1,'tOneZero_free(tOneZero *const ft):&#160;leaf-filters.c']]],
+  ['tonezero_5fgetphasedelay_1432',['tOneZero_getPhaseDelay',['../group__tonezero.html#gae93bd56798868c1022fa025c62126bfe',1,'tOneZero_getPhaseDelay(tOneZero *f, float frequency):&#160;leaf-filters.c'],['../group__tonezero.html#gae93bd56798868c1022fa025c62126bfe',1,'tOneZero_getPhaseDelay(tOneZero *const ft, float frequency):&#160;leaf-filters.c']]],
+  ['tonezero_5finit_1433',['tOneZero_init',['../group__tonezero.html#gabbd3ddafbab517a2c66e91d8e68f71f7',1,'tOneZero_init(tOneZero *const, float theZero, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tonezero.html#gabbd3ddafbab517a2c66e91d8e68f71f7',1,'tOneZero_init(tOneZero *const ft, float theZero, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tonezero_5finittopool_1434',['tOneZero_initToPool',['../group__tonezero.html#ga8148897bb39a76c5368f740d532c774b',1,'tOneZero_initToPool(tOneZero *const, float theZero, tMempool *const):&#160;leaf-filters.c'],['../group__tonezero.html#ga8148897bb39a76c5368f740d532c774b',1,'tOneZero_initToPool(tOneZero *const ft, float theZero, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tonezero_5fsetb0_1435',['tOneZero_setB0',['../group__tonezero.html#ga98cda6f603769e6ad842f869c751b5b8',1,'tOneZero_setB0(tOneZero *const, float b0):&#160;leaf-filters.c'],['../group__tonezero.html#ga98cda6f603769e6ad842f869c751b5b8',1,'tOneZero_setB0(tOneZero *const ft, float b0):&#160;leaf-filters.c']]],
+  ['tonezero_5fsetb1_1436',['tOneZero_setB1',['../group__tonezero.html#ga02db3ca6e4e8d321a4730e4ea2b58f6c',1,'tOneZero_setB1(tOneZero *const, float b1):&#160;leaf-filters.c'],['../group__tonezero.html#ga02db3ca6e4e8d321a4730e4ea2b58f6c',1,'tOneZero_setB1(tOneZero *const ft, float b1):&#160;leaf-filters.c']]],
+  ['tonezero_5fsetcoefficients_1437',['tOneZero_setCoefficients',['../group__tonezero.html#gaf460819e3f35c5759cc1f6707f2bda86',1,'tOneZero_setCoefficients(tOneZero *const, float b0, float b1):&#160;leaf-filters.c'],['../group__tonezero.html#gaf460819e3f35c5759cc1f6707f2bda86',1,'tOneZero_setCoefficients(tOneZero *const ft, float b0, float b1):&#160;leaf-filters.c']]],
+  ['tonezero_5fsetgain_1438',['tOneZero_setGain',['../group__tonezero.html#ga6f7ad30df1a802a5db5b8b4f6465c993',1,'tOneZero_setGain(tOneZero *const, float gain):&#160;leaf-filters.c'],['../group__tonezero.html#ga6f7ad30df1a802a5db5b8b4f6465c993',1,'tOneZero_setGain(tOneZero *ft, float gain):&#160;leaf-filters.c']]],
+  ['tonezero_5fsetzero_1439',['tOneZero_setZero',['../group__tonezero.html#gaf0827232a84f1d39e418459d9d53c977',1,'tOneZero_setZero(tOneZero *const, float theZero):&#160;leaf-filters.c'],['../group__tonezero.html#gaf0827232a84f1d39e418459d9d53c977',1,'tOneZero_setZero(tOneZero *const ft, float theZero):&#160;leaf-filters.c']]],
+  ['tonezero_5ftick_1440',['tOneZero_tick',['../group__tonezero.html#ga5d49fd94313454e219b43e1fa3175d12',1,'tOneZero_tick(tOneZero *const, float input):&#160;leaf-filters.c'],['../group__tonezero.html#ga5d49fd94313454e219b43e1fa3175d12',1,'tOneZero_tick(tOneZero *const ft, float input):&#160;leaf-filters.c']]],
+  ['toversampler_5fdownsample_1441',['tOversampler_downsample',['../group__toversampler.html#ga36a0bca206cb86ac529495bf0f1e487d',1,'tOversampler_downsample(tOversampler *const os, float *input):&#160;leaf-distortion.c'],['../group__toversampler.html#ga36a0bca206cb86ac529495bf0f1e487d',1,'tOversampler_downsample(tOversampler *const osr, float *input):&#160;leaf-distortion.c']]],
+  ['toversampler_5ffree_1442',['tOversampler_free',['../group__toversampler.html#ga809c183c7443aa77ae6233e8c5276218',1,'tOversampler_free(tOversampler *const):&#160;leaf-distortion.c'],['../group__toversampler.html#ga809c183c7443aa77ae6233e8c5276218',1,'tOversampler_free(tOversampler *const osr):&#160;leaf-distortion.c']]],
+  ['toversampler_5fgetlatency_1443',['tOversampler_getLatency',['../group__toversampler.html#gaa511cdb16fe967cf40000127319d9f0c',1,'tOversampler_getLatency(tOversampler *const os):&#160;leaf-distortion.c'],['../group__toversampler.html#gaa511cdb16fe967cf40000127319d9f0c',1,'tOversampler_getLatency(tOversampler *const osr):&#160;leaf-distortion.c']]],
+  ['toversampler_5finit_1444',['tOversampler_init',['../group__toversampler.html#ga6c89c7875f0f5679ea59430d9a6c61e8',1,'tOversampler_init(tOversampler *const, int order, int extraQuality, LEAF *const leaf):&#160;leaf-distortion.c'],['../group__toversampler.html#ga6c89c7875f0f5679ea59430d9a6c61e8',1,'tOversampler_init(tOversampler *const osr, int ratio, int extraQuality, LEAF *const leaf):&#160;leaf-distortion.c']]],
+  ['toversampler_5finittopool_1445',['tOversampler_initToPool',['../group__toversampler.html#ga65ae3bd40ead130ffc4a81d47bdc61fe',1,'tOversampler_initToPool(tOversampler *const, int order, int extraQuality, tMempool *const):&#160;leaf-distortion.c'],['../group__toversampler.html#ga65ae3bd40ead130ffc4a81d47bdc61fe',1,'tOversampler_initToPool(tOversampler *const osr, int ratio, int extraQuality, tMempool *const mp):&#160;leaf-distortion.c']]],
+  ['toversampler_5ftick_1446',['tOversampler_tick',['../group__toversampler.html#ga8be1bb7f1f763de87c6e02f02b5d977f',1,'tOversampler_tick(tOversampler *const, float input, float *oversample, float(*effectTick)(float)):&#160;leaf-distortion.c'],['../group__toversampler.html#ga8be1bb7f1f763de87c6e02f02b5d977f',1,'tOversampler_tick(tOversampler *const osr, float input, float *oversample, float(*effectTick)(float)):&#160;leaf-distortion.c']]],
+  ['toversampler_5fupsample_1447',['tOversampler_upsample',['../group__toversampler.html#ga274c2b3d123628c2ecbb3e77d0f9bd3b',1,'tOversampler_upsample(tOversampler *const, float input, float *output):&#160;leaf-distortion.c'],['../group__toversampler.html#ga274c2b3d123628c2ecbb3e77d0f9bd3b',1,'tOversampler_upsample(tOversampler *const osr, float input, float *output):&#160;leaf-distortion.c']]],
+  ['tperioddetection_5ffree_1448',['tPeriodDetection_free',['../group__tperioddetection.html#ga94c9cff1d6cb0f0d6a70fdeb8764cdb0',1,'tPeriodDetection_free(tPeriodDetection *const):&#160;leaf-analysis.c'],['../group__tperioddetection.html#ga94c9cff1d6cb0f0d6a70fdeb8764cdb0',1,'tPeriodDetection_free(tPeriodDetection *const pd):&#160;leaf-analysis.c']]],
+  ['tperioddetection_5fgetperiod_1449',['tPeriodDetection_getPeriod',['../group__tperioddetection.html#ga04f0fa73e75e8fc128243515b039c474',1,'tPeriodDetection_getPeriod(tPeriodDetection *const):&#160;leaf-analysis.c'],['../group__tperioddetection.html#ga04f0fa73e75e8fc128243515b039c474',1,'tPeriodDetection_getPeriod(tPeriodDetection *pd):&#160;leaf-analysis.c']]],
+  ['tperioddetection_5fsetalpha_1450',['tPeriodDetection_setAlpha',['../group__tperioddetection.html#ga95602fa326fda0ab685a626508166d15',1,'tPeriodDetection_setAlpha(tPeriodDetection *const, float alpha):&#160;leaf-analysis.c'],['../group__tperioddetection.html#ga95602fa326fda0ab685a626508166d15',1,'tPeriodDetection_setAlpha(tPeriodDetection *pd, float alpha):&#160;leaf-analysis.c']]],
+  ['tperioddetection_5fsetfidelitythreshold_1451',['tPeriodDetection_setFidelityThreshold',['../group__tperioddetection.html#ga2249345fb1cb419173b35ef258cf4248',1,'tPeriodDetection_setFidelityThreshold(tPeriodDetection *const, float threshold):&#160;leaf-analysis.c'],['../group__tperioddetection.html#ga2249345fb1cb419173b35ef258cf4248',1,'tPeriodDetection_setFidelityThreshold(tPeriodDetection *pd, float threshold):&#160;leaf-analysis.c']]],
+  ['tperioddetection_5fsethopsize_1452',['tPeriodDetection_setHopSize',['../group__tperioddetection.html#ga207a7ec884eebc58c9cd9f17518d5a1b',1,'tPeriodDetection_setHopSize(tPeriodDetection *const, int hs):&#160;leaf-analysis.c'],['../group__tperioddetection.html#ga207a7ec884eebc58c9cd9f17518d5a1b',1,'tPeriodDetection_setHopSize(tPeriodDetection *pd, int hs):&#160;leaf-analysis.c']]],
+  ['tperioddetection_5fsettolerance_1453',['tPeriodDetection_setTolerance',['../group__tperioddetection.html#ga49b5e95b84c6e101abac2ab7ec0cdebd',1,'tPeriodDetection_setTolerance(tPeriodDetection *const, float tolerance):&#160;leaf-analysis.c'],['../group__tperioddetection.html#ga49b5e95b84c6e101abac2ab7ec0cdebd',1,'tPeriodDetection_setTolerance(tPeriodDetection *pd, float tolerance):&#160;leaf-analysis.c']]],
+  ['tperioddetection_5fsetwindowsize_1454',['tPeriodDetection_setWindowSize',['../group__tperioddetection.html#ga9a3ed4fe9806b0ee691b56090cef4339',1,'tPeriodDetection_setWindowSize(tPeriodDetection *const, int ws):&#160;leaf-analysis.c'],['../group__tperioddetection.html#ga9a3ed4fe9806b0ee691b56090cef4339',1,'tPeriodDetection_setWindowSize(tPeriodDetection *pd, int ws):&#160;leaf-analysis.c']]],
+  ['tperioddetection_5ftick_1455',['tPeriodDetection_tick',['../group__tperioddetection.html#ga18cf97615547a615aec4b183da82e8ee',1,'tPeriodDetection_tick(tPeriodDetection *const, float sample):&#160;leaf-analysis.c'],['../group__tperioddetection.html#ga18cf97615547a615aec4b183da82e8ee',1,'tPeriodDetection_tick(tPeriodDetection *pd, float sample):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5ffree_1456',['tPeriodDetector_free',['../group__tperioddetector.html#ga55e2ad80c68f2fbf0cafceee206abf3f',1,'tPeriodDetector_free(tPeriodDetector *const detector):&#160;leaf-analysis.c'],['../group__tperioddetector.html#ga55e2ad80c68f2fbf0cafceee206abf3f',1,'tPeriodDetector_free(tPeriodDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5fgetperiod_1457',['tPeriodDetector_getPeriod',['../group__tperioddetector.html#ga025e1bc096ca88fc2f6e493513f0d6fb',1,'tPeriodDetector_getPeriod(tPeriodDetector *const detector):&#160;leaf-analysis.c'],['../group__tperioddetector.html#ga025e1bc096ca88fc2f6e493513f0d6fb',1,'tPeriodDetector_getPeriod(tPeriodDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5fgetperiodicity_1458',['tPeriodDetector_getPeriodicity',['../group__tperioddetector.html#ga9e836c21a0dcabe9f3438bc56e671f39',1,'tPeriodDetector_getPeriodicity(tPeriodDetector *const detector):&#160;leaf-analysis.c'],['../group__tperioddetector.html#ga9e836c21a0dcabe9f3438bc56e671f39',1,'tPeriodDetector_getPeriodicity(tPeriodDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5fharmonic_1459',['tPeriodDetector_harmonic',['../group__tperioddetector.html#ga4a66a46a4a6bea562bae63640e6855a5',1,'tPeriodDetector_harmonic(tPeriodDetector *const detector, int harmonicIndex):&#160;leaf-analysis.c'],['../group__tperioddetector.html#ga4a66a46a4a6bea562bae63640e6855a5',1,'tPeriodDetector_harmonic(tPeriodDetector *const detector, int harmonicIndex):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5finit_1460',['tPeriodDetector_init',['../group__tperioddetector.html#gaa0947f407eba0d205dfdb3f5221e8a68',1,'tPeriodDetector_init(tPeriodDetector *const detector, float lowestFreq, float highestFreq, float hysteresis, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tperioddetector.html#gaa0947f407eba0d205dfdb3f5221e8a68',1,'tPeriodDetector_init(tPeriodDetector *const detector, float lowestFreq, float highestFreq, float hysteresis, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5finittopool_1461',['tPeriodDetector_initToPool',['../group__tperioddetector.html#ga03431f353481718a4e573f4df4a0161f',1,'tPeriodDetector_initToPool(tPeriodDetector *const detector, float lowestFreq, float highestFreq, float hysteresis, tMempool *const mempool):&#160;leaf-analysis.c'],['../group__tperioddetector.html#ga03431f353481718a4e573f4df4a0161f',1,'tPeriodDetector_initToPool(tPeriodDetector *const detector, float lowestFreq, float highestFreq, float hysteresis, tMempool *const mempool):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5fisready_1462',['tPeriodDetector_isReady',['../group__tperioddetector.html#ga3d58e36fafa3e5b5102175e2c9062010',1,'tPeriodDetector_isReady(tPeriodDetector *const detector):&#160;leaf-analysis.c'],['../group__tperioddetector.html#ga3d58e36fafa3e5b5102175e2c9062010',1,'tPeriodDetector_isReady(tPeriodDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5fisreset_1463',['tPeriodDetector_isReset',['../group__tperioddetector.html#gad7d111b4c8dc6e7428ff2facdf90092a',1,'tPeriodDetector_isReset(tPeriodDetector *const detector):&#160;leaf-analysis.c'],['../group__tperioddetector.html#gad7d111b4c8dc6e7428ff2facdf90092a',1,'tPeriodDetector_isReset(tPeriodDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5fpredictperiod_1464',['tPeriodDetector_predictPeriod',['../group__tperioddetector.html#ga6bea587938466ba988a6e716446975ed',1,'tPeriodDetector_predictPeriod(tPeriodDetector *const detector):&#160;leaf-analysis.c'],['../group__tperioddetector.html#ga6bea587938466ba988a6e716446975ed',1,'tPeriodDetector_predictPeriod(tPeriodDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5fsethysteresis_1465',['tPeriodDetector_setHysteresis',['../group__tperioddetector.html#ga3157c7b7e210eafb0286aef6f1843f94',1,'tPeriodDetector_setHysteresis(tPeriodDetector *const detector, float hysteresis):&#160;leaf-analysis.c'],['../group__tperioddetector.html#ga3157c7b7e210eafb0286aef6f1843f94',1,'tPeriodDetector_setHysteresis(tPeriodDetector *const detector, float hysteresis):&#160;leaf-analysis.c']]],
+  ['tperioddetector_5ftick_1466',['tPeriodDetector_tick',['../group__tperioddetector.html#gaed4bf4a51580ba6209dfe5d35a235644',1,'tPeriodDetector_tick(tPeriodDetector *const detector, float sample):&#160;leaf-analysis.c'],['../group__tperioddetector.html#gaed4bf4a51580ba6209dfe5d35a235644',1,'tPeriodDetector_tick(tPeriodDetector *const detector, float s):&#160;leaf-analysis.c']]],
+  ['tphasor_5ffree_1467',['tPhasor_free',['../group__tphasor.html#gae86aae9fa656c303dc02fabacd4bf9a9',1,'tPhasor_free(tPhasor *const osc):&#160;leaf-oscillators.c'],['../group__tphasor.html#gae86aae9fa656c303dc02fabacd4bf9a9',1,'tPhasor_free(tPhasor *const ph):&#160;leaf-oscillators.c']]],
+  ['tphasor_5finit_1468',['tPhasor_init',['../group__tphasor.html#gaef54a192792ded6d1e53a0839b55bb4a',1,'tPhasor_init(tPhasor *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tphasor.html#gaef54a192792ded6d1e53a0839b55bb4a',1,'tPhasor_init(tPhasor *const ph, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tphasor_5finittopool_1469',['tPhasor_initToPool',['../group__tphasor.html#ga7b98ada7d63395e6796a9ddeb1dd69d2',1,'tPhasor_initToPool(tPhasor *const osc, tMempool *const):&#160;leaf-oscillators.c'],['../group__tphasor.html#ga7b98ada7d63395e6796a9ddeb1dd69d2',1,'tPhasor_initToPool(tPhasor *const ph, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['tphasor_5fsetfreq_1470',['tPhasor_setFreq',['../group__tphasor.html#gab19f35f26a5de1353623ed2ecd8c92b7',1,'tPhasor_setFreq(tPhasor *const osc, float freq):&#160;leaf-oscillators.c'],['../group__tphasor.html#gab19f35f26a5de1353623ed2ecd8c92b7',1,'tPhasor_setFreq(tPhasor *const ph, float freq):&#160;leaf-oscillators.c']]],
+  ['tphasor_5ftick_1471',['tPhasor_tick',['../group__tphasor.html#ga9a1e7b8a8f9bbcb74d52b95cf0ec1d6e',1,'tPhasor_tick(tPhasor *const osc):&#160;leaf-oscillators.c'],['../group__tphasor.html#ga9a1e7b8a8f9bbcb74d52b95cf0ec1d6e',1,'tPhasor_tick(tPhasor *const ph):&#160;leaf-oscillators.c']]],
+  ['tpitchdetector_5ffree_1472',['tPitchDetector_free',['../group__tpitchdetector.html#ga21a8caf85569fa4366e83aa776831273',1,'tPitchDetector_free(tPitchDetector *const detector):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#ga21a8caf85569fa4366e83aa776831273',1,'tPitchDetector_free(tPitchDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tpitchdetector_5fgetfrequency_1473',['tPitchDetector_getFrequency',['../group__tpitchdetector.html#ga5b4f011cdb1812ab29022e4851e81c7e',1,'tPitchDetector_getFrequency(tPitchDetector *const detector):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#ga5b4f011cdb1812ab29022e4851e81c7e',1,'tPitchDetector_getFrequency(tPitchDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tpitchdetector_5fgetperiodicity_1474',['tPitchDetector_getPeriodicity',['../group__tpitchdetector.html#gad99b1eb3569ac87a54a31ddc7ec78eea',1,'tPitchDetector_getPeriodicity(tPitchDetector *const detector):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#gad99b1eb3569ac87a54a31ddc7ec78eea',1,'tPitchDetector_getPeriodicity(tPitchDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tpitchdetector_5fharmonic_1475',['tPitchDetector_harmonic',['../group__tpitchdetector.html#gae830c20dc77369d3055f23cd0fc51435',1,'tPitchDetector_harmonic(tPitchDetector *const detector, int harmonicIndex):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#gae830c20dc77369d3055f23cd0fc51435',1,'tPitchDetector_harmonic(tPitchDetector *const detector, int harmonicIndex):&#160;leaf-analysis.c']]],
+  ['tpitchdetector_5finit_1476',['tPitchDetector_init',['../group__tpitchdetector.html#ga99e55d649e58523aa706c711082585f6',1,'tPitchDetector_init(tPitchDetector *const detector, float lowestFreq, float highestFreq, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#ga99e55d649e58523aa706c711082585f6',1,'tPitchDetector_init(tPitchDetector *const detector, float lowestFreq, float highestFreq, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tpitchdetector_5finittopool_1477',['tPitchDetector_initToPool',['../group__tpitchdetector.html#gaaa325f08c7c80ecace14fcd7f934d211',1,'tPitchDetector_initToPool(tPitchDetector *const detector, float lowestFreq, float highestFreq, tMempool *const mempool):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#gaaa325f08c7c80ecace14fcd7f934d211',1,'tPitchDetector_initToPool(tPitchDetector *const detector, float lowestFreq, float highestFreq, tMempool *const mempool):&#160;leaf-analysis.c']]],
+  ['tpitchdetector_5fpredictfrequency_1478',['tPitchDetector_predictFrequency',['../group__tpitchdetector.html#gab29d82d5391480c9310b9c5074576966',1,'tPitchDetector_predictFrequency(tPitchDetector *const detector):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#gab29d82d5391480c9310b9c5074576966',1,'tPitchDetector_predictFrequency(tPitchDetector *const detector):&#160;leaf-analysis.c']]],
+  ['tpitchdetector_5fsethysteresis_1479',['tPitchDetector_setHysteresis',['../group__tpitchdetector.html#ga65ead0c2f0f3f30b2e64f5a6aa50d6f9',1,'tPitchDetector_setHysteresis(tPitchDetector *const detector, float hysteresis):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#ga65ead0c2f0f3f30b2e64f5a6aa50d6f9',1,'tPitchDetector_setHysteresis(tPitchDetector *const detector, float hysteresis):&#160;leaf-analysis.c']]],
+  ['tpitchdetector_5ftick_1480',['tPitchDetector_tick',['../group__tpitchdetector.html#ga7ff9d62bb716a57fce8ffeb5558c4890',1,'tPitchDetector_tick(tPitchDetector *const detector, float sample):&#160;leaf-analysis.c'],['../group__tpitchdetector.html#ga7ff9d62bb716a57fce8ffeb5558c4890',1,'tPitchDetector_tick(tPitchDetector *const detector, float s):&#160;leaf-analysis.c']]],
+  ['tpitchshift_5ffree_1481',['tPitchShift_free',['../group__tpitchshift.html#gaa11d2bf41d69ed89fe86f5840fe1b612',1,'tPitchShift_free(tPitchShift *const):&#160;leaf-effects.c'],['../group__tpitchshift.html#gaa11d2bf41d69ed89fe86f5840fe1b612',1,'tPitchShift_free(tPitchShift *const psr):&#160;leaf-effects.c']]],
+  ['tpluck_5fcontrolchange_1482',['tPluck_controlChange',['../group__tpluck.html#ga371e8ab225a043b3415979766647d155',1,'tPluck_controlChange(tPluck *const, int number, float value):&#160;leaf-physical.c'],['../group__tpluck.html#ga371e8ab225a043b3415979766647d155',1,'tPluck_controlChange(tPluck *const pl, int number, float value):&#160;leaf-physical.c']]],
+  ['tpluck_5ffree_1483',['tPluck_free',['../group__tpluck.html#gab05fa8211c49e8e1301882ba0dfb4933',1,'tPluck_free(tPluck *const):&#160;leaf-physical.c'],['../group__tpluck.html#gab05fa8211c49e8e1301882ba0dfb4933',1,'tPluck_free(tPluck *const pl):&#160;leaf-physical.c']]],
+  ['tpluck_5fgetlastout_1484',['tPluck_getLastOut',['../group__tpluck.html#ga8a2365d67f4b17a4f578fbb14f280e74',1,'tPluck_getLastOut(tPluck *const):&#160;leaf-physical.c'],['../group__tpluck.html#ga8a2365d67f4b17a4f578fbb14f280e74',1,'tPluck_getLastOut(tPluck *const pl):&#160;leaf-physical.c']]],
+  ['tpluck_5finit_1485',['tPluck_init',['../group__tpluck.html#gac7b5e386d09e10b097545b7f9ee3d161',1,'tPluck_init(tPluck *const, float lowestFrequency, LEAF *const leaf):&#160;leaf-physical.c'],['../group__tpluck.html#gac7b5e386d09e10b097545b7f9ee3d161',1,'tPluck_init(tPluck *const pl, float lowestFrequency, LEAF *const leaf):&#160;leaf-physical.c']]],
+  ['tpluck_5finittopool_1486',['tPluck_initToPool',['../group__tpluck.html#ga6fce342b82d04d5b30ebeadc0ac2102d',1,'tPluck_initToPool(tPluck *const, float lowestFrequency, tMempool *const):&#160;leaf-physical.c'],['../group__tpluck.html#ga6fce342b82d04d5b30ebeadc0ac2102d',1,'tPluck_initToPool(tPluck *const pl, float lowestFrequency, tMempool *const mp):&#160;leaf-physical.c']]],
+  ['tpluck_5fnoteoff_1487',['tPluck_noteOff',['../group__tpluck.html#ga215b593535f5bff5a6887ce905bc7602',1,'tPluck_noteOff(tPluck *const, float amplitude):&#160;leaf-physical.c'],['../group__tpluck.html#ga215b593535f5bff5a6887ce905bc7602',1,'tPluck_noteOff(tPluck *const pl, float amplitude):&#160;leaf-physical.c']]],
+  ['tpluck_5fnoteon_1488',['tPluck_noteOn',['../group__tpluck.html#ga4aa769eb18600d5f777a2d33e18fb7cb',1,'tPluck_noteOn(tPluck *const, float frequency, float amplitude):&#160;leaf-physical.c'],['../group__tpluck.html#ga4aa769eb18600d5f777a2d33e18fb7cb',1,'tPluck_noteOn(tPluck *const pl, float frequency, float amplitude):&#160;leaf-physical.c']]],
+  ['tpluck_5fpluck_1489',['tPluck_pluck',['../group__tpluck.html#ga4e23f3d5ec42910130c176662e9d7e91',1,'tPluck_pluck(tPluck *const, float amplitude):&#160;leaf-physical.c'],['../group__tpluck.html#ga4e23f3d5ec42910130c176662e9d7e91',1,'tPluck_pluck(tPluck *const pl, float amplitude):&#160;leaf-physical.c']]],
+  ['tpluck_5fsetfrequency_1490',['tPluck_setFrequency',['../group__tpluck.html#ga9f20651baa36041ba43836dbe7c1de5b',1,'tPluck_setFrequency(tPluck *const, float frequency):&#160;leaf-physical.c'],['../group__tpluck.html#ga9f20651baa36041ba43836dbe7c1de5b',1,'tPluck_setFrequency(tPluck *const pl, float frequency):&#160;leaf-physical.c']]],
+  ['tpluck_5ftick_1491',['tPluck_tick',['../group__tpluck.html#ga5abd143bdbe1ff441491b4a09218e967',1,'tPluck_tick(tPluck *const):&#160;leaf-physical.c'],['../group__tpluck.html#ga5abd143bdbe1ff441491b4a09218e967',1,'tPluck_tick(tPluck *const pl):&#160;leaf-physical.c']]],
+  ['tpolezero_5ffree_1492',['tPoleZero_free',['../group__tpolezero.html#gaf66d289f3a48e83eb6d77acedd7cea74',1,'tPoleZero_free(tPoleZero *const):&#160;leaf-filters.c'],['../group__tpolezero.html#gaf66d289f3a48e83eb6d77acedd7cea74',1,'tPoleZero_free(tPoleZero *const pzf):&#160;leaf-filters.c']]],
+  ['tpolezero_5finit_1493',['tPoleZero_init',['../group__tpolezero.html#ga6b6829aefeb5180022ae0b7e8d5b9b1c',1,'tPoleZero_init(tPoleZero *const, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tpolezero.html#ga6b6829aefeb5180022ae0b7e8d5b9b1c',1,'tPoleZero_init(tPoleZero *const pzf, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tpolezero_5finittopool_1494',['tPoleZero_initToPool',['../group__tpolezero.html#gadb9f2207e2217190013543ce210c5dda',1,'tPoleZero_initToPool(tPoleZero *const, tMempool *const):&#160;leaf-filters.c'],['../group__tpolezero.html#gadb9f2207e2217190013543ce210c5dda',1,'tPoleZero_initToPool(tPoleZero *const pzf, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tpolezero_5fseta1_1495',['tPoleZero_setA1',['../group__tpolezero.html#ga118daf1002dcd0d5c24b2d86af9196fb',1,'tPoleZero_setA1(tPoleZero *const, float a1):&#160;leaf-filters.c'],['../group__tpolezero.html#ga118daf1002dcd0d5c24b2d86af9196fb',1,'tPoleZero_setA1(tPoleZero *const pzf, float a1):&#160;leaf-filters.c']]],
+  ['tpolezero_5fsetallpass_1496',['tPoleZero_setAllpass',['../group__tpolezero.html#gab978639dd9badc640b1f3a8b6a945b06',1,'tPoleZero_setAllpass(tPoleZero *const, float coeff):&#160;leaf-filters.c'],['../group__tpolezero.html#gab978639dd9badc640b1f3a8b6a945b06',1,'tPoleZero_setAllpass(tPoleZero *const pzf, float coeff):&#160;leaf-filters.c']]],
+  ['tpolezero_5fsetb0_1497',['tPoleZero_setB0',['../group__tpolezero.html#ga896a83342ee3ea486f171d872b9809b0',1,'tPoleZero_setB0(tPoleZero *const, float b0):&#160;leaf-filters.c'],['../group__tpolezero.html#ga896a83342ee3ea486f171d872b9809b0',1,'tPoleZero_setB0(tPoleZero *const pzf, float b0):&#160;leaf-filters.c']]],
+  ['tpolezero_5fsetb1_1498',['tPoleZero_setB1',['../group__tpolezero.html#ga4c6d29a676d98f4d57e0f8078ab61279',1,'tPoleZero_setB1(tPoleZero *const, float b1):&#160;leaf-filters.c'],['../group__tpolezero.html#ga4c6d29a676d98f4d57e0f8078ab61279',1,'tPoleZero_setB1(tPoleZero *const pzf, float b1):&#160;leaf-filters.c']]],
+  ['tpolezero_5fsetblockzero_1499',['tPoleZero_setBlockZero',['../group__tpolezero.html#ga863c1114d2a571d158fc74dd7f1ec06c',1,'tPoleZero_setBlockZero(tPoleZero *const, float thePole):&#160;leaf-filters.c'],['../group__tpolezero.html#ga863c1114d2a571d158fc74dd7f1ec06c',1,'tPoleZero_setBlockZero(tPoleZero *const pzf, float thePole):&#160;leaf-filters.c']]],
+  ['tpolezero_5fsetcoefficients_1500',['tPoleZero_setCoefficients',['../group__tpolezero.html#ga9b72bcea9b5912e4ecd62c7ea7d99b86',1,'tPoleZero_setCoefficients(tPoleZero *const, float b0, float b1, float a1):&#160;leaf-filters.c'],['../group__tpolezero.html#ga9b72bcea9b5912e4ecd62c7ea7d99b86',1,'tPoleZero_setCoefficients(tPoleZero *const pzf, float b0, float b1, float a1):&#160;leaf-filters.c']]],
+  ['tpolezero_5fsetgain_1501',['tPoleZero_setGain',['../group__tpolezero.html#ga8bdd8dfb8e5c22c7ec820bea559e2fa7',1,'tPoleZero_setGain(tPoleZero *const, float gain):&#160;leaf-filters.c'],['../group__tpolezero.html#ga8bdd8dfb8e5c22c7ec820bea559e2fa7',1,'tPoleZero_setGain(tPoleZero *const pzf, float gain):&#160;leaf-filters.c']]],
+  ['tpolezero_5ftick_1502',['tPoleZero_tick',['../group__tpolezero.html#ga4e024338fe577882f52494f525488d32',1,'tPoleZero_tick(tPoleZero *const, float input):&#160;leaf-filters.c'],['../group__tpolezero.html#ga4e024338fe577882f52494f525488d32',1,'tPoleZero_tick(tPoleZero *const pzf, float input):&#160;leaf-filters.c']]],
+  ['tpoly_5ffree_1503',['tPoly_free',['../group__tpoly.html#ga03c02b27b16f700b55d8536256d310b5',1,'tPoly_free(tPoly *const poly):&#160;leaf-midi.c'],['../group__tpoly.html#ga03c02b27b16f700b55d8536256d310b5',1,'tPoly_free(tPoly *const polyh):&#160;leaf-midi.c']]],
+  ['tpoly_5fgetkey_1504',['tPoly_getKey',['../group__tpoly.html#gaec4318990ce680cc96df942fd9bd5473',1,'tPoly_getKey(tPoly *const poly, uint8_t voice):&#160;leaf-midi.c'],['../group__tpoly.html#gaec4318990ce680cc96df942fd9bd5473',1,'tPoly_getKey(tPoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tpoly_5fgetnumactivevoices_1505',['tPoly_getNumActiveVoices',['../group__tpoly.html#ga45962abd5bf3321cedfdb64ab05fd0d7',1,'tPoly_getNumActiveVoices(tPoly *const poly):&#160;leaf-midi.c'],['../group__tpoly.html#ga45962abd5bf3321cedfdb64ab05fd0d7',1,'tPoly_getNumActiveVoices(tPoly *const polyh):&#160;leaf-midi.c']]],
+  ['tpoly_5fgetnumvoices_1506',['tPoly_getNumVoices',['../group__tpoly.html#gad85e4d10bb7e8fa66797ad632186459b',1,'tPoly_getNumVoices(tPoly *const poly):&#160;leaf-midi.c'],['../group__tpoly.html#gad85e4d10bb7e8fa66797ad632186459b',1,'tPoly_getNumVoices(tPoly *const polyh):&#160;leaf-midi.c']]],
+  ['tpoly_5fgetpitch_1507',['tPoly_getPitch',['../group__tpoly.html#ga39f47e13c92644d07852a7794fe896c4',1,'tPoly_getPitch(tPoly *const poly, uint8_t voice):&#160;leaf-midi.c'],['../group__tpoly.html#ga39f47e13c92644d07852a7794fe896c4',1,'tPoly_getPitch(tPoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tpoly_5fgetvelocity_1508',['tPoly_getVelocity',['../group__tpoly.html#ga1f946c78feaa7db4f443bd105e4c7310',1,'tPoly_getVelocity(tPoly *const poly, uint8_t voice):&#160;leaf-midi.c'],['../group__tpoly.html#ga1f946c78feaa7db4f443bd105e4c7310',1,'tPoly_getVelocity(tPoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tpoly_5finit_1509',['tPoly_init',['../group__tpoly.html#gaf530a73c1d8d8d3e20403c9f33c0ab2e',1,'tPoly_init(tPoly *const poly, int maxNumVoices, LEAF *const leaf):&#160;leaf-midi.c'],['../group__tpoly.html#gaf530a73c1d8d8d3e20403c9f33c0ab2e',1,'tPoly_init(tPoly *const polyh, int maxNumVoices, LEAF *const leaf):&#160;leaf-midi.c']]],
+  ['tpoly_5finittopool_1510',['tPoly_initToPool',['../group__tpoly.html#ga9a3b088e0d32366b6d5f675794becf15',1,'tPoly_initToPool(tPoly *const poly, int maxNumVoices, tMempool *const pool):&#160;leaf-midi.c'],['../group__tpoly.html#ga9a3b088e0d32366b6d5f675794becf15',1,'tPoly_initToPool(tPoly *const polyh, int maxNumVoices, tMempool *const mp):&#160;leaf-midi.c']]],
+  ['tpoly_5fison_1511',['tPoly_isOn',['../group__tpoly.html#ga328c5f9e8f8fb7f521298676ab6c5944',1,'tPoly_isOn(tPoly *const poly, uint8_t voice):&#160;leaf-midi.c'],['../group__tpoly.html#ga328c5f9e8f8fb7f521298676ab6c5944',1,'tPoly_isOn(tPoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tpoly_5fnoteoff_1512',['tPoly_noteOff',['../group__tpoly.html#gaad8376b6c55995e763ce26d084d23a67',1,'tPoly_noteOff(tPoly *const poly, uint8_t note):&#160;leaf-midi.c'],['../group__tpoly.html#gaad8376b6c55995e763ce26d084d23a67',1,'tPoly_noteOff(tPoly *const polyh, uint8_t note):&#160;leaf-midi.c']]],
+  ['tpoly_5fnoteon_1513',['tPoly_noteOn',['../group__tpoly.html#ga0a52befe767ed6ea96b26d53952a37ea',1,'tPoly_noteOn(tPoly *const poly, int note, uint8_t vel):&#160;leaf-midi.c'],['../group__tpoly.html#ga0a52befe767ed6ea96b26d53952a37ea',1,'tPoly_noteOn(tPoly *const polyh, int note, uint8_t vel):&#160;leaf-midi.c']]],
+  ['tpoly_5forderedaddtostack_1514',['tPoly_orderedAddToStack',['../group__tpoly.html#ga5abdfc6cd4b26b74647cb23a822b0f38',1,'tPoly_orderedAddToStack(tPoly *const poly, uint8_t note):&#160;leaf-midi.c'],['../group__tpoly.html#ga5abdfc6cd4b26b74647cb23a822b0f38',1,'tPoly_orderedAddToStack(tPoly *const polyh, uint8_t noteVal):&#160;leaf-midi.c']]],
+  ['tpoly_5fsetbendglidetime_1515',['tPoly_setBendGlideTime',['../group__tpoly.html#ga8dad5daee7f10d0bb59e96ad55ec0402',1,'tPoly_setBendGlideTime(tPoly *const poly, float t):&#160;leaf-midi.c'],['../group__tpoly.html#ga8dad5daee7f10d0bb59e96ad55ec0402',1,'tPoly_setBendGlideTime(tPoly *const polyh, float t):&#160;leaf-midi.c']]],
+  ['tpoly_5fsetbendsamplespertick_1516',['tPoly_setBendSamplesPerTick',['../group__tpoly.html#ga1f6a93b108ac8654eaa860575d2f1cd5',1,'tPoly_setBendSamplesPerTick(tPoly *const poly, float t):&#160;leaf-midi.c'],['../group__tpoly.html#ga1f6a93b108ac8654eaa860575d2f1cd5',1,'tPoly_setBendSamplesPerTick(tPoly *const polyh, float t):&#160;leaf-midi.c']]],
+  ['tpoly_5fsetnumvoices_1517',['tPoly_setNumVoices',['../group__tpoly.html#gaf3aae31d4b20eb71be39351989bc06d1',1,'tPoly_setNumVoices(tPoly *const poly, uint8_t numVoices):&#160;leaf-midi.c'],['../group__tpoly.html#gaf3aae31d4b20eb71be39351989bc06d1',1,'tPoly_setNumVoices(tPoly *const polyh, uint8_t numVoices):&#160;leaf-midi.c']]],
+  ['tpoly_5fsetpitchbend_1518',['tPoly_setPitchBend',['../group__tpoly.html#ga8608941b79fe9ba1b8e92b5a8046a915',1,'tPoly_setPitchBend(tPoly *const poly, float pitchBend):&#160;leaf-midi.c'],['../group__tpoly.html#ga8608941b79fe9ba1b8e92b5a8046a915',1,'tPoly_setPitchBend(tPoly *const polyh, float pitchBend):&#160;leaf-midi.c']]],
+  ['tpoly_5fsetpitchglideactive_1519',['tPoly_setPitchGlideActive',['../group__tpoly.html#ga9ddfc026e440e208064ce48d655ee317',1,'tPoly_setPitchGlideActive(tPoly *const poly, int isActive):&#160;leaf-midi.c'],['../group__tpoly.html#ga9ddfc026e440e208064ce48d655ee317',1,'tPoly_setPitchGlideActive(tPoly *const polyh, int isActive):&#160;leaf-midi.c']]],
+  ['tpoly_5fsetpitchglidetime_1520',['tPoly_setPitchGlideTime',['../group__tpoly.html#ga12e5fba9072b6e7d91d50a2e3c82bc87',1,'tPoly_setPitchGlideTime(tPoly *const poly, float t):&#160;leaf-midi.c'],['../group__tpoly.html#ga12e5fba9072b6e7d91d50a2e3c82bc87',1,'tPoly_setPitchGlideTime(tPoly *const polyh, float t):&#160;leaf-midi.c']]],
+  ['tpoly_5ftickpitch_1521',['tPoly_tickPitch',['../group__tpoly.html#gaf30b4a4aabd43c297d49258acf8e0cb3',1,'tPoly_tickPitch(tPoly *const poly):&#160;leaf-midi.c'],['../group__tpoly.html#gaf30b4a4aabd43c297d49258acf8e0cb3',1,'tPoly_tickPitch(tPoly *polyh):&#160;leaf-midi.c']]],
+  ['tpoly_5ftickpitchbend_1522',['tPoly_tickPitchBend',['../group__tpoly.html#gaf1bfa43e0337d0e090d3aa5b074b7825',1,'tPoly_tickPitchBend(tPoly *const poly):&#160;leaf-midi.c'],['../group__tpoly.html#gaf1bfa43e0337d0e090d3aa5b074b7825',1,'tPoly_tickPitchBend(tPoly *polyh):&#160;leaf-midi.c']]],
+  ['tpoly_5ftickpitchglide_1523',['tPoly_tickPitchGlide',['../group__tpoly.html#ga4391da808d7e621ac86944f745a2f729',1,'tPoly_tickPitchGlide(tPoly *const poly):&#160;leaf-midi.c'],['../group__tpoly.html#ga4391da808d7e621ac86944f745a2f729',1,'tPoly_tickPitchGlide(tPoly *polyh):&#160;leaf-midi.c']]],
+  ['tpowerfollower_5ffree_1524',['tPowerFollower_free',['../group__tpowerfollower.html#ga479317d7fd22a86a832ebec92eae4782',1,'tPowerFollower_free(tPowerFollower *const):&#160;leaf-analysis.c'],['../group__tpowerfollower.html#ga479317d7fd22a86a832ebec92eae4782',1,'tPowerFollower_free(tPowerFollower *const pf):&#160;leaf-analysis.c']]],
+  ['tpowerfollower_5fgetpower_1525',['tPowerFollower_getPower',['../group__tpowerfollower.html#ga0a423e1c15b581b4430112ed2897f6d2',1,'tPowerFollower_getPower(tPowerFollower *const):&#160;leaf-analysis.c'],['../group__tpowerfollower.html#ga0a423e1c15b581b4430112ed2897f6d2',1,'tPowerFollower_getPower(tPowerFollower *const pf):&#160;leaf-analysis.c']]],
+  ['tpowerfollower_5finit_1526',['tPowerFollower_init',['../group__tpowerfollower.html#gab8b92e4b8a0819f2d0a779f3b20d3f25',1,'tPowerFollower_init(tPowerFollower *const, float factor, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tpowerfollower.html#gab8b92e4b8a0819f2d0a779f3b20d3f25',1,'tPowerFollower_init(tPowerFollower *const pf, float factor, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tpowerfollower_5finittopool_1527',['tPowerFollower_initToPool',['../group__tpowerfollower.html#ga726f0b8ec4ab97346fb8521934452a2e',1,'tPowerFollower_initToPool(tPowerFollower *const, float factor, tMempool *const):&#160;leaf-analysis.c'],['../group__tpowerfollower.html#ga726f0b8ec4ab97346fb8521934452a2e',1,'tPowerFollower_initToPool(tPowerFollower *const pf, float factor, tMempool *const mp):&#160;leaf-analysis.c']]],
+  ['tpowerfollower_5fsetfactor_1528',['tPowerFollower_setFactor',['../group__tpowerfollower.html#gac7ab521ba7345c90b2455acc66a7caf1',1,'tPowerFollower_setFactor(tPowerFollower *const, float factor):&#160;leaf-analysis.c'],['../group__tpowerfollower.html#gac7ab521ba7345c90b2455acc66a7caf1',1,'tPowerFollower_setFactor(tPowerFollower *const pf, float factor):&#160;leaf-analysis.c']]],
+  ['tpowerfollower_5ftick_1529',['tPowerFollower_tick',['../group__tpowerfollower.html#ga0b422a35ef8ccdd72b3db45fc53c1e96',1,'tPowerFollower_tick(tPowerFollower *const, float input):&#160;leaf-analysis.c'],['../group__tpowerfollower.html#ga0b422a35ef8ccdd72b3db45fc53c1e96',1,'tPowerFollower_tick(tPowerFollower *const pf, float input):&#160;leaf-analysis.c']]],
+  ['tprcreverb_5fclear_1530',['tPRCReverb_clear',['../group__tprcreverb.html#gac7f9a1553c85d1aefc722242a4d60df7',1,'leaf-reverb.h']]],
+  ['tprcreverb_5ffree_1531',['tPRCReverb_free',['../group__tprcreverb.html#ga38fca3e880e0c5876453d680aa4ed02f',1,'tPRCReverb_free(tPRCReverb *const):&#160;leaf-reverb.c'],['../group__tprcreverb.html#ga38fca3e880e0c5876453d680aa4ed02f',1,'tPRCReverb_free(tPRCReverb *const rev):&#160;leaf-reverb.c']]],
+  ['tprcreverb_5finit_1532',['tPRCReverb_init',['../group__tprcreverb.html#ga1632574775fdc27565f7f938c86f0188',1,'tPRCReverb_init(tPRCReverb *const, float t60, LEAF *const leaf):&#160;leaf-reverb.c'],['../group__tprcreverb.html#ga1632574775fdc27565f7f938c86f0188',1,'tPRCReverb_init(tPRCReverb *const rev, float t60, LEAF *const leaf):&#160;leaf-reverb.c']]],
+  ['tprcreverb_5finittopool_1533',['tPRCReverb_initToPool',['../group__tprcreverb.html#gad297a10c21ece9dbca81234144693ccb',1,'tPRCReverb_initToPool(tPRCReverb *const, float t60, tMempool *const):&#160;leaf-reverb.c'],['../group__tprcreverb.html#gad297a10c21ece9dbca81234144693ccb',1,'tPRCReverb_initToPool(tPRCReverb *const rev, float t60, tMempool *const mp):&#160;leaf-reverb.c']]],
+  ['tprcreverb_5fsetmix_1534',['tPRCReverb_setMix',['../group__tprcreverb.html#gacb56b78580c95fd6fefbd7346bf6e6b0',1,'tPRCReverb_setMix(tPRCReverb *const, float mix):&#160;leaf-reverb.c'],['../group__tprcreverb.html#gacb56b78580c95fd6fefbd7346bf6e6b0',1,'tPRCReverb_setMix(tPRCReverb *const rev, float mix):&#160;leaf-reverb.c']]],
+  ['tprcreverb_5fsett60_1535',['tPRCReverb_setT60',['../group__tprcreverb.html#ga778bb9ee511e3aa263b4b368fa898e05',1,'tPRCReverb_setT60(tPRCReverb *const, float t60):&#160;leaf-reverb.c'],['../group__tprcreverb.html#ga778bb9ee511e3aa263b4b368fa898e05',1,'tPRCReverb_setT60(tPRCReverb *const rev, float t60):&#160;leaf-reverb.c']]],
+  ['tprcreverb_5ftick_1536',['tPRCReverb_tick',['../group__tprcreverb.html#ga30441f2661cf646276a33b58ade60088',1,'tPRCReverb_tick(tPRCReverb *const, float input):&#160;leaf-reverb.c'],['../group__tprcreverb.html#ga30441f2661cf646276a33b58ade60088',1,'tPRCReverb_tick(tPRCReverb *const rev, float input):&#160;leaf-reverb.c']]],
+  ['tpulse_5ffree_1537',['tPulse_free',['../group__tpulse.html#gad2c554f90ebb55227d28dd18f42be760',1,'tPulse_free(tPulse *const osc):&#160;leaf-oscillators.c'],['../group__tpulse.html#gad2c554f90ebb55227d28dd18f42be760',1,'tPulse_free(tPulse *const osc):&#160;leaf-oscillators.c']]],
+  ['tpulse_5finit_1538',['tPulse_init',['../group__tpulse.html#ga2a3b923294ee215553937f1446932eda',1,'tPulse_init(tPulse *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tpulse.html#ga2a3b923294ee215553937f1446932eda',1,'tPulse_init(tPulse *const osc, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tpulse_5finittopool_1539',['tPulse_initToPool',['../group__tpulse.html#gace53f4a8731bcbf6f7c265ba4ec375c7',1,'tPulse_initToPool(tPulse *const osc, tMempool *const):&#160;leaf-oscillators.c'],['../group__tpulse.html#gace53f4a8731bcbf6f7c265ba4ec375c7',1,'tPulse_initToPool(tPulse *const osc, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['tpulse_5fsetfreq_1540',['tPulse_setFreq',['../group__tpulse.html#gaf553bb8ff573c7d503f4bcb01cfb3117',1,'tPulse_setFreq(tPulse *const osc, float freq):&#160;leaf-oscillators.c'],['../group__tpulse.html#gaf553bb8ff573c7d503f4bcb01cfb3117',1,'tPulse_setFreq(tPulse *const osc, float freq):&#160;leaf-oscillators.c']]],
+  ['tpulse_5fsetwidth_1541',['tPulse_setWidth',['../group__tpulse.html#ga554255385caeaaefddab51c258c45b74',1,'tPulse_setWidth(tPulse *const osc, float width):&#160;leaf-oscillators.c'],['../group__tpulse.html#ga554255385caeaaefddab51c258c45b74',1,'tPulse_setWidth(tPulse *const osc, float width):&#160;leaf-oscillators.c']]],
+  ['tpulse_5ftick_1542',['tPulse_tick',['../group__tpulse.html#ga4af3bc706a792a541d16cde22a335f7e',1,'tPulse_tick(tPulse *const osc):&#160;leaf-oscillators.c'],['../group__tpulse.html#ga4af3bc706a792a541d16cde22a335f7e',1,'tPulse_tick(tPulse *const osc):&#160;leaf-oscillators.c']]],
+  ['tramp_5ffree_1543',['tRamp_free',['../group__tramp.html#ga155e473a79ce4b174fa468981bb13750',1,'tRamp_free(tRamp *const):&#160;leaf-envelopes.c'],['../group__tramp.html#ga155e473a79ce4b174fa468981bb13750',1,'tRamp_free(tRamp *const r):&#160;leaf-envelopes.c']]],
+  ['tramp_5finit_1544',['tRamp_init',['../group__tramp.html#ga44d22f890ed04cd061cfba963b1f9729',1,'tRamp_init(tRamp *const, float time, int samplesPerTick, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__tramp.html#ga44d22f890ed04cd061cfba963b1f9729',1,'tRamp_init(tRamp *const r, float time, int samples_per_tick, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['tramp_5finittopool_1545',['tRamp_initToPool',['../group__tramp.html#gac4d46bba12df2569f57bbdb9b407fe24',1,'tRamp_initToPool(tRamp *const, float time, int samplesPerTick, tMempool *const):&#160;leaf-envelopes.c'],['../group__tramp.html#gac4d46bba12df2569f57bbdb9b407fe24',1,'tRamp_initToPool(tRamp *const r, float time, int samples_per_tick, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['tramp_5fsample_1546',['tRamp_sample',['../group__tramp.html#ga4a3488c43e978d905080773353ce40f4',1,'tRamp_sample(tRamp *const):&#160;leaf-envelopes.c'],['../group__tramp.html#ga4a3488c43e978d905080773353ce40f4',1,'tRamp_sample(tRamp *const ramp):&#160;leaf-envelopes.c']]],
+  ['tramp_5fsetdest_1547',['tRamp_setDest',['../group__tramp.html#gad348c3b0601d99326ce06ba017ef2508',1,'tRamp_setDest(tRamp *const, float dest):&#160;leaf-envelopes.c'],['../group__tramp.html#gad348c3b0601d99326ce06ba017ef2508',1,'tRamp_setDest(tRamp *const ramp, float dest):&#160;leaf-envelopes.c']]],
+  ['tramp_5fsettime_1548',['tRamp_setTime',['../group__tramp.html#gada173eb52e34ee8fb16d79026014a4be',1,'tRamp_setTime(tRamp *const, float time):&#160;leaf-envelopes.c'],['../group__tramp.html#gada173eb52e34ee8fb16d79026014a4be',1,'tRamp_setTime(tRamp *const ramp, float time):&#160;leaf-envelopes.c']]],
+  ['tramp_5fsetval_1549',['tRamp_setVal',['../group__tramp.html#gafe5e687461cdb8b7cd0714b9fdca4223',1,'tRamp_setVal(tRamp *const, float val):&#160;leaf-envelopes.c'],['../group__tramp.html#gafe5e687461cdb8b7cd0714b9fdca4223',1,'tRamp_setVal(tRamp *const ramp, float val):&#160;leaf-envelopes.c']]],
+  ['tramp_5ftick_1550',['tRamp_tick',['../group__tramp.html#gadd8abe3a4b8f0f082d1a7f2c752f7980',1,'tRamp_tick(tRamp *const):&#160;leaf-envelopes.c'],['../group__tramp.html#gadd8abe3a4b8f0f082d1a7f2c752f7980',1,'tRamp_tick(tRamp *const ramp):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5ffree_1551',['tRampUpDown_free',['../group__trampupdown.html#ga8eeaec61bbb73b00497dd5c62e43298e',1,'tRampUpDown_free(tRampUpDown *const):&#160;leaf-envelopes.c'],['../group__trampupdown.html#ga8eeaec61bbb73b00497dd5c62e43298e',1,'tRampUpDown_free(tRampUpDown *const r):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5finit_1552',['tRampUpDown_init',['../group__trampupdown.html#ga10049078d9afde547db5345067355741',1,'tRampUpDown_init(tRampUpDown *const, float upTime, float downTime, int samplesPerTick, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__trampupdown.html#ga10049078d9afde547db5345067355741',1,'tRampUpDown_init(tRampUpDown *const r, float upTime, float downTime, int samples_per_tick, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5finittopool_1553',['tRampUpDown_initToPool',['../group__trampupdown.html#ga971e5d4b58631194769d9ff29b09bab0',1,'tRampUpDown_initToPool(tRampUpDown *const, float upTime, float downTime, int samplesPerTick, tMempool *const):&#160;leaf-envelopes.c'],['../group__trampupdown.html#ga971e5d4b58631194769d9ff29b09bab0',1,'tRampUpDown_initToPool(tRampUpDown *const r, float upTime, float downTime, int samples_per_tick, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5fsample_1554',['tRampUpDown_sample',['../group__trampupdown.html#gacf9c6cad23c6fb79c002fdb60a132e69',1,'tRampUpDown_sample(tRampUpDown *const):&#160;leaf-envelopes.c'],['../group__trampupdown.html#gacf9c6cad23c6fb79c002fdb60a132e69',1,'tRampUpDown_sample(tRampUpDown *const ramp):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5fsetdest_1555',['tRampUpDown_setDest',['../group__trampupdown.html#ga3902f92b1057f9bd37ea24afe6ee93a0',1,'tRampUpDown_setDest(tRampUpDown *const, float dest):&#160;leaf-envelopes.c'],['../group__trampupdown.html#ga3902f92b1057f9bd37ea24afe6ee93a0',1,'tRampUpDown_setDest(tRampUpDown *const ramp, float dest):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5fsetdowntime_1556',['tRampUpDown_setDownTime',['../group__trampupdown.html#ga15eca113d583ad81c71750cb13efb8f4',1,'tRampUpDown_setDownTime(tRampUpDown *const, float downTime):&#160;leaf-envelopes.c'],['../group__trampupdown.html#ga15eca113d583ad81c71750cb13efb8f4',1,'tRampUpDown_setDownTime(tRampUpDown *const ramp, float downTime):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5fsetuptime_1557',['tRampUpDown_setUpTime',['../group__trampupdown.html#ga8d3a86e1a0937104788d63bafc34d37e',1,'tRampUpDown_setUpTime(tRampUpDown *const, float upTime):&#160;leaf-envelopes.c'],['../group__trampupdown.html#ga8d3a86e1a0937104788d63bafc34d37e',1,'tRampUpDown_setUpTime(tRampUpDown *const ramp, float upTime):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5fsetval_1558',['tRampUpDown_setVal',['../group__trampupdown.html#ga9c1bbd455bd922c8b51c1b5e8c50e885',1,'tRampUpDown_setVal(tRampUpDown *const, float val):&#160;leaf-envelopes.c'],['../group__trampupdown.html#ga9c1bbd455bd922c8b51c1b5e8c50e885',1,'tRampUpDown_setVal(tRampUpDown *const ramp, float val):&#160;leaf-envelopes.c']]],
+  ['trampupdown_5ftick_1559',['tRampUpDown_tick',['../group__trampupdown.html#gae271d51d8270f50237f2b46b476930bf',1,'tRampUpDown_tick(tRampUpDown *const):&#160;leaf-envelopes.c'],['../group__trampupdown.html#gae271d51d8270f50237f2b46b476930bf',1,'tRampUpDown_tick(tRampUpDown *const ramp):&#160;leaf-envelopes.c']]],
+  ['treedtable_5ffree_1560',['tReedTable_free',['../group__treedtable.html#ga255b99f7e6c9a17d0a35c001d5fcb0e3',1,'tReedTable_free(tReedTable *const):&#160;leaf-physical.c'],['../group__treedtable.html#ga255b99f7e6c9a17d0a35c001d5fcb0e3',1,'tReedTable_free(tReedTable *const pm):&#160;leaf-physical.c']]],
+  ['treedtable_5finit_1561',['tReedTable_init',['../group__treedtable.html#ga42424fceb88dd8a10b289ec1f1e2681b',1,'tReedTable_init(tReedTable *const, float offset, float slope, LEAF *const leaf):&#160;leaf-physical.c'],['../group__treedtable.html#ga42424fceb88dd8a10b289ec1f1e2681b',1,'tReedTable_init(tReedTable *const pm, float offset, float slope, LEAF *const leaf):&#160;leaf-physical.c']]],
+  ['treedtable_5finittopool_1562',['tReedTable_initToPool',['../group__treedtable.html#ga7a3243fafaac0957fab59ab0fd105b87',1,'tReedTable_initToPool(tReedTable *const, float offset, float slope, tMempool *const):&#160;leaf-physical.c'],['../group__treedtable.html#ga7a3243fafaac0957fab59ab0fd105b87',1,'tReedTable_initToPool(tReedTable *const pm, float offset, float slope, tMempool *const mp):&#160;leaf-physical.c']]],
+  ['treedtable_5fsetoffset_1563',['tReedTable_setOffset',['../group__treedtable.html#ga8a79fd2691b668dc835d3c1a904ead98',1,'tReedTable_setOffset(tReedTable *const, float offset):&#160;leaf-physical.c'],['../group__treedtable.html#ga8a79fd2691b668dc835d3c1a904ead98',1,'tReedTable_setOffset(tReedTable *const pm, float offset):&#160;leaf-physical.c']]],
+  ['treedtable_5fsetslope_1564',['tReedTable_setSlope',['../group__treedtable.html#gadce4a01b418b01d45f7fe8c59a72bd19',1,'tReedTable_setSlope(tReedTable *const, float slope):&#160;leaf-physical.c'],['../group__treedtable.html#gadce4a01b418b01d45f7fe8c59a72bd19',1,'tReedTable_setSlope(tReedTable *const pm, float slope):&#160;leaf-physical.c']]],
+  ['treedtable_5ftanh_5ftick_1565',['tReedTable_tanh_tick',['../group__treedtable.html#ga90644dc2bd0a5c4c828e57efa3e056c1',1,'tReedTable_tanh_tick(tReedTable *const, float input):&#160;leaf-physical.c'],['../group__treedtable.html#ga90644dc2bd0a5c4c828e57efa3e056c1',1,'tReedTable_tanh_tick(tReedTable *const pm, float input):&#160;leaf-physical.c']]],
+  ['treedtable_5ftick_1566',['tReedTable_tick',['../group__treedtable.html#gac698936fdfe9bc1948f9dbc8e08c0316',1,'tReedTable_tick(tReedTable *const, float input):&#160;leaf-physical.c'],['../group__treedtable.html#gac698936fdfe9bc1948f9dbc8e08c0316',1,'tReedTable_tick(tReedTable *const pm, float input):&#160;leaf-physical.c']]],
+  ['tretune_5ffree_1567',['tRetune_free',['../group__tretune.html#ga9054a73b7bb08d4721b109b7c2c94042',1,'tRetune_free(tRetune *const):&#160;leaf-effects.c'],['../group__tretune.html#ga9054a73b7bb08d4721b109b7c2c94042',1,'tRetune_free(tRetune *const rt):&#160;leaf-effects.c']]],
+  ['tretune_5fsetnumvoices_1568',['tRetune_setNumVoices',['../group__tretune.html#ga126c94026f5b022a4e50dec9a5b8e294',1,'tRetune_setNumVoices(tRetune *const, int numVoices):&#160;leaf-effects.c'],['../group__tretune.html#ga126c94026f5b022a4e50dec9a5b8e294',1,'tRetune_setNumVoices(tRetune *const rt, int numVoices):&#160;leaf-effects.c']]],
+  ['tretune_5ftick_1569',['tRetune_tick',['../group__tretune.html#gae5ed387f5a71deac43ab89b8f8986060',1,'tRetune_tick(tRetune *const, float sample):&#160;leaf-effects.c'],['../group__tretune.html#gae5ed387f5a71deac43ab89b8f8986060',1,'tRetune_tick(tRetune *const rt, float sample):&#160;leaf-effects.c']]],
+  ['tringbuffer_5ffree_1570',['tRingBuffer_free',['../group__tringbuffer.html#gafbf4874d2fa48aff8b15919cbf85df5b',1,'tRingBuffer_free(tRingBuffer *const ring):&#160;leaf-delay.c'],['../group__tringbuffer.html#gafbf4874d2fa48aff8b15919cbf85df5b',1,'tRingBuffer_free(tRingBuffer *const ring):&#160;leaf-delay.c']]],
+  ['tringbuffer_5fget_1571',['tRingBuffer_get',['../group__tringbuffer.html#ga6925019a4a1418b61751da7240e489fd',1,'tRingBuffer_get(tRingBuffer *const ring, int index):&#160;leaf-delay.c'],['../group__tringbuffer.html#ga6925019a4a1418b61751da7240e489fd',1,'tRingBuffer_get(tRingBuffer *const ring, int index):&#160;leaf-delay.c']]],
+  ['tringbuffer_5fgetnewest_1572',['tRingBuffer_getNewest',['../group__tringbuffer.html#gaef38082fdfabb5abb11d1d8d55c99f2a',1,'tRingBuffer_getNewest(tRingBuffer *const ring):&#160;leaf-delay.c'],['../group__tringbuffer.html#gaef38082fdfabb5abb11d1d8d55c99f2a',1,'tRingBuffer_getNewest(tRingBuffer *const ring):&#160;leaf-delay.c']]],
+  ['tringbuffer_5fgetoldest_1573',['tRingBuffer_getOldest',['../group__tringbuffer.html#gaea32020dea77c0f0c65c3ea04460f598',1,'tRingBuffer_getOldest(tRingBuffer *const ring):&#160;leaf-delay.c'],['../group__tringbuffer.html#gaea32020dea77c0f0c65c3ea04460f598',1,'tRingBuffer_getOldest(tRingBuffer *const ring):&#160;leaf-delay.c']]],
+  ['tringbuffer_5fgetsize_1574',['tRingBuffer_getSize',['../group__tringbuffer.html#ga33bf20b1a1a3f1bb3195f0735050d560',1,'tRingBuffer_getSize(tRingBuffer *const ring):&#160;leaf-delay.c'],['../group__tringbuffer.html#ga33bf20b1a1a3f1bb3195f0735050d560',1,'tRingBuffer_getSize(tRingBuffer *const ring):&#160;leaf-delay.c']]],
+  ['tringbuffer_5finit_1575',['tRingBuffer_init',['../group__tringbuffer.html#gaa6e10d8ad89469f9868d1c8bf61c3369',1,'tRingBuffer_init(tRingBuffer *const ring, int size, LEAF *const leaf):&#160;leaf-delay.c'],['../group__tringbuffer.html#gaa6e10d8ad89469f9868d1c8bf61c3369',1,'tRingBuffer_init(tRingBuffer *const ring, int size, LEAF *const leaf):&#160;leaf-delay.c']]],
+  ['tringbuffer_5finittopool_1576',['tRingBuffer_initToPool',['../group__tringbuffer.html#ga42849a91b882ee8231fe494617f8e441',1,'tRingBuffer_initToPool(tRingBuffer *const ring, int size, tMempool *const mempool):&#160;leaf-delay.c'],['../group__tringbuffer.html#ga42849a91b882ee8231fe494617f8e441',1,'tRingBuffer_initToPool(tRingBuffer *const ring, int size, tMempool *const mempool):&#160;leaf-delay.c']]],
+  ['tringbuffer_5fpush_1577',['tRingBuffer_push',['../group__tringbuffer.html#ga9e95e5b6969ccde90391f5312f7cde69',1,'tRingBuffer_push(tRingBuffer *const ring, float val):&#160;leaf-delay.c'],['../group__tringbuffer.html#ga9e95e5b6969ccde90391f5312f7cde69',1,'tRingBuffer_push(tRingBuffer *const ring, float val):&#160;leaf-delay.c']]],
+  ['trosenbergglottalpulse_5ffree_1578',['tRosenbergGlottalPulse_free',['../group__trosenbergglottalpulse.html#gac23f160eacd6098f0be43ef2ad50adba',1,'tRosenbergGlottalPulse_free(tRosenbergGlottalPulse *const):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#gac23f160eacd6098f0be43ef2ad50adba',1,'tRosenbergGlottalPulse_free(tRosenbergGlottalPulse *const gp):&#160;leaf-effects.c']]],
+  ['trosenbergglottalpulse_5finit_1579',['tRosenbergGlottalPulse_init',['../group__trosenbergglottalpulse.html#gabc9f965e57fb4f4d19078e735ceeef41',1,'tRosenbergGlottalPulse_init(tRosenbergGlottalPulse *const, LEAF *const leaf):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#gabc9f965e57fb4f4d19078e735ceeef41',1,'tRosenbergGlottalPulse_init(tRosenbergGlottalPulse *const gp, LEAF *const leaf):&#160;leaf-effects.c']]],
+  ['trosenbergglottalpulse_5finittopool_1580',['tRosenbergGlottalPulse_initToPool',['../group__trosenbergglottalpulse.html#ga337b99d9c13835ad7d44dc496de018d6',1,'tRosenbergGlottalPulse_initToPool(tRosenbergGlottalPulse *const, tMempool *const):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#ga337b99d9c13835ad7d44dc496de018d6',1,'tRosenbergGlottalPulse_initToPool(tRosenbergGlottalPulse *const gp, tMempool *const mp):&#160;leaf-effects.c']]],
+  ['trosenbergglottalpulse_5fsetfreq_1581',['tRosenbergGlottalPulse_setFreq',['../group__trosenbergglottalpulse.html#ga199fe228e20140018c943b72347ba434',1,'tRosenbergGlottalPulse_setFreq(tRosenbergGlottalPulse *const, float freq):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#ga199fe228e20140018c943b72347ba434',1,'tRosenbergGlottalPulse_setFreq(tRosenbergGlottalPulse *const gp, float freq):&#160;leaf-effects.c']]],
+  ['trosenbergglottalpulse_5fsetopenlength_1582',['tRosenbergGlottalPulse_setOpenLength',['../group__trosenbergglottalpulse.html#ga703d56589fa0121e978609f5315ea1e7',1,'tRosenbergGlottalPulse_setOpenLength(tRosenbergGlottalPulse *const, float openLength):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#ga703d56589fa0121e978609f5315ea1e7',1,'tRosenbergGlottalPulse_setOpenLength(tRosenbergGlottalPulse *const gp, float openLength):&#160;leaf-effects.c']]],
+  ['trosenbergglottalpulse_5fsetopenlengthandpulselength_1583',['tRosenbergGlottalPulse_setOpenLengthAndPulseLength',['../group__trosenbergglottalpulse.html#ga0ebbc0ca662434c8685cbca2e44f656a',1,'tRosenbergGlottalPulse_setOpenLengthAndPulseLength(tRosenbergGlottalPulse *const gp, float openLength, float pulseLength):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#ga0ebbc0ca662434c8685cbca2e44f656a',1,'tRosenbergGlottalPulse_setOpenLengthAndPulseLength(tRosenbergGlottalPulse *const gp, float openLength, float pulseLength):&#160;leaf-effects.c']]],
+  ['trosenbergglottalpulse_5fsetpulselength_1584',['tRosenbergGlottalPulse_setPulseLength',['../group__trosenbergglottalpulse.html#ga7339007dec7bc4164d850e63d57a75ec',1,'tRosenbergGlottalPulse_setPulseLength(tRosenbergGlottalPulse *const, float pulseLength):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#ga7339007dec7bc4164d850e63d57a75ec',1,'tRosenbergGlottalPulse_setPulseLength(tRosenbergGlottalPulse *const gp, float pulseLength):&#160;leaf-effects.c']]],
+  ['trosenbergglottalpulse_5ftick_1585',['tRosenbergGlottalPulse_tick',['../group__trosenbergglottalpulse.html#gaa13740e5d8e0cab56e61eb0cb242fabe',1,'tRosenbergGlottalPulse_tick(tRosenbergGlottalPulse *const):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#gaa13740e5d8e0cab56e61eb0cb242fabe',1,'tRosenbergGlottalPulse_tick(tRosenbergGlottalPulse *const gp):&#160;leaf-effects.c']]],
+  ['trosenbergglottalpulse_5ftickhq_1586',['tRosenbergGlottalPulse_tickHQ',['../group__trosenbergglottalpulse.html#gadbf13772282402d02eb7623fda03d496',1,'tRosenbergGlottalPulse_tickHQ(tRosenbergGlottalPulse *const gp):&#160;leaf-effects.c'],['../group__trosenbergglottalpulse.html#gadbf13772282402d02eb7623fda03d496',1,'tRosenbergGlottalPulse_tickHQ(tRosenbergGlottalPulse *const gp):&#160;leaf-effects.c']]],
+  ['tsampler_5ffree_1587',['tSampler_free',['../group__tsampler.html#ga8294d4396e241ff583d5a0208a262a6f',1,'tSampler_free(tSampler *const):&#160;leaf-sampling.c'],['../group__tsampler.html#ga8294d4396e241ff583d5a0208a262a6f',1,'tSampler_free(tSampler *const sp):&#160;leaf-sampling.c']]],
+  ['tsampler_5finit_1588',['tSampler_init',['../group__tsampler.html#gabe6b68ce1ad3be371e341671e131d8d1',1,'tSampler_init(tSampler *const, tBuffer *const, LEAF *const leaf):&#160;leaf-sampling.c'],['../group__tsampler.html#gabe6b68ce1ad3be371e341671e131d8d1',1,'tSampler_init(tSampler *const sp, tBuffer *const b, LEAF *const leaf):&#160;leaf-sampling.c']]],
+  ['tsampler_5fplay_1589',['tSampler_play',['../group__tsampler.html#gaca8fd3a386f7b5c12584820b76be70b6',1,'tSampler_play(tSampler *const):&#160;leaf-sampling.c'],['../group__tsampler.html#gaca8fd3a386f7b5c12584820b76be70b6',1,'tSampler_play(tSampler *const sp):&#160;leaf-sampling.c']]],
+  ['tsampler_5fsetcrossfadelength_1590',['tSampler_setCrossfadeLength',['../group__tsampler.html#gaa3b3bdfaff5b05513c777a586ad7fac5',1,'tSampler_setCrossfadeLength(tSampler *const sp, uint32_t length):&#160;leaf-sampling.c'],['../group__tsampler.html#gaa3b3bdfaff5b05513c777a586ad7fac5',1,'tSampler_setCrossfadeLength(tSampler *const sp, uint32_t length):&#160;leaf-sampling.c']]],
+  ['tsampler_5fsetend_1591',['tSampler_setEnd',['../group__tsampler.html#ga36696178ca3f0bc7b8eef6786fe81faa',1,'tSampler_setEnd(tSampler *const, int32_t end):&#160;leaf-sampling.c'],['../group__tsampler.html#ga36696178ca3f0bc7b8eef6786fe81faa',1,'tSampler_setEnd(tSampler *const sp, int32_t end):&#160;leaf-sampling.c']]],
+  ['tsampler_5fsetlength_1592',['tSampler_setLength',['../group__tsampler.html#ga498ced8a867faef896eb7ed194f86040',1,'tSampler_setLength(tSampler *const, int32_t length):&#160;leaf-sampling.c'],['../group__tsampler.html#ga498ced8a867faef896eb7ed194f86040',1,'tSampler_setLength(tSampler *const sp, int32_t length):&#160;leaf-sampling.c']]],
+  ['tsampler_5fsetmode_1593',['tSampler_setMode',['../group__tsampler.html#ga7790cb700416a22238238fea75f0c632',1,'tSampler_setMode(tSampler *const, PlayMode mode):&#160;leaf-sampling.c'],['../group__tsampler.html#ga7790cb700416a22238238fea75f0c632',1,'tSampler_setMode(tSampler *const sp, PlayMode mode):&#160;leaf-sampling.c']]],
+  ['tsampler_5fsetrate_1594',['tSampler_setRate',['../group__tsampler.html#gadaccb8d16c9870ba327b4ab51ebc3b7e',1,'tSampler_setRate(tSampler *const, float rate):&#160;leaf-sampling.c'],['../group__tsampler.html#gadaccb8d16c9870ba327b4ab51ebc3b7e',1,'tSampler_setRate(tSampler *const sp, float rate):&#160;leaf-sampling.c']]],
+  ['tsampler_5fsetsample_1595',['tSampler_setSample',['../group__tsampler.html#gaf6e374c6d252d986b46415223980088e',1,'tSampler_setSample(tSampler *const, tBuffer *const):&#160;leaf-sampling.c'],['../group__tsampler.html#gaf6e374c6d252d986b46415223980088e',1,'tSampler_setSample(tSampler *const sp, tBuffer *const b):&#160;leaf-sampling.c']]],
+  ['tsampler_5fsetstart_1596',['tSampler_setStart',['../group__tsampler.html#gac7dc95f6705399e73778c96904df2390',1,'tSampler_setStart(tSampler *const, int32_t start):&#160;leaf-sampling.c'],['../group__tsampler.html#gac7dc95f6705399e73778c96904df2390',1,'tSampler_setStart(tSampler *const sp, int32_t start):&#160;leaf-sampling.c']]],
+  ['tsampler_5fstop_1597',['tSampler_stop',['../group__tsampler.html#gaf3dd0f9013b69cf4c3a6199b674925c0',1,'tSampler_stop(tSampler *const):&#160;leaf-sampling.c'],['../group__tsampler.html#gaf3dd0f9013b69cf4c3a6199b674925c0',1,'tSampler_stop(tSampler *const sp):&#160;leaf-sampling.c']]],
+  ['tsampler_5ftick_1598',['tSampler_tick',['../group__tsampler.html#gaf22e3192bf74770101ecae67268ed465',1,'tSampler_tick(tSampler *const):&#160;leaf-sampling.c'],['../group__tsampler.html#gaf22e3192bf74770101ecae67268ed465',1,'tSampler_tick(tSampler *const sp):&#160;leaf-sampling.c']]],
+  ['tsamplereducer_5ffree_1599',['tSampleReducer_free',['../group__tsamplereducer.html#gae63dd070a3dcf2c58e69f6ccb2e476c1',1,'tSampleReducer_free(tSampleReducer *const):&#160;leaf-distortion.c'],['../group__tsamplereducer.html#gae63dd070a3dcf2c58e69f6ccb2e476c1',1,'tSampleReducer_free(tSampleReducer *const sr):&#160;leaf-distortion.c']]],
+  ['tsamplereducer_5finit_1600',['tSampleReducer_init',['../group__tsamplereducer.html#ga4e2aa28e349ce74e863302442581d2c2',1,'tSampleReducer_init(tSampleReducer *const, LEAF *const leaf):&#160;leaf-distortion.c'],['../group__tsamplereducer.html#ga4e2aa28e349ce74e863302442581d2c2',1,'tSampleReducer_init(tSampleReducer *const sr, LEAF *const leaf):&#160;leaf-distortion.c']]],
+  ['tsamplereducer_5finittopool_1601',['tSampleReducer_initToPool',['../group__tsamplereducer.html#ga26f7d760728158cfac165e34ba7ed57f',1,'tSampleReducer_initToPool(tSampleReducer *const, tMempool *const):&#160;leaf-distortion.c'],['../group__tsamplereducer.html#ga26f7d760728158cfac165e34ba7ed57f',1,'tSampleReducer_initToPool(tSampleReducer *const sr, tMempool *const mp):&#160;leaf-distortion.c']]],
+  ['tsamplereducer_5fsetratio_1602',['tSampleReducer_setRatio',['../group__tsamplereducer.html#ga21f7231417a132c6ec8c115c99582c68',1,'tSampleReducer_setRatio(tSampleReducer *const, float ratio):&#160;leaf-distortion.c'],['../group__tsamplereducer.html#ga21f7231417a132c6ec8c115c99582c68',1,'tSampleReducer_setRatio(tSampleReducer *const sr, float ratio):&#160;leaf-distortion.c']]],
+  ['tsamplereducer_5ftick_1603',['tSampleReducer_tick',['../group__tsamplereducer.html#gad2c3b27d31b01f37e3926ae2b7024a71',1,'tSampleReducer_tick(tSampleReducer *const, float input):&#160;leaf-distortion.c'],['../group__tsamplereducer.html#gad2c3b27d31b01f37e3926ae2b7024a71',1,'tSampleReducer_tick(tSampleReducer *const sr, float input):&#160;leaf-distortion.c']]],
+  ['tsaw_5ffree_1604',['tSaw_free',['../group__tsaw.html#ga8a0086ee2a90f4e62a0313de8fe485d5',1,'tSaw_free(tSaw *const osc):&#160;leaf-oscillators.c'],['../group__tsaw.html#ga8a0086ee2a90f4e62a0313de8fe485d5',1,'tSaw_free(tSaw *const osc):&#160;leaf-oscillators.c']]],
+  ['tsaw_5finit_1605',['tSaw_init',['../group__tsaw.html#ga47c944a22090ff9f8f810b0ec7c87523',1,'tSaw_init(tSaw *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tsaw.html#ga47c944a22090ff9f8f810b0ec7c87523',1,'tSaw_init(tSaw *const osc, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tsaw_5finittopool_1606',['tSaw_initToPool',['../group__tsaw.html#ga67f8a442de376d042a98e300952f39f2',1,'tSaw_initToPool(tSaw *const osc, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__tsaw.html#ga67f8a442de376d042a98e300952f39f2',1,'tSaw_initToPool(tSaw *const osc, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['tsaw_5fsetfreq_1607',['tSaw_setFreq',['../group__tsaw.html#ga665577c990c9112d70d42b859abc93dd',1,'tSaw_setFreq(tSaw *const osc, float freq):&#160;leaf-oscillators.c'],['../group__tsaw.html#ga665577c990c9112d70d42b859abc93dd',1,'tSaw_setFreq(tSaw *const osc, float freq):&#160;leaf-oscillators.c']]],
+  ['tsaw_5ftick_1608',['tSaw_tick',['../group__tsaw.html#ga6aa69769acd51715899d60b0f581796d',1,'tSaw_tick(tSaw *const osc):&#160;leaf-oscillators.c'],['../group__tsaw.html#ga6aa69769acd51715899d60b0f581796d',1,'tSaw_tick(tSaw *const osc):&#160;leaf-oscillators.c']]],
+  ['tsawtooth_5ffree_1609',['tSawtooth_free',['../group__tsawtooth.html#ga32ba208b6c4745587d267598702aaf02',1,'tSawtooth_free(tSawtooth *const osc):&#160;leaf-oscillators.c'],['../group__tsawtooth.html#ga32ba208b6c4745587d267598702aaf02',1,'tSawtooth_free(tSawtooth *const cy):&#160;leaf-oscillators.c']]],
+  ['tsawtooth_5finit_1610',['tSawtooth_init',['../group__tsawtooth.html#gaa052c9d8e62a198bbaeac892b0d11a7f',1,'tSawtooth_init(tSawtooth *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tsawtooth.html#gaa052c9d8e62a198bbaeac892b0d11a7f',1,'tSawtooth_init(tSawtooth *const cy, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tsawtooth_5finittopool_1611',['tSawtooth_initToPool',['../group__tsawtooth.html#ga63ee3403c200358511ffb049a3a93bf2',1,'tSawtooth_initToPool(tSawtooth *const osc, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__tsawtooth.html#ga63ee3403c200358511ffb049a3a93bf2',1,'tSawtooth_initToPool(tSawtooth *const cy, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['tsawtooth_5fsetfreq_1612',['tSawtooth_setFreq',['../group__tsawtooth.html#gab096cb0c5c0384b47959d0161d8432e4',1,'tSawtooth_setFreq(tSawtooth *const osc, float freq):&#160;leaf-oscillators.c'],['../group__tsawtooth.html#gab096cb0c5c0384b47959d0161d8432e4',1,'tSawtooth_setFreq(tSawtooth *const cy, float freq):&#160;leaf-oscillators.c']]],
+  ['tsawtooth_5ftick_1613',['tSawtooth_tick',['../group__tsawtooth.html#ga55fd2d0b1572fc8a67fffc7531fced69',1,'tSawtooth_tick(tSawtooth *const osc):&#160;leaf-oscillators.c'],['../group__tsawtooth.html#ga55fd2d0b1572fc8a67fffc7531fced69',1,'tSawtooth_tick(tSawtooth *const cy):&#160;leaf-oscillators.c']]],
+  ['tsimplelivingstring_5ffree_1614',['tSimpleLivingString_free',['../group__tsimplelivingstring.html#ga9d08fedb273f78dfe7dc468736faee1c',1,'tSimpleLivingString_free(tSimpleLivingString *const):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#ga9d08fedb273f78dfe7dc468736faee1c',1,'tSimpleLivingString_free(tSimpleLivingString *const pl):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5finit_1615',['tSimpleLivingString_init',['../group__tsimplelivingstring.html#ga9c905b5e7e42d86fb1565fc7bebe7489',1,'tSimpleLivingString_init(tSimpleLivingString *const, float freq, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, LEAF *const leaf):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#ga9c905b5e7e42d86fb1565fc7bebe7489',1,'tSimpleLivingString_init(tSimpleLivingString *const pl, float freq, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, LEAF *const leaf):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5finittopool_1616',['tSimpleLivingString_initToPool',['../group__tsimplelivingstring.html#ga87d9705a3cf73b73aecf42083eb3d921',1,'tSimpleLivingString_initToPool(tSimpleLivingString *const, float freq, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#ga87d9705a3cf73b73aecf42083eb3d921',1,'tSimpleLivingString_initToPool(tSimpleLivingString *const pl, float freq, float dampFreq, float decay, float targetLev, float levSmoothFactor, float levStrength, int levMode, tMempool *const mp):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsample_1617',['tSimpleLivingString_sample',['../group__tsimplelivingstring.html#ga86a53b69513ad23136a75ed338deca3d',1,'tSimpleLivingString_sample(tSimpleLivingString *const):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#ga86a53b69513ad23136a75ed338deca3d',1,'tSimpleLivingString_sample(tSimpleLivingString *const pl):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsetdampfreq_1618',['tSimpleLivingString_setDampFreq',['../group__tsimplelivingstring.html#gafbeb5b41ab1d03c57bdc93e785a6adb7',1,'tSimpleLivingString_setDampFreq(tSimpleLivingString *const, float dampFreq):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#gafbeb5b41ab1d03c57bdc93e785a6adb7',1,'tSimpleLivingString_setDampFreq(tSimpleLivingString *const pl, float dampFreq):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsetdecay_1619',['tSimpleLivingString_setDecay',['../group__tsimplelivingstring.html#gad66e79ac86857f2c5c9af831254dcf66',1,'tSimpleLivingString_setDecay(tSimpleLivingString *const, float decay):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#gad66e79ac86857f2c5c9af831254dcf66',1,'tSimpleLivingString_setDecay(tSimpleLivingString *const pl, float decay):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsetfreq_1620',['tSimpleLivingString_setFreq',['../group__tsimplelivingstring.html#ga474a710fddae2d86bf79b11384f3709b',1,'tSimpleLivingString_setFreq(tSimpleLivingString *const, float freq):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#ga474a710fddae2d86bf79b11384f3709b',1,'tSimpleLivingString_setFreq(tSimpleLivingString *const pl, float freq):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsetlevmode_1621',['tSimpleLivingString_setLevMode',['../group__tsimplelivingstring.html#ga951524437c11b10c1023ea5bf922e50e',1,'tSimpleLivingString_setLevMode(tSimpleLivingString *const, int levMode):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#ga951524437c11b10c1023ea5bf922e50e',1,'tSimpleLivingString_setLevMode(tSimpleLivingString *const pl, int levMode):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsetlevsmoothfactor_1622',['tSimpleLivingString_setLevSmoothFactor',['../group__tsimplelivingstring.html#gaeb957c0478dc7181b074dd51505b6f0d',1,'tSimpleLivingString_setLevSmoothFactor(tSimpleLivingString *const, float levSmoothFactor):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#gaeb957c0478dc7181b074dd51505b6f0d',1,'tSimpleLivingString_setLevSmoothFactor(tSimpleLivingString *const pl, float levSmoothFactor):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsetlevstrength_1623',['tSimpleLivingString_setLevStrength',['../group__tsimplelivingstring.html#gac76ca3acde529dcae1336fdbfccd498d',1,'tSimpleLivingString_setLevStrength(tSimpleLivingString *const, float levStrength):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#gac76ca3acde529dcae1336fdbfccd498d',1,'tSimpleLivingString_setLevStrength(tSimpleLivingString *const pl, float levStrength):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsettargetlev_1624',['tSimpleLivingString_setTargetLev',['../group__tsimplelivingstring.html#ga2d58bf73c0e7e92ddac30eece502e2be',1,'tSimpleLivingString_setTargetLev(tSimpleLivingString *const, float targetLev):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#ga2d58bf73c0e7e92ddac30eece502e2be',1,'tSimpleLivingString_setTargetLev(tSimpleLivingString *const pl, float targetLev):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5fsetwavelength_1625',['tSimpleLivingString_setWaveLength',['../group__tsimplelivingstring.html#ga84804ae6c66949069c185fbc8d8f2ae9',1,'tSimpleLivingString_setWaveLength(tSimpleLivingString *const, float waveLength):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#ga84804ae6c66949069c185fbc8d8f2ae9',1,'tSimpleLivingString_setWaveLength(tSimpleLivingString *const pl, float waveLength):&#160;leaf-physical.c']]],
+  ['tsimplelivingstring_5ftick_1626',['tSimpleLivingString_tick',['../group__tsimplelivingstring.html#gae4a6c036a53365af66a92dac9d86f3c3',1,'tSimpleLivingString_tick(tSimpleLivingString *const, float input):&#160;leaf-physical.c'],['../group__tsimplelivingstring.html#gae4a6c036a53365af66a92dac9d86f3c3',1,'tSimpleLivingString_tick(tSimpleLivingString *const pl, float input):&#160;leaf-physical.c']]],
+  ['tsimplepoly_5fdeactivatevoice_1627',['tSimplePoly_deactivateVoice',['../group__tsimplepoly.html#ga6d801960d20e16f81eff12b420a904c8',1,'tSimplePoly_deactivateVoice(tSimplePoly *const polyh, uint8_t voice):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga6d801960d20e16f81eff12b420a904c8',1,'tSimplePoly_deactivateVoice(tSimplePoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5ffindvoiceassignedtonote_1628',['tSimplePoly_findVoiceAssignedToNote',['../group__tsimplepoly.html#ga9a78b4407716cd48468420194f39d811',1,'tSimplePoly_findVoiceAssignedToNote(tSimplePoly *const polyh, uint8_t note):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga9a78b4407716cd48468420194f39d811',1,'tSimplePoly_findVoiceAssignedToNote(tSimplePoly *const polyh, uint8_t note):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5ffree_1629',['tSimplePoly_free',['../group__tsimplepoly.html#gae112285fcb27b1b6822b5db474b892d7',1,'tSimplePoly_free(tSimplePoly *const poly):&#160;leaf-midi.c'],['../group__tsimplepoly.html#gae112285fcb27b1b6822b5db474b892d7',1,'tSimplePoly_free(tSimplePoly *const polyh):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fgetnumactivevoices_1630',['tSimplePoly_getNumActiveVoices',['../group__tsimplepoly.html#ga7927a37f0b05301c58923ee0bd9b1376',1,'tSimplePoly_getNumActiveVoices(tSimplePoly *const poly):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga7927a37f0b05301c58923ee0bd9b1376',1,'tSimplePoly_getNumActiveVoices(tSimplePoly *const polyh):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fgetnumvoices_1631',['tSimplePoly_getNumVoices',['../group__tsimplepoly.html#ga574023fdcde9863f60a88c5171595628',1,'tSimplePoly_getNumVoices(tSimplePoly *const poly):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga574023fdcde9863f60a88c5171595628',1,'tSimplePoly_getNumVoices(tSimplePoly *const polyh):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fgetpitch_1632',['tSimplePoly_getPitch',['../group__tsimplepoly.html#ga04edeaf26303e4fd57988b3144063590',1,'tSimplePoly_getPitch(tSimplePoly *const poly, uint8_t voice):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga04edeaf26303e4fd57988b3144063590',1,'tSimplePoly_getPitch(tSimplePoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fgetpitchandcheckactive_1633',['tSimplePoly_getPitchAndCheckActive',['../group__tsimplepoly.html#gae147f59b6da64f3af94407da5a6ec3db',1,'tSimplePoly_getPitchAndCheckActive(tSimplePoly *const polyh, uint8_t voice):&#160;leaf-midi.c'],['../group__tsimplepoly.html#gae147f59b6da64f3af94407da5a6ec3db',1,'tSimplePoly_getPitchAndCheckActive(tSimplePoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fgetvelocity_1634',['tSimplePoly_getVelocity',['../group__tsimplepoly.html#ga85311b798b65407dcd4de68a8ed7d52d',1,'tSimplePoly_getVelocity(tSimplePoly *const poly, uint8_t voice):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga85311b798b65407dcd4de68a8ed7d52d',1,'tSimplePoly_getVelocity(tSimplePoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5finit_1635',['tSimplePoly_init',['../group__tsimplepoly.html#gaad03d289d4860fd6fc570e359da13f15',1,'tSimplePoly_init(tSimplePoly *const poly, int maxNumVoices, LEAF *const leaf):&#160;leaf-midi.c'],['../group__tsimplepoly.html#gaad03d289d4860fd6fc570e359da13f15',1,'tSimplePoly_init(tSimplePoly *const polyh, int maxNumVoices, LEAF *const leaf):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5finittopool_1636',['tSimplePoly_initToPool',['../group__tsimplepoly.html#ga67391919fd2cf8b80b80b9a74f0a2f02',1,'tSimplePoly_initToPool(tSimplePoly *const poly, int maxNumVoices, tMempool *const pool):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga67391919fd2cf8b80b80b9a74f0a2f02',1,'tSimplePoly_initToPool(tSimplePoly *const polyh, int maxNumVoices, tMempool *const mp):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fison_1637',['tSimplePoly_isOn',['../group__tsimplepoly.html#ga1a55f7b4f9e8926acb9f6126c8e80633',1,'tSimplePoly_isOn(tSimplePoly *const poly, uint8_t voice):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga1a55f7b4f9e8926acb9f6126c8e80633',1,'tSimplePoly_isOn(tSimplePoly *const polyh, uint8_t voice):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fmarkpendingnoteoff_1638',['tSimplePoly_markPendingNoteOff',['../group__tsimplepoly.html#ga668c915adab45224835268b08c7f4c80',1,'tSimplePoly_markPendingNoteOff(tSimplePoly *const polyh, uint8_t note):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga668c915adab45224835268b08c7f4c80',1,'tSimplePoly_markPendingNoteOff(tSimplePoly *const polyh, uint8_t note):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fnoteoff_1639',['tSimplePoly_noteOff',['../group__tsimplepoly.html#ga12fc7c78f1e2fcd0016a438374eb4ec3',1,'tSimplePoly_noteOff(tSimplePoly *const poly, uint8_t note):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga12fc7c78f1e2fcd0016a438374eb4ec3',1,'tSimplePoly_noteOff(tSimplePoly *const polyh, uint8_t note):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fnoteon_1640',['tSimplePoly_noteOn',['../group__tsimplepoly.html#ga704023c95d0eef34c4746a4489626bd9',1,'tSimplePoly_noteOn(tSimplePoly *const poly, int note, uint8_t vel):&#160;leaf-midi.c'],['../group__tsimplepoly.html#ga704023c95d0eef34c4746a4489626bd9',1,'tSimplePoly_noteOn(tSimplePoly *const polyh, int note, uint8_t vel):&#160;leaf-midi.c']]],
+  ['tsimplepoly_5fsetnumvoices_1641',['tSimplePoly_setNumVoices',['../group__tsimplepoly.html#gae11bb769f332621148bfe4e9e966cc1d',1,'tSimplePoly_setNumVoices(tSimplePoly *const poly, uint8_t numVoices):&#160;leaf-midi.c'],['../group__tsimplepoly.html#gae11bb769f332621148bfe4e9e966cc1d',1,'tSimplePoly_setNumVoices(tSimplePoly *const polyh, uint8_t numVoices):&#160;leaf-midi.c']]],
+  ['tsimpleretune_5ffree_1642',['tSimpleRetune_free',['../group__tsimpleretune.html#ga3a1f081437fbb7ad75b27fb09c39f096',1,'tSimpleRetune_free(tSimpleRetune *const):&#160;leaf-effects.c'],['../group__tsimpleretune.html#ga3a1f081437fbb7ad75b27fb09c39f096',1,'tSimpleRetune_free(tSimpleRetune *const rt):&#160;leaf-effects.c']]],
+  ['tsimpleretune_5fsetnumvoices_1643',['tSimpleRetune_setNumVoices',['../group__tsimpleretune.html#ga7ad6f40fd922775510221226892d8839',1,'tSimpleRetune_setNumVoices(tSimpleRetune *const, int numVoices):&#160;leaf-effects.c'],['../group__tsimpleretune.html#ga7ad6f40fd922775510221226892d8839',1,'tSimpleRetune_setNumVoices(tSimpleRetune *const rt, int numVoices):&#160;leaf-effects.c']]],
+  ['tsimpleretune_5ftick_1644',['tSimpleRetune_tick',['../group__tsimpleretune.html#ga641d532934fde59a0489e7fecd28961c',1,'tSimpleRetune_tick(tSimpleRetune *const, float sample):&#160;leaf-effects.c'],['../group__tsimpleretune.html#ga641d532934fde59a0489e7fecd28961c',1,'tSimpleRetune_tick(tSimpleRetune *const rt, float sample):&#160;leaf-effects.c']]],
+  ['tslide_5ffree_1645',['tSlide_free',['../group__tslide.html#ga57ba71883af607aaf28f0292e0cee901',1,'tSlide_free(tSlide *const):&#160;leaf-envelopes.c'],['../group__tslide.html#ga57ba71883af607aaf28f0292e0cee901',1,'tSlide_free(tSlide *const sl):&#160;leaf-envelopes.c']]],
+  ['tslide_5finit_1646',['tSlide_init',['../group__tslide.html#ga8288a16662a7fa082c4fcad3cea0ab04',1,'tSlide_init(tSlide *const, float upSlide, float downSlide, LEAF *const leaf):&#160;leaf-envelopes.c'],['../group__tslide.html#ga8288a16662a7fa082c4fcad3cea0ab04',1,'tSlide_init(tSlide *const sl, float upSlide, float downSlide, LEAF *const leaf):&#160;leaf-envelopes.c']]],
+  ['tslide_5finittopool_1647',['tSlide_initToPool',['../group__tslide.html#ga42a348c9028053e0ad3a22f1ac731430',1,'tSlide_initToPool(tSlide *const, float upSlide, float downSlide, tMempool *const):&#160;leaf-envelopes.c'],['../group__tslide.html#ga42a348c9028053e0ad3a22f1ac731430',1,'tSlide_initToPool(tSlide *const sl, float upSlide, float downSlide, tMempool *const mp):&#160;leaf-envelopes.c']]],
+  ['tslide_5fsetdest_1648',['tSlide_setDest',['../group__tslide.html#ga381e81d6bcb9cba92acfe9a68df8c193',1,'tSlide_setDest(tSlide *const sl, float dest):&#160;leaf-envelopes.c'],['../group__tslide.html#ga381e81d6bcb9cba92acfe9a68df8c193',1,'tSlide_setDest(tSlide *const sl, float dest):&#160;leaf-envelopes.c']]],
+  ['tslide_5fsetdownslide_1649',['tSlide_setDownSlide',['../group__tslide.html#ga86d8efa014a6428b1338d70603f1eb95',1,'tSlide_setDownSlide(tSlide *const sl, float downSlide):&#160;leaf-envelopes.c'],['../group__tslide.html#ga86d8efa014a6428b1338d70603f1eb95',1,'tSlide_setDownSlide(tSlide *const sl, float downSlide):&#160;leaf-envelopes.c']]],
+  ['tslide_5fsetupslide_1650',['tSlide_setUpSlide',['../group__tslide.html#gaac39af0df494460bbc7170a2a34dd7e1',1,'tSlide_setUpSlide(tSlide *const sl, float upSlide):&#160;leaf-envelopes.c'],['../group__tslide.html#gaac39af0df494460bbc7170a2a34dd7e1',1,'tSlide_setUpSlide(tSlide *const sl, float upSlide):&#160;leaf-envelopes.c']]],
+  ['tslide_5ftick_1651',['tSlide_tick',['../group__tslide.html#gacdddc23733eda912f51d57cc944062b0',1,'tSlide_tick(tSlide *const, float in):&#160;leaf-envelopes.c'],['../group__tslide.html#gacdddc23733eda912f51d57cc944062b0',1,'tSlide_tick(tSlide *const sl, float in):&#160;leaf-envelopes.c']]],
+  ['tslide_5fticknoinput_1652',['tSlide_tickNoInput',['../group__tslide.html#ga0ba5fda0ed766d03ac97ad8d0f068ba1',1,'tSlide_tickNoInput(tSlide *const sl):&#160;leaf-envelopes.c'],['../group__tslide.html#ga0ba5fda0ed766d03ac97ad8d0f068ba1',1,'tSlide_tickNoInput(tSlide *const sl):&#160;leaf-envelopes.c']]],
+  ['tsnac_5ffree_1653',['tSNAC_free',['../group__tsnac.html#gad7fc6ce1e80847dfcd9da75d4c734f12',1,'tSNAC_free(tSNAC *const):&#160;leaf-analysis.c'],['../group__tsnac.html#gad7fc6ce1e80847dfcd9da75d4c734f12',1,'tSNAC_free(tSNAC *const snac):&#160;leaf-analysis.c']]],
+  ['tsnac_5fgetfidelity_1654',['tSNAC_getFidelity',['../group__tsnac.html#ga8568190ff50745df3b220f9f8dba3289',1,'tSNAC_getFidelity(tSNAC *s):&#160;leaf-analysis.c'],['../group__tsnac.html#ga8568190ff50745df3b220f9f8dba3289',1,'tSNAC_getFidelity(tSNAC *const snac):&#160;leaf-analysis.c']]],
+  ['tsnac_5fgetperiod_1655',['tSNAC_getPeriod',['../group__tsnac.html#ga71074b5888fe76260f3c1fae7e2aeec8',1,'tSNAC_getPeriod(tSNAC *s):&#160;leaf-analysis.c'],['../group__tsnac.html#ga71074b5888fe76260f3c1fae7e2aeec8',1,'tSNAC_getPeriod(tSNAC *const snac):&#160;leaf-analysis.c']]],
+  ['tsnac_5finit_1656',['tSNAC_init',['../group__tsnac.html#ga5f4005dba1c0470e84ae6bc6845c6d27',1,'tSNAC_init(tSNAC *const, int overlaparg, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tsnac.html#ga5f4005dba1c0470e84ae6bc6845c6d27',1,'tSNAC_init(tSNAC *const snac, int overlaparg, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tsnac_5finittopool_1657',['tSNAC_initToPool',['../group__tsnac.html#ga9779c23ab83bf93c8df11a6b4982c0b2',1,'tSNAC_initToPool(tSNAC *const, int overlaparg, tMempool *const):&#160;leaf-analysis.c'],['../group__tsnac.html#ga9779c23ab83bf93c8df11a6b4982c0b2',1,'tSNAC_initToPool(tSNAC *const snac, int overlaparg, tMempool *const mp):&#160;leaf-analysis.c']]],
+  ['tsnac_5fsetbias_1658',['tSNAC_setBias',['../group__tsnac.html#ga3dbb9845079ebe1b3dbba647180a1168',1,'tSNAC_setBias(tSNAC *s, float bias):&#160;leaf-analysis.c'],['../group__tsnac.html#ga3dbb9845079ebe1b3dbba647180a1168',1,'tSNAC_setBias(tSNAC *const snac, float bias):&#160;leaf-analysis.c']]],
+  ['tsnac_5fsetminrms_1659',['tSNAC_setMinRMS',['../group__tsnac.html#ga777b3cb40c7dcb7826b0945358ffe1ec',1,'tSNAC_setMinRMS(tSNAC *s, float rms):&#160;leaf-analysis.c'],['../group__tsnac.html#ga777b3cb40c7dcb7826b0945358ffe1ec',1,'tSNAC_setMinRMS(tSNAC *const snac, float rms):&#160;leaf-analysis.c']]],
+  ['tsnac_5fsetoverlap_1660',['tSNAC_setOverlap',['../group__tsnac.html#gab6a4ff9c52fb26d19f3bc4d080f91845',1,'tSNAC_setOverlap(tSNAC *s, int lap):&#160;leaf-analysis.c'],['../group__tsnac.html#gab6a4ff9c52fb26d19f3bc4d080f91845',1,'tSNAC_setOverlap(tSNAC *const snac, int lap):&#160;leaf-analysis.c']]],
+  ['tsolad_5ffree_1661',['tSOLAD_free',['../group__tsolad.html#ga2e51fbab57ccc810832c23dc3286efb1',1,'tSOLAD_free(tSOLAD *const):&#160;leaf-effects.c'],['../group__tsolad.html#ga2e51fbab57ccc810832c23dc3286efb1',1,'tSOLAD_free(tSOLAD *const wp):&#160;leaf-effects.c']]],
+  ['tsolad_5fresetstate_1662',['tSOLAD_resetState',['../group__tsolad.html#ga69b20c8acef373a2590f4e3138d1d4d8',1,'tSOLAD_resetState(tSOLAD *w):&#160;leaf-effects.c'],['../group__tsolad.html#ga69b20c8acef373a2590f4e3138d1d4d8',1,'tSOLAD_resetState(tSOLAD *const wp):&#160;leaf-effects.c']]],
+  ['tsolad_5fsetperiod_1663',['tSOLAD_setPeriod',['../group__tsolad.html#ga6ff97dea55ab5fa791fca6a6c4cacdbc',1,'tSOLAD_setPeriod(tSOLAD *w, float period):&#160;leaf-effects.c'],['../group__tsolad.html#ga6ff97dea55ab5fa791fca6a6c4cacdbc',1,'tSOLAD_setPeriod(tSOLAD *const wp, float period):&#160;leaf-effects.c']]],
+  ['tsolad_5fsetpitchfactor_1664',['tSOLAD_setPitchFactor',['../group__tsolad.html#ga1b3ffa561a92ba5f64e51eeb670e16ac',1,'tSOLAD_setPitchFactor(tSOLAD *w, float pitchfactor):&#160;leaf-effects.c'],['../group__tsolad.html#ga1b3ffa561a92ba5f64e51eeb670e16ac',1,'tSOLAD_setPitchFactor(tSOLAD *const wp, float pitchfactor):&#160;leaf-effects.c']]],
+  ['tsolad_5fsetreadlag_1665',['tSOLAD_setReadLag',['../group__tsolad.html#ga92607d41da7f4fbf93386e071806f788',1,'tSOLAD_setReadLag(tSOLAD *w, float readlag):&#160;leaf-effects.c'],['../group__tsolad.html#ga92607d41da7f4fbf93386e071806f788',1,'tSOLAD_setReadLag(tSOLAD *const wp, float readlag):&#160;leaf-effects.c']]],
+  ['tsquare_5ffree_1666',['tSquare_free',['../group__tsquare.html#ga1f6fac5cb92fcbca09970b95a2d05d7d',1,'tSquare_free(tSquare *const osc):&#160;leaf-oscillators.c'],['../group__tsquare.html#ga1f6fac5cb92fcbca09970b95a2d05d7d',1,'tSquare_free(tSquare *const cy):&#160;leaf-oscillators.c']]],
+  ['tsquare_5finit_1667',['tSquare_init',['../group__tsquare.html#gacaaa2bf1d76371d9b4aeda286a09560f',1,'tSquare_init(tSquare *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__tsquare.html#gacaaa2bf1d76371d9b4aeda286a09560f',1,'tSquare_init(tSquare *const cy, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['tsquare_5finittopool_1668',['tSquare_initToPool',['../group__tsquare.html#gad9c41ce10b6b0c821360f43743544c89',1,'tSquare_initToPool(tSquare *const osc, tMempool *const):&#160;leaf-oscillators.c'],['../group__tsquare.html#gad9c41ce10b6b0c821360f43743544c89',1,'tSquare_initToPool(tSquare *const cy, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['tsquare_5fsetfreq_1669',['tSquare_setFreq',['../group__tsquare.html#ga4453bd8e23b1b88ec944c93b8cb575f6',1,'tSquare_setFreq(tSquare *const osc, float freq):&#160;leaf-oscillators.c'],['../group__tsquare.html#ga4453bd8e23b1b88ec944c93b8cb575f6',1,'tSquare_setFreq(tSquare *const cy, float freq):&#160;leaf-oscillators.c']]],
+  ['tsquare_5ftick_1670',['tSquare_tick',['../group__tsquare.html#ga00053831170c826962e4f1aa9d6696e2',1,'tSquare_tick(tSquare *const osc):&#160;leaf-oscillators.c'],['../group__tsquare.html#ga00053831170c826962e4f1aa9d6696e2',1,'tSquare_tick(tSquare *const cy):&#160;leaf-oscillators.c']]],
+  ['tstack_5fadd_1671',['tStack_add',['../group__tstack.html#gabd861307ff5e290b4ae8e45507b9903b',1,'tStack_add(tStack *const stack, uint16_t item):&#160;leaf-midi.c'],['../group__tstack.html#gabd861307ff5e290b4ae8e45507b9903b',1,'tStack_add(tStack *const stack, uint16_t noteVal):&#160;leaf-midi.c']]],
+  ['tstack_5faddifnotalreadythere_1672',['tStack_addIfNotAlreadyThere',['../group__tstack.html#ga909528e236aa47978e91227961841ab5',1,'tStack_addIfNotAlreadyThere(tStack *const stack, uint16_t item):&#160;leaf-midi.c'],['../group__tstack.html#ga909528e236aa47978e91227961841ab5',1,'tStack_addIfNotAlreadyThere(tStack *const stack, uint16_t noteVal):&#160;leaf-midi.c']]],
+  ['tstack_5fclear_1673',['tStack_clear',['../group__tstack.html#ga3d053d583ed2c643a1a4ea00818d4f8a',1,'tStack_clear(tStack *const stack):&#160;leaf-midi.c'],['../group__tstack.html#ga3d053d583ed2c643a1a4ea00818d4f8a',1,'tStack_clear(tStack *const stack):&#160;leaf-midi.c']]],
+  ['tstack_5fcontains_1674',['tStack_contains',['../group__tstack.html#ga8ca0bdad1bce63d0da4cfa6e233ece98',1,'tStack_contains(tStack *const stack, uint16_t item):&#160;leaf-midi.c'],['../group__tstack.html#ga8ca0bdad1bce63d0da4cfa6e233ece98',1,'tStack_contains(tStack *const stack, uint16_t noteVal):&#160;leaf-midi.c']]],
+  ['tstack_5ffirst_1675',['tStack_first',['../group__tstack.html#ga1684ca55f7c9d42e2994eed03b329700',1,'tStack_first(tStack *const stack):&#160;leaf-midi.c'],['../group__tstack.html#ga1684ca55f7c9d42e2994eed03b329700',1,'tStack_first(tStack *const stack):&#160;leaf-midi.c']]],
+  ['tstack_5ffree_1676',['tStack_free',['../group__tstack.html#gabf348064227f55c30cd2bcac3d899881',1,'tStack_free(tStack *const stack):&#160;leaf-midi.c'],['../group__tstack.html#gabf348064227f55c30cd2bcac3d899881',1,'tStack_free(tStack *const stack):&#160;leaf-midi.c']]],
+  ['tstack_5fget_1677',['tStack_get',['../group__tstack.html#ga15d80c513c339ff2c87fb96fcfca9353',1,'tStack_get(tStack *const stack, int index):&#160;leaf-midi.c'],['../group__tstack.html#ga15d80c513c339ff2c87fb96fcfca9353',1,'tStack_get(tStack *const stack, int which):&#160;leaf-midi.c']]],
+  ['tstack_5fgetsize_1678',['tStack_getSize',['../group__tstack.html#ga995a3cb4b43476c387f4fd431af923ef',1,'tStack_getSize(tStack *const stack):&#160;leaf-midi.c'],['../group__tstack.html#ga995a3cb4b43476c387f4fd431af923ef',1,'tStack_getSize(tStack *const stack):&#160;leaf-midi.c']]],
+  ['tstack_5finit_1679',['tStack_init',['../group__tstack.html#ga0f59d25b2a62af281cb7e5a6337a662a',1,'tStack_init(tStack *const stack, LEAF *const leaf):&#160;leaf-midi.c'],['../group__tstack.html#ga0f59d25b2a62af281cb7e5a6337a662a',1,'tStack_init(tStack *const stack, LEAF *const leaf):&#160;leaf-midi.c']]],
+  ['tstack_5finittopool_1680',['tStack_initToPool',['../group__tstack.html#gac6a330c5c8f6fc6138b22c157e527c81',1,'tStack_initToPool(tStack *const stack, tMempool *const pool):&#160;leaf-midi.c'],['../group__tstack.html#gac6a330c5c8f6fc6138b22c157e527c81',1,'tStack_initToPool(tStack *const stack, tMempool *const mp):&#160;leaf-midi.c']]],
+  ['tstack_5fnext_1681',['tStack_next',['../group__tstack.html#ga6e0aef2c8bc0f9432b7a2a6541f21550',1,'tStack_next(tStack *const stack):&#160;leaf-midi.c'],['../group__tstack.html#ga6e0aef2c8bc0f9432b7a2a6541f21550',1,'tStack_next(tStack *const stack):&#160;leaf-midi.c']]],
+  ['tstack_5fremove_1682',['tStack_remove',['../group__tstack.html#ga559464a399b9606909f9f57e190ead7b',1,'tStack_remove(tStack *const stack, uint16_t item):&#160;leaf-midi.c'],['../group__tstack.html#ga559464a399b9606909f9f57e190ead7b',1,'tStack_remove(tStack *const stack, uint16_t noteVal):&#160;leaf-midi.c']]],
+  ['tstack_5fsetcapacity_1683',['tStack_setCapacity',['../group__tstack.html#ga3b5483c9a7cd996e3c62ea9f0895437c',1,'tStack_setCapacity(tStack *const stack, uint16_t cap):&#160;leaf-midi.c'],['../group__tstack.html#ga3b5483c9a7cd996e3c62ea9f0895437c',1,'tStack_setCapacity(tStack *const stack, uint16_t cap):&#160;leaf-midi.c']]],
+  ['tsvf_5ffree_1684',['tSVF_free',['../group__tsvf.html#ga364e2d82cc7d843ccf63c32f6b6f6c28',1,'tSVF_free(tSVF *const):&#160;leaf-filters.c'],['../group__tsvf.html#ga364e2d82cc7d843ccf63c32f6b6f6c28',1,'tSVF_free(tSVF *const svff):&#160;leaf-filters.c']]],
+  ['tsvf_5finit_1685',['tSVF_init',['../group__tsvf.html#gaec95a0aaf02ed9170ea1a4e968acd82d',1,'tSVF_init(tSVF *const, SVFType type, float freq, float Q, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tsvf.html#gaec95a0aaf02ed9170ea1a4e968acd82d',1,'tSVF_init(tSVF *const svff, SVFType type, float freq, float Q, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tsvf_5finittopool_1686',['tSVF_initToPool',['../group__tsvf.html#gabcf663debbb880724f1c423c9d37d143',1,'tSVF_initToPool(tSVF *const, SVFType type, float freq, float Q, tMempool *const):&#160;leaf-filters.c'],['../group__tsvf.html#gabcf663debbb880724f1c423c9d37d143',1,'tSVF_initToPool(tSVF *const svff, SVFType type, float freq, float Q, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tsvf_5fsetfreq_1687',['tSVF_setFreq',['../group__tsvf.html#ga3b3d320a8d7991a002fa344d23780c78',1,'tSVF_setFreq(tSVF *const, float freq):&#160;leaf-filters.c'],['../group__tsvf.html#ga3b3d320a8d7991a002fa344d23780c78',1,'tSVF_setFreq(tSVF *const svff, float freq):&#160;leaf-filters.c']]],
+  ['tsvf_5fsetfreqandq_1688',['tSVF_setFreqAndQ',['../group__tsvf.html#gaf86bb651efd0ad3c7e782c71719e7a0f',1,'tSVF_setFreqAndQ(tSVF *const svff, float freq, float Q):&#160;leaf-filters.c'],['../group__tsvf.html#gaf86bb651efd0ad3c7e782c71719e7a0f',1,'tSVF_setFreqAndQ(tSVF *const svff, float freq, float Q):&#160;leaf-filters.c']]],
+  ['tsvf_5fsetq_1689',['tSVF_setQ',['../group__tsvf.html#ga29e6205846d379ffdd4131d0174c8784',1,'tSVF_setQ(tSVF *const, float Q):&#160;leaf-filters.c'],['../group__tsvf.html#ga29e6205846d379ffdd4131d0174c8784',1,'tSVF_setQ(tSVF *const svff, float Q):&#160;leaf-filters.c']]],
+  ['tsvf_5ftick_1690',['tSVF_tick',['../group__tsvf.html#gaef34c602f1f798b4e3200c02a09e193b',1,'tSVF_tick(tSVF *const, float v0):&#160;leaf-filters.c'],['../group__tsvf.html#gaef34c602f1f798b4e3200c02a09e193b',1,'tSVF_tick(tSVF *const svff, float v0):&#160;leaf-filters.c']]],
+  ['ttable_5ffree_1691',['tTable_free',['../group__ttable.html#ga23c68eb02b6f856e4cabd793f386ef3d',1,'tTable_free(tTable *const osc):&#160;leaf-oscillators.c'],['../group__ttable.html#ga23c68eb02b6f856e4cabd793f386ef3d',1,'tTable_free(tTable *const cy):&#160;leaf-oscillators.c']]],
+  ['ttable_5finit_1692',['tTable_init',['../group__ttable.html#ga34f0802957415853e9dc64b7fa9355eb',1,'tTable_init(tTable *const osc, float *table, int size, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__ttable.html#ga34f0802957415853e9dc64b7fa9355eb',1,'tTable_init(tTable *const cy, float *waveTable, int size, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['ttable_5finittopool_1693',['tTable_initToPool',['../group__ttable.html#gae75a6c3468ae7801c86867860152117b',1,'tTable_initToPool(tTable *const osc, float *table, int size, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__ttable.html#gae75a6c3468ae7801c86867860152117b',1,'tTable_initToPool(tTable *const cy, float *waveTable, int size, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['ttable_5fsetfreq_1694',['tTable_setFreq',['../group__ttable.html#ga2dcff23d9b0e98fd706d4880c766320a',1,'tTable_setFreq(tTable *const osc, float freq):&#160;leaf-oscillators.c'],['../group__ttable.html#ga2dcff23d9b0e98fd706d4880c766320a',1,'tTable_setFreq(tTable *const cy, float freq):&#160;leaf-oscillators.c']]],
+  ['ttable_5ftick_1695',['tTable_tick',['../group__ttable.html#ga59f59db52bf98cf1852d7dcd6f09122c',1,'tTable_tick(tTable *const osc):&#160;leaf-oscillators.c'],['../group__ttable.html#ga59f59db52bf98cf1852d7dcd6f09122c',1,'tTable_tick(tTable *const cy):&#160;leaf-oscillators.c']]],
+  ['ttalkbox_5ffree_1696',['tTalkbox_free',['../group__ttalkbox.html#ga5f1f85266d1c3e968b9f277fd6530e61',1,'tTalkbox_free(tTalkbox *const):&#160;leaf-effects.c'],['../group__ttalkbox.html#ga5f1f85266d1c3e968b9f277fd6530e61',1,'tTalkbox_free(tTalkbox *const voc):&#160;leaf-effects.c']]],
+  ['ttalkbox_5finit_1697',['tTalkbox_init',['../group__ttalkbox.html#ga18a1ddfa2f61e60d6ebef394d65f08c6',1,'tTalkbox_init(tTalkbox *const, int bufsize, LEAF *const leaf):&#160;leaf-effects.c'],['../group__ttalkbox.html#ga18a1ddfa2f61e60d6ebef394d65f08c6',1,'tTalkbox_init(tTalkbox *const voc, int bufsize, LEAF *const leaf):&#160;leaf-effects.c']]],
+  ['ttalkbox_5finittopool_1698',['tTalkbox_initToPool',['../group__ttalkbox.html#ga8f10b76186682cda5b4a546df84c35e3',1,'tTalkbox_initToPool(tTalkbox *const, int bufsize, tMempool *const):&#160;leaf-effects.c'],['../group__ttalkbox.html#ga8f10b76186682cda5b4a546df84c35e3',1,'tTalkbox_initToPool(tTalkbox *const voc, int bufsize, tMempool *const mp):&#160;leaf-effects.c']]],
+  ['ttalkbox_5flpcdurbin_1699',['tTalkbox_lpcDurbin',['../group__ttalkbox.html#gaaba470c9d175927857b9befd5e903da8',1,'tTalkbox_lpcDurbin(float *r, int p, float *k, float *g):&#160;leaf-effects.c'],['../group__ttalkbox.html#gaaba470c9d175927857b9befd5e903da8',1,'tTalkbox_lpcDurbin(float *r, int p, float *k, float *g):&#160;leaf-effects.c']]],
+  ['ttalkbox_5fsetfreeze_1700',['tTalkbox_setFreeze',['../group__ttalkbox.html#ga9345cb1b1bdb78e2c264dc711c29050b',1,'tTalkbox_setFreeze(tTalkbox *const voc, float freeze):&#160;leaf-effects.c'],['../group__ttalkbox.html#ga9345cb1b1bdb78e2c264dc711c29050b',1,'tTalkbox_setFreeze(tTalkbox *const voc, float freeze):&#160;leaf-effects.c']]],
+  ['ttalkbox_5fsetquality_1701',['tTalkbox_setQuality',['../group__ttalkbox.html#gae0e16e4627683deeb7d849f9f6b13367',1,'tTalkbox_setQuality(tTalkbox *const, float quality):&#160;leaf-effects.c'],['../group__ttalkbox.html#gae0e16e4627683deeb7d849f9f6b13367',1,'tTalkbox_setQuality(tTalkbox *const voc, float quality):&#160;leaf-effects.c']]],
+  ['ttalkbox_5fsetwarpfactor_1702',['tTalkbox_setWarpFactor',['../group__ttalkbox.html#ga15d263af4269739442c7187a403996e4',1,'tTalkbox_setWarpFactor(tTalkbox *const voc, float warp):&#160;leaf-effects.c'],['../group__ttalkbox.html#ga15d263af4269739442c7187a403996e4',1,'tTalkbox_setWarpFactor(tTalkbox *const voc, float warpFactor):&#160;leaf-effects.c']]],
+  ['ttalkbox_5fsetwarpon_1703',['tTalkbox_setWarpOn',['../group__ttalkbox.html#ga37320fd9c7f3c4d065fa4ae27431bc61',1,'tTalkbox_setWarpOn(tTalkbox *const voc, float warpOn):&#160;leaf-effects.c'],['../group__ttalkbox.html#ga37320fd9c7f3c4d065fa4ae27431bc61',1,'tTalkbox_setWarpOn(tTalkbox *const voc, float warpOn):&#160;leaf-effects.c']]],
+  ['ttalkbox_5fsuspend_1704',['tTalkbox_suspend',['../group__ttalkbox.html#ga361f8a48a8ac118804852e99022a2144',1,'tTalkbox_suspend(tTalkbox *const):&#160;leaf-effects.c'],['../group__ttalkbox.html#ga361f8a48a8ac118804852e99022a2144',1,'tTalkbox_suspend(tTalkbox *const voc):&#160;leaf-effects.c']]],
+  ['ttalkbox_5ftick_1705',['tTalkbox_tick',['../group__ttalkbox.html#gab45e4c3be7561f157b4ab47de8d939db',1,'tTalkbox_tick(tTalkbox *const, float synth, float voice):&#160;leaf-effects.c'],['../group__ttalkbox.html#gab45e4c3be7561f157b4ab47de8d939db',1,'tTalkbox_tick(tTalkbox *const voc, float synth, float voice):&#160;leaf-effects.c']]],
+  ['ttalkbox_5ftickfrozen_1706',['tTalkbox_tickFrozen',['../group__ttalkbox.html#gafd5193315cf309b8c7607795bc5ad995',1,'leaf-effects.h']]],
+  ['ttalkbox_5fupdate_1707',['tTalkbox_update',['../group__ttalkbox.html#gabdfa3fca0a50509623d4c57d851f3315',1,'tTalkbox_update(tTalkbox *const):&#160;leaf-effects.c'],['../group__ttalkbox.html#gabdfa3fca0a50509623d4c57d851f3315',1,'tTalkbox_update(tTalkbox *const voc):&#160;leaf-effects.c']]],
+  ['ttalkbox_5fwarpedautocorrelate_1708',['tTalkbox_warpedAutocorrelate',['../group__ttalkbox.html#ga881ae8cbae41f12f2fb4a7446d73a6be',1,'tTalkbox_warpedAutocorrelate(float *x, double *dl, double *Rt, unsigned int L, float *R, unsigned int P, float lambda):&#160;leaf-effects.c'],['../group__ttalkbox.html#ga881ae8cbae41f12f2fb4a7446d73a6be',1,'tTalkbox_warpedAutocorrelate(float *x, double *dl, double *Rt, unsigned int L, float *R, unsigned int P, float lambda):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5ffree_1709',['tTalkboxFloat_free',['../group__ttalkboxfloat.html#gabbd684033b9869aaac6eb57a694904d9',1,'tTalkboxFloat_free(tTalkboxFloat *const):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#gabbd684033b9869aaac6eb57a694904d9',1,'tTalkboxFloat_free(tTalkboxFloat *const voc):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5finit_1710',['tTalkboxFloat_init',['../group__ttalkboxfloat.html#ga6d29a46ee0c008f30e008f7634524e10',1,'tTalkboxFloat_init(tTalkboxFloat *const, int bufsize, LEAF *const leaf):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#ga6d29a46ee0c008f30e008f7634524e10',1,'tTalkboxFloat_init(tTalkboxFloat *const voc, int bufsize, LEAF *const leaf):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5finittopool_1711',['tTalkboxFloat_initToPool',['../group__ttalkboxfloat.html#ga10ab230431665f2b621fd0b21b366e02',1,'tTalkboxFloat_initToPool(tTalkboxFloat *const, int bufsize, tMempool *const):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#ga10ab230431665f2b621fd0b21b366e02',1,'tTalkboxFloat_initToPool(tTalkboxFloat *const voc, int bufsize, tMempool *const mp):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5flpcdurbin_1712',['tTalkboxFloat_lpcDurbin',['../group__ttalkboxfloat.html#ga667dcd77640c7a6b2fa3995d6d2190be',1,'tTalkboxFloat_lpcDurbin(float *r, int p, float *k, float *g):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#ga667dcd77640c7a6b2fa3995d6d2190be',1,'tTalkboxFloat_lpcDurbin(float *r, int p, float *k, float *g):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5fsetquality_1713',['tTalkboxFloat_setQuality',['../group__ttalkboxfloat.html#ga9f9fbc4bd62efcd9502a0217740e5366',1,'tTalkboxFloat_setQuality(tTalkboxFloat *const, float quality):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#ga9f9fbc4bd62efcd9502a0217740e5366',1,'tTalkboxFloat_setQuality(tTalkboxFloat *const voc, float quality):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5fsetwarpfactor_1714',['tTalkboxFloat_setWarpFactor',['../group__ttalkboxfloat.html#gad01eb39b5892107d65a3590f3ea69fec',1,'tTalkboxFloat_setWarpFactor(tTalkboxFloat *const voc, float warp):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#gad01eb39b5892107d65a3590f3ea69fec',1,'tTalkboxFloat_setWarpFactor(tTalkboxFloat *const voc, float warpFactor):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5fsuspend_1715',['tTalkboxFloat_suspend',['../group__ttalkboxfloat.html#gac8456d804e084f2c4938d1255c723cfc',1,'tTalkboxFloat_suspend(tTalkboxFloat *const):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#gac8456d804e084f2c4938d1255c723cfc',1,'tTalkboxFloat_suspend(tTalkboxFloat *const voc):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5ftick_1716',['tTalkboxFloat_tick',['../group__ttalkboxfloat.html#ga83b3a42d6348a062eaed4eace6fa9461',1,'tTalkboxFloat_tick(tTalkboxFloat *const, float synth, float voice):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#ga83b3a42d6348a062eaed4eace6fa9461',1,'tTalkboxFloat_tick(tTalkboxFloat *const voc, float synth, float voice):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5ftickfrozen_1717',['tTalkboxFloat_tickFrozen',['../group__ttalkboxfloat.html#ga7d3e3bc6ecf3e1bd9c1ebe5f717ba06b',1,'leaf-effects.h']]],
+  ['ttalkboxfloat_5fupdate_1718',['tTalkboxFloat_update',['../group__ttalkboxfloat.html#ga994b70735a97c25f30a7f26981c3334e',1,'tTalkboxFloat_update(tTalkboxFloat *const):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#ga994b70735a97c25f30a7f26981c3334e',1,'tTalkboxFloat_update(tTalkboxFloat *const voc):&#160;leaf-effects.c']]],
+  ['ttalkboxfloat_5fwarpedautocorrelate_1719',['tTalkboxFloat_warpedAutocorrelate',['../group__ttalkboxfloat.html#gadcbdd544e5d6a3d5b46cead0044dfcfa',1,'tTalkboxFloat_warpedAutocorrelate(float *x, float *dl, float *Rt, unsigned int L, float *R, unsigned int P, float lambda):&#160;leaf-effects.c'],['../group__ttalkboxfloat.html#gadcbdd544e5d6a3d5b46cead0044dfcfa',1,'tTalkboxFloat_warpedAutocorrelate(float *x, float *dl, float *Rt, unsigned int L, float *R, unsigned int P, float lambda):&#160;leaf-effects.c']]],
+  ['ttapedelay_5faddto_1720',['tTapeDelay_addTo',['../group__ttapedelay.html#ga17c1f8359ab1b2fd9c38981ca7d018f1',1,'tTapeDelay_addTo(tTapeDelay *const, float value, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga17c1f8359ab1b2fd9c38981ca7d018f1',1,'tTapeDelay_addTo(tTapeDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['ttapedelay_5fclear_1721',['tTapeDelay_clear',['../group__ttapedelay.html#ga984e1e72996c5833bcd99c39bf189bcb',1,'tTapeDelay_clear(tTapeDelay *const):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga984e1e72996c5833bcd99c39bf189bcb',1,'tTapeDelay_clear(tTapeDelay *const dl):&#160;leaf-delay.c']]],
+  ['ttapedelay_5ffree_1722',['tTapeDelay_free',['../group__ttapedelay.html#ga4150731cc6b415a799818e32eabe5cc2',1,'tTapeDelay_free(tTapeDelay *const):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga4150731cc6b415a799818e32eabe5cc2',1,'tTapeDelay_free(tTapeDelay *const dl):&#160;leaf-delay.c']]],
+  ['ttapedelay_5fgetdelay_1723',['tTapeDelay_getDelay',['../group__ttapedelay.html#ga5141a6c872bda215f52f93d480af75d4',1,'tTapeDelay_getDelay(tTapeDelay *const):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga5141a6c872bda215f52f93d480af75d4',1,'tTapeDelay_getDelay(tTapeDelay *dl):&#160;leaf-delay.c']]],
+  ['ttapedelay_5fgetlastin_1724',['tTapeDelay_getLastIn',['../group__ttapedelay.html#ga19c905254cabf4d51f863ee8d92804ec',1,'tTapeDelay_getLastIn(tTapeDelay *const):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga19c905254cabf4d51f863ee8d92804ec',1,'tTapeDelay_getLastIn(tTapeDelay *const dl):&#160;leaf-delay.c']]],
+  ['ttapedelay_5fgetlastout_1725',['tTapeDelay_getLastOut',['../group__ttapedelay.html#gae22aee2d1f8edf088a5df1f4da2a2f9f',1,'tTapeDelay_getLastOut(tTapeDelay *const):&#160;leaf-delay.c'],['../group__ttapedelay.html#gae22aee2d1f8edf088a5df1f4da2a2f9f',1,'tTapeDelay_getLastOut(tTapeDelay *const dl):&#160;leaf-delay.c']]],
+  ['ttapedelay_5fincrementinpoint_1726',['tTapeDelay_incrementInPoint',['../group__ttapedelay.html#ga2207c4d6a5ea82102ec5e26dba957c66',1,'tTapeDelay_incrementInPoint(tTapeDelay *const dl):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga2207c4d6a5ea82102ec5e26dba957c66',1,'tTapeDelay_incrementInPoint(tTapeDelay *const dl):&#160;leaf-delay.c']]],
+  ['ttapedelay_5finit_1727',['tTapeDelay_init',['../group__ttapedelay.html#ga11ce0d93fc719d09f9d2832086cb2e7f',1,'tTapeDelay_init(tTapeDelay *const, float delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga11ce0d93fc719d09f9d2832086cb2e7f',1,'tTapeDelay_init(tTapeDelay *const dl, float delay, uint32_t maxDelay, LEAF *const leaf):&#160;leaf-delay.c']]],
+  ['ttapedelay_5finittopool_1728',['tTapeDelay_initToPool',['../group__ttapedelay.html#ga2ceac9b3d3870c4a8ad0b9f8b795f829',1,'tTapeDelay_initToPool(tTapeDelay *const, float delay, uint32_t maxDelay, tMempool *const):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga2ceac9b3d3870c4a8ad0b9f8b795f829',1,'tTapeDelay_initToPool(tTapeDelay *const dl, float delay, uint32_t maxDelay, tMempool *const mp):&#160;leaf-delay.c']]],
+  ['ttapedelay_5fsetdelay_1729',['tTapeDelay_setDelay',['../group__ttapedelay.html#ga99b94b13f3841e3b4b4915301854c03e',1,'tTapeDelay_setDelay(tTapeDelay *const, float delay):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga99b94b13f3841e3b4b4915301854c03e',1,'tTapeDelay_setDelay(tTapeDelay *const dl, float delay):&#160;leaf-delay.c']]],
+  ['ttapedelay_5ftapin_1730',['tTapeDelay_tapIn',['../group__ttapedelay.html#gae3e1efc7c18c73defe5cdb0b9fa18e30',1,'tTapeDelay_tapIn(tTapeDelay *const, float in, uint32_t tapDelay):&#160;leaf-delay.c'],['../group__ttapedelay.html#gae3e1efc7c18c73defe5cdb0b9fa18e30',1,'tTapeDelay_tapIn(tTapeDelay *const dl, float value, uint32_t tapDelay):&#160;leaf-delay.c']]],
+  ['ttapedelay_5ftapout_1731',['tTapeDelay_tapOut',['../group__ttapedelay.html#ga50a4fcd89b612b1633e47d14d9de8844',1,'tTapeDelay_tapOut(tTapeDelay *const d, float tapDelay):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga50a4fcd89b612b1633e47d14d9de8844',1,'tTapeDelay_tapOut(tTapeDelay *const dl, float tapDelay):&#160;leaf-delay.c']]],
+  ['ttapedelay_5ftick_1732',['tTapeDelay_tick',['../group__ttapedelay.html#ga3327247d0d5121629f841e355aa17780',1,'tTapeDelay_tick(tTapeDelay *const, float sample):&#160;leaf-delay.c'],['../group__ttapedelay.html#ga3327247d0d5121629f841e355aa17780',1,'tTapeDelay_tick(tTapeDelay *const dl, float input):&#160;leaf-delay.c']]],
+  ['tthreshold_5ffree_1733',['tThreshold_free',['../group__tthreshold.html#ga559cdc78b961faa603a1fbe53b419ab6',1,'tThreshold_free(tThreshold *const):&#160;leaf-dynamics.c'],['../group__tthreshold.html#ga559cdc78b961faa603a1fbe53b419ab6',1,'tThreshold_free(tThreshold *const th):&#160;leaf-dynamics.c']]],
+  ['tthreshold_5finit_1734',['tThreshold_init',['../group__tthreshold.html#gac5e076322e91d0fc51bb78f670ae6654',1,'tThreshold_init(tThreshold *const, float low, float high, LEAF *const leaf):&#160;leaf-dynamics.c'],['../group__tthreshold.html#gac5e076322e91d0fc51bb78f670ae6654',1,'tThreshold_init(tThreshold *const th, float low, float high, LEAF *const leaf):&#160;leaf-dynamics.c']]],
+  ['tthreshold_5finittopool_1735',['tThreshold_initToPool',['../group__tthreshold.html#ga8929d72fab02f08b94568f2b26b26218',1,'tThreshold_initToPool(tThreshold *const, float low, float high, tMempool *const):&#160;leaf-dynamics.c'],['../group__tthreshold.html#ga8929d72fab02f08b94568f2b26b26218',1,'tThreshold_initToPool(tThreshold *const th, float low, float high, tMempool *const mp):&#160;leaf-dynamics.c']]],
+  ['tthreshold_5fsethigh_1736',['tThreshold_setHigh',['../group__tthreshold.html#gad9e0d9f799c1c63cb6c6847518ee6796',1,'tThreshold_setHigh(tThreshold *const, float high):&#160;leaf-dynamics.c'],['../group__tthreshold.html#gad9e0d9f799c1c63cb6c6847518ee6796',1,'tThreshold_setHigh(tThreshold *const th, float high):&#160;leaf-dynamics.c']]],
+  ['tthreshold_5fsetlow_1737',['tThreshold_setLow',['../group__tthreshold.html#ga20ecba1e635f7ae39b7f3509ea0e2e28',1,'tThreshold_setLow(tThreshold *const, float low):&#160;leaf-dynamics.c'],['../group__tthreshold.html#ga20ecba1e635f7ae39b7f3509ea0e2e28',1,'tThreshold_setLow(tThreshold *const th, float low):&#160;leaf-dynamics.c']]],
+  ['tthreshold_5ftick_1738',['tThreshold_tick',['../group__tthreshold.html#ga2e7f0159dfd715e5f7c7076d73bd0015',1,'tThreshold_tick(tThreshold *const, float input):&#160;leaf-dynamics.c'],['../group__tthreshold.html#ga2e7f0159dfd715e5f7c7076d73bd0015',1,'tThreshold_tick(tThreshold *const th, float in):&#160;leaf-dynamics.c']]],
+  ['ttri_5ffree_1739',['tTri_free',['../group__ttri.html#ga49739309d127ae64ee2854d771b04fe2',1,'tTri_free(tTri *const osc):&#160;leaf-oscillators.c'],['../group__ttri.html#ga49739309d127ae64ee2854d771b04fe2',1,'tTri_free(tTri *const cy):&#160;leaf-oscillators.c']]],
+  ['ttri_5finit_1740',['tTri_init',['../group__ttri.html#ga84143634f91977f6617ca0b7e50b649d',1,'tTri_init(tTri *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__ttri.html#ga84143634f91977f6617ca0b7e50b649d',1,'tTri_init(tTri *const osc, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['ttri_5finittopool_1741',['tTri_initToPool',['../group__ttri.html#gabad427341c15462ec3fe9f0b36f3e26c',1,'tTri_initToPool(tTri *const osc, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__ttri.html#gabad427341c15462ec3fe9f0b36f3e26c',1,'tTri_initToPool(tTri *const osc, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['ttri_5fsetfreq_1742',['tTri_setFreq',['../group__ttri.html#gab77b067320cc0124252fdd92d0bcdef0',1,'tTri_setFreq(tTri *const osc, float freq):&#160;leaf-oscillators.c'],['../group__ttri.html#gab77b067320cc0124252fdd92d0bcdef0',1,'tTri_setFreq(tTri *const osc, float freq):&#160;leaf-oscillators.c']]],
+  ['ttri_5fsetskew_1743',['tTri_setSkew',['../group__ttri.html#gab6740de0f9cfdfe60f03c4bcb72482f8',1,'tTri_setSkew(tTri *const osc, float skew):&#160;leaf-oscillators.c'],['../group__ttri.html#gab6740de0f9cfdfe60f03c4bcb72482f8',1,'tTri_setSkew(tTri *const osc, float skew):&#160;leaf-oscillators.c']]],
+  ['ttri_5ftick_1744',['tTri_tick',['../group__ttri.html#gabf569fb94b1ed5d1695e8c09f9b0f09d',1,'tTri_tick(tTri *const osc):&#160;leaf-oscillators.c'],['../group__ttri.html#gabf569fb94b1ed5d1695e8c09f9b0f09d',1,'tTri_tick(tTri *const osc):&#160;leaf-oscillators.c']]],
+  ['ttriangle_5ffree_1745',['tTriangle_free',['../group__ttriangle.html#gabb07623117c0d448839b808df2ea6f35',1,'tTriangle_free(tTriangle *const osc):&#160;leaf-oscillators.c'],['../group__ttriangle.html#gabb07623117c0d448839b808df2ea6f35',1,'tTriangle_free(tTriangle *const cy):&#160;leaf-oscillators.c']]],
+  ['ttriangle_5finit_1746',['tTriangle_init',['../group__ttriangle.html#ga50f2f0c7a69471479484560a94a11fbb',1,'tTriangle_init(tTriangle *const osc, LEAF *const leaf):&#160;leaf-oscillators.c'],['../group__ttriangle.html#ga50f2f0c7a69471479484560a94a11fbb',1,'tTriangle_init(tTriangle *const cy, LEAF *const leaf):&#160;leaf-oscillators.c']]],
+  ['ttriangle_5finittopool_1747',['tTriangle_initToPool',['../group__ttriangle.html#gac50568ee121737e782e495e9afd0d523',1,'tTriangle_initToPool(tTriangle *const osc, tMempool *const mempool):&#160;leaf-oscillators.c'],['../group__ttriangle.html#gac50568ee121737e782e495e9afd0d523',1,'tTriangle_initToPool(tTriangle *const cy, tMempool *const mp):&#160;leaf-oscillators.c']]],
+  ['ttriangle_5fsetfreq_1748',['tTriangle_setFreq',['../group__ttriangle.html#ga02f6034d5442b55d1beda63fe7918fcb',1,'tTriangle_setFreq(tTriangle *const osc, float freq):&#160;leaf-oscillators.c'],['../group__ttriangle.html#ga02f6034d5442b55d1beda63fe7918fcb',1,'tTriangle_setFreq(tTriangle *const cy, float freq):&#160;leaf-oscillators.c']]],
+  ['ttriangle_5ftick_1749',['tTriangle_tick',['../group__ttriangle.html#ga036ec99241852ea7336a3a7e8bcd2fc7',1,'tTriangle_tick(tTriangle *const osc):&#160;leaf-oscillators.c'],['../group__ttriangle.html#ga036ec99241852ea7336a3a7e8bcd2fc7',1,'tTriangle_tick(tTriangle *const cy):&#160;leaf-oscillators.c']]],
+  ['ttwopole_5ffree_1750',['tTwoPole_free',['../group__ttwopole.html#ga20e88350ffe6c751a0e2248bab393706',1,'tTwoPole_free(tTwoPole *const):&#160;leaf-filters.c'],['../group__ttwopole.html#ga20e88350ffe6c751a0e2248bab393706',1,'tTwoPole_free(tTwoPole *const ft):&#160;leaf-filters.c']]],
+  ['ttwopole_5finit_1751',['tTwoPole_init',['../group__ttwopole.html#ga437e9e3fd63636ab7fefcd58462278fa',1,'tTwoPole_init(tTwoPole *const, LEAF *const leaf):&#160;leaf-filters.c'],['../group__ttwopole.html#ga437e9e3fd63636ab7fefcd58462278fa',1,'tTwoPole_init(tTwoPole *const ft, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['ttwopole_5finittopool_1752',['tTwoPole_initToPool',['../group__ttwopole.html#ga55ee401b5734305e263e0095d87e221b',1,'tTwoPole_initToPool(tTwoPole *const, tMempool *const):&#160;leaf-filters.c'],['../group__ttwopole.html#ga55ee401b5734305e263e0095d87e221b',1,'tTwoPole_initToPool(tTwoPole *const ft, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['ttwopole_5fseta1_1753',['tTwoPole_setA1',['../group__ttwopole.html#ga914f59f7f7f48b948ac21f1dc76bbb30',1,'tTwoPole_setA1(tTwoPole *const, float a1):&#160;leaf-filters.c'],['../group__ttwopole.html#ga914f59f7f7f48b948ac21f1dc76bbb30',1,'tTwoPole_setA1(tTwoPole *const ft, float a1):&#160;leaf-filters.c']]],
+  ['ttwopole_5fseta2_1754',['tTwoPole_setA2',['../group__ttwopole.html#ga8b1df900582e1961bab7ea00a6648c3d',1,'tTwoPole_setA2(tTwoPole *const, float a2):&#160;leaf-filters.c'],['../group__ttwopole.html#ga8b1df900582e1961bab7ea00a6648c3d',1,'tTwoPole_setA2(tTwoPole *const ft, float a2):&#160;leaf-filters.c']]],
+  ['ttwopole_5fsetb0_1755',['tTwoPole_setB0',['../group__ttwopole.html#gaa643934d1d292fcf856fc1be6b7eb3a8',1,'tTwoPole_setB0(tTwoPole *const, float b0):&#160;leaf-filters.c'],['../group__ttwopole.html#gaa643934d1d292fcf856fc1be6b7eb3a8',1,'tTwoPole_setB0(tTwoPole *const ft, float b0):&#160;leaf-filters.c']]],
+  ['ttwopole_5fsetcoefficients_1756',['tTwoPole_setCoefficients',['../group__ttwopole.html#ga2a70b13cb9039c9dd9c1a1407c26ff4c',1,'tTwoPole_setCoefficients(tTwoPole *const, float b0, float a1, float a2):&#160;leaf-filters.c'],['../group__ttwopole.html#ga2a70b13cb9039c9dd9c1a1407c26ff4c',1,'tTwoPole_setCoefficients(tTwoPole *const ft, float b0, float a1, float a2):&#160;leaf-filters.c']]],
+  ['ttwopole_5fsetgain_1757',['tTwoPole_setGain',['../group__ttwopole.html#gad1f982ce04f2d4d4505b77bbc70d5080',1,'tTwoPole_setGain(tTwoPole *const, float gain):&#160;leaf-filters.c'],['../group__ttwopole.html#gad1f982ce04f2d4d4505b77bbc70d5080',1,'tTwoPole_setGain(tTwoPole *const ft, float gain):&#160;leaf-filters.c']]],
+  ['ttwopole_5fsetresonance_1758',['tTwoPole_setResonance',['../group__ttwopole.html#gaef4a460381c662c98f60cce91a1f8924',1,'tTwoPole_setResonance(tTwoPole *const, float freq, float radius, int normalize):&#160;leaf-filters.c'],['../group__ttwopole.html#gaef4a460381c662c98f60cce91a1f8924',1,'tTwoPole_setResonance(tTwoPole *const ft, float frequency, float radius, int normalize):&#160;leaf-filters.c']]],
+  ['ttwopole_5ftick_1759',['tTwoPole_tick',['../group__ttwopole.html#ga98456b845592b69f0088421c46d25e7c',1,'tTwoPole_tick(tTwoPole *const, float input):&#160;leaf-filters.c'],['../group__ttwopole.html#ga98456b845592b69f0088421c46d25e7c',1,'tTwoPole_tick(tTwoPole *const ft, float input):&#160;leaf-filters.c']]],
+  ['ttwozero_5ffree_1760',['tTwoZero_free',['../group__ttwozero.html#gadc24b26d9a21905fe56a42a6eeec70a1',1,'tTwoZero_free(tTwoZero *const):&#160;leaf-filters.c'],['../group__ttwozero.html#gadc24b26d9a21905fe56a42a6eeec70a1',1,'tTwoZero_free(tTwoZero *const ft):&#160;leaf-filters.c']]],
+  ['ttwozero_5finit_1761',['tTwoZero_init',['../group__ttwozero.html#gacebbb6bc52b6f785d3209369366f4932',1,'tTwoZero_init(tTwoZero *const, LEAF *const leaf):&#160;leaf-filters.c'],['../group__ttwozero.html#gacebbb6bc52b6f785d3209369366f4932',1,'tTwoZero_init(tTwoZero *const ft, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['ttwozero_5finittopool_1762',['tTwoZero_initToPool',['../group__ttwozero.html#ga1a327119904fbcdb8f71f28629bb14d4',1,'tTwoZero_initToPool(tTwoZero *const, tMempool *const):&#160;leaf-filters.c'],['../group__ttwozero.html#ga1a327119904fbcdb8f71f28629bb14d4',1,'tTwoZero_initToPool(tTwoZero *const ft, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['ttwozero_5fsetb0_1763',['tTwoZero_setB0',['../group__ttwozero.html#gae344592b94dcf9493aa9fdb9b363b8ac',1,'tTwoZero_setB0(tTwoZero *const, float b0):&#160;leaf-filters.c'],['../group__ttwozero.html#gae344592b94dcf9493aa9fdb9b363b8ac',1,'tTwoZero_setB0(tTwoZero *const ft, float b0):&#160;leaf-filters.c']]],
+  ['ttwozero_5fsetb1_1764',['tTwoZero_setB1',['../group__ttwozero.html#ga8f7eea8cd31ae96e300d8398ee988c8b',1,'tTwoZero_setB1(tTwoZero *const, float b1):&#160;leaf-filters.c'],['../group__ttwozero.html#ga8f7eea8cd31ae96e300d8398ee988c8b',1,'tTwoZero_setB1(tTwoZero *const ft, float b1):&#160;leaf-filters.c']]],
+  ['ttwozero_5fsetb2_1765',['tTwoZero_setB2',['../group__ttwozero.html#ga57cfdc780478243c74335fb85fdc2620',1,'leaf-filters.h']]],
+  ['ttwozero_5fsetcoefficients_1766',['tTwoZero_setCoefficients',['../group__ttwozero.html#ga0875c43313e952ee2dcd86247efef096',1,'tTwoZero_setCoefficients(tTwoZero *const, float b0, float b1, float b2):&#160;leaf-filters.c'],['../group__ttwozero.html#ga0875c43313e952ee2dcd86247efef096',1,'tTwoZero_setCoefficients(tTwoZero *const ft, float b0, float b1, float b2):&#160;leaf-filters.c']]],
+  ['ttwozero_5fsetgain_1767',['tTwoZero_setGain',['../group__ttwozero.html#gaaeeb223d8133a3b4d6e249b1a9cbae05',1,'tTwoZero_setGain(tTwoZero *const, float gain):&#160;leaf-filters.c'],['../group__ttwozero.html#gaaeeb223d8133a3b4d6e249b1a9cbae05',1,'tTwoZero_setGain(tTwoZero *const ft, float gain):&#160;leaf-filters.c']]],
+  ['ttwozero_5fsetnotch_1768',['tTwoZero_setNotch',['../group__ttwozero.html#gafbcfc71b7c4eccc53cc104c3ceb83eba',1,'tTwoZero_setNotch(tTwoZero *const, float frequency, float radius):&#160;leaf-filters.c'],['../group__ttwozero.html#gafbcfc71b7c4eccc53cc104c3ceb83eba',1,'tTwoZero_setNotch(tTwoZero *const ft, float freq, float radius):&#160;leaf-filters.c']]],
+  ['ttwozero_5ftick_1769',['tTwoZero_tick',['../group__ttwozero.html#gaa717ce92df413200e3dfe7f5322cdd41',1,'tTwoZero_tick(tTwoZero *const, float input):&#160;leaf-filters.c'],['../group__ttwozero.html#gaa717ce92df413200e3dfe7f5322cdd41',1,'tTwoZero_tick(tTwoZero *const ft, float input):&#160;leaf-filters.c']]],
+  ['tvocoder_5ffree_1770',['tVocoder_free',['../group__tvocoder.html#gaa54cfb22d5fab7c12d70d7e5fd4a0cd0',1,'tVocoder_free(tVocoder *const):&#160;leaf-effects.c'],['../group__tvocoder.html#gaa54cfb22d5fab7c12d70d7e5fd4a0cd0',1,'tVocoder_free(tVocoder *const voc):&#160;leaf-effects.c']]],
+  ['tvocoder_5finit_1771',['tVocoder_init',['../group__tvocoder.html#ga687d4d2f952579f5df6d9c280ef9e0eb',1,'tVocoder_init(tVocoder *const, LEAF *const leaf):&#160;leaf-effects.c'],['../group__tvocoder.html#ga687d4d2f952579f5df6d9c280ef9e0eb',1,'tVocoder_init(tVocoder *const voc, LEAF *const leaf):&#160;leaf-effects.c']]],
+  ['tvocoder_5finittopool_1772',['tVocoder_initToPool',['../group__tvocoder.html#gad625ecd68ef438606e5a82fe11a3484f',1,'tVocoder_initToPool(tVocoder *const, tMempool *const):&#160;leaf-effects.c'],['../group__tvocoder.html#gad625ecd68ef438606e5a82fe11a3484f',1,'tVocoder_initToPool(tVocoder *const voc, tMempool *const mp):&#160;leaf-effects.c']]],
+  ['tvocoder_5fsuspend_1773',['tVocoder_suspend',['../group__tvocoder.html#gae4c7fd1376d81bcfce49f4a8a407ec16',1,'tVocoder_suspend(tVocoder *const):&#160;leaf-effects.c'],['../group__tvocoder.html#gae4c7fd1376d81bcfce49f4a8a407ec16',1,'tVocoder_suspend(tVocoder *const voc):&#160;leaf-effects.c']]],
+  ['tvocoder_5ftick_1774',['tVocoder_tick',['../group__tvocoder.html#gaf809f26807d22a348156bbcced99ae91',1,'tVocoder_tick(tVocoder *const, float synth, float voice):&#160;leaf-effects.c'],['../group__tvocoder.html#gaf809f26807d22a348156bbcced99ae91',1,'tVocoder_tick(tVocoder *const voc, float synth, float voice):&#160;leaf-effects.c']]],
+  ['tvocoder_5fupdate_1775',['tVocoder_update',['../group__tvocoder.html#ga6ae72878b932a14fac7503e4f3226312',1,'tVocoder_update(tVocoder *const):&#160;leaf-effects.c'],['../group__tvocoder.html#ga6ae72878b932a14fac7503e4f3226312',1,'tVocoder_update(tVocoder *const voc):&#160;leaf-effects.c']]],
+  ['tvzfilter_5fbandwidthtor_1776',['tVZFilter_BandwidthToR',['../group__tvzfilter.html#gac639e85aa70295332ba927c8d9b99a73',1,'tVZFilter_BandwidthToR(tVZFilter *const vf, float B):&#160;leaf-filters.c'],['../group__tvzfilter.html#gac639e85aa70295332ba927c8d9b99a73',1,'tVZFilter_BandwidthToR(tVZFilter *const vf, float B):&#160;leaf-filters.c']]],
+  ['tvzfilter_5fcalccoeffs_1777',['tVZFilter_calcCoeffs',['../group__tvzfilter.html#ga9b926d729e03680d876a0c1e44603ccb',1,'tVZFilter_calcCoeffs(tVZFilter *const):&#160;leaf-filters.c'],['../group__tvzfilter.html#ga9b926d729e03680d876a0c1e44603ccb',1,'tVZFilter_calcCoeffs(tVZFilter *const vf):&#160;leaf-filters.c']]],
+  ['tvzfilter_5ffree_1778',['tVZFilter_free',['../group__tvzfilter.html#gac4bda1af30d4e883b2de0d7f35067a45',1,'tVZFilter_free(tVZFilter *const):&#160;leaf-filters.c'],['../group__tvzfilter.html#gac4bda1af30d4e883b2de0d7f35067a45',1,'tVZFilter_free(tVZFilter *const vf):&#160;leaf-filters.c']]],
+  ['tvzfilter_5finit_1779',['tVZFilter_init',['../group__tvzfilter.html#ga3c5672bd2d229be5201a8d4f6e81c9cf',1,'tVZFilter_init(tVZFilter *const, VZFilterType type, float freq, float Q, LEAF *const leaf):&#160;leaf-filters.c'],['../group__tvzfilter.html#ga3c5672bd2d229be5201a8d4f6e81c9cf',1,'tVZFilter_init(tVZFilter *const vf, VZFilterType type, float freq, float bandWidth, LEAF *const leaf):&#160;leaf-filters.c']]],
+  ['tvzfilter_5finittopool_1780',['tVZFilter_initToPool',['../group__tvzfilter.html#gadefd89eb319135397cd2aebe9d92ae19',1,'tVZFilter_initToPool(tVZFilter *const, VZFilterType type, float freq, float Q, tMempool *const):&#160;leaf-filters.c'],['../group__tvzfilter.html#gadefd89eb319135397cd2aebe9d92ae19',1,'tVZFilter_initToPool(tVZFilter *const vf, VZFilterType type, float freq, float bandWidth, tMempool *const mp):&#160;leaf-filters.c']]],
+  ['tvzfilter_5fsetbandwidth_1781',['tVZFilter_setBandwidth',['../group__tvzfilter.html#ga1a3a1fb6f92dd3ba35144337781c0fe2',1,'tVZFilter_setBandwidth(tVZFilter *const, float bandWidth):&#160;leaf-filters.c'],['../group__tvzfilter.html#ga1a3a1fb6f92dd3ba35144337781c0fe2',1,'tVZFilter_setBandwidth(tVZFilter *const vf, float B):&#160;leaf-filters.c']]],
+  ['tvzfilter_5fsetfreq_1782',['tVZFilter_setFreq',['../group__tvzfilter.html#ga2dcd4668daf45ce81c7dc4b1a5477c71',1,'tVZFilter_setFreq(tVZFilter *const, float freq):&#160;leaf-filters.c'],['../group__tvzfilter.html#ga2dcd4668daf45ce81c7dc4b1a5477c71',1,'tVZFilter_setFreq(tVZFilter *const vf, float freq):&#160;leaf-filters.c']]],
+  ['tvzfilter_5fsetfreqandbandwidth_1783',['tVZFilter_setFreqAndBandwidth',['../group__tvzfilter.html#gace98499c6b229162b8eb23d1df8dbb28',1,'tVZFilter_setFreqAndBandwidth(tVZFilter *const vf, float freq, float bw):&#160;leaf-filters.c'],['../group__tvzfilter.html#gace98499c6b229162b8eb23d1df8dbb28',1,'tVZFilter_setFreqAndBandwidth(tVZFilter *const vf, float freq, float bw):&#160;leaf-filters.c']]],
+  ['tvzfilter_5fsetgain_1784',['tVZFilter_setGain',['../group__tvzfilter.html#ga516f54dd1403fcba60aa1ba2b5d0f35d',1,'tVZFilter_setGain(tVZFilter *const, float gain):&#160;leaf-filters.c'],['../group__tvzfilter.html#ga516f54dd1403fcba60aa1ba2b5d0f35d',1,'tVZFilter_setGain(tVZFilter *const vf, float gain):&#160;leaf-filters.c']]],
+  ['tvzfilter_5fsetsamplerate_1785',['tVZFilter_setSampleRate',['../group__tvzfilter.html#ga2e4af322ef20fe128fddec1e30315a78',1,'tVZFilter_setSampleRate(tVZFilter *const, float sampleRate):&#160;leaf-filters.c'],['../group__tvzfilter.html#ga2e4af322ef20fe128fddec1e30315a78',1,'tVZFilter_setSampleRate(tVZFilter *const vf, float sampleRate):&#160;leaf-filters.c']]],
+  ['tvzfilter_5fsettype_1786',['tVZFilter_setType',['../group__tvzfilter.html#gaa7239af935c13f07e92f817c0a53c3d7',1,'tVZFilter_setType(tVZFilter *const, VZFilterType type):&#160;leaf-filters.c'],['../group__tvzfilter.html#gaa7239af935c13f07e92f817c0a53c3d7',1,'tVZFilter_setType(tVZFilter *const vf, VZFilterType type):&#160;leaf-filters.c']]],
+  ['tvzfilter_5ftick_1787',['tVZFilter_tick',['../group__tvzfilter.html#ga0fbbf089b751d1e31c796a3a4bdd3d64',1,'tVZFilter_tick(tVZFilter *const, float input):&#160;leaf-filters.c'],['../group__tvzfilter.html#ga0fbbf089b751d1e31c796a3a4bdd3d64',1,'tVZFilter_tick(tVZFilter *const vf, float in):&#160;leaf-filters.c']]],
+  ['tvzfilter_5ftickefficient_1788',['tVZFilter_tickEfficient',['../group__tvzfilter.html#gaa8b8a7061d00b6d4a507115f015a76cc',1,'tVZFilter_tickEfficient(tVZFilter *const vf, float in):&#160;leaf-filters.c'],['../group__tvzfilter.html#gaa8b8a7061d00b6d4a507115f015a76cc',1,'tVZFilter_tickEfficient(tVZFilter *const vf, float in):&#160;leaf-filters.c']]],
+  ['twavetable_5ffree_1789',['tWavetable_free',['../group__twavetable.html#ga54957a54c5f86392dc8b3105668425e5',1,'tWavetable_free(tWavetable *const osc):&#160;leaf-oscillators.c'],['../group__twavetable.html#ga54957a54c5f86392dc8b3105668425e5',1,'tWavetable_free(tWavetable *const cy):&#160;leaf-oscillators.c']]],
+  ['twavetable_5fsetfreq_1790',['tWavetable_setFreq',['../group__twavetable.html#gaf397a73fa707667cb0038b1be42896f1',1,'tWavetable_setFreq(tWavetable *const osc, float freq):&#160;leaf-oscillators.c'],['../group__twavetable.html#gaf397a73fa707667cb0038b1be42896f1',1,'tWavetable_setFreq(tWavetable *const cy, float freq):&#160;leaf-oscillators.c']]],
+  ['twavetable_5ftick_1791',['tWavetable_tick',['../group__twavetable.html#gad22ca7b75e09dd860286215aed1711b9',1,'tWavetable_tick(tWavetable *const osc):&#160;leaf-oscillators.c'],['../group__twavetable.html#gad22ca7b75e09dd860286215aed1711b9',1,'tWavetable_tick(tWavetable *const cy):&#160;leaf-oscillators.c']]],
+  ['twdf_5ffree_1792',['tWDF_free',['../group__twdf.html#ga286814ebe6a0757239c6403a0c9be9a4',1,'tWDF_free(tWDF *const):&#160;leaf-electrical.c'],['../group__twdf.html#ga286814ebe6a0757239c6403a0c9be9a4',1,'tWDF_free(tWDF *const wdf):&#160;leaf-electrical.c']]],
+  ['twdf_5fgetcurrent_1793',['tWDF_getCurrent',['../group__twdf.html#gace849a3c7401adf2cd9e4be561ff8163',1,'tWDF_getCurrent(tWDF *const):&#160;leaf-electrical.c'],['../group__twdf.html#gace849a3c7401adf2cd9e4be561ff8163',1,'tWDF_getCurrent(tWDF *const wdf):&#160;leaf-electrical.c']]],
+  ['twdf_5fgetportresistance_1794',['tWDF_getPortResistance',['../group__twdf.html#ga59e01adf3c85d097b41c7c12dc1da83c',1,'tWDF_getPortResistance(tWDF *const):&#160;leaf-electrical.c'],['../group__twdf.html#ga59e01adf3c85d097b41c7c12dc1da83c',1,'tWDF_getPortResistance(tWDF *const wdf):&#160;leaf-electrical.c']]],
+  ['twdf_5fgetreflectedwavedown_1795',['tWDF_getReflectedWaveDown',['../group__twdf.html#gaf88b3a106e610173e153c7e4ab3914c8',1,'tWDF_getReflectedWaveDown(tWDF *const, float input, float incident_wave):&#160;leaf-electrical.c'],['../group__twdf.html#gaf88b3a106e610173e153c7e4ab3914c8',1,'tWDF_getReflectedWaveDown(tWDF *const wdf, float input, float incident_wave):&#160;leaf-electrical.c']]],
+  ['twdf_5fgetreflectedwaveup_1796',['tWDF_getReflectedWaveUp',['../group__twdf.html#ga0419e60095b8caea022d117e2f51e902',1,'tWDF_getReflectedWaveUp(tWDF *const, float input):&#160;leaf-electrical.c'],['../group__twdf.html#ga0419e60095b8caea022d117e2f51e902',1,'tWDF_getReflectedWaveUp(tWDF *const wdf, float input):&#160;leaf-electrical.c']]],
+  ['twdf_5fgetvoltage_1797',['tWDF_getVoltage',['../group__twdf.html#ga225e0816681d5a7bb733487bd4202bae',1,'tWDF_getVoltage(tWDF *const):&#160;leaf-electrical.c'],['../group__twdf.html#ga225e0816681d5a7bb733487bd4202bae',1,'tWDF_getVoltage(tWDF *const wdf):&#160;leaf-electrical.c']]],
+  ['twdf_5finit_1798',['tWDF_init',['../group__twdf.html#ga8b1809a43641039fb095a2d5d1892b89',1,'tWDF_init(tWDF *const, WDFComponentType type, float value, tWDF *const rL, tWDF *const rR, LEAF *const leaf):&#160;leaf-electrical.c'],['../group__twdf.html#ga8b1809a43641039fb095a2d5d1892b89',1,'tWDF_init(tWDF *const wdf, WDFComponentType type, float value, tWDF *const rL, tWDF *const rR, LEAF *const leaf):&#160;leaf-electrical.c']]],
+  ['twdf_5finittopool_1799',['tWDF_initToPool',['../group__twdf.html#ga88589dcd1fe135010f251ac8e9e00b7b',1,'tWDF_initToPool(tWDF *const, WDFComponentType type, float value, tWDF *const rL, tWDF *const rR, tMempool *const):&#160;leaf-electrical.c'],['../group__twdf.html#ga88589dcd1fe135010f251ac8e9e00b7b',1,'tWDF_initToPool(tWDF *const wdf, WDFComponentType type, float value, tWDF *const rL, tWDF *const rR, tMempool *const mp):&#160;leaf-electrical.c']]],
+  ['twdf_5fisleaf_1800',['tWDF_isLeaf',['../group__twdf.html#gae10a7d10fa7d7928cdb0bb1e90dfba86',1,'tWDF_isLeaf(tWDF *const):&#160;leaf-electrical.c'],['../group__twdf.html#gae10a7d10fa7d7928cdb0bb1e90dfba86',1,'tWDF_isLeaf(tWDF *const wdf):&#160;leaf-electrical.c']]],
+  ['twdf_5fsetincidentwave_1801',['tWDF_setIncidentWave',['../group__twdf.html#gab6b8b9ae4786b3c185a22402d43c263c',1,'tWDF_setIncidentWave(tWDF *const, float incident_wave, float input):&#160;leaf-electrical.c'],['../group__twdf.html#gab6b8b9ae4786b3c185a22402d43c263c',1,'tWDF_setIncidentWave(tWDF *const wdf, float incident_wave, float input):&#160;leaf-electrical.c']]],
+  ['twdf_5fsetsamplerate_1802',['tWDF_setSampleRate',['../group__twdf.html#gac519b5869e0cc3eb08b328ee1eacf859',1,'tWDF_setSampleRate(tWDF *const, float sample_rate):&#160;leaf-electrical.c'],['../group__twdf.html#gac519b5869e0cc3eb08b328ee1eacf859',1,'tWDF_setSampleRate(tWDF *const wdf, float sample_rate):&#160;leaf-electrical.c']]],
+  ['twdf_5fsetvalue_1803',['tWDF_setValue',['../group__twdf.html#gaea4c5bf95c97f449b86e5e2371e048c0',1,'tWDF_setValue(tWDF *const, float value):&#160;leaf-electrical.c'],['../group__twdf.html#gaea4c5bf95c97f449b86e5e2371e048c0',1,'tWDF_setValue(tWDF *const wdf, float value):&#160;leaf-electrical.c']]],
+  ['twdf_5ftick_1804',['tWDF_tick',['../group__twdf.html#gaa6ac38775cde5d0f859fbd007d5e4154',1,'tWDF_tick(tWDF *const, float sample, tWDF *const outputPoint, uint8_t paramsChanged):&#160;leaf-electrical.c'],['../group__twdf.html#gaa6ac38775cde5d0f859fbd007d5e4154',1,'tWDF_tick(tWDF *const wdf, float sample, tWDF *const outputPoint, uint8_t paramsChanged):&#160;leaf-electrical.c']]],
+  ['tzerocrossingcounter_5ffree_1805',['tZeroCrossingCounter_free',['../group__tzerocrossingcounter.html#gaa1865545e8a1ac340af315e77547e75b',1,'tZeroCrossingCounter_free(tZeroCrossingCounter *const):&#160;leaf-analysis.c'],['../group__tzerocrossingcounter.html#gaa1865545e8a1ac340af315e77547e75b',1,'tZeroCrossingCounter_free(tZeroCrossingCounter *const zc):&#160;leaf-analysis.c']]],
+  ['tzerocrossingcounter_5finit_1806',['tZeroCrossingCounter_init',['../group__tzerocrossingcounter.html#ga8fed3441e5ac46750e3f7641d8b5d80b',1,'tZeroCrossingCounter_init(tZeroCrossingCounter *const, int maxWindowSize, LEAF *const leaf):&#160;leaf-analysis.c'],['../group__tzerocrossingcounter.html#ga8fed3441e5ac46750e3f7641d8b5d80b',1,'tZeroCrossingCounter_init(tZeroCrossingCounter *const zc, int maxWindowSize, LEAF *const leaf):&#160;leaf-analysis.c']]],
+  ['tzerocrossingcounter_5finittopool_1807',['tZeroCrossingCounter_initToPool',['../group__tzerocrossingcounter.html#ga797b0ef62ada70b352a22426a9915ae6',1,'tZeroCrossingCounter_initToPool(tZeroCrossingCounter *const, int maxWindowSize, tMempool *const mempool):&#160;leaf-analysis.c'],['../group__tzerocrossingcounter.html#ga797b0ef62ada70b352a22426a9915ae6',1,'tZeroCrossingCounter_initToPool(tZeroCrossingCounter *const zc, int maxWindowSize, tMempool *const mp):&#160;leaf-analysis.c']]],
+  ['tzerocrossingcounter_5fsetwindowsize_1808',['tZeroCrossingCounter_setWindowSize',['../group__tzerocrossingcounter.html#ga7810cc03d693da0d9752b61f5320d01b',1,'tZeroCrossingCounter_setWindowSize(tZeroCrossingCounter *const, float windowSize):&#160;leaf-analysis.c'],['../group__tzerocrossingcounter.html#ga7810cc03d693da0d9752b61f5320d01b',1,'tZeroCrossingCounter_setWindowSize(tZeroCrossingCounter *const zc, float windowSize):&#160;leaf-analysis.c']]],
+  ['tzerocrossingcounter_5ftick_1809',['tZeroCrossingCounter_tick',['../group__tzerocrossingcounter.html#gab53550020f2625049537b65655af0053',1,'tZeroCrossingCounter_tick(tZeroCrossingCounter *const, float input):&#160;leaf-analysis.c'],['../group__tzerocrossingcounter.html#gab53550020f2625049537b65655af0053',1,'tZeroCrossingCounter_tick(tZeroCrossingCounter *const zc, float input):&#160;leaf-analysis.c']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/groups_0.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/groups_0.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['analysis_1835',['Analysis',['../group__analysis.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/groups_1.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/groups_1.js
@@ -1,0 +1,6 @@
+var searchData=
+[
+  ['delay_1836',['Delay',['../group__delay.html',1,'']]],
+  ['distortion_1837',['Distortion',['../group__distortion.html',1,'']]],
+  ['dynamics_1838',['Dynamics',['../group__dynamics.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/groups_2.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/groups_2.js
@@ -1,0 +1,6 @@
+var searchData=
+[
+  ['effects_1839',['Effects',['../group__effects.html',1,'']]],
+  ['electrical_20models_1840',['Electrical Models',['../group__electrical.html',1,'']]],
+  ['envelopes_1841',['Envelopes',['../group__envelopes.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/groups_3.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/groups_3.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['filters_1842',['Filters',['../group__filters.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/groups_4.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/groups_4.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['instruments_1843',['Instruments',['../group__instruments.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/groups_5.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/groups_5.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['leaf_1844',['LEAF',['../group__leaf.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/groups_6.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/groups_6.js
@@ -1,0 +1,6 @@
+var searchData=
+[
+  ['math_1845',['Math',['../group__math.html',1,'']]],
+  ['mempool_1846',['Mempool',['../group__mempool.html',1,'']]],
+  ['midi_1847',['MIDI',['../group__midi.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/groups_7.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/groups_7.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['oscillators_1848',['Oscillators',['../group__oscillators.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/groups_8.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/groups_8.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['physical_20models_1849',['Physical Models',['../group__physical.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/groups_9.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/groups_9.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['reverb_1850',['Reverb',['../group__reverb.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/groups_a.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/groups_a.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['sampling_1851',['Sampling',['../group__sampling.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/groups_b.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/groups_b.js
@@ -1,0 +1,98 @@
+var searchData=
+[
+  ['t808cowbell_1852',['t808Cowbell',['../group__t808cowbell.html',1,'']]],
+  ['t808hihat_1853',['t808Hihat',['../group__t808hihat.html',1,'']]],
+  ['t808kick_1854',['t808Kick',['../group__t808kick.html',1,'']]],
+  ['t808snare_1855',['t808Snare',['../group__t808snare.html',1,'']]],
+  ['tables_1856',['Tables',['../group__tables.html',1,'']]],
+  ['tadsr_1857',['tADSR',['../group__tadsr.html',1,'']]],
+  ['tadsr3_1858',['tADSR3',['../group__tadsr3.html',1,'']]],
+  ['tadsr4_1859',['tADSR4',['../group__tadsr4.html',1,'']]],
+  ['tallpass_1860',['tAllpass',['../group__tallpass.html',1,'']]],
+  ['tallpassdelay_1861',['tAllpassDelay',['../group__tallpassdelay.html',1,'']]],
+  ['tadsr2_1862',['tADSR2',['../group__tasdr2.html',1,'']]],
+  ['tattackdetection_1863',['tAttackDetection',['../group__tattackdetection.html',1,'']]],
+  ['tautosampler_1864',['tAutoSampler',['../group__tautosampler.html',1,'']]],
+  ['tbiquad_1865',['tBiQuad',['../group__tbiquad.html',1,'']]],
+  ['tbuffer_1866',['tBuffer',['../group__tbuffer.html',1,'']]],
+  ['tbutterworth_1867',['tButterworth',['../group__tbutterworth.html',1,'']]],
+  ['tcompactwavetable_1868',['tCompactWavetable',['../group__tcompactwavetable.html',1,'']]],
+  ['tcomplexlivingstring_1869',['tComplexLivingString',['../group__tcomplexlivingstring.html',1,'']]],
+  ['tcompressor_1870',['tCompressor',['../group__tcompressor.html',1,'']]],
+  ['tcrusher_1871',['tCrusher',['../group__tcrusher.html',1,'']]],
+  ['tcycle_1872',['tCycle',['../group__tcycle.html',1,'']]],
+  ['tdattorroreverb_1873',['tDattorroReverb',['../group__tdattorroreverb.html',1,'']]],
+  ['tdelay_1874',['tDelay',['../group__tdelay.html',1,'']]],
+  ['tdiodefilter_1875',['tDiodeFilter',['../group__tdiodefilter.html',1,'']]],
+  ['tdualpitchdetector_1876',['tDualPitchDetector',['../group__tdualpitchdetector.html',1,'']]],
+  ['tefficientsvf_1877',['tEfficientSVF',['../group__tefficientsvf.html',1,'']]],
+  ['tenvelope_1878',['tEnvelope',['../group__tenvelope.html',1,'']]],
+  ['tenvelopefollower_1879',['tEnvelopeFollower',['../group__tenvelopefollower.html',1,'']]],
+  ['tenvpd_1880',['tEnvPD',['../group__tenvpd.html',1,'']]],
+  ['texpsmooth_1881',['tExpSmooth',['../group__texpsmooth.html',1,'']]],
+  ['tfeedbackleveler_1882',['tFeedbackLeveler',['../group__tfeedbackleveler.html',1,'']]],
+  ['tfir_1883',['tFIR',['../group__tfir.html',1,'']]],
+  ['tformantshifter_1884',['tFormantShifter',['../group__tformantshifter.html',1,'']]],
+  ['thermitedelay_1885',['tHermiteDelay',['../group__thermitedelay.html',1,'']]],
+  ['thighpass_1886',['tHighpass',['../group__thighpass.html',1,'']]],
+  ['tkarplusstrong_1887',['tKarplusStrong',['../group__tkarplusstrong.html',1,'']]],
+  ['tlineardelay_1888',['tLinearDelay',['../group__tlineardelay.html',1,'']]],
+  ['tlivingstring_1889',['tLivingString',['../group__tlivingstring.html',1,'']]],
+  ['tlockhartwavefolder_1890',['tLockhartWavefolder',['../group__tlockhartwavefolder.html',1,'']]],
+  ['tmbpulse_1891',['tMBPulse',['../group__tmbpulse.html',1,'']]],
+  ['tmbsampler_1892',['tMBSampler',['../group__t_m_b_sampler.html',1,'']]],
+  ['tmbsaw_1893',['tMBSaw',['../group__tmbsaw.html',1,'']]],
+  ['tmbtriangle_1894',['tMBTriangle',['../group__tmbtriangle.html',1,'']]],
+  ['tmedianfilter_1895',['tMedianFilter',['../group__tmedianfilter.html',1,'']]],
+  ['tmempool_1896',['tMempool',['../group__tmempool.html',1,'']]],
+  ['tneuron_1897',['tNeuron',['../group__tneuron.html',1,'']]],
+  ['tnoise_1898',['tNoise',['../group__tnoise.html',1,'']]],
+  ['tnreverb_1899',['tNReverb',['../group__tnreverb.html',1,'']]],
+  ['tonepole_1900',['tOnePole',['../group__tonepole.html',1,'']]],
+  ['tonezero_1901',['tOneZero',['../group__tonezero.html',1,'']]],
+  ['toversampler_1902',['tOversampler',['../group__toversampler.html',1,'']]],
+  ['tperioddetection_1903',['tPeriodDetection',['../group__tperioddetection.html',1,'']]],
+  ['tperioddetector_1904',['tPeriodDetector',['../group__tperioddetector.html',1,'']]],
+  ['tphasor_1905',['tPhasor',['../group__tphasor.html',1,'']]],
+  ['tpitchdetector_1906',['tPitchDetector',['../group__tpitchdetector.html',1,'']]],
+  ['tpitchshift_1907',['tPitchShift',['../group__tpitchshift.html',1,'']]],
+  ['tpluck_1908',['tPluck',['../group__tpluck.html',1,'']]],
+  ['tpolezero_1909',['tPoleZero',['../group__tpolezero.html',1,'']]],
+  ['tpoly_1910',['tPoly',['../group__tpoly.html',1,'']]],
+  ['tpowerfollower_1911',['tPowerFollower',['../group__tpowerfollower.html',1,'']]],
+  ['tprcreverb_1912',['tPRCReverb',['../group__tprcreverb.html',1,'']]],
+  ['tpulse_1913',['tPulse',['../group__tpulse.html',1,'']]],
+  ['tramp_1914',['tRamp',['../group__tramp.html',1,'']]],
+  ['trampupdown_1915',['tRampUpDown',['../group__trampupdown.html',1,'']]],
+  ['treedtable_1916',['tReedTable',['../group__treedtable.html',1,'']]],
+  ['tretune_1917',['tRetune',['../group__tretune.html',1,'']]],
+  ['tringbuffer_1918',['tRingBuffer',['../group__tringbuffer.html',1,'']]],
+  ['trosenbergglottalpulse_1919',['tRosenbergGlottalPulse',['../group__trosenbergglottalpulse.html',1,'']]],
+  ['tsampler_1920',['tSampler',['../group__tsampler.html',1,'']]],
+  ['tsamplereducer_1921',['tSampleReducer',['../group__tsamplereducer.html',1,'']]],
+  ['tsaw_1922',['tSaw',['../group__tsaw.html',1,'']]],
+  ['tsawtooth_1923',['tSawtooth',['../group__tsawtooth.html',1,'']]],
+  ['tsimplelivingstring_1924',['tSimpleLivingString',['../group__tsimplelivingstring.html',1,'']]],
+  ['tsimplepoly_1925',['tSimplePoly',['../group__tsimplepoly.html',1,'']]],
+  ['tsimpleretune_1926',['tSimpleRetune',['../group__tsimpleretune.html',1,'']]],
+  ['tslide_1927',['tSlide',['../group__tslide.html',1,'']]],
+  ['tsnac_1928',['tSNAC',['../group__tsnac.html',1,'']]],
+  ['tsolad_1929',['tSOLAD',['../group__tsolad.html',1,'']]],
+  ['tsquare_1930',['tSquare',['../group__tsquare.html',1,'']]],
+  ['tstack_1931',['tStack',['../group__tstack.html',1,'']]],
+  ['tsvf_1932',['tSVF',['../group__tsvf.html',1,'']]],
+  ['ttable_1933',['tTable',['../group__ttable.html',1,'']]],
+  ['ttalkbox_1934',['tTalkbox',['../group__ttalkbox.html',1,'']]],
+  ['ttalkboxfloat_1935',['tTalkboxFloat',['../group__ttalkboxfloat.html',1,'']]],
+  ['ttapedelay_1936',['tTapeDelay',['../group__ttapedelay.html',1,'']]],
+  ['tthreshold_1937',['tThreshold',['../group__tthreshold.html',1,'']]],
+  ['ttri_1938',['tTri',['../group__ttri.html',1,'']]],
+  ['ttriangle_1939',['tTriangle',['../group__ttriangle.html',1,'']]],
+  ['ttwopole_1940',['tTwoPole',['../group__ttwopole.html',1,'']]],
+  ['ttwozero_1941',['tTwoZero',['../group__ttwozero.html',1,'']]],
+  ['tvocoder_1942',['tVocoder',['../group__tvocoder.html',1,'']]],
+  ['tvzfilter_1943',['tVZFilter',['../group__tvzfilter.html',1,'']]],
+  ['twavetable_1944',['tWavetable',['../group__twavetable.html',1,'']]],
+  ['twdf_1945',['tWDF',['../group__twdf.html',1,'']]],
+  ['tzerocrossingcounter_1946',['tZeroCrossingCounter',['../group__tzerocrossingcounter.html',1,'']]]
+];
binary files /dev/null b/doxygen/leaf/search/mag_sel.png differ
--- /dev/null
+++ b/doxygen/leaf/search/nomatches.html
@@ -1,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/pages_0.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/pages_0.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['leaf_1947',['LEAF',['../index.html',1,'']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/search.css
@@ -1,0 +1,271 @@
+/*---------------- Search Box */
+
+#FSearchBox {
+    float: left;
+}
+
+#MSearchBox {
+    white-space : nowrap;
+    position: absolute;
+    float: none;
+    display: inline;
+    margin-top: 8px;
+    right: 0px;
+    width: 170px;
+    z-index: 102;
+    background-color: white;
+}
+
+#MSearchBox .left
+{
+    display:block;
+    position:absolute;
+    left:10px;
+    width:20px;
+    height:19px;
+    background:url('search_l.png') no-repeat;
+    background-position:right;
+}
+
+#MSearchSelect {
+    display:block;
+    position:absolute;
+    width:20px;
+    height:19px;
+}
+
+.left #MSearchSelect {
+    left:4px;
+}
+
+.right #MSearchSelect {
+    right:5px;
+}
+
+#MSearchField {
+    display:block;
+    position:absolute;
+    height:19px;
+    background:url('search_m.png') repeat-x;
+    border:none;
+    width:111px;
+    margin-left:20px;
+    padding-left:4px;
+    color: #909090;
+    outline: none;
+    font: 9pt Arial, Verdana, sans-serif;
+}
+
+#FSearchBox #MSearchField {
+    margin-left:15px;
+}
+
+#MSearchBox .right {
+    display:block;
+    position:absolute;
+    right:10px;
+    top:0px;
+    width:20px;
+    height:19px;
+    background:url('search_r.png') no-repeat;
+    background-position:left;
+}
+
+#MSearchClose {
+    display: none;
+    position: absolute;
+    top: 4px;
+    background : none;
+    border: none;
+    margin: 0px 4px 0px 0px;
+    padding: 0px 0px;
+    outline: none;
+}
+
+.left #MSearchClose {
+    left: 6px;
+}
+
+.right #MSearchClose {
+    right: 2px;
+}
+
+.MSearchBoxActive #MSearchField {
+    color: #000000;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #90A5CE;
+    background-color: #F9FAFC;
+    z-index: 1;
+    padding-top: 4px;
+    padding-bottom: 4px;
+    -moz-border-radius: 4px;
+    -webkit-border-top-left-radius: 4px;
+    -webkit-border-top-right-radius: 4px;
+    -webkit-border-bottom-left-radius: 4px;
+    -webkit-border-bottom-right-radius: 4px;
+    -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+    font: 8pt Arial, Verdana, sans-serif;
+    padding-left:  2px;
+    padding-right: 12px;
+    border: 0px;
+}
+
+span.SelectionMark {
+    margin-right: 4px;
+    font-family: monospace;
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem {
+    display: block;
+    outline-style: none;
+    color: #000000; 
+    text-decoration: none;
+    padding-left:   6px;
+    padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+    color: #000000; 
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem:hover {
+    color: #FFFFFF;
+    background-color: #3D578C;
+    outline-style: none;
+    text-decoration: none;
+    cursor: pointer;
+    display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+    width: 60ex;
+    height: 15em;
+}
+
+#MSearchResultsWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #000;
+    background-color: #EEF1F7;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+    clear:both; 
+    padding-bottom: 15px;
+}
+
+.SREntry {
+    font-size: 10pt;
+    padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+    font-size: 8pt;
+    padding: 1px 5px;
+}
+
+body.SRPage {
+    margin: 5px 2px;
+}
+
+.SRChildren {
+    padding-left: 3ex; padding-bottom: .5em 
+}
+
+.SRPage .SRChildren {
+    display: none;
+}
+
+.SRSymbol {
+    font-weight: bold; 
+    color: #425E97;
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRScope {
+    display: block;
+    color: #425E97; 
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+    text-decoration: underline;
+}
+
+span.SRScope {
+    padding-left: 4px;
+}
+
+.SRPage .SRStatus {
+    padding: 2px 5px;
+    font-size: 8pt;
+    font-style: italic;
+}
+
+.SRResult {
+    display: none;
+}
+
+DIV.searchresults {
+    margin-left: 10px;
+    margin-right: 10px;
+}
+
+/*---------------- External search page results */
+
+.searchresult {
+    background-color: #F0F3F8;
+}
+
+.pages b {
+   color: white;
+   padding: 5px 5px 3px 5px;
+   background-image: url("../tab_a.png");
+   background-repeat: repeat-x;
+   text-shadow: 0 1px 1px #000000;
+}
+
+.pages {
+    line-height: 17px;
+    margin-left: 4px;
+    text-decoration: none;
+}
+
+.hl {
+    font-weight: bold;
+}
+
+#searchresults {
+    margin-bottom: 20px;
+}
+
+.searchpages {
+    margin-top: 10px;
+}
+
--- /dev/null
+++ b/doxygen/leaf/search/search.js
@@ -1,0 +1,814 @@
+/*
+ @licstart  The following is the entire license notice for the
+ JavaScript code in this file.
+
+ Copyright (C) 1997-2017 by Dimitri van Heesch
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ @licend  The above is the entire license notice
+ for the JavaScript code in this file
+ */
+function convertToId(search)
+{
+  var result = '';
+  for (i=0;i<search.length;i++)
+  {
+    var c = search.charAt(i);
+    var cn = c.charCodeAt(0);
+    if (c.match(/[a-z0-9\u0080-\uFFFF]/))
+    {
+      result+=c;
+    }
+    else if (cn<16)
+    {
+      result+="_0"+cn.toString(16);
+    }
+    else
+    {
+      result+="_"+cn.toString(16);
+    }
+  }
+  return result;
+}
+
+function getXPos(item)
+{
+  var x = 0;
+  if (item.offsetWidth)
+  {
+    while (item && item!=document.body)
+    {
+      x   += item.offsetLeft;
+      item = item.offsetParent;
+    }
+  }
+  return x;
+}
+
+function getYPos(item)
+{
+  var y = 0;
+  if (item.offsetWidth)
+  {
+     while (item && item!=document.body)
+     {
+       y   += item.offsetTop;
+       item = item.offsetParent;
+     }
+  }
+  return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+   Parameters:
+   name - The name of the global variable that will be
+          storing this instance.  Is needed to be able to set timeouts.
+   resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, inFrame, label)
+{
+  if (!name || !resultsPath) {  alert("Missing parameters to SearchBox."); }
+
+  // ---------- Instance variables
+  this.name                  = name;
+  this.resultsPath           = resultsPath;
+  this.keyTimeout            = 0;
+  this.keyTimeoutLength      = 500;
+  this.closeSelectionTimeout = 300;
+  this.lastSearchValue       = "";
+  this.lastResultsPage       = "";
+  this.hideTimeout           = 0;
+  this.searchIndex           = 0;
+  this.searchActive          = false;
+  this.insideFrame           = inFrame;
+  this.searchLabel           = label;
+
+  // ----------- DOM Elements
+
+  this.DOMSearchField = function()
+  {  return document.getElementById("MSearchField");  }
+
+  this.DOMSearchSelect = function()
+  {  return document.getElementById("MSearchSelect");  }
+
+  this.DOMSearchSelectWindow = function()
+  {  return document.getElementById("MSearchSelectWindow");  }
+
+  this.DOMPopupSearchResults = function()
+  {  return document.getElementById("MSearchResults");  }
+
+  this.DOMPopupSearchResultsWindow = function()
+  {  return document.getElementById("MSearchResultsWindow");  }
+
+  this.DOMSearchClose = function()
+  {  return document.getElementById("MSearchClose"); }
+
+  this.DOMSearchBox = function()
+  {  return document.getElementById("MSearchBox");  }
+
+  // ------------ Event Handlers
+
+  // Called when focus is added or removed from the search field.
+  this.OnSearchFieldFocus = function(isActive)
+  {
+    this.Activate(isActive);
+  }
+
+  this.OnSearchSelectShow = function()
+  {
+    var searchSelectWindow = this.DOMSearchSelectWindow();
+    var searchField        = this.DOMSearchSelect();
+
+    if (this.insideFrame)
+    {
+      var left = getXPos(searchField);
+      var top  = getYPos(searchField);
+      left += searchField.offsetWidth + 6;
+      top += searchField.offsetHeight;
+
+      // show search selection popup
+      searchSelectWindow.style.display='block';
+      left -= searchSelectWindow.offsetWidth;
+      searchSelectWindow.style.left =  left + 'px';
+      searchSelectWindow.style.top  =  top  + 'px';
+    }
+    else
+    {
+      var left = getXPos(searchField);
+      var top  = getYPos(searchField);
+      top += searchField.offsetHeight;
+
+      // show search selection popup
+      searchSelectWindow.style.display='block';
+      searchSelectWindow.style.left =  left + 'px';
+      searchSelectWindow.style.top  =  top  + 'px';
+    }
+
+    // stop selection hide timer
+    if (this.hideTimeout)
+    {
+      clearTimeout(this.hideTimeout);
+      this.hideTimeout=0;
+    }
+    return false; // to avoid "image drag" default event
+  }
+
+  this.OnSearchSelectHide = function()
+  {
+    this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+                                  this.closeSelectionTimeout);
+  }
+
+  // Called when the content of the search field is changed.
+  this.OnSearchFieldChange = function(evt)
+  {
+    if (this.keyTimeout) // kill running timer
+    {
+      clearTimeout(this.keyTimeout);
+      this.keyTimeout = 0;
+    }
+
+    var e  = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 || e.keyCode==13)
+    {
+      if (e.shiftKey==1)
+      {
+        this.OnSearchSelectShow();
+        var win=this.DOMSearchSelectWindow();
+        for (i=0;i<win.childNodes.length;i++)
+        {
+          var child = win.childNodes[i]; // get span within a
+          if (child.className=='SelectItem')
+          {
+            child.focus();
+            return;
+          }
+        }
+        return;
+      }
+      else if (window.frames.MSearchResults.searchResults)
+      {
+        var elem = window.frames.MSearchResults.searchResults.NavNext(0);
+        if (elem) elem.focus();
+      }
+    }
+    else if (e.keyCode==27) // Escape out of the search field
+    {
+      this.DOMSearchField().blur();
+      this.DOMPopupSearchResultsWindow().style.display = 'none';
+      this.DOMSearchClose().style.display = 'none';
+      this.lastSearchValue = '';
+      this.Activate(false);
+      return;
+    }
+
+    // strip whitespaces
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+    if (searchValue != this.lastSearchValue) // search value has changed
+    {
+      if (searchValue != "") // non-empty search
+      {
+        // set timer for search update
+        this.keyTimeout = setTimeout(this.name + '.Search()',
+                                     this.keyTimeoutLength);
+      }
+      else // empty search field
+      {
+        this.DOMPopupSearchResultsWindow().style.display = 'none';
+        this.DOMSearchClose().style.display = 'none';
+        this.lastSearchValue = '';
+      }
+    }
+  }
+
+  this.SelectItemCount = function(id)
+  {
+    var count=0;
+    var win=this.DOMSearchSelectWindow();
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        count++;
+      }
+    }
+    return count;
+  }
+
+  this.SelectItemSet = function(id)
+  {
+    var i,j=0;
+    var win=this.DOMSearchSelectWindow();
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        var node = child.firstChild;
+        if (j==id)
+        {
+          node.innerHTML='&#8226;';
+        }
+        else
+        {
+          node.innerHTML='&#160;';
+        }
+        j++;
+      }
+    }
+  }
+
+  // Called when an search filter selection is made.
+  // set item with index id as the active item
+  this.OnSelectItem = function(id)
+  {
+    this.searchIndex = id;
+    this.SelectItemSet(id);
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+    if (searchValue!="" && this.searchActive) // something was found -> do a search
+    {
+      this.Search();
+    }
+  }
+
+  this.OnSearchSelectKey = function(evt)
+  {
+    var e = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+    {
+      this.searchIndex++;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==38 && this.searchIndex>0) // Up
+    {
+      this.searchIndex--;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==13 || e.keyCode==27)
+    {
+      this.OnSelectItem(this.searchIndex);
+      this.CloseSelectionWindow();
+      this.DOMSearchField().focus();
+    }
+    return false;
+  }
+
+  // --------- Actions
+
+  // Closes the results window.
+  this.CloseResultsWindow = function()
+  {
+    this.DOMPopupSearchResultsWindow().style.display = 'none';
+    this.DOMSearchClose().style.display = 'none';
+    this.Activate(false);
+  }
+
+  this.CloseSelectionWindow = function()
+  {
+    this.DOMSearchSelectWindow().style.display = 'none';
+  }
+
+  // Performs a search.
+  this.Search = function()
+  {
+    this.keyTimeout = 0;
+
+    // strip leading whitespace
+    var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+    var code = searchValue.toLowerCase().charCodeAt(0);
+    var idxChar = searchValue.substr(0, 1).toLowerCase();
+    if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
+    {
+      idxChar = searchValue.substr(0, 2);
+    }
+
+    var resultsPage;
+    var resultsPageWithSearch;
+    var hasResultsPage;
+
+    var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
+    if (idx!=-1)
+    {
+       var hexCode=idx.toString(16);
+       resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+       resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+       hasResultsPage = true;
+    }
+    else // nothing available for this search term
+    {
+       resultsPage = this.resultsPath + '/nomatches.html';
+       resultsPageWithSearch = resultsPage;
+       hasResultsPage = false;
+    }
+
+    window.frames.MSearchResults.location = resultsPageWithSearch;
+    var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+    if (domPopupSearchResultsWindow.style.display!='block')
+    {
+       var domSearchBox = this.DOMSearchBox();
+       this.DOMSearchClose().style.display = 'inline';
+       if (this.insideFrame)
+       {
+         var domPopupSearchResults = this.DOMPopupSearchResults();
+         domPopupSearchResultsWindow.style.position = 'relative';
+         domPopupSearchResultsWindow.style.display  = 'block';
+         var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+         domPopupSearchResultsWindow.style.width    = width + 'px';
+         domPopupSearchResults.style.width          = width + 'px';
+       }
+       else
+       {
+         var domPopupSearchResults = this.DOMPopupSearchResults();
+         var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+         var top  = getYPos(domSearchBox) + 20;  // domSearchBox.offsetHeight + 1;
+         domPopupSearchResultsWindow.style.display = 'block';
+         left -= domPopupSearchResults.offsetWidth;
+         domPopupSearchResultsWindow.style.top     = top  + 'px';
+         domPopupSearchResultsWindow.style.left    = left + 'px';
+       }
+    }
+
+    this.lastSearchValue = searchValue;
+    this.lastResultsPage = resultsPage;
+  }
+
+  // -------- Activation Functions
+
+  // Activates or deactivates the search panel, resetting things to
+  // their default values if necessary.
+  this.Activate = function(isActive)
+  {
+    if (isActive || // open it
+        this.DOMPopupSearchResultsWindow().style.display == 'block'
+       )
+    {
+      this.DOMSearchBox().className = 'MSearchBoxActive';
+
+      var searchField = this.DOMSearchField();
+
+      if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+      {
+        searchField.value = '';
+        this.searchActive = true;
+      }
+    }
+    else if (!isActive) // directly remove the panel
+    {
+      this.DOMSearchBox().className = 'MSearchBoxInactive';
+      this.DOMSearchField().value   = this.searchLabel;
+      this.searchActive             = false;
+      this.lastSearchValue          = ''
+      this.lastResultsPage          = '';
+    }
+  }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+    // The number of matches from the last run of <Search()>.
+    this.lastMatchCount = 0;
+    this.lastKey = 0;
+    this.repeatOn = false;
+
+    // Toggles the visibility of the passed element ID.
+    this.FindChildElement = function(id)
+    {
+      var parentElement = document.getElementById(id);
+      var element = parentElement.firstChild;
+
+      while (element && element!=parentElement)
+      {
+        if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+        {
+          return element;
+        }
+
+        if (element.nodeName == 'DIV' && element.hasChildNodes())
+        {
+           element = element.firstChild;
+        }
+        else if (element.nextSibling)
+        {
+           element = element.nextSibling;
+        }
+        else
+        {
+          do
+          {
+            element = element.parentNode;
+          }
+          while (element && element!=parentElement && !element.nextSibling);
+
+          if (element && element!=parentElement)
+          {
+            element = element.nextSibling;
+          }
+        }
+      }
+    }
+
+    this.Toggle = function(id)
+    {
+      var element = this.FindChildElement(id);
+      if (element)
+      {
+        if (element.style.display == 'block')
+        {
+          element.style.display = 'none';
+        }
+        else
+        {
+          element.style.display = 'block';
+        }
+      }
+    }
+
+    // Searches for the passed string.  If there is no parameter,
+    // it takes it from the URL query.
+    //
+    // Always returns true, since other documents may try to call it
+    // and that may or may not be possible.
+    this.Search = function(search)
+    {
+      if (!search) // get search word from URL
+      {
+        search = window.location.search;
+        search = search.substring(1);  // Remove the leading '?'
+        search = unescape(search);
+      }
+
+      search = search.replace(/^ +/, ""); // strip leading spaces
+      search = search.replace(/ +$/, ""); // strip trailing spaces
+      search = search.toLowerCase();
+      search = convertToId(search);
+
+      var resultRows = document.getElementsByTagName("div");
+      var matches = 0;
+
+      var i = 0;
+      while (i < resultRows.length)
+      {
+        var row = resultRows.item(i);
+        if (row.className == "SRResult")
+        {
+          var rowMatchName = row.id.toLowerCase();
+          rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+          if (search.length<=rowMatchName.length &&
+             rowMatchName.substr(0, search.length)==search)
+          {
+            row.style.display = 'block';
+            matches++;
+          }
+          else
+          {
+            row.style.display = 'none';
+          }
+        }
+        i++;
+      }
+      document.getElementById("Searching").style.display='none';
+      if (matches == 0) // no results
+      {
+        document.getElementById("NoMatches").style.display='block';
+      }
+      else // at least one result
+      {
+        document.getElementById("NoMatches").style.display='none';
+      }
+      this.lastMatchCount = matches;
+      return true;
+    }
+
+    // return the first item with index index or higher that is visible
+    this.NavNext = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index++;
+      }
+      return focusItem;
+    }
+
+    this.NavPrev = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index--;
+      }
+      return focusItem;
+    }
+
+    this.ProcessKeys = function(e)
+    {
+      if (e.type == "keydown")
+      {
+        this.repeatOn = false;
+        this.lastKey = e.keyCode;
+      }
+      else if (e.type == "keypress")
+      {
+        if (!this.repeatOn)
+        {
+          if (this.lastKey) this.repeatOn = true;
+          return false; // ignore first keypress after keydown
+        }
+      }
+      else if (e.type == "keyup")
+      {
+        this.lastKey = 0;
+        this.repeatOn = false;
+      }
+      return this.lastKey!=0;
+    }
+
+    this.Nav = function(evt,itemIndex)
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        var newIndex = itemIndex-1;
+        var focusItem = this.NavPrev(newIndex);
+        if (focusItem)
+        {
+          var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+          if (child && child.style.display == 'block') // children visible
+          {
+            var n=0;
+            var tmpElem;
+            while (1) // search for last child
+            {
+              tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+              if (tmpElem)
+              {
+                focusItem = tmpElem;
+              }
+              else // found it!
+              {
+                break;
+              }
+              n++;
+            }
+          }
+        }
+        if (focusItem)
+        {
+          focusItem.focus();
+        }
+        else // return focus to search field
+        {
+           parent.document.getElementById("MSearchField").focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = itemIndex+1;
+        var focusItem;
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem && elem.style.display == 'block') // children visible
+        {
+          focusItem = document.getElementById('Item'+itemIndex+'_c0');
+        }
+        if (!focusItem) focusItem = this.NavNext(newIndex);
+        if (focusItem)  focusItem.focus();
+      }
+      else if (this.lastKey==39) // Right
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'block';
+      }
+      else if (this.lastKey==37) // Left
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'none';
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+
+    this.NavChild = function(evt,itemIndex,childIndex)
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        if (childIndex>0)
+        {
+          var newIndex = childIndex-1;
+          document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+        }
+        else // already at first child, jump to parent
+        {
+          document.getElementById('Item'+itemIndex).focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = childIndex+1;
+        var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+        if (!elem) // last child, jump to parent next parent
+        {
+          elem = this.NavNext(itemIndex+1);
+        }
+        if (elem)
+        {
+          elem.focus();
+        }
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+}
+
+function setKeyActions(elem,action)
+{
+  elem.setAttribute('onkeydown',action);
+  elem.setAttribute('onkeypress',action);
+  elem.setAttribute('onkeyup',action);
+}
+
+function setClassAttr(elem,attr)
+{
+  elem.setAttribute('class',attr);
+  elem.setAttribute('className',attr);
+}
+
+function createResults()
+{
+  var results = document.getElementById("SRResults");
+  for (var e=0; e<searchData.length; e++)
+  {
+    var id = searchData[e][0];
+    var srResult = document.createElement('div');
+    srResult.setAttribute('id','SR_'+id);
+    setClassAttr(srResult,'SRResult');
+    var srEntry = document.createElement('div');
+    setClassAttr(srEntry,'SREntry');
+    var srLink = document.createElement('a');
+    srLink.setAttribute('id','Item'+e);
+    setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+    setClassAttr(srLink,'SRSymbol');
+    srLink.innerHTML = searchData[e][1][0];
+    srEntry.appendChild(srLink);
+    if (searchData[e][1].length==2) // single result
+    {
+      srLink.setAttribute('href',searchData[e][1][1][0]);
+      if (searchData[e][1][1][1])
+      {
+       srLink.setAttribute('target','_parent');
+      }
+      var srScope = document.createElement('span');
+      setClassAttr(srScope,'SRScope');
+      srScope.innerHTML = searchData[e][1][1][2];
+      srEntry.appendChild(srScope);
+    }
+    else // multiple results
+    {
+      srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+      var srChildren = document.createElement('div');
+      setClassAttr(srChildren,'SRChildren');
+      for (var c=0; c<searchData[e][1].length-1; c++)
+      {
+        var srChild = document.createElement('a');
+        srChild.setAttribute('id','Item'+e+'_c'+c);
+        setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+        setClassAttr(srChild,'SRScope');
+        srChild.setAttribute('href',searchData[e][1][c+1][0]);
+        if (searchData[e][1][c+1][1])
+        {
+         srChild.setAttribute('target','_parent');
+        }
+        srChild.innerHTML = searchData[e][1][c+1][2];
+        srChildren.appendChild(srChild);
+      }
+      srEntry.appendChild(srChildren);
+    }
+    srResult.appendChild(srEntry);
+    results.appendChild(srResult);
+  }
+}
+
+function init_search()
+{
+  var results = document.getElementById("MSearchSelectWindow");
+  for (var key in indexSectionLabels)
+  {
+    var link = document.createElement('a');
+    link.setAttribute('class','SelectItem');
+    link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
+    link.href='javascript:void(0)';
+    link.innerHTML='<span class="SelectionMark">&#160;</span>'+indexSectionLabels[key];
+    results.appendChild(link);
+  }
+  searchBox.OnSelectItem(0);
+}
+/* @license-end */
binary files /dev/null b/doxygen/leaf/search/search_l.png differ
binary files /dev/null b/doxygen/leaf/search/search_m.png differ
binary files /dev/null b/doxygen/leaf/search/search_r.png differ
--- /dev/null
+++ b/doxygen/leaf/search/searchdata.js
@@ -1,0 +1,42 @@
+var indexSectionsWithContent =
+{
+  0: "abcdefhilmnoprstw",
+  1: "l",
+  2: "l",
+  3: "lt",
+  4: "bcehimrst",
+  5: "n",
+  6: "npw",
+  7: "l",
+  8: "adefilmoprst",
+  9: "l"
+};
+
+var indexSectionNames =
+{
+  0: "all",
+  1: "classes",
+  2: "files",
+  3: "functions",
+  4: "variables",
+  5: "enums",
+  6: "enumvalues",
+  7: "defines",
+  8: "groups",
+  9: "pages"
+};
+
+var indexSectionLabels =
+{
+  0: "All",
+  1: "Data Structures",
+  2: "Files",
+  3: "Functions",
+  4: "Variables",
+  5: "Enumerations",
+  6: "Enumerator",
+  7: "Macros",
+  8: "Modules",
+  9: "Pages"
+};
+
--- /dev/null
+++ b/doxygen/leaf/search/variables_0.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/variables_0.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['blocksize_1810',['blockSize',['../struct_l_e_a_f.html#a4aaa73e329d20f35039fa5cdd2e6f648',1,'LEAF']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/variables_1.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/variables_1.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['clearonallocation_1811',['clearOnAllocation',['../struct_l_e_a_f.html#ad65a59f4aa73365d2e77aeddfca7a449',1,'LEAF']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/variables_2.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/variables_2.js
@@ -1,0 +1,5 @@
+var searchData=
+[
+  ['errorcallback_1812',['errorCallback',['../struct_l_e_a_f.html#a7c7ae1db705b3fdea2bec18add896856',1,'LEAF']]],
+  ['errorstate_1813',['errorState',['../struct_l_e_a_f.html#afdc66be5b816adc061930cf832328a44',1,'LEAF']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/variables_3.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/variables_3.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['header_5fsize_1814',['header_size',['../struct_l_e_a_f.html#a64f1d0c53909f30b0aac882348cd32f2',1,'LEAF']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/variables_4.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/variables_4.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['invsamplerate_1815',['invSampleRate',['../struct_l_e_a_f.html#ae4c744f56f561ff4acc66ba4bd3ed201',1,'LEAF']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/variables_5.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/variables_5.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['mempool_1816',['mempool',['../struct_l_e_a_f.html#a8bcf1ce65df673f85688cca6f0883723',1,'LEAF']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/variables_6.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/variables_6.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['random_1817',['random',['../struct_l_e_a_f.html#a8b5a79e58a190779d202a188f82e9e86',1,'LEAF']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/variables_7.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/variables_7.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['samplerate_1818',['sampleRate',['../struct_l_e_a_f.html#af6a61da668f2188e2850eba261e217c4',1,'LEAF']]]
+];
--- /dev/null
+++ b/doxygen/leaf/search/variables_8.html
@@ -1,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/search/variables_8.js
@@ -1,0 +1,4 @@
+var searchData=
+[
+  ['twopitimesinvsamplerate_1819',['twoPiTimesInvSampleRate',['../struct_l_e_a_f.html#aabd759d3fcb8411249ab4813424e6b29',1,'LEAF']]]
+];
binary files /dev/null b/doxygen/leaf/splitbar.png differ
--- /dev/null
+++ b/doxygen/leaf/struct__t_ramp_up_down.html
@@ -1,0 +1,126 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>LEAF: _tRampUpDown Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script src="/js/template.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+<link rel="stylesheet" href="/css/tachyons.css" type="text/css">
+</head>
+<body class="bg-washed-green black-70 ph0 sans-serif">
+<header class="fl bg-deep-green w-100 pt4-ns pb3-ns pl5">
+  <div class="bg-dark-green pv0">
+    <h1 class="black-70 pv3 ph4 f-headline-m">
+      <a class="link hover-gold white dib mr3" href="/" title="NIRL">NIRL &#8212; New Instrument Research Lab
+        <div class="fw4 f4">at Princeton University</div>
+      </a>
+    </h1>
+  </div>
+  <nav class="pv0 ph4 f5 fw5 ttu tracked">
+    <a class="link hover-gold white dib mr6" href="/" title="Home">&#187;Home&#171;</a>
+    <a class="link hover-gold white dib mr6" href="/tabs/projects.html" title="Projects">&#187;Projects&#171;</a>
+    <a class="link hover-gold white dib mr6" href="/tabs/papers.html" title="Papers">&#187;Papers&#171;</a>
+<!--    <a class="link hover-gold white dib mr6" href="/tabs/people.html" title="People">People</a> -->
+<!--    <a class="link hover-gold white dib" href="/tabs/contact.html" title="Contact">Contact</a> -->
+  </nav>
+</header>
+<div><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">_tRampUpDown Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>=============  
+ <a href="struct__t_ramp_up_down.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="leaf-envelopes_8h_source.html">leaf-envelopes.h</a>&gt;</code></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>============= </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>LEAF/Inc/<a class="el" href="leaf-envelopes_8h_source.html">leaf-envelopes.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/struct__t_slide.html
@@ -1,0 +1,126 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>LEAF: _tSlide Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script src="/js/template.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+<link rel="stylesheet" href="/css/tachyons.css" type="text/css">
+</head>
+<body class="bg-washed-green black-70 ph0 sans-serif">
+<header class="fl bg-deep-green w-100 pt4-ns pb3-ns pl5">
+  <div class="bg-dark-green pv0">
+    <h1 class="black-70 pv3 ph4 f-headline-m">
+      <a class="link hover-gold white dib mr3" href="/" title="NIRL">NIRL &#8212; New Instrument Research Lab
+        <div class="fw4 f4">at Princeton University</div>
+      </a>
+    </h1>
+  </div>
+  <nav class="pv0 ph4 f5 fw5 ttu tracked">
+    <a class="link hover-gold white dib mr6" href="/" title="Home">&#187;Home&#171;</a>
+    <a class="link hover-gold white dib mr6" href="/tabs/projects.html" title="Projects">&#187;Projects&#171;</a>
+    <a class="link hover-gold white dib mr6" href="/tabs/papers.html" title="Papers">&#187;Papers&#171;</a>
+<!--    <a class="link hover-gold white dib mr6" href="/tabs/people.html" title="People">People</a> -->
+<!--    <a class="link hover-gold white dib" href="/tabs/contact.html" title="Contact">Contact</a> -->
+  </nav>
+</header>
+<div><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">_tSlide Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>=========================  
+ <a href="struct__t_slide.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="leaf-envelopes_8h_source.html">leaf-envelopes.h</a>&gt;</code></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>========================= </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>LEAF/Inc/<a class="el" href="leaf-envelopes_8h_source.html">leaf-envelopes.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- /dev/null
+++ b/doxygen/leaf/struct_l_e_a_f.html
@@ -1,0 +1,162 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF Struct Reference</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">LEAF Struct Reference<div class="ingroups"><a class="el" href="group__leaf.html">LEAF</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Struct for an instance of <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a>.  
+ <a href="struct_l_e_a_f.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="leaf-global_8h_source.html">leaf-global.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:af6a61da668f2188e2850eba261e217c4"><td class="memItemLeft" align="right" valign="top"><a id="af6a61da668f2188e2850eba261e217c4"></a>
+float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_l_e_a_f.html#af6a61da668f2188e2850eba261e217c4">sampleRate</a></td></tr>
+<tr class="memdesc:af6a61da668f2188e2850eba261e217c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current audio sample rate. Set with <a class="el" href="group__leaf.html#gab84d5b2ad600cc920248996c86b72f9f" title="Set the sample rate of LEAF.">LEAF_setSampleRate()</a>. <br /></td></tr>
+<tr class="separator:af6a61da668f2188e2850eba261e217c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4c744f56f561ff4acc66ba4bd3ed201"><td class="memItemLeft" align="right" valign="top"><a id="ae4c744f56f561ff4acc66ba4bd3ed201"></a>
+float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_l_e_a_f.html#ae4c744f56f561ff4acc66ba4bd3ed201">invSampleRate</a></td></tr>
+<tr class="memdesc:ae4c744f56f561ff4acc66ba4bd3ed201"><td class="mdescLeft">&#160;</td><td class="mdescRight">The inverse of the current sample rate. <br /></td></tr>
+<tr class="separator:ae4c744f56f561ff4acc66ba4bd3ed201"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4aaa73e329d20f35039fa5cdd2e6f648"><td class="memItemLeft" align="right" valign="top"><a id="a4aaa73e329d20f35039fa5cdd2e6f648"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_l_e_a_f.html#a4aaa73e329d20f35039fa5cdd2e6f648">blockSize</a></td></tr>
+<tr class="memdesc:a4aaa73e329d20f35039fa5cdd2e6f648"><td class="mdescLeft">&#160;</td><td class="mdescRight">The audio block size. <br /></td></tr>
+<tr class="separator:a4aaa73e329d20f35039fa5cdd2e6f648"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aabd759d3fcb8411249ab4813424e6b29"><td class="memItemLeft" align="right" valign="top"><a id="aabd759d3fcb8411249ab4813424e6b29"></a>
+float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_l_e_a_f.html#aabd759d3fcb8411249ab4813424e6b29">twoPiTimesInvSampleRate</a></td></tr>
+<tr class="memdesc:aabd759d3fcb8411249ab4813424e6b29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Two-pi times the inverse of the current sample rate. <br /></td></tr>
+<tr class="separator:aabd759d3fcb8411249ab4813424e6b29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b5a79e58a190779d202a188f82e9e86"><td class="memItemLeft" align="right" valign="top"><a id="a8b5a79e58a190779d202a188f82e9e86"></a>
+float(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_l_e_a_f.html#a8b5a79e58a190779d202a188f82e9e86">random</a> )(void)</td></tr>
+<tr class="memdesc:a8b5a79e58a190779d202a188f82e9e86"><td class="mdescLeft">&#160;</td><td class="mdescRight">A pointer to the <a class="el" href="struct_l_e_a_f.html#a8b5a79e58a190779d202a188f82e9e86" title="A pointer to the random() function provided on initialization.">random()</a> function provided on initialization. <br /></td></tr>
+<tr class="separator:a8b5a79e58a190779d202a188f82e9e86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad65a59f4aa73365d2e77aeddfca7a449"><td class="memItemLeft" align="right" valign="top"><a id="ad65a59f4aa73365d2e77aeddfca7a449"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_l_e_a_f.html#ad65a59f4aa73365d2e77aeddfca7a449">clearOnAllocation</a></td></tr>
+<tr class="memdesc:ad65a59f4aa73365d2e77aeddfca7a449"><td class="mdescLeft">&#160;</td><td class="mdescRight">A flag that determines whether memory allocated from the <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> memory pool will be cleared. <br /></td></tr>
+<tr class="separator:ad65a59f4aa73365d2e77aeddfca7a449"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8bcf1ce65df673f85688cca6f0883723"><td class="memItemLeft" align="right" valign="top"><a id="a8bcf1ce65df673f85688cca6f0883723"></a>
+tMempool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_l_e_a_f.html#a8bcf1ce65df673f85688cca6f0883723">mempool</a></td></tr>
+<tr class="memdesc:a8bcf1ce65df673f85688cca6f0883723"><td class="mdescLeft">&#160;</td><td class="mdescRight">The default <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> mempool object. <br /></td></tr>
+<tr class="separator:a8bcf1ce65df673f85688cca6f0883723"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64f1d0c53909f30b0aac882348cd32f2"><td class="memItemLeft" align="right" valign="top"><a id="a64f1d0c53909f30b0aac882348cd32f2"></a>
+size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_l_e_a_f.html#a64f1d0c53909f30b0aac882348cd32f2">header_size</a></td></tr>
+<tr class="memdesc:a64f1d0c53909f30b0aac882348cd32f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size in bytes of memory region headers within mempools. <br /></td></tr>
+<tr class="separator:a64f1d0c53909f30b0aac882348cd32f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c7ae1db705b3fdea2bec18add896856"><td class="memItemLeft" align="right" valign="top"><a id="a7c7ae1db705b3fdea2bec18add896856"></a>
+void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_l_e_a_f.html#a7c7ae1db705b3fdea2bec18add896856">errorCallback</a> )(<a class="el" href="struct_l_e_a_f.html">LEAF</a> *const, LEAFErrorType)</td></tr>
+<tr class="memdesc:a7c7ae1db705b3fdea2bec18add896856"><td class="mdescLeft">&#160;</td><td class="mdescRight">A pointer to the callback function for <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> errors. Can be set by the user. <br /></td></tr>
+<tr class="separator:a7c7ae1db705b3fdea2bec18add896856"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afdc66be5b816adc061930cf832328a44"><td class="memItemLeft" align="right" valign="top"><a id="afdc66be5b816adc061930cf832328a44"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_l_e_a_f.html#afdc66be5b816adc061930cf832328a44">errorState</a> [LEAFErrorNil]</td></tr>
+<tr class="memdesc:afdc66be5b816adc061930cf832328a44"><td class="mdescLeft">&#160;</td><td class="mdescRight">An array of flags that indicate which errors have occurred. <br /></td></tr>
+<tr class="separator:afdc66be5b816adc061930cf832328a44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Struct for an instance of <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a>. </p>
+<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="basic-oscillators_8c-example.html#_a0">basic-oscillators.c</a>.</dd>
+</dl>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>LEAF/Inc/<a class="el" href="leaf-global_8h_source.html">leaf-global.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
binary files /dev/null b/doxygen/leaf/sync_off.png differ
binary files /dev/null b/doxygen/leaf/sync_on.png differ
binary files /dev/null b/doxygen/leaf/tab_a.png differ
binary files /dev/null b/doxygen/leaf/tab_b.png differ
binary files /dev/null b/doxygen/leaf/tab_h.png differ
binary files /dev/null b/doxygen/leaf/tab_s.png differ
--- /dev/null
+++ b/doxygen/leaf/tabs.css
@@ -1,0 +1,61 @@
+.tabs, .tabs2, .tabs3 {
+    background-image: url('tab_b.png');
+    width: 100%;
+    z-index: 101;
+    font-size: 13px;
+    font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+.tabs2 {
+    font-size: 10px;
+}
+.tabs3 {
+    font-size: 9px;
+}
+
+.tablist {
+    margin: 0;
+    padding: 0;
+    display: table;
+}
+
+.tablist li {
+    float: left;
+    display: table-cell;
+    background-image: url('tab_b.png');
+    line-height: 36px;
+    list-style: none;
+}
+
+.tablist a {
+    display: block;
+    padding: 0 20px;
+    font-weight: bold;
+    background-image:url('tab_s.png');
+    background-repeat:no-repeat;
+    background-position:right;
+    color: #283A5D;
+    text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+    text-decoration: none;
+    outline: none;
+}
+
+.tabs3 .tablist a {
+    padding: 0 10px;
+}
+
+.tablist a:hover {
+    background-image: url('tab_h.png');
+    background-repeat:repeat-x;
+    color: #fff;
+    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+    text-decoration: none;
+}
+
+.tablist li.current a {
+    background-image: url('tab_a.png');
+    background-repeat:repeat-x;
+    color: #fff;
+    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
--- /dev/null
+++ b/doxygen/leaf/trigtbl_8h_source.html
@@ -1,0 +1,281 @@
+<!-- HTML header for doxygen 1.8.18-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <meta name="generator" content="Doxygen 1.8.16" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>LEAF: LEAF/Externals/trigtbl.h Source File</title>
+    <link href="tabs.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="jquery.js"></script>
+    <script type="text/javascript" src="dynsections.js"></script>
+    <script src="/js/template.js"></script>
+     <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script> 
+    <link href="doxygen.css" rel="stylesheet" type="text/css" />
+    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
+    <link rel="stylesheet" href="/css/tachyons.css" type="text/css" />
+  </head>
+  <body class="bg-washed-green black-70 ph0 sans-serif">
+    <header></header><script>getHeader()</script>
+    <div>
+      <!-- do not remove this div, it is closed by doxygen! -->
+      <div id="titlearea">
+        <table cellspacing="0" cellpadding="0">
+          <tbody>
+            <tr>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- end header part -->
+    </div>
+  </body>
+</html>
+<!-- Generated by Doxygen 1.8.16 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_127e6aa213d41105176fe0c3bbb2560c.html">LEAF</a></li><li class="navelem"><a class="el" href="dir_c32436ea5eb8693473f37766c9d9ff95.html">Externals</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">trigtbl.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">** Please only distribute this with it&#39;s associated FHT routine.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">** This algorithm is apparently patented(!) and the code copyrighted. </span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">** See the comment with the fht routine for more info.</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">**   -Thanks,</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">**   Ron Mayer</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#ifdef REAL</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#define REAL double</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifdef GOOD_TRIG</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define FAST_TRIG</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#if defined(GOOD_TRIG)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#define FHT_SWAP(a,b,t) {(t)=(a);(a)=(b);(b)=(t);}</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#define TRIG_VARS                            \</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">      int t_lam=0;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#define TRIG_INIT(k,c,s)                     \</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">     {                               \</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">      int i;                             \</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">      for (i=2 ; i&lt;=k ; i++)                     \</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">          {coswrk[i]=costab[i];sinwrk[i]=sintab[i];}         \</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">      t_lam = 0;                             \</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">      c = 1;                             \</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">      s = 0;                             \</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">     }</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#define TRIG_NEXT(k,c,s)                     \</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">     {                               \</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">     int i,j;                                            \</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">         (t_lam)++;                      \</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">         for (i=0 ; !((1&lt;&lt;i)&amp;t_lam) ; i++);          \</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">         i = k-i;                        \</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">         s = sinwrk[i];                      \</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">         c = coswrk[i];                      \</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">         if (i&gt;1)                            \</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">            {                                \</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">             for (j=k-i+2 ; (1&lt;&lt;j)&amp;t_lam ; j++);         \</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">             j         = k - j;                  \</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">             sinwrk[i] = halsec[i] * (sinwrk[i-1] + sinwrk[j]);  \</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">             coswrk[i] = halsec[i] * (coswrk[i-1] + coswrk[j]);  \</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">            }                                                    \</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">     }</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#define TRIG_RESET(k,c,s)</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#if defined(FAST_TRIG)</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#define TRIG_VARS                    \</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">      REAL t_c,t_s;</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#define TRIG_INIT(k,c,s)                 \</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">    {                                \</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="preprocessor">     t_c  = costab[k];                       \</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="preprocessor">     t_s  = sintab[k];                       \</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">     c    = 1;                           \</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">     s    = 0;                           \</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">    }</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor">#define TRIG_NEXT(k,c,s)                 \</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">    {                                                    \</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">     REAL t = c;                                         \</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">     c   = t*t_c - s*t_s;                \</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">     s   = t*t_s + s*t_c;                \</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">    }</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#define TRIG_RESET(k,c,s)</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; </div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="keyword">static</span> REAL halsec[20]=</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    {</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;     0,</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;     0,</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;     .54119610014619698439972320536638942006107206337801,</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;     .50979557910415916894193980398784391368261849190893,</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;     .50241928618815570551167011928012092247859337193963,</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;     .50060299823519630134550410676638239611758632599591,</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;     .50015063602065098821477101271097658495974913010340,</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;     .50003765191554772296778139077905492847503165398345,</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;     .50000941253588775676512870469186533538523133757983,</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;     .50000235310628608051401267171204408939326297376426,</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;     .50000058827484117879868526730916804925780637276181,</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;     .50000014706860214875463798283871198206179118093251,</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;     .50000003676714377807315864400643020315103490883972,</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;     .50000000919178552207366560348853455333939112569380,</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;     .50000000229794635411562887767906868558991922348920,</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;     .50000000057448658687873302235147272458812263401372</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    };</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="keyword">static</span> REAL costab[20]=</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    {</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;     .00000000000000000000000000000000000000000000000000,</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;     .70710678118654752440084436210484903928483593768847,</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;     .92387953251128675612818318939678828682241662586364,</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;     .98078528040323044912618223613423903697393373089333,</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;     .99518472667219688624483695310947992157547486872985,</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;     .99879545620517239271477160475910069444320361470461,</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;     .99969881869620422011576564966617219685006108125772,</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;     .99992470183914454092164649119638322435060646880221,</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;     .99998117528260114265699043772856771617391725094433,</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;     .99999529380957617151158012570011989955298763362218,</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;     .99999882345170190992902571017152601904826792288976,</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;     .99999970586288221916022821773876567711626389934930,</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;     .99999992646571785114473148070738785694820115568892,</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;     .99999998161642929380834691540290971450507605124278,</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;     .99999999540410731289097193313960614895889430318945,</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;     .99999999885102682756267330779455410840053741619428</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    };</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="keyword">static</span> REAL sintab[20]=</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    {</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;     1.0000000000000000000000000000000000000000000000000,</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;     .70710678118654752440084436210484903928483593768846,</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;     .38268343236508977172845998403039886676134456248561,</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;     .19509032201612826784828486847702224092769161775195,</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;     .09801714032956060199419556388864184586113667316749,</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;     .04906767432741801425495497694268265831474536302574,</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;     .02454122852291228803173452945928292506546611923944,</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;     .01227153828571992607940826195100321214037231959176,</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;     .00613588464915447535964023459037258091705788631738,</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;     .00306795676296597627014536549091984251894461021344,</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;     .00153398018628476561230369715026407907995486457522,</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;     .00076699031874270452693856835794857664314091945205,</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;     .00038349518757139558907246168118138126339502603495,</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;     .00019174759731070330743990956198900093346887403385,</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;     .00009587379909597734587051721097647635118706561284,</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;     .00004793689960306688454900399049465887274686668768</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    };</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="keyword">static</span> REAL coswrk[20]=</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    {</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;     .00000000000000000000000000000000000000000000000000,</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;     .70710678118654752440084436210484903928483593768847,</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;     .92387953251128675612818318939678828682241662586364,</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;     .98078528040323044912618223613423903697393373089333,</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;     .99518472667219688624483695310947992157547486872985,</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;     .99879545620517239271477160475910069444320361470461,</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;     .99969881869620422011576564966617219685006108125772,</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;     .99992470183914454092164649119638322435060646880221,</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;     .99998117528260114265699043772856771617391725094433,</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;     .99999529380957617151158012570011989955298763362218,</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;     .99999882345170190992902571017152601904826792288976,</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;     .99999970586288221916022821773876567711626389934930,</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;     .99999992646571785114473148070738785694820115568892,</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;     .99999998161642929380834691540290971450507605124278,</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;     .99999999540410731289097193313960614895889430318945,</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;     .99999999885102682756267330779455410840053741619428</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    };</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="keyword">static</span> REAL sinwrk[20]=</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    {</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;     1.0000000000000000000000000000000000000000000000000,</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;     .70710678118654752440084436210484903928483593768846,</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;     .38268343236508977172845998403039886676134456248561,</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;     .19509032201612826784828486847702224092769161775195,</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;     .09801714032956060199419556388864184586113667316749,</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;     .04906767432741801425495497694268265831474536302574,</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;     .02454122852291228803173452945928292506546611923944,</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;     .01227153828571992607940826195100321214037231959176,</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;     .00613588464915447535964023459037258091705788631738,</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;     .00306795676296597627014536549091984251894461021344,</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;     .00153398018628476561230369715026407907995486457522,</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;     .00076699031874270452693856835794857664314091945205,</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;     .00038349518757139558907246168118138126339502603495,</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;     .00019174759731070330743990956198900093346887403385,</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;     .00009587379909597734587051721097647635118706561284,</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;     .00004793689960306688454900399049465887274686668768</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    };</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;}</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- HTML footer for doxygen 1.8.18-->
+<!-- start footer part -->
+<footer></footer><script>getFooter()</script>
+</body>
+</html>
--- a/leaf/Inc/leaf-oscillators.h
+++ b/leaf/Inc/leaf-oscillators.h
@@ -91,18 +91,20 @@
      @brief Anti-aliased wavetable oscillator.
      @{
      
-     @fn void    tWavetable_init  (tWavetable* const osc, float* table, int size, LEAF* const leaf)
+     @fn void    tWavetable_init  (tWavetable* const osc, float* table, int size, float maxFreq, LEAF* const leaf)
      @brief Initialize a tWavetable to the default mempool of a LEAF instance.
      @param osc A pointer to the tWavetable to initialize.
      @param table A pointer to the wavetable data.
      @param size The number of samples in the wavetable.
+     @param maxFreq The maximum expected frequency of the oscillator. The higher this is, the more memory will be needed.
      @param leaf A pointer to the leaf instance.
      
-     @fn void    tWavetable_initToPool   (tWavetable* const osc, float* table, int size, tMempool* const mempool)
+     @fn void    tWavetable_initToPool   (tWavetable* const osc, float* table, int size, float maxFreq, tMempool* const mempool)
      @brief Initialize a tWavetable to a specified mempool.
      @param osc A pointer to the tWavetable to initialize.
      @param table A pointer to the wavetable data.
      @param size The number of samples in the wave table.
+     @param maxFreq The maximum expected frequency of the oscillator. The higher this is, the more memory will be needed. 
      @param mempool A pointer to the tMempool to use.
      
      @fn void    tWavetable_free         (tWavetable* const osc)
@@ -157,18 +159,20 @@
      @brief A more space-efficient anti-aliased wavetable oscillator than tWavetable but with slightly worse fidelity.
      @{
      
-     @fn void    tCompactWavetable_init  (tCompactWavetable* const osc, float* table, int size, LEAF* const leaf)
+     @fn void    tCompactWavetable_init  (tCompactWavetable* const osc, float* table, int size, float maxFreq, LEAF* const leaf)
      @brief Initialize a tCompactWavetable to the default mempool of a LEAF instance.
      @param osc A pointer to the tCompactWavetable to initialize.
      @param table A pointer to the wavetable data.
      @param size The number of samples in the wavetable.
+     @param maxFreq The maximum expected frequency of the oscillator. The higher this is, the more memory will be needed.
      @param leaf A pointer to the leaf instance.
      
-     @fn void    tCompactWavetable_initToPool   (tCompactWavetable* const osc, float* table, int size, tMempool* const mempool)
+     @fn void    tCompactWavetable_initToPool   (tCompactWavetable* const osc, float* table, int size, float maxFreq, tMempool* const mempool)
      @brief Initialize a tCompactWavetable to a specified mempool.
      @param osc A pointer to the tCompactWavetable to initialize.
      @param table A pointer to the wavetable data.
      @param size The number of samples in the wave table.
+     @param maxFreq The maximum expected frequency of the oscillator. The higher this is, the more memory will be needed.
      @param mempool A pointer to the tMempool to use.
      
      @fn void    tCompactWavetable_free         (tCompactWavetable* const osc)