Release 4.1.2 tarball

This commit is contained in:
Gary Scavone
2013-09-29 23:37:27 +02:00
committed by Stephen Sinclair
parent d12ef806ac
commit 5d63b50e85
436 changed files with 17966 additions and 14506 deletions

View File

@@ -5,17 +5,17 @@
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"><P>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &nbsp; <img src="mcgill.gif"><P>
<a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="information.html">Information</a> &nbsp; <a class="qindex" href="classes.html">Classes</a> &nbsp; <a class="qindex" href="download.html">Download</a> &nbsp; <a class="qindex" href="usage.html">Usage</a> &nbsp; <a class="qindex" href="maillist.html">Mail List</a> &nbsp; <a class="qindex" href="system.html">Requirements</a> &nbsp; <a class="qindex" href="links.html">Links</a> &nbsp; <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.2.8.1 -->
<h1>FM Class Reference</h1>STK abstract FM synthesis base class.
<!-- Generated by Doxygen 1.3.6 -->
<h1>FM Class Reference</h1>STK abstract FM synthesis base class.
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="FM_8h-source.html">FM.h</a>&gt;</code>
<p>
<p>Inheritance diagram for FM::
<p><center><img src="classFM.gif" usemap="#FM_map" border="0"></center>
<p>Inheritance diagram for FM:
<p><center><img src="classFM.png" usemap="#FM_map" border="0" alt=""></center>
<map name="FM_map">
<area href="classInstrmnt.html" alt="Instrmnt" shape="rect" coords="240,56,310,80">
<area href="classStk.html" alt="Stk" shape="rect" coords="240,0,310,24">
@@ -28,74 +28,92 @@
<area href="classWurley.html" alt="Wurley" shape="rect" coords="480,168,550,192">
</map>
<a href="classFM-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
<tr><td nowrap align=right valign=top><a name="a0" doxytag="FM::FM"></a>
&nbsp;</td><td valign=bottom><a class="el" href="classFM.html#a0">FM</a> (int operators=4)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Class constructor, taking the number of wave/envelope operators to control.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a1" doxytag="FM::~FM"></a>
virtual&nbsp;</td><td valign=bottom><a class="el" href="classFM.html#a1">~FM</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Class destructor.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a2" doxytag="FM::clear"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="classFM.html#a2">clear</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Reset and clear all wave and envelope states.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a3" doxytag="FM::loadWaves"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="classFM.html#a3">loadWaves</a> (const char **filenames)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Load the rawwave filenames in waves.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a4" doxytag="FM::setFrequency"></a>
virtual void&nbsp;</td><td valign=bottom><a class="el" href="classFM.html#a4">setFrequency</a> (MY_FLOAT frequency)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Set instrument parameters for a particular frequency.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a5" doxytag="FM::setRatio"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="classFM.html#a5">setRatio</a> (int waveIndex, MY_FLOAT ratio)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Set the frequency ratio for the specified wave.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a6" doxytag="FM::setGain"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="classFM.html#a6">setGain</a> (int waveIndex, MY_FLOAT gain)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Set the gain for the specified wave.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a7" doxytag="FM::setModulationSpeed"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="classFM.html#a7">setModulationSpeed</a> (MY_FLOAT mSpeed)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Set the modulation speed in Hz.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a8" doxytag="FM::setModulationDepth"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="classFM.html#a8">setModulationDepth</a> (MY_FLOAT mDepth)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Set the modulation depth.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a9" doxytag="FM::setControl1"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="classFM.html#a9">setControl1</a> (MY_FLOAT cVal)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Set the value of control1.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a10" doxytag="FM::setControl2"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="classFM.html#a10">setControl2</a> (MY_FLOAT cVal)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Set the value of control1.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a11" doxytag="FM::keyOn"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="classFM.html#a11">keyOn</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Start envelopes toward "on" targets.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a12" doxytag="FM::keyOff"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="classFM.html#a12">keyOff</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Start envelopes toward "off" targets.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a13" doxytag="FM::noteOff"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="classFM.html#a13">noteOff</a> (MY_FLOAT amplitude)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Stop a note with the given amplitude (speed of decay).</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a14" doxytag="FM::tick"></a>
virtual MY_FLOAT&nbsp;</td><td valign=bottom><a class="el" href="classFM.html#a14">tick</a> ()=0</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Pure virtual function ... must be defined in subclasses.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a15" doxytag="FM::controlChange"></a>
virtual void&nbsp;</td><td valign=bottom><a class="el" href="classFM.html#a15">controlChange</a> (int number, MY_FLOAT value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Perform the control change specified by <em>number</em> and <em>value</em> (0.0 - 128.0).</em></font><br><br></td></tr>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a0" doxytag="FM::FM" ></a>
&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classFM.html#a0">FM</a> (int operators=4)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class constructor, taking the number of wave/envelope operators to control. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a1" doxytag="FM::~FM" ></a>
virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classFM.html#a1">~FM</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class destructor. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a2" doxytag="FM::clear" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classFM.html#a2">clear</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset and clear all wave and envelope states. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a3" doxytag="FM::loadWaves" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classFM.html#a3">loadWaves</a> (const char **filenames)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Load the rawwave filenames in waves. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a4" doxytag="FM::setFrequency" ></a>
virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classFM.html#a4">setFrequency</a> (MY_FLOAT frequency)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set instrument parameters for a particular frequency. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a5" doxytag="FM::setRatio" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classFM.html#a5">setRatio</a> (int waveIndex, MY_FLOAT ratio)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the frequency ratio for the specified wave. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a6" doxytag="FM::setGain" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classFM.html#a6">setGain</a> (int waveIndex, MY_FLOAT gain)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the gain for the specified wave. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a7" doxytag="FM::setModulationSpeed" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classFM.html#a7">setModulationSpeed</a> (MY_FLOAT mSpeed)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the modulation speed in Hz. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a8" doxytag="FM::setModulationDepth" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classFM.html#a8">setModulationDepth</a> (MY_FLOAT mDepth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the modulation depth. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a9" doxytag="FM::setControl1" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classFM.html#a9">setControl1</a> (MY_FLOAT cVal)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value of control1. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a10" doxytag="FM::setControl2" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classFM.html#a10">setControl2</a> (MY_FLOAT cVal)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value of control1. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a11" doxytag="FM::keyOn" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classFM.html#a11">keyOn</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Start envelopes toward "on" targets. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a12" doxytag="FM::keyOff" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classFM.html#a12">keyOff</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Start envelopes toward "off" targets. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a13" doxytag="FM::noteOff" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classFM.html#a13">noteOff</a> (MY_FLOAT amplitude)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stop a note with the given amplitude (speed of decay). <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a14" doxytag="FM::tick" ></a>
virtual MY_FLOAT&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classFM.html#a14">tick</a> ()=0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pure virtual function ... must be defined in subclasses. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a15" doxytag="FM::controlChange" ></a>
virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classFM.html#a15">controlChange</a> (int number, MY_FLOAT value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform the control change specified by <em>number</em> and <em>value</em> (0.0 - 128.0). <br><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
STK abstract FM synthesis base class.
STK abstract FM synthesis base class.
<p>
This class controls an arbitrary number of waves and envelopes, determined via a constructor argument.
<p>
Control Change Numbers: <ul>
<li>Control One = 2<li>Control Two = 4<li>LFO Speed = 11<li>LFO Depth = 1<li><a class="el" href="classADSR.html">ADSR</a> 2 &amp; 4 Target = 128</ul>
The basic Chowning/Stanford FM patent expired in 1995, but there exist follow-on patents, mostly assigned to Yamaha. If you are of the type who should worry about this (making money) worry away.
This class controls an arbitrary number of waves and envelopes, determined via a constructor argument.<p>
Control Change Numbers:<ul>
<li>Control One = 2</li><li>Control Two = 4</li><li>LFO Speed = 11</li><li>LFO Depth = 1</li><li><a class="el" href="classADSR.html">ADSR</a> 2 &amp; 4 Target = 128</li></ul>
<p>
The basic Chowning/Stanford FM patent expired in 1995, but there exist follow-on patents, mostly assigned to Yamaha. If you are of the type who should worry about this (making money) worry away.<p>
by Perry R. Cook and Gary P. Scavone, 1995 - 2002.
<p>
<hr>The documentation for this class was generated from the following file:<ul>
<p>
Definition at line <a class="el" href="FM_8h-source.html#l00034">34</a> of file <a class="el" href="FM_8h-source.html">FM.h</a>.<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="FM_8h-source.html">FM.h</a></ul>
<HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>