SpaghettiKart/synthesis_8h_source.html

308 lines
51 KiB
HTML

<!-- HTML header for doxygen 1.10.0-->
<!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" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Mario Kart 64: src/audio/synthesis.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 type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only-darkmode-toggle.css" rel="stylesheet" type="text/css"/>
<link href="docs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="doxygen-awesome-darkmode-toggle.js"></script>
<script type="text/javascript">
DoxygenAwesomeDarkModeToggle.init()
</script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Mario Kart 64
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('synthesis_8h_source.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- 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">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">synthesis.h</div></div>
</div><!--header-->
<div class="contents">
<a href="synthesis_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef AUDIO_SYNTHESIS_H</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define AUDIO_SYNTHESIS_H</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &quot;<a class="code" href="internal_8h.html">audio/internal.h</a>&quot;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &lt;libultra/gbi.h&gt;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"><a class="line" href="synthesis_8h.html#a595997d04904dfb0bf3bcef45336e373"> 7</a></span><span class="preprocessor">#define DEFAULT_LEN_1CH 0x180</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"><a class="line" href="synthesis_8h.html#af8e8ccd276f35d9a4cee4a4a3d624373"> 8</a></span><span class="preprocessor">#define DEFAULT_LEN_2CH 0x300</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"><a class="line" href="synthesis_8h.html#a2ca711eab9b187c85af2cdaf8655790e"> 10</a></span><span class="preprocessor">#define DMEM_ADDR_TEMP 0x0</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"><a class="line" href="synthesis_8h.html#a5cf7d7e6f1edba2df6f57b911e8b1d24"> 11</a></span><span class="preprocessor">#define DMEM_ADDR_RESAMPLED 0x20</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"><a class="line" href="synthesis_8h.html#aa94789a121bcf33952fbb5dda4c74aa9"> 12</a></span><span class="preprocessor">#define DMEM_ADDR_RESAMPLED2 0x1A0</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"><a class="line" href="synthesis_8h.html#afb7807e6b60c3dd2173629b8d973dcc7"> 13</a></span><span class="preprocessor">#define DMEM_ADDR_UNCOMPRESSED_NOTE 0x180</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="synthesis_8h.html#a5fcd886099877cac6ca75cefff4ca346"> 14</a></span><span class="preprocessor">#define DMEM_ADDR_NOTE_PAN_TEMP 0x200</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"><a class="line" href="synthesis_8h.html#a06075547c446d7fdad48154db5d9116e"> 15</a></span><span class="preprocessor">#define DMEM_ADDR_STEREO_STRONG_TEMP_DRY 0x200</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="synthesis_8h.html#a36b3e5489ff9e278ed7903a91fc4e4dc"> 16</a></span><span class="preprocessor">#define DMEM_ADDR_STEREO_STRONG_TEMP_WET 0x340</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="synthesis_8h.html#a029098f76c4ef69712069d4f1548858f"> 17</a></span><span class="preprocessor">#define DMEM_ADDR_COMPRESSED_ADPCM_DATA 0x3f0</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"><a class="line" href="synthesis_8h.html#a92fee86186294f642b73eef01447c2fd"> 18</a></span><span class="preprocessor">#define DMEM_ADDR_LEFT_CH 0x540</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="synthesis_8h.html#afcfd69891a61dd607a7d29c83b9b75ec"> 19</a></span><span class="preprocessor">#define DMEM_ADDR_RIGHT_CH 0x6C0</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="synthesis_8h.html#a7f59b9e4b76238914747f4d44efaf00b"> 20</a></span><span class="preprocessor">#define DMEM_ADDR_WET_LEFT_CH 0x840</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="synthesis_8h.html#a7d0209c82345e7a6205f78c353b70547"> 21</a></span><span class="preprocessor">#define DMEM_ADDR_WET_RIGHT_CH 0x9C0</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment">/*</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment">Its not clear what values these macros should have. Neither version seem to</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment">line up for MK64. Maybe each game has unique values for these? I don&#39;t know</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment">enough about the Audio engine stuff to speculate beyond that.</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"></span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment">Non-Shindou SM64</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment">#define DMEM_ADDR_TEMP 0x0</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment">#define DMEM_ADDR_RESAMPLED 0x20</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment">#define DMEM_ADDR_RESAMPLED2 0x160</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="comment">#define DMEM_ADDR_UNCOMPRESSED_NOTE 0x180</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="comment">#define DMEM_ADDR_NOTE_PAN_TEMP 0x200</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment">#define DMEM_ADDR_STEREO_STRONG_TEMP_DRY 0x200</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment">#define DMEM_ADDR_STEREO_STRONG_TEMP_WET 0x340</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment">#define DMEM_ADDR_COMPRESSED_ADPCM_DATA 0x3f0</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment">#define DMEM_ADDR_LEFT_CH 0x4c0</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="comment">#define DMEM_ADDR_RIGHT_CH 0x600</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="comment">#define DMEM_ADDR_WET_LEFT_CH 0x740</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment">#define DMEM_ADDR_WET_RIGHT_CH 0x880</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment"></span> </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment">Shindou SM64</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="comment">#define DMEM_ADDR_TEMP 0x450</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="comment">#define DMEM_ADDR_RESAMPLED 0x470</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="comment">#define DMEM_ADDR_RESAMPLED2 0x5f0</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment">#define DMEM_ADDR_UNCOMPRESSED_NOTE 0x5f0</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="comment">#define DMEM_ADDR_NOTE_PAN_TEMP 0x650</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="comment">#define DMEM_ADDR_COMPRESSED_ADPCM_DATA 0x990</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="comment">#define DMEM_ADDR_LEFT_CH 0x990</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="comment">#define DMEM_ADDR_RIGHT_CH 0xb10</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment">#define DMEM_ADDR_WET_LEFT_CH 0xc90</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="comment">#define DMEM_ADDR_WET_RIGHT_CH 0xe10</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment">*/</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="synthesis_8h.html#ad36e3defa1b07b00d70bd03887843525"> 56</a></span><span class="preprocessor">#define MAX_UPDATES_PER_FRAME 5</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="foldopen" id="foldopen00058" data-start="{" data-end="};">
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="structReverbRingBufferItem.html"> 58</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structReverbRingBufferItem.html">ReverbRingBufferItem</a> {</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="structReverbRingBufferItem.html#ae7d1e45b22c2ec70d50e3dcf0a142983"> 59</a></span> <span class="comment">/* 0x00 */</span> s16 <a class="code hl_variable" href="structReverbRingBufferItem.html#ae7d1e45b22c2ec70d50e3dcf0a142983">numSamplesAfterDownsampling</a>;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="structReverbRingBufferItem.html#aecb154fdd65e01e1dc121b3b204943c3"> 60</a></span> <span class="comment">/* 0x02 */</span> s16 <a class="code hl_variable" href="structReverbRingBufferItem.html#aecb154fdd65e01e1dc121b3b204943c3">chunkLen</a>; <span class="comment">// never read</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="structReverbRingBufferItem.html#a5a7f1207d11bc90f650436b92a5e9ff4"> 61</a></span> <span class="comment">/* 0x04 */</span> s16* <a class="code hl_variable" href="structReverbRingBufferItem.html#a5a7f1207d11bc90f650436b92a5e9ff4">toDownsampleLeft</a>;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="structReverbRingBufferItem.html#adfe49013fb298b93af3d76538fa5b667"> 62</a></span> <span class="comment">/* 0x08 */</span> s16* <a class="code hl_variable" href="structReverbRingBufferItem.html#adfe49013fb298b93af3d76538fa5b667">toDownsampleRight</a>; <span class="comment">// data pointed to by left and right are adjacent in memory</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structReverbRingBufferItem.html#a1c4e2ff405bc383f8fb537edb3417c84"> 63</a></span> <span class="comment">/* 0x0C */</span> s32 <a class="code hl_variable" href="structReverbRingBufferItem.html#a1c4e2ff405bc383f8fb537edb3417c84">startPos</a>; <span class="comment">// start pos in ring buffer</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="structReverbRingBufferItem.html#ad0aaeb3ac2e8c6de0e2379fd4ffdc43e"> 64</a></span> <span class="comment">/* 0x10 */</span> s16 <a class="code hl_variable" href="structReverbRingBufferItem.html#ad0aaeb3ac2e8c6de0e2379fd4ffdc43e">lengthA</a>; <span class="comment">// first length in ring buffer (from startPos, at most until end)</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="structReverbRingBufferItem.html#a7468acef467cc33032ebc71a9213f201"> 65</a></span> <span class="comment">/* 0x12 */</span> s16 <a class="code hl_variable" href="structReverbRingBufferItem.html#a7468acef467cc33032ebc71a9213f201">lengthB</a>; <span class="comment">// second length in ring buffer (from pos 0)</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span>}; <span class="comment">// size = 0x14</span></div>
</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="foldopen" id="foldopen00068" data-start="{" data-end="};">
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html"> 68</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structSynthesisReverb.html">SynthesisReverb</a> {</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a13b37fc2117b3721934456caf9b0fcc0"> 69</a></span> <span class="comment">/* 0x00 */</span> u8 <a class="code hl_variable" href="structSynthesisReverb.html#a13b37fc2117b3721934456caf9b0fcc0">resampleFlags</a>;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a5b14756d9ad6c5588fdb97041605f43e"> 70</a></span> <span class="comment">/* 0x01 */</span> u8 <a class="code hl_variable" href="structSynthesisReverb.html#a5b14756d9ad6c5588fdb97041605f43e">useReverb</a>;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a6c9feb671e28868a8539aef606d6e1be"> 71</a></span> <span class="comment">/* 0x02 */</span> u8 <a class="code hl_variable" href="structSynthesisReverb.html#a6c9feb671e28868a8539aef606d6e1be">framesLeftToIgnore</a>;</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a701bb7bbad9141b0664bbb19117e3d3c"> 72</a></span> <span class="comment">/* 0x03 */</span> u8 <a class="code hl_variable" href="structSynthesisReverb.html#a701bb7bbad9141b0664bbb19117e3d3c">curFrame</a>;</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#ab4cf4eefbf98776a131b84bf7bad71c4"> 73</a></span> <span class="comment">/* 0x04 */</span> u8 <a class="code hl_variable" href="structSynthesisReverb.html#ab4cf4eefbf98776a131b84bf7bad71c4">downsampleRate</a>;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="comment">/* 0x05 */</span> <span class="comment">// u8 compilerPadding;</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#ac33541fe1dc1f814a10cbc97b86b8d4d"> 75</a></span> <span class="comment">/* 0x06 */</span> u16 <a class="code hl_variable" href="structSynthesisReverb.html#ac33541fe1dc1f814a10cbc97b86b8d4d">windowSize</a>; <span class="comment">// same as bufSizePerChannel</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a1b25d21952ec1fc371d3a00dd6802e5a"> 76</a></span> <span class="comment">/* 0x08 */</span> u16 <a class="code hl_variable" href="structSynthesisReverb.html#a1b25d21952ec1fc371d3a00dd6802e5a">reverbGain</a>;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a91a60bfb503bd59fce13f4b990f392d7"> 77</a></span> <span class="comment">/* 0x0A */</span> u16 <a class="code hl_variable" href="structSynthesisReverb.html#a91a60bfb503bd59fce13f4b990f392d7">resampleRate</a>;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#af0c1e263c77e45751776b0fb21c78fec"> 78</a></span> <span class="comment">/* 0x0C */</span> s32 <a class="code hl_variable" href="structSynthesisReverb.html#af0c1e263c77e45751776b0fb21c78fec">nextRingBufferPos</a>;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a1b2d1ba08d5b8167132952dba7512fba"> 79</a></span> <span class="comment">/* 0x10 */</span> s32 <a class="code hl_variable" href="structSynthesisReverb.html#a1b2d1ba08d5b8167132952dba7512fba">unkC</a>; <span class="comment">// never read</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a5a0bc86224c7b45b92f4f7d95d36efbe"> 80</a></span> <span class="comment">/* 0x14 */</span> s32 <a class="code hl_variable" href="structSynthesisReverb.html#a5a0bc86224c7b45b92f4f7d95d36efbe">bufSizePerChannel</a>;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">struct </span>{</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a2352e4dda5d3276c505131850353caa8"> 82</a></span> <span class="comment">/* 0x18 */</span> s16* <a class="code hl_variable" href="structSynthesisReverb.html#a2352e4dda5d3276c505131850353caa8">left</a>;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a5fe52018768c0e1e22713c3eabf89483"> 83</a></span> <span class="comment">/* 0x1C */</span> s16* <a class="code hl_variable" href="structSynthesisReverb.html#a5fe52018768c0e1e22713c3eabf89483">right</a>;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#af35d57f5349288262225b17bef133495"> 84</a></span> } <a class="code hl_variable" href="structSynthesisReverb.html#af35d57f5349288262225b17bef133495">ringBuffer</a>;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a21a142dba6c0a8f3735e1ab5bb5cce7a"> 85</a></span> <span class="comment">/* 0x20 */</span> s16* <a class="code hl_variable" href="structSynthesisReverb.html#a21a142dba6c0a8f3735e1ab5bb5cce7a">resampleStateLeft</a>;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a70a22a0cdee2d03b6d06fbd2b3226563"> 86</a></span> <span class="comment">/* 0x24 */</span> s16* <a class="code hl_variable" href="structSynthesisReverb.html#a70a22a0cdee2d03b6d06fbd2b3226563">resampleStateRight</a>;</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a54c2267cc8a0a5d27b436b5fa9139b9f"> 87</a></span> <span class="comment">/* 0x28 */</span> s16* <a class="code hl_variable" href="structSynthesisReverb.html#a54c2267cc8a0a5d27b436b5fa9139b9f">unk24</a>; <span class="comment">// never read</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a0115da98d83c0acb5bf87a5f7adc69e1"> 88</a></span> <span class="comment">/* 0x2C */</span> s16* <a class="code hl_variable" href="structSynthesisReverb.html#a0115da98d83c0acb5bf87a5f7adc69e1">unk28</a>; <span class="comment">// never read</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a0b9105040972d04171ddea3a369d14fb"> 89</a></span> <span class="comment">/* 0x30 */</span> <span class="keyword">struct </span><a class="code hl_struct" href="structReverbRingBufferItem.html">ReverbRingBufferItem</a> <a class="code hl_variable" href="structSynthesisReverb.html#a0b9105040972d04171ddea3a369d14fb">items</a>[2][<a class="code hl_define" href="synthesis_8h.html#ad36e3defa1b07b00d70bd03887843525">MAX_UPDATES_PER_FRAME</a>];</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a95c1a105fa35fdce091e5a21b51a551f"> 90</a></span> <span class="comment">/* 0xF8 */</span> s16* <a class="code hl_variable" href="structSynthesisReverb.html#a95c1a105fa35fdce091e5a21b51a551f">unkF8</a>;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#aa46c28e4defb41adeab96a8bab877a6f"> 91</a></span> <span class="comment">/* 0xFC */</span> s16* <a class="code hl_variable" href="structSynthesisReverb.html#aa46c28e4defb41adeab96a8bab877a6f">unkFC</a>;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#a82c89d4f0c9540c0f0f9ea68ba6347d3"> 92</a></span> <span class="comment">/* 0x100 */</span> s16* <a class="code hl_variable" href="structSynthesisReverb.html#a82c89d4f0c9540c0f0f9ea68ba6347d3">unk100</a>;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="structSynthesisReverb.html#af5dddf0dc829753ac487ac160e90bb79"> 93</a></span> <span class="comment">/* 0x104 */</span> s16* <a class="code hl_variable" href="structSynthesisReverb.html#af5dddf0dc829753ac487ac160e90bb79">unk104</a>;</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span>}; <span class="comment">// size = 0x108</span></div>
</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="synthesis_8h.html#ac21dfbef35c6762134ee2995898b5f88"> 96</a></span><span class="preprocessor">#define ALIGN(val, amnt) (((val) + (1 &lt;&lt; amnt) - 1) &amp; ~((1 &lt;&lt; amnt) - 1))</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="keywordtype">void</span> <a class="code hl_function" href="synthesis_8h.html#a9964410947181858fecd99e63c47d6a8">prepare_reverb_ring_buffer</a>(s32 <a class="code hl_variable" href="structReverbRingBufferItem.html#aecb154fdd65e01e1dc121b3b204943c3">chunkLen</a>, u32 updateIndex, s32 reverbIndex);</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span>Acmd* <a class="code hl_function" href="synthesis_8h.html#a98b5785b65674a669175487b708d1fac">synthesis_load_reverb_ring_buffer</a>(Acmd*, u16, u16, s32, s32);</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span>Acmd* <a class="code hl_function" href="synthesis_8h.html#a4335280b9164016034f7e52d4f2ccef9">synthesis_save_reverb_ring_buffer</a>(Acmd*, u16, u16, s32, s32);</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="keywordtype">void</span> <a class="code hl_function" href="synthesis_8h.html#a831c7a9542071eed3e68885bd89e505b">func_800B6FB4</a>(s32 updateIndexStart, s32 noteIndex);</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="keywordtype">void</span> <a class="code hl_function" href="synthesis_8h.html#ab469a6d9522ccd7bdcef898769a46a7a">synthesis_load_note_subs_eu</a>(s32 updateIndex);</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span>Acmd* <a class="code hl_function" href="synthesis_8h.html#a1ced286cad738cbc3b205b3d763002d6">synthesis_execute</a>(Acmd*, s32*, s16*, s32);</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span>Acmd* <a class="code hl_function" href="synthesis_8h.html#a6d3021a3852efebf658d4c1a1f741a5c">synthesis_resample_and_mix_reverb</a>(Acmd*, s32, s16, s16);</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span>Acmd* <a class="code hl_function" href="synthesis_8h.html#aebc1a42723ab6d4ef65df99740d35318">synthesis_save_reverb_samples</a>(Acmd*, s16, s16);</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span>Acmd* <a class="code hl_function" href="synthesis_8h.html#ac62830b08cf19a15a6543ae6c94b219d">synthesis_do_one_audio_update</a>(s16*, s32, Acmd*, s32);</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="synthesis_8h.html#a118f48c8fedabdaea7a5ae803cdf7bc2"> 107</a></span>Acmd* <a class="code hl_function" href="synthesis_8h.html#a118f48c8fedabdaea7a5ae803cdf7bc2">synthesis_process_note</a>(s32 noteIndex, <span class="keyword">struct</span> <a class="code hl_struct" href="structNoteSubEu.html">NoteSubEu</a>* noteSubEu, <span class="keyword">struct</span> <a class="code hl_struct" href="structNoteSynthesisState.html">NoteSynthesisState</a>* synthesisState,</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> s16* aiBuf, s32 inBuf, Acmd* cmd, s32 updateIndex);</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span>Acmd* <a class="code hl_function" href="synthesis_8h.html#aed4d56af55356360afaebcb4f194407c">load_wave_samples</a>(Acmd* acmd, <span class="keyword">struct</span> <a class="code hl_struct" href="structNoteSubEu.html">NoteSubEu</a>* noteSubEu, <span class="keyword">struct</span> <a class="code hl_struct" href="structNoteSynthesisState.html">NoteSynthesisState</a>* synthesisState,</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> s32 nSamplesToLoad);</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>Acmd* <a class="code hl_function" href="synthesis_8h.html#afdb8a3b2a3566c114fc20078eb07ba4c">final_resample</a>(Acmd* acmd, <span class="keyword">struct</span> <a class="code hl_struct" href="structNoteSynthesisState.html">NoteSynthesisState</a>* synthesisState, s32 count, u16 pitch, u16 dmemIn,</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> u32 flags);</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="synthesis_8h.html#ad17eae18081d8d3600d6e23d044e5290"> 113</a></span>Acmd* <a class="code hl_function" href="synthesis_8h.html#ad17eae18081d8d3600d6e23d044e5290">func_800B86A0</a>(Acmd* cmd, <span class="keyword">struct</span> <a class="code hl_struct" href="structNoteSubEu.html">NoteSubEu</a>* note, <span class="keyword">struct</span> <a class="code hl_struct" href="structNoteSynthesisState.html">NoteSynthesisState</a>* synthesisState, s32 nSamples,</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> u16 inBuf, s32 headsetPanSettings, u32 flags);</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span>Acmd* <a class="code hl_function" href="synthesis_8h.html#ab6acf42e1089301d7b1959b332d22233">note_apply_headset_pan_effects</a>(Acmd* acmd, <span class="keyword">struct</span> <a class="code hl_struct" href="structNoteSubEu.html">NoteSubEu</a>* noteSubEu, <span class="keyword">struct</span> <a class="code hl_struct" href="structNoteSynthesisState.html">NoteSynthesisState</a>* note,</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> s32 bufLen, s32 flags, s32 leftRight);</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="keyword">extern</span> <span class="keyword">struct </span><a class="code hl_struct" href="structSynthesisReverb.html">SynthesisReverb</a> <a class="code hl_variable" href="synthesis_8c.html#a46dbb82b200402601c2819f7deab8c04">gSynthesisReverbs</a>[4];</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="comment">/*</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment">SO</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="comment">gLeftVolRampings is almost certainly gAudioSessionPool (D_803AFBC8) in disguise, but since</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="comment">synthesis&#39; ro/data has already been broken out it&#39;ll be very hard to fix that.</span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment"></span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment">extern f32 gLeftVolRampings[3][1024];</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="comment">extern f32 gRightVolRampings[3][1024];</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="comment">extern f32 *gCurrentLeftVolRamping; // Points to any of the three left buffers above</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="comment">extern f32 *gCurrentRightVolRamping; // Points to any of the three right buffers above</span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="comment">*/</span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="preprocessor">#endif </span><span class="comment">// AUDIO_SYNTHESIS_H</span></div>
<div class="ttc" id="ainternal_8h_html"><div class="ttname"><a href="internal_8h.html">internal.h</a></div></div>
<div class="ttc" id="astructNoteSubEu_html"><div class="ttname"><a href="structNoteSubEu.html">NoteSubEu</a></div><div class="ttdef"><b>Definition</b> internal.h:410</div></div>
<div class="ttc" id="astructNoteSynthesisState_html"><div class="ttname"><a href="structNoteSynthesisState.html">NoteSynthesisState</a></div><div class="ttdef"><b>Definition</b> internal.h:383</div></div>
<div class="ttc" id="astructReverbRingBufferItem_html"><div class="ttname"><a href="structReverbRingBufferItem.html">ReverbRingBufferItem</a></div><div class="ttdef"><b>Definition</b> synthesis.h:58</div></div>
<div class="ttc" id="astructReverbRingBufferItem_html_a1c4e2ff405bc383f8fb537edb3417c84"><div class="ttname"><a href="structReverbRingBufferItem.html#a1c4e2ff405bc383f8fb537edb3417c84">ReverbRingBufferItem::startPos</a></div><div class="ttdeci">s32 startPos</div><div class="ttdef"><b>Definition</b> synthesis.h:63</div></div>
<div class="ttc" id="astructReverbRingBufferItem_html_a5a7f1207d11bc90f650436b92a5e9ff4"><div class="ttname"><a href="structReverbRingBufferItem.html#a5a7f1207d11bc90f650436b92a5e9ff4">ReverbRingBufferItem::toDownsampleLeft</a></div><div class="ttdeci">s16 * toDownsampleLeft</div><div class="ttdef"><b>Definition</b> synthesis.h:61</div></div>
<div class="ttc" id="astructReverbRingBufferItem_html_a7468acef467cc33032ebc71a9213f201"><div class="ttname"><a href="structReverbRingBufferItem.html#a7468acef467cc33032ebc71a9213f201">ReverbRingBufferItem::lengthB</a></div><div class="ttdeci">s16 lengthB</div><div class="ttdef"><b>Definition</b> synthesis.h:65</div></div>
<div class="ttc" id="astructReverbRingBufferItem_html_ad0aaeb3ac2e8c6de0e2379fd4ffdc43e"><div class="ttname"><a href="structReverbRingBufferItem.html#ad0aaeb3ac2e8c6de0e2379fd4ffdc43e">ReverbRingBufferItem::lengthA</a></div><div class="ttdeci">s16 lengthA</div><div class="ttdef"><b>Definition</b> synthesis.h:64</div></div>
<div class="ttc" id="astructReverbRingBufferItem_html_adfe49013fb298b93af3d76538fa5b667"><div class="ttname"><a href="structReverbRingBufferItem.html#adfe49013fb298b93af3d76538fa5b667">ReverbRingBufferItem::toDownsampleRight</a></div><div class="ttdeci">s16 * toDownsampleRight</div><div class="ttdef"><b>Definition</b> synthesis.h:62</div></div>
<div class="ttc" id="astructReverbRingBufferItem_html_ae7d1e45b22c2ec70d50e3dcf0a142983"><div class="ttname"><a href="structReverbRingBufferItem.html#ae7d1e45b22c2ec70d50e3dcf0a142983">ReverbRingBufferItem::numSamplesAfterDownsampling</a></div><div class="ttdeci">s16 numSamplesAfterDownsampling</div><div class="ttdef"><b>Definition</b> synthesis.h:59</div></div>
<div class="ttc" id="astructReverbRingBufferItem_html_aecb154fdd65e01e1dc121b3b204943c3"><div class="ttname"><a href="structReverbRingBufferItem.html#aecb154fdd65e01e1dc121b3b204943c3">ReverbRingBufferItem::chunkLen</a></div><div class="ttdeci">s16 chunkLen</div><div class="ttdef"><b>Definition</b> synthesis.h:60</div></div>
<div class="ttc" id="astructSynthesisReverb_html"><div class="ttname"><a href="structSynthesisReverb.html">SynthesisReverb</a></div><div class="ttdef"><b>Definition</b> synthesis.h:68</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a0115da98d83c0acb5bf87a5f7adc69e1"><div class="ttname"><a href="structSynthesisReverb.html#a0115da98d83c0acb5bf87a5f7adc69e1">SynthesisReverb::unk28</a></div><div class="ttdeci">s16 * unk28</div><div class="ttdef"><b>Definition</b> synthesis.h:88</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a0b9105040972d04171ddea3a369d14fb"><div class="ttname"><a href="structSynthesisReverb.html#a0b9105040972d04171ddea3a369d14fb">SynthesisReverb::items</a></div><div class="ttdeci">struct ReverbRingBufferItem items[2][MAX_UPDATES_PER_FRAME]</div><div class="ttdef"><b>Definition</b> synthesis.h:89</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a13b37fc2117b3721934456caf9b0fcc0"><div class="ttname"><a href="structSynthesisReverb.html#a13b37fc2117b3721934456caf9b0fcc0">SynthesisReverb::resampleFlags</a></div><div class="ttdeci">u8 resampleFlags</div><div class="ttdef"><b>Definition</b> synthesis.h:69</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a1b25d21952ec1fc371d3a00dd6802e5a"><div class="ttname"><a href="structSynthesisReverb.html#a1b25d21952ec1fc371d3a00dd6802e5a">SynthesisReverb::reverbGain</a></div><div class="ttdeci">u16 reverbGain</div><div class="ttdef"><b>Definition</b> synthesis.h:76</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a1b2d1ba08d5b8167132952dba7512fba"><div class="ttname"><a href="structSynthesisReverb.html#a1b2d1ba08d5b8167132952dba7512fba">SynthesisReverb::unkC</a></div><div class="ttdeci">s32 unkC</div><div class="ttdef"><b>Definition</b> synthesis.h:79</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a21a142dba6c0a8f3735e1ab5bb5cce7a"><div class="ttname"><a href="structSynthesisReverb.html#a21a142dba6c0a8f3735e1ab5bb5cce7a">SynthesisReverb::resampleStateLeft</a></div><div class="ttdeci">s16 * resampleStateLeft</div><div class="ttdef"><b>Definition</b> synthesis.h:85</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a2352e4dda5d3276c505131850353caa8"><div class="ttname"><a href="structSynthesisReverb.html#a2352e4dda5d3276c505131850353caa8">SynthesisReverb::left</a></div><div class="ttdeci">s16 * left</div><div class="ttdef"><b>Definition</b> synthesis.h:82</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a54c2267cc8a0a5d27b436b5fa9139b9f"><div class="ttname"><a href="structSynthesisReverb.html#a54c2267cc8a0a5d27b436b5fa9139b9f">SynthesisReverb::unk24</a></div><div class="ttdeci">s16 * unk24</div><div class="ttdef"><b>Definition</b> synthesis.h:87</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a5a0bc86224c7b45b92f4f7d95d36efbe"><div class="ttname"><a href="structSynthesisReverb.html#a5a0bc86224c7b45b92f4f7d95d36efbe">SynthesisReverb::bufSizePerChannel</a></div><div class="ttdeci">s32 bufSizePerChannel</div><div class="ttdef"><b>Definition</b> synthesis.h:80</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a5b14756d9ad6c5588fdb97041605f43e"><div class="ttname"><a href="structSynthesisReverb.html#a5b14756d9ad6c5588fdb97041605f43e">SynthesisReverb::useReverb</a></div><div class="ttdeci">u8 useReverb</div><div class="ttdef"><b>Definition</b> synthesis.h:70</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a5fe52018768c0e1e22713c3eabf89483"><div class="ttname"><a href="structSynthesisReverb.html#a5fe52018768c0e1e22713c3eabf89483">SynthesisReverb::right</a></div><div class="ttdeci">s16 * right</div><div class="ttdef"><b>Definition</b> synthesis.h:83</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a6c9feb671e28868a8539aef606d6e1be"><div class="ttname"><a href="structSynthesisReverb.html#a6c9feb671e28868a8539aef606d6e1be">SynthesisReverb::framesLeftToIgnore</a></div><div class="ttdeci">u8 framesLeftToIgnore</div><div class="ttdef"><b>Definition</b> synthesis.h:71</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a701bb7bbad9141b0664bbb19117e3d3c"><div class="ttname"><a href="structSynthesisReverb.html#a701bb7bbad9141b0664bbb19117e3d3c">SynthesisReverb::curFrame</a></div><div class="ttdeci">u8 curFrame</div><div class="ttdef"><b>Definition</b> synthesis.h:72</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a70a22a0cdee2d03b6d06fbd2b3226563"><div class="ttname"><a href="structSynthesisReverb.html#a70a22a0cdee2d03b6d06fbd2b3226563">SynthesisReverb::resampleStateRight</a></div><div class="ttdeci">s16 * resampleStateRight</div><div class="ttdef"><b>Definition</b> synthesis.h:86</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a82c89d4f0c9540c0f0f9ea68ba6347d3"><div class="ttname"><a href="structSynthesisReverb.html#a82c89d4f0c9540c0f0f9ea68ba6347d3">SynthesisReverb::unk100</a></div><div class="ttdeci">s16 * unk100</div><div class="ttdef"><b>Definition</b> synthesis.h:92</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a91a60bfb503bd59fce13f4b990f392d7"><div class="ttname"><a href="structSynthesisReverb.html#a91a60bfb503bd59fce13f4b990f392d7">SynthesisReverb::resampleRate</a></div><div class="ttdeci">u16 resampleRate</div><div class="ttdef"><b>Definition</b> synthesis.h:77</div></div>
<div class="ttc" id="astructSynthesisReverb_html_a95c1a105fa35fdce091e5a21b51a551f"><div class="ttname"><a href="structSynthesisReverb.html#a95c1a105fa35fdce091e5a21b51a551f">SynthesisReverb::unkF8</a></div><div class="ttdeci">s16 * unkF8</div><div class="ttdef"><b>Definition</b> synthesis.h:90</div></div>
<div class="ttc" id="astructSynthesisReverb_html_aa46c28e4defb41adeab96a8bab877a6f"><div class="ttname"><a href="structSynthesisReverb.html#aa46c28e4defb41adeab96a8bab877a6f">SynthesisReverb::unkFC</a></div><div class="ttdeci">s16 * unkFC</div><div class="ttdef"><b>Definition</b> synthesis.h:91</div></div>
<div class="ttc" id="astructSynthesisReverb_html_ab4cf4eefbf98776a131b84bf7bad71c4"><div class="ttname"><a href="structSynthesisReverb.html#ab4cf4eefbf98776a131b84bf7bad71c4">SynthesisReverb::downsampleRate</a></div><div class="ttdeci">u8 downsampleRate</div><div class="ttdef"><b>Definition</b> synthesis.h:73</div></div>
<div class="ttc" id="astructSynthesisReverb_html_ac33541fe1dc1f814a10cbc97b86b8d4d"><div class="ttname"><a href="structSynthesisReverb.html#ac33541fe1dc1f814a10cbc97b86b8d4d">SynthesisReverb::windowSize</a></div><div class="ttdeci">u16 windowSize</div><div class="ttdef"><b>Definition</b> synthesis.h:75</div></div>
<div class="ttc" id="astructSynthesisReverb_html_af0c1e263c77e45751776b0fb21c78fec"><div class="ttname"><a href="structSynthesisReverb.html#af0c1e263c77e45751776b0fb21c78fec">SynthesisReverb::nextRingBufferPos</a></div><div class="ttdeci">s32 nextRingBufferPos</div><div class="ttdef"><b>Definition</b> synthesis.h:78</div></div>
<div class="ttc" id="astructSynthesisReverb_html_af35d57f5349288262225b17bef133495"><div class="ttname"><a href="structSynthesisReverb.html#af35d57f5349288262225b17bef133495">SynthesisReverb::ringBuffer</a></div><div class="ttdeci">struct SynthesisReverb::@054127357066234323373230206214007112033153245205 ringBuffer</div></div>
<div class="ttc" id="astructSynthesisReverb_html_af5dddf0dc829753ac487ac160e90bb79"><div class="ttname"><a href="structSynthesisReverb.html#af5dddf0dc829753ac487ac160e90bb79">SynthesisReverb::unk104</a></div><div class="ttdeci">s16 * unk104</div><div class="ttdef"><b>Definition</b> synthesis.h:93</div></div>
<div class="ttc" id="asynthesis_8c_html_a46dbb82b200402601c2819f7deab8c04"><div class="ttname"><a href="synthesis_8c.html#a46dbb82b200402601c2819f7deab8c04">gSynthesisReverbs</a></div><div class="ttdeci">struct SynthesisReverb gSynthesisReverbs[4]</div><div class="ttdef"><b>Definition</b> synthesis.c:35</div></div>
<div class="ttc" id="asynthesis_8h_html_a118f48c8fedabdaea7a5ae803cdf7bc2"><div class="ttname"><a href="synthesis_8h.html#a118f48c8fedabdaea7a5ae803cdf7bc2">synthesis_process_note</a></div><div class="ttdeci">Acmd * synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct NoteSynthesisState *synthesisState, s16 *aiBuf, s32 inBuf, Acmd *cmd, s32 updateIndex)</div></div>
<div class="ttc" id="asynthesis_8h_html_a1ced286cad738cbc3b205b3d763002d6"><div class="ttname"><a href="synthesis_8h.html#a1ced286cad738cbc3b205b3d763002d6">synthesis_execute</a></div><div class="ttdeci">Acmd * synthesis_execute(Acmd *, s32 *, s16 *, s32)</div><div class="ttdef"><b>Definition</b> synthesis.c:154</div></div>
<div class="ttc" id="asynthesis_8h_html_a4335280b9164016034f7e52d4f2ccef9"><div class="ttname"><a href="synthesis_8h.html#a4335280b9164016034f7e52d4f2ccef9">synthesis_save_reverb_ring_buffer</a></div><div class="ttdeci">Acmd * synthesis_save_reverb_ring_buffer(Acmd *, u16, u16, s32, s32)</div><div class="ttdef"><b>Definition</b> synthesis.c:118</div></div>
<div class="ttc" id="asynthesis_8h_html_a6d3021a3852efebf658d4c1a1f741a5c"><div class="ttname"><a href="synthesis_8h.html#a6d3021a3852efebf658d4c1a1f741a5c">synthesis_resample_and_mix_reverb</a></div><div class="ttdeci">Acmd * synthesis_resample_and_mix_reverb(Acmd *, s32, s16, s16)</div><div class="ttdef"><b>Definition</b> synthesis.c:198</div></div>
<div class="ttc" id="asynthesis_8h_html_a831c7a9542071eed3e68885bd89e505b"><div class="ttname"><a href="synthesis_8h.html#a831c7a9542071eed3e68885bd89e505b">func_800B6FB4</a></div><div class="ttdeci">void func_800B6FB4(s32 updateIndexStart, s32 noteIndex)</div><div class="ttdef"><b>Definition</b> synthesis.c:125</div></div>
<div class="ttc" id="asynthesis_8h_html_a98b5785b65674a669175487b708d1fac"><div class="ttname"><a href="synthesis_8h.html#a98b5785b65674a669175487b708d1fac">synthesis_load_reverb_ring_buffer</a></div><div class="ttdeci">Acmd * synthesis_load_reverb_ring_buffer(Acmd *, u16, u16, s32, s32)</div><div class="ttdef"><b>Definition</b> synthesis.c:111</div></div>
<div class="ttc" id="asynthesis_8h_html_a9964410947181858fecd99e63c47d6a8"><div class="ttname"><a href="synthesis_8h.html#a9964410947181858fecd99e63c47d6a8">prepare_reverb_ring_buffer</a></div><div class="ttdeci">void prepare_reverb_ring_buffer(s32 chunkLen, u32 updateIndex, s32 reverbIndex)</div><div class="ttdef"><b>Definition</b> synthesis.c:62</div></div>
<div class="ttc" id="asynthesis_8h_html_ab469a6d9522ccd7bdcef898769a46a7a"><div class="ttname"><a href="synthesis_8h.html#ab469a6d9522ccd7bdcef898769a46a7a">synthesis_load_note_subs_eu</a></div><div class="ttdeci">void synthesis_load_note_subs_eu(s32 updateIndex)</div><div class="ttdef"><b>Definition</b> synthesis.c:137</div></div>
<div class="ttc" id="asynthesis_8h_html_ab6acf42e1089301d7b1959b332d22233"><div class="ttname"><a href="synthesis_8h.html#ab6acf42e1089301d7b1959b332d22233">note_apply_headset_pan_effects</a></div><div class="ttdeci">Acmd * note_apply_headset_pan_effects(Acmd *acmd, struct NoteSubEu *noteSubEu, struct NoteSynthesisState *note, s32 bufLen, s32 flags, s32 leftRight)</div><div class="ttdef"><b>Definition</b> synthesis.c:702</div></div>
<div class="ttc" id="asynthesis_8h_html_ac62830b08cf19a15a6543ae6c94b219d"><div class="ttname"><a href="synthesis_8h.html#ac62830b08cf19a15a6543ae6c94b219d">synthesis_do_one_audio_update</a></div><div class="ttdeci">Acmd * synthesis_do_one_audio_update(s16 *, s32, Acmd *, s32)</div><div class="ttdef"><b>Definition</b> synthesis.c:262</div></div>
<div class="ttc" id="asynthesis_8h_html_ad17eae18081d8d3600d6e23d044e5290"><div class="ttname"><a href="synthesis_8h.html#ad17eae18081d8d3600d6e23d044e5290">func_800B86A0</a></div><div class="ttdeci">Acmd * func_800B86A0(Acmd *cmd, struct NoteSubEu *note, struct NoteSynthesisState *synthesisState, s32 nSamples, u16 inBuf, s32 headsetPanSettings, u32 flags)</div></div>
<div class="ttc" id="asynthesis_8h_html_ad36e3defa1b07b00d70bd03887843525"><div class="ttname"><a href="synthesis_8h.html#ad36e3defa1b07b00d70bd03887843525">MAX_UPDATES_PER_FRAME</a></div><div class="ttdeci">#define MAX_UPDATES_PER_FRAME</div><div class="ttdef"><b>Definition</b> synthesis.h:56</div></div>
<div class="ttc" id="asynthesis_8h_html_aebc1a42723ab6d4ef65df99740d35318"><div class="ttname"><a href="synthesis_8h.html#aebc1a42723ab6d4ef65df99740d35318">synthesis_save_reverb_samples</a></div><div class="ttdeci">Acmd * synthesis_save_reverb_samples(Acmd *, s16, s16)</div><div class="ttdef"><b>Definition</b> synthesis.c:236</div></div>
<div class="ttc" id="asynthesis_8h_html_aed4d56af55356360afaebcb4f194407c"><div class="ttname"><a href="synthesis_8h.html#aed4d56af55356360afaebcb4f194407c">load_wave_samples</a></div><div class="ttdeci">Acmd * load_wave_samples(Acmd *acmd, struct NoteSubEu *noteSubEu, struct NoteSynthesisState *synthesisState, s32 nSamplesToLoad)</div><div class="ttdef"><b>Definition</b> synthesis.c:615</div></div>
<div class="ttc" id="asynthesis_8h_html_afdb8a3b2a3566c114fc20078eb07ba4c"><div class="ttname"><a href="synthesis_8h.html#afdb8a3b2a3566c114fc20078eb07ba4c">final_resample</a></div><div class="ttdeci">Acmd * final_resample(Acmd *acmd, struct NoteSynthesisState *synthesisState, s32 count, u16 pitch, u16 dmemIn, u32 flags)</div><div class="ttdef"><b>Definition</b> synthesis.c:633</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_a63dedf81f1e5ea1d42bb45ef831eb8c.html">audio</a></li><li class="navelem"><a class="el" href="synthesis_8h.html">synthesis.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>