arduino-audio-tools/classaudio__tools_1_1_a_d_s_r_gain.html

196 lines
17 KiB
HTML

<!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.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>arduino-audio-tools: ADSRGain Class 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>
<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" />
</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 style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">arduino-audio-tools
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<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','.html');
/* @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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></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="namespaceaudio__tools.html">audio_tools</a></li><li class="navelem"><a class="el" href="classaudio__tools_1_1_a_d_s_r_gain.html">ADSRGain</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classaudio__tools_1_1_a_d_s_r_gain-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ADSRGain Class Reference<div class="ingroups"><a class="el" href="group__main.html">Arduino Audio Tools</a> &raquo; <a class="el" href="group__dsp.html">DSP</a> &raquo; <a class="el" href="group__effects.html">Effects</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="classaudio__tools_1_1_a_d_s_r.html" title="Generates ADSR values between 0.0 and 1.0.">ADSR</a> Envelope: Attack, Decay, Sustain and Release. Attack is the time taken for initial run-up oeffect_tf level from nil to peak, beginning when the key is pressed. Decay is the time taken for the subsequent run down from the attack level to the designated sustainLevel level. Sustain is the level during the main sequence of the sound's duration, until the key is released. Release is the time taken for the level to decay from the sustainLevel level to zero after the key is released.[4].
<a href="classaudio__tools_1_1_a_d_s_r_gain.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_audio_effect_8h_source.html">AudioEffect.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ADSRGain:</div>
<div class="dyncontent">
<div class="center">
<img src="classaudio__tools_1_1_a_d_s_r_gain.png" usemap="#ADSRGain_map" alt=""/>
<map id="ADSRGain_map" name="ADSRGain_map">
<area href="classaudio__tools_1_1_audio_effect.html" title="Abstract Base class for Sound Effects." alt="AudioEffect" shape="rect" coords="0,0,78,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a8ca1fa170532588566edee9d686ed261"><td class="memItemLeft" align="right" valign="top"><a id="a8ca1fa170532588566edee9d686ed261"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>ADSRGain</b> (const <a class="el" href="classaudio__tools_1_1_a_d_s_r_gain.html">ADSRGain</a> &amp;ref)</td></tr>
<tr class="separator:a8ca1fa170532588566edee9d686ed261"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32eb8b3432256c45293ffc8a52753120"><td class="memItemLeft" align="right" valign="top"><a id="a32eb8b3432256c45293ffc8a52753120"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>ADSRGain</b> (float attack=0.001, float decay=0.001, float sustainLevel=0.5, float release=0.005, float boostFactor=1.0)</td></tr>
<tr class="separator:a32eb8b3432256c45293ffc8a52753120"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3708b79a6e03c964327c2988b2a70668"><td class="memItemLeft" align="right" valign="top"><a id="a3708b79a6e03c964327c2988b2a70668"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaudio__tools_1_1_audio_effect.html#a3708b79a6e03c964327c2988b2a70668">active</a> ()</td></tr>
<tr class="memdesc:a3708b79a6e03c964327c2988b2a70668"><td class="mdescLeft">&#160;</td><td class="mdescRight">determines if the effect is active <br /></td></tr>
<tr class="separator:a3708b79a6e03c964327c2988b2a70668"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6be7b98f55ece7f4f7925ccc485c767b"><td class="memItemLeft" align="right" valign="top"><a id="a6be7b98f55ece7f4f7925ccc485c767b"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>attackRate</b> ()</td></tr>
<tr class="separator:a6be7b98f55ece7f4f7925ccc485c767b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94cf50493572b4b768c92728db1c810c"><td class="memItemLeft" align="right" valign="top"><a id="a94cf50493572b4b768c92728db1c810c"></a>
<a class="el" href="classaudio__tools_1_1_a_d_s_r_gain.html">ADSRGain</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>clone</b> ()</td></tr>
<tr class="separator:a94cf50493572b4b768c92728db1c810c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15d89ea33c361214fb36d20cf9b5623a"><td class="memItemLeft" align="right" valign="top"><a id="a15d89ea33c361214fb36d20cf9b5623a"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>decayRate</b> ()</td></tr>
<tr class="separator:a15d89ea33c361214fb36d20cf9b5623a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a716406d3d9d4fdbbe46f100e648f3b"><td class="memItemLeft" align="right" valign="top"><a id="a4a716406d3d9d4fdbbe46f100e648f3b"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaudio__tools_1_1_audio_effect.html#a4a716406d3d9d4fdbbe46f100e648f3b">id</a> ()</td></tr>
<tr class="memdesc:a4a716406d3d9d4fdbbe46f100e648f3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows to identify an effect. <br /></td></tr>
<tr class="separator:a4a716406d3d9d4fdbbe46f100e648f3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1f512ab0fcc05612f8e3d6a4664ce9a"><td class="memItemLeft" align="right" valign="top"><a id="aa1f512ab0fcc05612f8e3d6a4664ce9a"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>isActive</b> ()</td></tr>
<tr class="separator:aa1f512ab0fcc05612f8e3d6a4664ce9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebedfd4cc56e2a7c76e50e36d5f62f50"><td class="memItemLeft" align="right" valign="top"><a id="aebedfd4cc56e2a7c76e50e36d5f62f50"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>keyOff</b> ()</td></tr>
<tr class="separator:aebedfd4cc56e2a7c76e50e36d5f62f50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18e470fef19f8b91ba680ab81ceae981"><td class="memItemLeft" align="right" valign="top"><a id="a18e470fef19f8b91ba680ab81ceae981"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>keyOn</b> (float tgt=0)</td></tr>
<tr class="separator:a18e470fef19f8b91ba680ab81ceae981"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3560bcb309efc4862dfbf1aae406b47d"><td class="memItemLeft" align="right" valign="top"><a id="a3560bcb309efc4862dfbf1aae406b47d"></a>
effect_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaudio__tools_1_1_a_d_s_r_gain.html#a3560bcb309efc4862dfbf1aae406b47d">process</a> (effect_t input)</td></tr>
<tr class="memdesc:a3560bcb309efc4862dfbf1aae406b47d"><td class="mdescLeft">&#160;</td><td class="mdescRight">calculates the effect output from the input <br /></td></tr>
<tr class="separator:a3560bcb309efc4862dfbf1aae406b47d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad23a65c2f376a9c3f8d17e3af63f6413"><td class="memItemLeft" align="right" valign="top"><a id="ad23a65c2f376a9c3f8d17e3af63f6413"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>releaseRate</b> ()</td></tr>
<tr class="separator:ad23a65c2f376a9c3f8d17e3af63f6413"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a392adf5d7d03b5339b77ec58bca5f9a9"><td class="memItemLeft" align="right" valign="top"><a id="a392adf5d7d03b5339b77ec58bca5f9a9"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaudio__tools_1_1_audio_effect.html#a392adf5d7d03b5339b77ec58bca5f9a9">setActive</a> (bool value)</td></tr>
<tr class="memdesc:a392adf5d7d03b5339b77ec58bca5f9a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">sets the effect active/inactive <br /></td></tr>
<tr class="separator:a392adf5d7d03b5339b77ec58bca5f9a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac836322e2f85b279a2a753f4e06484ab"><td class="memItemLeft" align="right" valign="top"><a id="ac836322e2f85b279a2a753f4e06484ab"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setAttackRate</b> (float a)</td></tr>
<tr class="separator:ac836322e2f85b279a2a753f4e06484ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12a6abb3bea17052c4036e24ee8fc4cd"><td class="memItemLeft" align="right" valign="top"><a id="a12a6abb3bea17052c4036e24ee8fc4cd"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setDecayRate</b> (float d)</td></tr>
<tr class="separator:a12a6abb3bea17052c4036e24ee8fc4cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d929477fef71d52c9c6df2ba2d50841"><td class="memItemLeft" align="right" valign="top"><a id="a3d929477fef71d52c9c6df2ba2d50841"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaudio__tools_1_1_audio_effect.html#a3d929477fef71d52c9c6df2ba2d50841">setId</a> (int <a class="el" href="classaudio__tools_1_1_audio_effect.html#a4a716406d3d9d4fdbbe46f100e648f3b">id</a>)</td></tr>
<tr class="memdesc:a3d929477fef71d52c9c6df2ba2d50841"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows to identify an effect. <br /></td></tr>
<tr class="separator:a3d929477fef71d52c9c6df2ba2d50841"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac41681fc05650b4667a2634c018a0cd0"><td class="memItemLeft" align="right" valign="top"><a id="ac41681fc05650b4667a2634c018a0cd0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setReleaseRate</b> (float r)</td></tr>
<tr class="separator:ac41681fc05650b4667a2634c018a0cd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b871d5a3113d244e14ba27f6abd9a5a"><td class="memItemLeft" align="right" valign="top"><a id="a3b871d5a3113d244e14ba27f6abd9a5a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setSustainLevel</b> (float s)</td></tr>
<tr class="separator:a3b871d5a3113d244e14ba27f6abd9a5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae959d7d0ef42b0e9f5845fee63cee69b"><td class="memItemLeft" align="right" valign="top"><a id="ae959d7d0ef42b0e9f5845fee63cee69b"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>sustainLevel</b> ()</td></tr>
<tr class="separator:ae959d7d0ef42b0e9f5845fee63cee69b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:af52bdd0b692ecf558d8bd97fac35bf6b"><td class="memItemLeft" align="right" valign="top"><a id="af52bdd0b692ecf558d8bd97fac35bf6b"></a>
int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaudio__tools_1_1_audio_effect.html#af52bdd0b692ecf558d8bd97fac35bf6b">clip</a> (int32_t in, int16_t clipLimit=32767, int16_t resultLimit=32767)</td></tr>
<tr class="memdesc:af52bdd0b692ecf558d8bd97fac35bf6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">generic clipping method <br /></td></tr>
<tr class="separator:af52bdd0b692ecf558d8bd97fac35bf6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab09618ef5ecbce364b46a4a0b44de2ef"><td class="memItemLeft" align="right" valign="top"><a id="ab09618ef5ecbce364b46a4a0b44de2ef"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>copyParent</b> (<a class="el" href="classaudio__tools_1_1_audio_effect.html">AudioEffect</a> *copy)</td></tr>
<tr class="separator:ab09618ef5ecbce364b46a4a0b44de2ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a7816e2085c1adaae2c69ed5f65f1d212"><td class="memItemLeft" align="right" valign="top"><a id="a7816e2085c1adaae2c69ed5f65f1d212"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>active_flag</b> = true</td></tr>
<tr class="separator:a7816e2085c1adaae2c69ed5f65f1d212"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff88198fe0037cf13c9685b860c0e299"><td class="memItemLeft" align="right" valign="top"><a id="aff88198fe0037cf13c9685b860c0e299"></a>
<a class="el" href="classaudio__tools_1_1_a_d_s_r.html">ADSR</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>adsr</b></td></tr>
<tr class="separator:aff88198fe0037cf13c9685b860c0e299"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a323c112c11500270be91b7cb353826bd"><td class="memItemLeft" align="right" valign="top"><a id="a323c112c11500270be91b7cb353826bd"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>factor</b></td></tr>
<tr class="separator:a323c112c11500270be91b7cb353826bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55d6269c0eac19475dd606fe07eb8a48"><td class="memItemLeft" align="right" valign="top"><a id="a55d6269c0eac19475dd606fe07eb8a48"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>id_value</b> = -1</td></tr>
<tr class="separator:a55d6269c0eac19475dd606fe07eb8a48"><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="classaudio__tools_1_1_a_d_s_r.html" title="Generates ADSR values between 0.0 and 1.0.">ADSR</a> Envelope: Attack, Decay, Sustain and Release. Attack is the time taken for initial run-up oeffect_tf level from nil to peak, beginning when the key is pressed. Decay is the time taken for the subsequent run down from the attack level to the designated sustainLevel level. Sustain is the level during the main sequence of the sound's duration, until the key is released. Release is the time taken for the level to decay from the sustainLevel level to zero after the key is released.[4]. </p>
<dl class="section author"><dt>Author</dt><dd>Phil Schatzmann </dd></dl>
<dl class="section copyright"><dt>Copyright</dt><dd>GPLv3 </dd></dl>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>src/AudioEffects/<a class="el" href="_audio_effect_8h_source.html">AudioEffect.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>