Files
stk/doc/html/classRtWvIn.html
2013-09-29 23:33:56 +02:00

332 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"> &nbsp; <img src="ccrma.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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.2.8.1 -->
<h1>RtWvIn Class Reference</h1>STK realtime audio input class.
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="RtWvIn_8h-source.html">RtWvIn.h</a>&gt;</code>
<p>
<p>Inheritance diagram for RtWvIn::
<p><center><img src="classRtWvIn.gif" usemap="#RtWvIn_map" border="0"></center>
<map name="RtWvIn_map">
<area href="classWvIn.html" alt="WvIn" shape="rect" coords="0,56,51,80">
<area href="classStk.html" alt="Stk" shape="rect" coords="0,0,51,24">
</map>
<a href="classRtWvIn-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>&nbsp;</td><td valign=bottom><a class="el" href="classRtWvIn.html#a0">RtWvIn</a> (int nChannels=1, MY_FLOAT sampleRate=Stk::sampleRate(), int device=0, int bufferFrames=RT_BUFFER_SIZE, int nBuffers=2)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Default constructor.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a1" doxytag="RtWvIn::~RtWvIn"></a>
&nbsp;</td><td valign=bottom><a class="el" href="classRtWvIn.html#a1">~RtWvIn</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>void&nbsp;</td><td valign=bottom><a class="el" href="classRtWvIn.html#a2">start</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Start the audio input stream.</em> <a href="#a2">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classRtWvIn.html#a3">stop</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Stop the audio input stream.</em> <a href="#a3">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a4" doxytag="RtWvIn::lastOut"></a>
MY_FLOAT&nbsp;</td><td valign=bottom><a class="el" href="classRtWvIn.html#a4">lastOut</a> (void) const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Return the average across the last output sample frame.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>MY_FLOAT&nbsp;</td><td valign=bottom><a class="el" href="classRtWvIn.html#a5">tick</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Read out the average across one sample frame of data.</em> <a href="#a5">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>MY_FLOAT*&nbsp;</td><td valign=bottom><a class="el" href="classRtWvIn.html#a6">tick</a> (MY_FLOAT *vector, unsigned int vectorSize)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Read out vectorSize averaged sample frames of data in <em>vector</em>.</em> <a href="#a6">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a7" doxytag="RtWvIn::lastFrame"></a>
const MY_FLOAT*&nbsp;</td><td valign=bottom><a class="el" href="classRtWvIn.html#a7">lastFrame</a> (void) const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Return a pointer to the last output sample frame.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const MY_FLOAT*&nbsp;</td><td valign=bottom><a class="el" href="classRtWvIn.html#a8">tickFrame</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Return a pointer to the next sample frame of data.</em> <a href="#a8">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>MY_FLOAT*&nbsp;</td><td valign=bottom><a class="el" href="classRtWvIn.html#a9">tickFrame</a> (MY_FLOAT *frameVector, unsigned int frames)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Read out sample <em>frames</em> of data to <em>frameVector</em>.</em> <a href="#a9">More...</a><em></em></font><br><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
STK realtime audio input class.
<p>
This class provides a simplified interface to RtAudio for realtime audio input. It is a protected subclass of <a class="el" href="classWvIn.html">WvIn</a>.
<p>
RtWvIn supports multi-channel data in interleaved format. It is important to distinguish the <a class="el" href="classRtWvIn.html#a5">tick</a>() methods, which return samples produced by averaging across sample frames, from the <a class="el" href="classRtWvIn.html#a8">tickFrame</a>() methods, which return pointers to multi-channel sample frames. For single-channel data, these methods return equivalent values.
<p>
by Perry R. Cook and Gary P. Scavone, 1995 - 2002.
<p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="a0" doxytag="RtWvIn::RtWvIn"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
RtWvIn::RtWvIn (
</b></td>
<td valign="bottom"><b>
int <em>nChannels</em> = 1,
</b></td>
</tr>
<tr>
<td></td>
<td><b>
MY_FLOAT <em>sampleRate</em> = Stk::sampleRate(),
</b></td>
</tr>
<tr>
<td></td>
<td><b>
int <em>device</em> = 0,
</b></td>
</tr>
<tr>
<td></td>
<td><b>
int <em>bufferFrames</em> = RT_BUFFER_SIZE,
</b></td>
</tr>
<tr>
<td></td>
<td><b>
int <em>nBuffers</em> = 2&nbsp;)
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Default constructor.
<p>
The <em>device</em> argument is passed to RtAudio during instantiation. The default value (zero) will select the default device on your system or the first device found meeting the specified parameters. On systems with multiple soundcards/devices, values greater than zero can be specified in accordance with the order that the devices are enumerated by the underlying audio API. The default buffer size of RT_BUFFER_SIZE is defined in Stk.h. An <a class="el" href="classStkError.html">StkError</a> will be thrown if an error occurs duing instantiation. </td>
</tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="a2" doxytag="RtWvIn::start"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
void RtWvIn::start (
</b></td>
<td valign="bottom"><b>
void&nbsp;)
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Start the audio input stream.
<p>
The stream is started automatically, if necessary, when a <a class="el" href="classRtWvIn.html#a5">tick</a>() or tickFrame method is called. </td>
</tr>
</table>
<a name="a3" doxytag="RtWvIn::stop"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
void RtWvIn::stop (
</b></td>
<td valign="bottom"><b>
void&nbsp;)
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Stop the audio input stream.
<p>
It may be necessary to use this method to avoid audio underflow problems if you wish to temporarily stop audio input. </td>
</tr>
</table>
<a name="a5" doxytag="RtWvIn::tick"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
MY_FLOAT RtWvIn::tick (
</b></td>
<td valign="bottom"><b>
void&nbsp;)<code> [virtual]</code>
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Read out the average across one sample frame of data.
<p>
An <a class="el" href="classStkError.html">StkError</a> will be thrown if an error occurs during input.
<p>
Reimplemented from <a class="el" href="classWvIn.html#a16">WvIn</a>. </td>
</tr>
</table>
<a name="a6" doxytag="RtWvIn::tick"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
MY_FLOAT * RtWvIn::tick (
</b></td>
<td valign="bottom"><b>
MY_FLOAT * <em>vector</em>,
</b></td>
</tr>
<tr>
<td></td>
<td><b>
unsigned int <em>vectorSize</em>&nbsp;)<code> [virtual]</code>
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Read out vectorSize averaged sample frames of data in <em>vector</em>.
<p>
An <a class="el" href="classStkError.html">StkError</a> will be thrown if an error occurs during input.
<p>
Reimplemented from <a class="el" href="classWvIn.html#a17">WvIn</a>. </td>
</tr>
</table>
<a name="a8" doxytag="RtWvIn::tickFrame"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
const MY_FLOAT * RtWvIn::tickFrame (
</b></td>
<td valign="bottom"><b>
void&nbsp;)<code> [virtual]</code>
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Return a pointer to the next sample frame of data.
<p>
An <a class="el" href="classStkError.html">StkError</a> will be thrown if an error occurs during input.
<p>
Reimplemented from <a class="el" href="classWvIn.html#a19">WvIn</a>. </td>
</tr>
</table>
<a name="a9" doxytag="RtWvIn::tickFrame"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
MY_FLOAT * RtWvIn::tickFrame (
</b></td>
<td valign="bottom"><b>
MY_FLOAT * <em>frameVector</em>,
</b></td>
</tr>
<tr>
<td></td>
<td><b>
unsigned int <em>frames</em>&nbsp;)<code> [virtual]</code>
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Read out sample <em>frames</em> of data to <em>frameVector</em>.
<p>
An <a class="el" href="classStkError.html">StkError</a> will be thrown if an error occurs during input.
<p>
Reimplemented from <a class="el" href="classWvIn.html#a20">WvIn</a>. </td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="RtWvIn_8h-source.html">RtWvIn.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>
</table>
</BODY>
</HTML>