mirror of
https://github.com/thestk/stk
synced 2026-01-12 04:21:52 +00:00
187 lines
12 KiB
HTML
187 lines
12 KiB
HTML
<HTML>
|
|
<HEAD>
|
|
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
|
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
|
</HEAD>
|
|
<BODY BGCOLOR="#FFFFFF">
|
|
<CENTER>
|
|
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
|
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
|
<HR>
|
|
<!-- Generated by Doxygen 1.3.4 -->
|
|
<h1>VoicForm Class Reference</h1><code>#include <<a class="el" href="VoicForm_8h-source.html">VoicForm.h</a>></code>
|
|
<p>
|
|
<p>Inheritance diagram for VoicForm:
|
|
<p><center><img src="classVoicForm.png" usemap="#VoicForm_map" border="0" alt=""></center>
|
|
<map name="VoicForm_map">
|
|
<area href="classInstrmnt.html" alt="Instrmnt" shape="rect" coords="0,56,67,80">
|
|
<area href="classStk.html" alt="Stk" shape="rect" coords="0,0,67,24">
|
|
</map>
|
|
<a href="classVoicForm-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
|
|
Four formant synthesis instrument.
|
|
<p>
|
|
This instrument contains an excitation singing wavetable (looping wave with random and periodic vibrato, smoothing on frequency, etc.), excitation noise, and four sweepable complex resonances.<p>
|
|
Measured formant data is included, and enough data is there to support either parallel or cascade synthesis. In the floating point case cascade synthesis is the most natural so that's what you'll find here.<p>
|
|
Control Change Numbers:<ul>
|
|
<li>Voiced/Unvoiced Mix = 2</li><li>Vowel/Phoneme Selection = 4</li><li>Vibrato Frequency = 11</li><li>Vibrato Gain = 1</li><li>Loudness (Spectral Tilt) = 128</li></ul>
|
|
<p>
|
|
by Perry R. Cook and Gary P. Scavone, 1995 - 2004.
|
|
<p>
|
|
|
|
<p>
|
|
Definition at line <a class="el" href="VoicForm_8h-source.html#l00039">39</a> of file <a class="el" href="VoicForm_8h-source.html">VoicForm.h</a>.<table border=0 cellpadding=0 cellspacing=0>
|
|
<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> </td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a0">VoicForm</a> ()</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Class constructor. </em> <a href="#a0"></a><em><br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a1" doxytag="VoicForm::~VoicForm" ></a>
|
|
</td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a1">~VoicForm</a> ()</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </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="VoicForm::clear" ></a>
|
|
void </td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a2">clear</a> ()</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Reset and clear all internal state. <br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a3" doxytag="VoicForm::setFrequency" ></a>
|
|
void </td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a3">setFrequency</a> (StkFloat frequency)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </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="a4" doxytag="VoicForm::setPhoneme" ></a>
|
|
bool </td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a4">setPhoneme</a> (const char *phoneme)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set instrument parameters for the given phoneme. Returns false if phoneme not found. <br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a5" doxytag="VoicForm::setVoiced" ></a>
|
|
void </td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a5">setVoiced</a> (StkFloat vGain)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the voiced component gain. <br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a6" doxytag="VoicForm::setUnVoiced" ></a>
|
|
void </td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a6">setUnVoiced</a> (StkFloat nGain)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the unvoiced component gain. <br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a7" doxytag="VoicForm::setFilterSweepRate" ></a>
|
|
void </td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a7">setFilterSweepRate</a> (unsigned int whichOne, StkFloat rate)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the sweep rate for a particular formant filter (0-3). <br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a8" doxytag="VoicForm::setPitchSweepRate" ></a>
|
|
void </td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a8">setPitchSweepRate</a> (StkFloat rate)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set voiced component pitch sweep rate. <br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a9" doxytag="VoicForm::speak" ></a>
|
|
void </td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a9">speak</a> ()</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Start the voice. <br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a10" doxytag="VoicForm::quiet" ></a>
|
|
void </td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a10">quiet</a> ()</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Stop the voice. <br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a11" doxytag="VoicForm::noteOn" ></a>
|
|
void </td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a11">noteOn</a> (StkFloat frequency, StkFloat amplitude)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Start a note with the given frequency and amplitude. <br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a12" doxytag="VoicForm::noteOff" ></a>
|
|
void </td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a12">noteOff</a> (StkFloat amplitude)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </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="a13" doxytag="VoicForm::tick" ></a>
|
|
StkFloat </td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a13">tick</a> ()</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute one output sample. <br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a14" doxytag="VoicForm::tick" ></a>
|
|
StkFloat * </td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a14">tick</a> (StkFloat *vector, unsigned int vectorSize)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Computer <em>vectorSize</em> outputs and return them in <em>vector</em>. <br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classStkFrames.html">StkFrames</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a15">tick</a> (<a class="el" href="classStkFrames.html">StkFrames</a> &frames, unsigned int channel=1)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Fill a channel of the <a class="el" href="classStkFrames.html">StkFrames</a> object with computed outputs. </em> <a href="#a15"></a><em><br><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a16" doxytag="VoicForm::controlChange" ></a>
|
|
void </td><td class="memItemRight" valign=bottom><a class="el" href="classVoicForm.html#a16">controlChange</a> (int number, StkFloat value)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </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><h2>Constructor & Destructor Documentation</h2>
|
|
<a class="anchor" name="a0" doxytag="VoicForm::VoicForm" ></a><p>
|
|
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
|
|
<tr>
|
|
<td class="mdRow">
|
|
<table cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td class="md" nowrap valign="top"> VoicForm::VoicForm </td>
|
|
<td class="md" valign="top">( </td>
|
|
<td class="mdname1" valign="top" nowrap> </td>
|
|
<td class="md" valign="top"> ) </td>
|
|
<td class="md" nowrap></td>
|
|
</tr>
|
|
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table cellspacing=5 cellpadding=0 border=0>
|
|
<tr>
|
|
<td>
|
|
|
|
</td>
|
|
<td>
|
|
|
|
<p>
|
|
Class constructor.
|
|
<p>
|
|
An <a class="el" href="classStkError.html">StkError</a> will be thrown if the rawwave path is incorrectly set. </td>
|
|
</tr>
|
|
</table>
|
|
<hr><h2>Member Function Documentation</h2>
|
|
<a class="anchor" name="a15" doxytag="VoicForm::tick" ></a><p>
|
|
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
|
|
<tr>
|
|
<td class="mdRow">
|
|
<table cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td class="md" nowrap valign="top"> <a class="el" href="classStkFrames.html">StkFrames</a>& VoicForm::tick </td>
|
|
<td class="md" valign="top">( </td>
|
|
<td class="md" nowrap valign="top"><a class="el" href="classStkFrames.html">StkFrames</a> & </td>
|
|
<td class="mdname" nowrap> <em>frames</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td></td>
|
|
<td class="md" nowrap>unsigned int </td>
|
|
<td class="mdname" nowrap> <em>channel</em> = 1</td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td class="md">) </td>
|
|
<td class="md" colspan="2"><code> [virtual]</code></td>
|
|
</tr>
|
|
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table cellspacing=5 cellpadding=0 border=0>
|
|
<tr>
|
|
<td>
|
|
|
|
</td>
|
|
<td>
|
|
|
|
<p>
|
|
Fill a channel of the <a class="el" href="classStkFrames.html">StkFrames</a> object with computed outputs.
|
|
<p>
|
|
The <code>channel</code> argument should be one or greater (the first channel is specified by 1). An <a class="el" href="classStkError.html">StkError</a> will be thrown if the <code>channel</code> argument is zero or it is greater than the number of channels in the <a class="el" href="classStkFrames.html">StkFrames</a> object.
|
|
<p>
|
|
Reimplemented from <a class="el" href="classInstrmnt.html#a10">Instrmnt</a>. </td>
|
|
</tr>
|
|
</table>
|
|
<hr>The documentation for this class was generated from the following file:<ul>
|
|
<li><a class="el" href="VoicForm_8h-source.html">VoicForm.h</a></ul>
|
|
<HR>
|
|
|
|
<table>
|
|
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
|
<tr><td>©1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
|
</table>
|
|
|
|
</BODY>
|
|
</HTML>
|