annotate code-doc/classZeroCrossing.html @ 40:9391fbda5ad2 website

* Update site for v2.2 release
author cannam
date Thu, 26 Aug 2010 11:36:19 +0000
parents 0976232e353b
children 8260c0f4e05b
rev   line source
cannam@0 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
cannam@0 2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
cannam@0 3 <title>VampPluginSDK: ZeroCrossing Class Reference</title>
cannam@35 4 <link href="tabs.css" rel="stylesheet" type="text/css">
cannam@0 5 <link href="doxygen.css" rel="stylesheet" type="text/css">
cannam@0 6 </head><body>
cannam@35 7 <!-- Generated by Doxygen 1.5.8 -->
cannam@0 8 <div class="navigation" id="top">
cannam@0 9 <div class="tabs">
cannam@0 10 <ul>
cannam@0 11 <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
cannam@0 12 <li><a href="namespaces.html"><span>Namespaces</span></a></li>
cannam@0 13 <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
cannam@0 14 <li><a href="files.html"><span>Files</span></a></li>
cannam@0 15 <li><a href="dirs.html"><span>Directories</span></a></li>
cannam@0 16 </ul>
cannam@0 17 </div>
cannam@0 18 <div class="tabs">
cannam@0 19 <ul>
cannam@0 20 <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
cannam@0 21 <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
cannam@0 22 <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
cannam@0 23 </ul>
cannam@0 24 </div>
cannam@0 25 </div>
cannam@0 26 <div class="contents">
cannam@35 27 <h1>ZeroCrossing Class Reference</h1><!-- doxytag: class="ZeroCrossing" --><!-- doxytag: inherits="Vamp::Plugin" -->Example plugin that calculates the positions and density of zero-crossing points in an audio waveform.
cannam@35 28 <a href="#_details">More...</a>
cannam@35 29 <p>
cannam@35 30 <code>#include &lt;<a class="el" href="ZeroCrossing_8h-source.html">ZeroCrossing.h</a>&gt;</code>
cannam@0 31 <p>
cannam@0 32 <div class="dynheader">
cannam@0 33 Inheritance diagram for ZeroCrossing:</div>
cannam@0 34 <div class="dynsection">
cannam@0 35 <p><center><img src="classZeroCrossing__inherit__graph.png" border="0" usemap="#ZeroCrossing__inherit__map" alt="Inheritance graph"></center>
cannam@0 36 <map name="ZeroCrossing__inherit__map">
cannam@35 37 <area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="19,81,112,105"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,7,125,31"></map>
cannam@0 38 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
cannam@0 39
cannam@0 40 <p>
cannam@35 41 <a href="classZeroCrossing-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
cannam@0 42 <tr><td></td></tr>
cannam@0 43 <tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
cannam@0 44 <tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> { <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a>,
cannam@0 45 <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a>
cannam@0 46 }</td></tr>
cannam@0 47
cannam@35 48 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector<br class="typebreak">
cannam@0 49 &lt; <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a></td></tr>
cannam@0 50
cannam@0 51 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; <a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a></td></tr>
cannam@0 52
cannam@35 53 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map&lt; int, <br class="typebreak">
cannam@0 54 <a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a></td></tr>
cannam@0 55
cannam@0 56 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
cannam@0 57 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#9855153a54bdc9ba75cc1a705a149473">ZeroCrossing</a> (float inputSampleRate)</td></tr>
cannam@0 58
cannam@0 59 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#f1de0da862e6e2443581e4e16044675b">~ZeroCrossing</a> ()</td></tr>
cannam@0 60
cannam@0 61 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#f21bbcc87a6eb7875dfab7d86222dccc">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
cannam@0 62
cannam@0 63 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames). <a href="#f21bbcc87a6eb7875dfab7d86222dccc"></a><br></td></tr>
cannam@0 64 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#9ae6c4a31ea027dceb1e97ead807e228">reset</a> ()</td></tr>
cannam@0 65
cannam@0 66 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the plugin after use, to prepare it for another clean run. <a href="#9ae6c4a31ea027dceb1e97ead807e228"></a><br></td></tr>
cannam@0 67 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#afe2ce6ebd353a14c40db7e8e60f4051">getInputDomain</a> () const </td></tr>
cannam@0 68
cannam@0 69 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain. <a href="#afe2ce6ebd353a14c40db7e8e60f4051"></a><br></td></tr>
cannam@0 70 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a">getIdentifier</a> () const </td></tr>
cannam@0 71
cannam@0 72 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin. <a href="#f2baf9e19fcdd11cfe97ace56d4f5c1a"></a><br></td></tr>
cannam@0 73 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#fa96f7ce6e7d9f03768f48c6a9d88498">getName</a> () const </td></tr>
cannam@0 74
cannam@0 75 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a human-readable name or title of the plugin. <a href="#fa96f7ce6e7d9f03768f48c6a9d88498"></a><br></td></tr>
cannam@0 76 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#710bb0b013157adaeef2a9e6867b4478">getDescription</a> () const </td></tr>
cannam@0 77
cannam@0 78 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a human-readable description for the plugin, typically a line of text that may optionally be displayed in addition to the plugin's "name". <a href="#710bb0b013157adaeef2a9e6867b4478"></a><br></td></tr>
cannam@0 79 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a">getMaker</a> () const </td></tr>
cannam@0 80
cannam@0 81 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the name of the author or vendor of the plugin in human-readable form. <a href="#c68561634a3c329a029c2fd3deaeae2a"></a><br></td></tr>
cannam@0 82 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb">getPluginVersion</a> () const </td></tr>
cannam@0 83
cannam@0 84 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the version number of the plugin. <a href="#d685f6c2f443f07a1634550c335571eb"></a><br></td></tr>
cannam@0 85 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#f9c41b92aa8ff8bddaebf75569ff789c">getCopyright</a> () const </td></tr>
cannam@0 86
cannam@0 87 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the copyright statement or licensing summary for the plugin. <a href="#f9c41b92aa8ff8bddaebf75569ff789c"></a><br></td></tr>
cannam@0 88 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#c9d590a6feb1fc9a37d7892aefe2b688">getOutputDescriptors</a> () const </td></tr>
cannam@0 89
cannam@0 90 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin. <a href="#c9d590a6feb1fc9a37d7892aefe2b688"></a><br></td></tr>
cannam@0 91 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a> timestamp)</td></tr>
cannam@0 92
cannam@0 93 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data. <a href="#bf4aaa6fd8cc03de63f4e1e8942633da"></a><br></td></tr>
cannam@0 94 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#70996d1b7166e303903daf92a9a37ad8">getRemainingFeatures</a> ()</td></tr>
cannam@0 95
cannam@0 96 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input. <a href="#70996d1b7166e303903daf92a9a37ad8"></a><br></td></tr>
cannam@0 97 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">getPreferredBlockSize</a> () const </td></tr>
cannam@0 98
cannam@0 99 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> function). <a href="#a529adf83f87a603954eb31407602aac"></a><br></td></tr>
cannam@0 100 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">getPreferredStepSize</a> () const </td></tr>
cannam@0 101
cannam@0 102 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> function) for the plugin. <a href="#514c716c22f81c055f19b56c3f882567"></a><br></td></tr>
cannam@0 103 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">getMinChannelCount</a> () const </td></tr>
cannam@0 104
cannam@0 105 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum supported number of input channels. <a href="#267b42e866df3cf0d190893e8096f525"></a><br></td></tr>
cannam@0 106 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">getMaxChannelCount</a> () const </td></tr>
cannam@0 107
cannam@0 108 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum supported number of input channels. <a href="#2c5ab12b6fa4847cb244bd1e9cb3ae5e"></a><br></td></tr>
cannam@0 109 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a> () const </td></tr>
cannam@0 110
cannam@0 111 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>. <a href="#be13b3997a69fbcc09e2213faa352f91"></a><br></td></tr>
cannam@0 112 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">getVampApiVersion</a> () const </td></tr>
cannam@0 113
cannam@21 114 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. <a href="#8fd2c48291c64b790f0efb8948508dcf"></a><br></td></tr>
cannam@0 115 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">getParameterDescriptors</a> () const </td></tr>
cannam@0 116
cannam@0 117 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin. <a href="#ac3e49b3b66cacfbb768dfdf07444f21"></a><br></td></tr>
cannam@0 118 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">getParameter</a> (std::string) const </td></tr>
cannam@0 119
cannam@0 120 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of a named parameter. <a href="#97ababcd45348ceec998d0f8e0f38bf7"></a><br></td></tr>
cannam@0 121 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">setParameter</a> (std::string, float)</td></tr>
cannam@0 122
cannam@0 123 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a named parameter. <a href="#6c718ce822f7b73b98940d59dcaa9366"></a><br></td></tr>
cannam@0 124 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">getPrograms</a> () const </td></tr>
cannam@0 125
cannam@0 126 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin. <a href="#bb307c60bdb981d5f5af50c3c4ae84af"></a><br></td></tr>
cannam@0 127 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">getCurrentProgram</a> () const </td></tr>
cannam@0 128
cannam@0 129 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current program. <a href="#24e77eccf1bdfbbca3c79bb25e8799b3"></a><br></td></tr>
cannam@0 130 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">selectProgram</a> (std::string)</td></tr>
cannam@0 131
cannam@0 132 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select a program. <a href="#add3a547ef140bae200473a9518e3353"></a><br></td></tr>
cannam@0 133 <tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
cannam@0 134 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">m_stepSize</a></td></tr>
cannam@0 135
cannam@0 136 <tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#0f2d9f2cab0a8a30344e1f2c0ebb8ee8">m_previousSample</a></td></tr>
cannam@0 137
cannam@0 138 <tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a></td></tr>
cannam@0 139
cannam@0 140 </table>
cannam@35 141 <hr><a name="_details"></a><h2>Detailed Description</h2>
cannam@35 142 Example plugin that calculates the positions and density of zero-crossing points in an audio waveform.
cannam@35 143 <p>Definition at line <a class="el" href="ZeroCrossing_8h-source.html#l00047">47</a> of file <a class="el" href="ZeroCrossing_8h-source.html">ZeroCrossing.h</a>.</p>
cannam@0 144 <hr><h2>Member Typedef Documentation</h2>
cannam@0 145 <a class="anchor" name="30f531b8fb69fac41a24e3d2a6a08ed9"></a><!-- doxytag: member="ZeroCrossing::OutputList" ref="30f531b8fb69fac41a24e3d2a6a08ed9" args="" -->
cannam@0 146 <div class="memitem">
cannam@0 147 <div class="memproto">
cannam@0 148 <table class="memname">
cannam@0 149 <tr>
cannam@0 150 <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">Vamp::Plugin::OutputList</a><code> [inherited]</code> </td>
cannam@0 151 </tr>
cannam@0 152 </table>
cannam@0 153 </div>
cannam@0 154 <div class="memdoc">
cannam@0 155
cannam@0 156 <p>
cannam@0 157
cannam@35 158 <p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00327">327</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
cannam@0 159
cannam@0 160 </div>
cannam@0 161 </div><p>
cannam@0 162 <a class="anchor" name="0730bc72c87fa02eb8d2854b233f7be1"></a><!-- doxytag: member="ZeroCrossing::FeatureList" ref="0730bc72c87fa02eb8d2854b233f7be1" args="" -->
cannam@0 163 <div class="memitem">
cannam@0 164 <div class="memproto">
cannam@0 165 <table class="memname">
cannam@0 166 <tr>
cannam@0 167 <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">Vamp::Plugin::FeatureList</a><code> [inherited]</code> </td>
cannam@0 168 </tr>
cannam@0 169 </table>
cannam@0 170 </div>
cannam@0 171 <div class="memdoc">
cannam@0 172
cannam@0 173 <p>
cannam@0 174
cannam@35 175 <p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00385">385</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
cannam@0 176
cannam@0 177 </div>
cannam@0 178 </div><p>
cannam@0 179 <a class="anchor" name="448fb57dc245d47923ec9eeaf9856c5f"></a><!-- doxytag: member="ZeroCrossing::FeatureSet" ref="448fb57dc245d47923ec9eeaf9856c5f" args="" -->
cannam@0 180 <div class="memitem">
cannam@0 181 <div class="memproto">
cannam@0 182 <table class="memname">
cannam@0 183 <tr>
cannam@0 184 <td class="memname">typedef std::map&lt;int, <a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Vamp::Plugin::FeatureSet</a><code> [inherited]</code> </td>
cannam@0 185 </tr>
cannam@0 186 </table>
cannam@0 187 </div>
cannam@0 188 <div class="memdoc">
cannam@0 189
cannam@0 190 <p>
cannam@0 191
cannam@35 192 <p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00387">387</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
cannam@0 193
cannam@0 194 </div>
cannam@0 195 </div><p>
cannam@0 196 <a class="anchor" name="3b6bb4bbd86affe1ca9deceea1aad4f8"></a><!-- doxytag: member="ZeroCrossing::ParameterList" ref="3b6bb4bbd86affe1ca9deceea1aad4f8" args="" -->
cannam@0 197 <div class="memitem">
cannam@0 198 <div class="memproto">
cannam@0 199 <table class="memname">
cannam@0 200 <tr>
cannam@0 201 <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a>&gt; <a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">Vamp::PluginBase::ParameterList</a><code> [inherited]</code> </td>
cannam@0 202 </tr>
cannam@0 203 </table>
cannam@0 204 </div>
cannam@0 205 <div class="memdoc">
cannam@0 206
cannam@0 207 <p>
cannam@0 208
cannam@21 209 <p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00203">203</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
cannam@0 210
cannam@0 211 </div>
cannam@0 212 </div><p>
cannam@0 213 <a class="anchor" name="7f66f00437b21e5f694fe02356b12f20"></a><!-- doxytag: member="ZeroCrossing::ProgramList" ref="7f66f00437b21e5f694fe02356b12f20" args="" -->
cannam@0 214 <div class="memitem">
cannam@0 215 <div class="memproto">
cannam@0 216 <table class="memname">
cannam@0 217 <tr>
cannam@0 218 <td class="memname">typedef std::vector&lt;std::string&gt; <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">Vamp::PluginBase::ProgramList</a><code> [inherited]</code> </td>
cannam@0 219 </tr>
cannam@0 220 </table>
cannam@0 221 </div>
cannam@0 222 <div class="memdoc">
cannam@0 223
cannam@0 224 <p>
cannam@0 225
cannam@21 226 <p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00225">225</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
cannam@0 227
cannam@0 228 </div>
cannam@0 229 </div><p>
cannam@0 230 <hr><h2>Member Enumeration Documentation</h2>
cannam@0 231 <a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bc"></a><!-- doxytag: member="ZeroCrossing::InputDomain" ref="39cb7649d6dcc20e4cb1640cd55907bc" args="" -->
cannam@0 232 <div class="memitem">
cannam@0 233 <div class="memproto">
cannam@0 234 <table class="memname">
cannam@0 235 <tr>
cannam@0 236 <td class="memname">enum <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Vamp::Plugin::InputDomain</a><code> [inherited]</code> </td>
cannam@0 237 </tr>
cannam@0 238 </table>
cannam@0 239 </div>
cannam@0 240 <div class="memdoc">
cannam@0 241
cannam@0 242 <p>
cannam@0 243 <dl compact><dt><b>Enumerator: </b></dt><dd>
cannam@0 244 <table border="0" cellspacing="2" cellpadding="0">
cannam@0 245 <tr><td valign="top"><em><a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff"></a><!-- doxytag: member="TimeDomain" ref="39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff" args="" -->TimeDomain</em>&nbsp;</td><td>
cannam@0 246 </td></tr>
cannam@0 247 <tr><td valign="top"><em><a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53"></a><!-- doxytag: member="FrequencyDomain" ref="39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53" args="" -->FrequencyDomain</em>&nbsp;</td><td>
cannam@0 248 </td></tr>
cannam@0 249 </table>
cannam@0 250 </dl>
cannam@0 251
cannam@21 252 <p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">152</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
cannam@0 253
cannam@0 254 </div>
cannam@0 255 </div><p>
cannam@0 256 <hr><h2>Constructor &amp; Destructor Documentation</h2>
cannam@0 257 <a class="anchor" name="9855153a54bdc9ba75cc1a705a149473"></a><!-- doxytag: member="ZeroCrossing::ZeroCrossing" ref="9855153a54bdc9ba75cc1a705a149473" args="(float inputSampleRate)" -->
cannam@0 258 <div class="memitem">
cannam@0 259 <div class="memproto">
cannam@0 260 <table class="memname">
cannam@0 261 <tr>
cannam@0 262 <td class="memname">ZeroCrossing::ZeroCrossing </td>
cannam@0 263 <td>(</td>
cannam@0 264 <td class="paramtype">float&nbsp;</td>
cannam@0 265 <td class="paramname"> <em>inputSampleRate</em> </td>
cannam@0 266 <td>&nbsp;)&nbsp;</td>
cannam@21 267 <td></td>
cannam@0 268 </tr>
cannam@0 269 </table>
cannam@0 270 </div>
cannam@0 271 <div class="memdoc">
cannam@0 272
cannam@0 273 <p>
cannam@0 274
cannam@21 275 <p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00046">46</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
cannam@0 276
cannam@0 277 </div>
cannam@0 278 </div><p>
cannam@0 279 <a class="anchor" name="f1de0da862e6e2443581e4e16044675b"></a><!-- doxytag: member="ZeroCrossing::~ZeroCrossing" ref="f1de0da862e6e2443581e4e16044675b" args="()" -->
cannam@0 280 <div class="memitem">
cannam@0 281 <div class="memproto">
cannam@0 282 <table class="memname">
cannam@0 283 <tr>
cannam@0 284 <td class="memname">ZeroCrossing::~ZeroCrossing </td>
cannam@0 285 <td>(</td>
cannam@0 286 <td class="paramname"> </td>
cannam@0 287 <td>&nbsp;)&nbsp;</td>
cannam@21 288 <td><code> [virtual]</code></td>
cannam@0 289 </tr>
cannam@0 290 </table>
cannam@0 291 </div>
cannam@0 292 <div class="memdoc">
cannam@0 293
cannam@0 294 <p>
cannam@0 295
cannam@21 296 <p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00053">53</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
cannam@0 297
cannam@0 298 </div>
cannam@0 299 </div><p>
cannam@0 300 <hr><h2>Member Function Documentation</h2>
cannam@0 301 <a class="anchor" name="f21bbcc87a6eb7875dfab7d86222dccc"></a><!-- doxytag: member="ZeroCrossing::initialise" ref="f21bbcc87a6eb7875dfab7d86222dccc" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
cannam@0 302 <div class="memitem">
cannam@0 303 <div class="memproto">
cannam@0 304 <table class="memname">
cannam@0 305 <tr>
cannam@0 306 <td class="memname">bool ZeroCrossing::initialise </td>
cannam@0 307 <td>(</td>
cannam@0 308 <td class="paramtype">size_t&nbsp;</td>
cannam@0 309 <td class="paramname"> <em>inputChannels</em>, </td>
cannam@0 310 </tr>
cannam@0 311 <tr>
cannam@0 312 <td class="paramkey"></td>
cannam@0 313 <td></td>
cannam@0 314 <td class="paramtype">size_t&nbsp;</td>
cannam@0 315 <td class="paramname"> <em>stepSize</em>, </td>
cannam@0 316 </tr>
cannam@0 317 <tr>
cannam@0 318 <td class="paramkey"></td>
cannam@0 319 <td></td>
cannam@0 320 <td class="paramtype">size_t&nbsp;</td>
cannam@0 321 <td class="paramname"> <em>blockSize</em></td><td>&nbsp;</td>
cannam@0 322 </tr>
cannam@0 323 <tr>
cannam@0 324 <td></td>
cannam@0 325 <td>)</td>
cannam@21 326 <td></td><td></td><td><code> [virtual]</code></td>
cannam@0 327 </tr>
cannam@0 328 </table>
cannam@0 329 </div>
cannam@0 330 <div class="memdoc">
cannam@0 331
cannam@0 332 <p>
cannam@0 333 Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames).
cannam@0 334 <p>
cannam@0 335 The input sample rate should have been already specified at construction time.<p>
cannam@0 336 Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported.
cannam@0 337 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin</a>.</p>
cannam@0 338
cannam@21 339 <p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">94</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
cannam@0 340
cannam@35 341 <p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00204">Vamp::Plugin::getMaxChannelCount()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">Vamp::Plugin::getMinChannelCount()</a>, and <a class="el" href="ZeroCrossing_8h-source.html#l00073">m_stepSize</a>.</p>
cannam@0 342
cannam@0 343 </div>
cannam@0 344 </div><p>
cannam@0 345 <a class="anchor" name="9ae6c4a31ea027dceb1e97ead807e228"></a><!-- doxytag: member="ZeroCrossing::reset" ref="9ae6c4a31ea027dceb1e97ead807e228" args="()" -->
cannam@0 346 <div class="memitem">
cannam@0 347 <div class="memproto">
cannam@0 348 <table class="memname">
cannam@0 349 <tr>
cannam@0 350 <td class="memname">void ZeroCrossing::reset </td>
cannam@0 351 <td>(</td>
cannam@0 352 <td class="paramname"> </td>
cannam@0 353 <td>&nbsp;)&nbsp;</td>
cannam@21 354 <td><code> [virtual]</code></td>
cannam@0 355 </tr>
cannam@0 356 </table>
cannam@0 357 </div>
cannam@0 358 <div class="memdoc">
cannam@0 359
cannam@0 360 <p>
cannam@0 361 Reset the plugin after use, to prepare it for another clean run.
cannam@0 362 <p>
cannam@0 363 Not called for the first initialisation (i.e. initialise must also do a reset).
cannam@0 364 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin</a>.</p>
cannam@0 365
cannam@21 366 <p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00105">105</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
cannam@0 367
cannam@0 368 <p>References <a class="el" href="ZeroCrossing_8h-source.html#l00074">m_previousSample</a>.</p>
cannam@0 369
cannam@0 370 </div>
cannam@0 371 </div><p>
cannam@0 372 <a class="anchor" name="afe2ce6ebd353a14c40db7e8e60f4051"></a><!-- doxytag: member="ZeroCrossing::getInputDomain" ref="afe2ce6ebd353a14c40db7e8e60f4051" args="() const " -->
cannam@0 373 <div class="memitem">
cannam@0 374 <div class="memproto">
cannam@0 375 <table class="memname">
cannam@0 376 <tr>
cannam@0 377 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> ZeroCrossing::getInputDomain </td>
cannam@0 378 <td>(</td>
cannam@0 379 <td class="paramname"> </td>
cannam@0 380 <td>&nbsp;)&nbsp;</td>
cannam@21 381 <td> const<code> [inline, virtual]</code></td>
cannam@0 382 </tr>
cannam@0 383 </table>
cannam@0 384 </div>
cannam@0 385 <div class="memdoc">
cannam@0 386
cannam@0 387 <p>
cannam@0 388 Get the plugin's required input domain.
cannam@0 389 <p>
cannam@35 390 If this is TimeDomain, the samples provided to the <a class="el" href="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin.<p>
cannam@35 391 If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da" title="Process a single block of input data.">process()</a>. The input data for the FFT will be rotated so as to place the origin in the centre of the block. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window.
cannam@0 392 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin</a>.</p>
cannam@0 393
cannam@0 394 <p>Definition at line <a class="el" href="ZeroCrossing_8h-source.html#l00056">56</a> of file <a class="el" href="ZeroCrossing_8h-source.html">ZeroCrossing.h</a>.</p>
cannam@0 395
cannam@21 396 <p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">Vamp::Plugin::TimeDomain</a>.</p>
cannam@0 397
cannam@0 398 </div>
cannam@0 399 </div><p>
cannam@0 400 <a class="anchor" name="f2baf9e19fcdd11cfe97ace56d4f5c1a"></a><!-- doxytag: member="ZeroCrossing::getIdentifier" ref="f2baf9e19fcdd11cfe97ace56d4f5c1a" args="() const " -->
cannam@0 401 <div class="memitem">
cannam@0 402 <div class="memproto">
cannam@0 403 <table class="memname">
cannam@0 404 <tr>
cannam@0 405 <td class="memname">string ZeroCrossing::getIdentifier </td>
cannam@0 406 <td>(</td>
cannam@0 407 <td class="paramname"> </td>
cannam@0 408 <td>&nbsp;)&nbsp;</td>
cannam@21 409 <td> const<code> [virtual]</code></td>
cannam@0 410 </tr>
cannam@0 411 </table>
cannam@0 412 </div>
cannam@0 413 <div class="memdoc">
cannam@0 414
cannam@0 415 <p>
cannam@0 416 Get the computer-usable name of the plugin.
cannam@0 417 <p>
cannam@0 418 This should be reasonably short and contain no whitespace or punctuation characters. It may only contain the characters [a-zA-Z0-9_-]. This is the authoritative way for a program to identify a plugin within a given library.<p>
cannam@0 419 This text may be visible to the user, but it should not be the main text used to identify a plugin to the user (that will be the name, below).<p>
cannam@0 420 Example: "zero_crossings"
cannam@0 421 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>.</p>
cannam@0 422
cannam@21 423 <p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00058">58</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
cannam@0 424
cannam@0 425 </div>
cannam@0 426 </div><p>
cannam@0 427 <a class="anchor" name="fa96f7ce6e7d9f03768f48c6a9d88498"></a><!-- doxytag: member="ZeroCrossing::getName" ref="fa96f7ce6e7d9f03768f48c6a9d88498" args="() const " -->
cannam@0 428 <div class="memitem">
cannam@0 429 <div class="memproto">
cannam@0 430 <table class="memname">
cannam@0 431 <tr>
cannam@0 432 <td class="memname">string ZeroCrossing::getName </td>
cannam@0 433 <td>(</td>
cannam@0 434 <td class="paramname"> </td>
cannam@0 435 <td>&nbsp;)&nbsp;</td>
cannam@21 436 <td> const<code> [virtual]</code></td>
cannam@0 437 </tr>
cannam@0 438 </table>
cannam@0 439 </div>
cannam@0 440 <div class="memdoc">
cannam@0 441
cannam@0 442 <p>
cannam@0 443 Get a human-readable name or title of the plugin.
cannam@0 444 <p>
cannam@0 445 This should be brief and self-contained, as it may be used to identify the plugin to the user in isolation (i.e. without also showing the plugin's "identifier").<p>
cannam@0 446 Example: "Zero Crossings"
cannam@0 447 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>.</p>
cannam@0 448
cannam@21 449 <p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00064">64</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
cannam@0 450
cannam@0 451 </div>
cannam@0 452 </div><p>
cannam@0 453 <a class="anchor" name="710bb0b013157adaeef2a9e6867b4478"></a><!-- doxytag: member="ZeroCrossing::getDescription" ref="710bb0b013157adaeef2a9e6867b4478" args="() const " -->
cannam@0 454 <div class="memitem">
cannam@0 455 <div class="memproto">
cannam@0 456 <table class="memname">
cannam@0 457 <tr>
cannam@0 458 <td class="memname">string ZeroCrossing::getDescription </td>
cannam@0 459 <td>(</td>
cannam@0 460 <td class="paramname"> </td>
cannam@0 461 <td>&nbsp;)&nbsp;</td>
cannam@21 462 <td> const<code> [virtual]</code></td>
cannam@0 463 </tr>
cannam@0 464 </table>
cannam@0 465 </div>
cannam@0 466 <div class="memdoc">
cannam@0 467
cannam@0 468 <p>
cannam@0 469 Get a human-readable description for the plugin, typically a line of text that may optionally be displayed in addition to the plugin's "name".
cannam@0 470 <p>
cannam@0 471 May be empty if the name has said it all already.<p>
cannam@0 472 Example: "Detect and count zero crossing points"
cannam@0 473 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>.</p>
cannam@0 474
cannam@21 475 <p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00070">70</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
cannam@0 476
cannam@0 477 </div>
cannam@0 478 </div><p>
cannam@0 479 <a class="anchor" name="c68561634a3c329a029c2fd3deaeae2a"></a><!-- doxytag: member="ZeroCrossing::getMaker" ref="c68561634a3c329a029c2fd3deaeae2a" args="() const " -->
cannam@0 480 <div class="memitem">
cannam@0 481 <div class="memproto">
cannam@0 482 <table class="memname">
cannam@0 483 <tr>
cannam@0 484 <td class="memname">string ZeroCrossing::getMaker </td>
cannam@0 485 <td>(</td>
cannam@0 486 <td class="paramname"> </td>
cannam@0 487 <td>&nbsp;)&nbsp;</td>
cannam@21 488 <td> const<code> [virtual]</code></td>
cannam@0 489 </tr>
cannam@0 490 </table>
cannam@0 491 </div>
cannam@0 492 <div class="memdoc">
cannam@0 493
cannam@0 494 <p>
cannam@0 495 Get the name of the author or vendor of the plugin in human-readable form.
cannam@0 496 <p>
cannam@0 497 This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar.
cannam@0 498 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>.</p>
cannam@0 499
cannam@21 500 <p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00076">76</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
cannam@0 501
cannam@0 502 </div>
cannam@0 503 </div><p>
cannam@0 504 <a class="anchor" name="d685f6c2f443f07a1634550c335571eb"></a><!-- doxytag: member="ZeroCrossing::getPluginVersion" ref="d685f6c2f443f07a1634550c335571eb" args="() const " -->
cannam@0 505 <div class="memitem">
cannam@0 506 <div class="memproto">
cannam@0 507 <table class="memname">
cannam@0 508 <tr>
cannam@0 509 <td class="memname">int ZeroCrossing::getPluginVersion </td>
cannam@0 510 <td>(</td>
cannam@0 511 <td class="paramname"> </td>
cannam@0 512 <td>&nbsp;)&nbsp;</td>
cannam@21 513 <td> const<code> [virtual]</code></td>
cannam@0 514 </tr>
cannam@0 515 </table>
cannam@0 516 </div>
cannam@0 517 <div class="memdoc">
cannam@0 518
cannam@0 519 <p>
cannam@0 520 Get the version number of the plugin.
cannam@0 521 <p>
cannam@0 522
cannam@0 523 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>.</p>
cannam@0 524
cannam@21 525 <p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00082">82</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
cannam@0 526
cannam@0 527 </div>
cannam@0 528 </div><p>
cannam@0 529 <a class="anchor" name="f9c41b92aa8ff8bddaebf75569ff789c"></a><!-- doxytag: member="ZeroCrossing::getCopyright" ref="f9c41b92aa8ff8bddaebf75569ff789c" args="() const " -->
cannam@0 530 <div class="memitem">
cannam@0 531 <div class="memproto">
cannam@0 532 <table class="memname">
cannam@0 533 <tr>
cannam@0 534 <td class="memname">string ZeroCrossing::getCopyright </td>
cannam@0 535 <td>(</td>
cannam@0 536 <td class="paramname"> </td>
cannam@0 537 <td>&nbsp;)&nbsp;</td>
cannam@21 538 <td> const<code> [virtual]</code></td>
cannam@0 539 </tr>
cannam@0 540 </table>
cannam@0 541 </div>
cannam@0 542 <div class="memdoc">
cannam@0 543
cannam@0 544 <p>
cannam@0 545 Get the copyright statement or licensing summary for the plugin.
cannam@0 546 <p>
cannam@0 547 This can be an informative text, without the same presentation constraints as mentioned for getMaker above.
cannam@0 548 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>.</p>
cannam@0 549
cannam@21 550 <p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00088">88</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
cannam@0 551
cannam@0 552 </div>
cannam@0 553 </div><p>
cannam@0 554 <a class="anchor" name="c9d590a6feb1fc9a37d7892aefe2b688"></a><!-- doxytag: member="ZeroCrossing::getOutputDescriptors" ref="c9d590a6feb1fc9a37d7892aefe2b688" args="() const " -->
cannam@0 555 <div class="memitem">
cannam@0 556 <div class="memproto">
cannam@0 557 <table class="memname">
cannam@0 558 <tr>
cannam@0 559 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">ZeroCrossing::OutputList</a> ZeroCrossing::getOutputDescriptors </td>
cannam@0 560 <td>(</td>
cannam@0 561 <td class="paramname"> </td>
cannam@0 562 <td>&nbsp;)&nbsp;</td>
cannam@21 563 <td> const<code> [virtual]</code></td>
cannam@0 564 </tr>
cannam@0 565 </table>
cannam@0 566 </div>
cannam@0 567 <div class="memdoc">
cannam@0 568
cannam@0 569 <p>
cannam@0 570 Get the outputs of this plugin.
cannam@0 571 <p>
cannam@0 572 An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da" title="Process a single block of input data.">process()</a> call.
cannam@0 573 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>.</p>
cannam@0 574
cannam@21 575 <p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">111</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
cannam@0 576
cannam@35 577 <p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00247">Vamp::Plugin::Plugin::OutputDescriptor::binCount</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00227">Vamp::Plugin::Plugin::OutputDescriptor::description</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00239">Vamp::Plugin::Plugin::OutputDescriptor::hasFixedBinCount</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00260">Vamp::Plugin::Plugin::OutputDescriptor::hasKnownExtents</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00214">Vamp::Plugin::Plugin::OutputDescriptor::identifier</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00278">Vamp::Plugin::Plugin::OutputDescriptor::isQuantized</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00436">Vamp::Plugin::m_inputSampleRate</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00220">Vamp::Plugin::Plugin::OutputDescriptor::name</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00290">Vamp::Plugin::Plugin::OutputDescriptor::OneSamplePerStep</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00285">Vamp::Plugin::Plugin::OutputDescriptor::quantizeStep</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00314">Vamp::Plugin::Plugin::OutputDescriptor::sampleRate</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00302">Vamp::Plugin::Plugin::OutputDescriptor::sampleType</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00232">Vamp::Plugin::Plugin::OutputDescriptor::unit</a>, and <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00296">Vamp::Plugin::Plugin::OutputDescriptor::VariableSampleRate</a>.</p>
cannam@0 578
cannam@0 579 </div>
cannam@0 580 </div><p>
cannam@0 581 <a class="anchor" name="bf4aaa6fd8cc03de63f4e1e8942633da"></a><!-- doxytag: member="ZeroCrossing::process" ref="bf4aaa6fd8cc03de63f4e1e8942633da" args="(const float *const *inputBuffers, Vamp::RealTime timestamp)" -->
cannam@0 582 <div class="memitem">
cannam@0 583 <div class="memproto">
cannam@0 584 <table class="memname">
cannam@0 585 <tr>
cannam@0 586 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">ZeroCrossing::FeatureSet</a> ZeroCrossing::process </td>
cannam@0 587 <td>(</td>
cannam@0 588 <td class="paramtype">const float *const *&nbsp;</td>
cannam@0 589 <td class="paramname"> <em>inputBuffers</em>, </td>
cannam@0 590 </tr>
cannam@0 591 <tr>
cannam@0 592 <td class="paramkey"></td>
cannam@0 593 <td></td>
cannam@0 594 <td class="paramtype"><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a>&nbsp;</td>
cannam@0 595 <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
cannam@0 596 </tr>
cannam@0 597 <tr>
cannam@0 598 <td></td>
cannam@0 599 <td>)</td>
cannam@21 600 <td></td><td></td><td><code> [virtual]</code></td>
cannam@0 601 </tr>
cannam@0 602 </table>
cannam@0 603 </div>
cannam@0 604 <div class="memdoc">
cannam@0 605
cannam@0 606 <p>
cannam@0 607 Process a single block of input data.
cannam@0 608 <p>
cannam@21 609 If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp in this case will be the real time in seconds of the start of the supplied block of samples.<p>
cannam@0 610 If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).<p>
cannam@0 611 Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.)
cannam@0 612 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin</a>.</p>
cannam@0 613
cannam@21 614 <p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">142</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
cannam@0 615
cannam@35 616 <p>References <a class="el" href="structVamp_1_1RealTime.html#939b4b1d1ca190db69a418883f16ce8a">Vamp::RealTime::frame2RealTime()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00344">Vamp::Plugin::Plugin::Feature::hasTimestamp</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00436">Vamp::Plugin::m_inputSampleRate</a>, <a class="el" href="ZeroCrossing_8h-source.html#l00074">m_previousSample</a>, <a class="el" href="ZeroCrossing_8h-source.html#l00073">m_stepSize</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00352">Vamp::Plugin::Plugin::Feature::timestamp</a>, and <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00374">Vamp::Plugin::Plugin::Feature::values</a>.</p>
cannam@0 617
cannam@0 618 </div>
cannam@0 619 </div><p>
cannam@0 620 <a class="anchor" name="70996d1b7166e303903daf92a9a37ad8"></a><!-- doxytag: member="ZeroCrossing::getRemainingFeatures" ref="70996d1b7166e303903daf92a9a37ad8" args="()" -->
cannam@0 621 <div class="memitem">
cannam@0 622 <div class="memproto">
cannam@0 623 <table class="memname">
cannam@0 624 <tr>
cannam@0 625 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">ZeroCrossing::FeatureSet</a> ZeroCrossing::getRemainingFeatures </td>
cannam@0 626 <td>(</td>
cannam@0 627 <td class="paramname"> </td>
cannam@0 628 <td>&nbsp;)&nbsp;</td>
cannam@21 629 <td><code> [virtual]</code></td>
cannam@0 630 </tr>
cannam@0 631 </table>
cannam@0 632 </div>
cannam@0 633 <div class="memdoc">
cannam@0 634
cannam@0 635 <p>
cannam@0 636 After all blocks have been processed, calculate and return any remaining features derived from the complete input.
cannam@0 637 <p>
cannam@0 638
cannam@0 639 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>.</p>
cannam@0 640
cannam@21 641 <p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00191">191</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
cannam@0 642
cannam@0 643 </div>
cannam@0 644 </div><p>
cannam@0 645 <a class="anchor" name="a529adf83f87a603954eb31407602aac"></a><!-- doxytag: member="ZeroCrossing::getPreferredBlockSize" ref="a529adf83f87a603954eb31407602aac" args="() const " -->
cannam@0 646 <div class="memitem">
cannam@0 647 <div class="memproto">
cannam@0 648 <table class="memname">
cannam@0 649 <tr>
cannam@0 650 <td class="memname">virtual size_t Vamp::Plugin::getPreferredBlockSize </td>
cannam@0 651 <td>(</td>
cannam@0 652 <td class="paramname"> </td>
cannam@0 653 <td>&nbsp;)&nbsp;</td>
cannam@21 654 <td> const<code> [inline, virtual, inherited]</code></td>
cannam@0 655 </tr>
cannam@0 656 </table>
cannam@0 657 </div>
cannam@0 658 <div class="memdoc">
cannam@0 659
cannam@0 660 <p>
cannam@0 661 Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> function).
cannam@0 662 <p>
cannam@0 663 This should be called before <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
cannam@0 664 A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call.
cannam@21 665 <p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#21e45180b19873f9ab69fe7a4e184a03">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classFixedTempoEstimator.html#68b8569b71504a0478caf990dbe30683">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0">PercussionOnsetDetector</a>.</p>
cannam@0 666
cannam@35 667 <p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00179">179</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
cannam@0 668
cannam@21 669 <p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
cannam@0 670
cannam@0 671 </div>
cannam@0 672 </div><p>
cannam@0 673 <a class="anchor" name="514c716c22f81c055f19b56c3f882567"></a><!-- doxytag: member="ZeroCrossing::getPreferredStepSize" ref="514c716c22f81c055f19b56c3f882567" args="() const " -->
cannam@0 674 <div class="memitem">
cannam@0 675 <div class="memproto">
cannam@0 676 <table class="memname">
cannam@0 677 <tr>
cannam@0 678 <td class="memname">virtual size_t Vamp::Plugin::getPreferredStepSize </td>
cannam@0 679 <td>(</td>
cannam@0 680 <td class="paramname"> </td>
cannam@0 681 <td>&nbsp;)&nbsp;</td>
cannam@21 682 <td> const<code> [inline, virtual, inherited]</code></td>
cannam@0 683 </tr>
cannam@0 684 </table>
cannam@0 685 </div>
cannam@0 686 <div class="memdoc">
cannam@0 687
cannam@0 688 <p>
cannam@0 689 Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> function) for the plugin.
cannam@0 690 <p>
cannam@0 691 This should be called before <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
cannam@0 692 A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call.
cannam@21 693 <p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classFixedTempoEstimator.html#d450bb7e7df559ae3d68dfbfb085676f">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968">PercussionOnsetDetector</a>.</p>
cannam@0 694
cannam@35 695 <p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00194">194</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
cannam@0 696
cannam@21 697 <p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
cannam@0 698
cannam@0 699 </div>
cannam@0 700 </div><p>
cannam@0 701 <a class="anchor" name="267b42e866df3cf0d190893e8096f525"></a><!-- doxytag: member="ZeroCrossing::getMinChannelCount" ref="267b42e866df3cf0d190893e8096f525" args="() const " -->
cannam@0 702 <div class="memitem">
cannam@0 703 <div class="memproto">
cannam@0 704 <table class="memname">
cannam@0 705 <tr>
cannam@0 706 <td class="memname">virtual size_t Vamp::Plugin::getMinChannelCount </td>
cannam@0 707 <td>(</td>
cannam@0 708 <td class="paramname"> </td>
cannam@0 709 <td>&nbsp;)&nbsp;</td>
cannam@21 710 <td> const<code> [inline, virtual, inherited]</code></td>
cannam@0 711 </tr>
cannam@0 712 </table>
cannam@0 713 </div>
cannam@0 714 <div class="memdoc">
cannam@0 715
cannam@0 716 <p>
cannam@0 717 Get the minimum supported number of input channels.
cannam@0 718 <p>
cannam@0 719
cannam@0 720 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">Vamp::HostExt::PluginWrapper</a>.</p>
cannam@0 721
cannam@35 722 <p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">199</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
cannam@0 723
cannam@35 724 <p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00104">SpectralCentroid::initialise()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">PowerSpectrum::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">FixedTempoEstimator::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
cannam@0 725
cannam@0 726 </div>
cannam@0 727 </div><p>
cannam@0 728 <a class="anchor" name="2c5ab12b6fa4847cb244bd1e9cb3ae5e"></a><!-- doxytag: member="ZeroCrossing::getMaxChannelCount" ref="2c5ab12b6fa4847cb244bd1e9cb3ae5e" args="() const " -->
cannam@0 729 <div class="memitem">
cannam@0 730 <div class="memproto">
cannam@0 731 <table class="memname">
cannam@0 732 <tr>
cannam@0 733 <td class="memname">virtual size_t Vamp::Plugin::getMaxChannelCount </td>
cannam@0 734 <td>(</td>
cannam@0 735 <td class="paramname"> </td>
cannam@0 736 <td>&nbsp;)&nbsp;</td>
cannam@21 737 <td> const<code> [inline, virtual, inherited]</code></td>
cannam@0 738 </tr>
cannam@0 739 </table>
cannam@0 740 </div>
cannam@0 741 <div class="memdoc">
cannam@0 742
cannam@0 743 <p>
cannam@0 744 Get the maximum supported number of input channels.
cannam@0 745 <p>
cannam@0 746
cannam@0 747 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">Vamp::HostExt::PluginWrapper</a>.</p>
cannam@0 748
cannam@35 749 <p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00204">204</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
cannam@0 750
cannam@35 751 <p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00104">SpectralCentroid::initialise()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">PowerSpectrum::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">FixedTempoEstimator::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
cannam@0 752
cannam@0 753 </div>
cannam@0 754 </div><p>
cannam@0 755 <a class="anchor" name="be13b3997a69fbcc09e2213faa352f91"></a><!-- doxytag: member="ZeroCrossing::getType" ref="be13b3997a69fbcc09e2213faa352f91" args="() const " -->
cannam@0 756 <div class="memitem">
cannam@0 757 <div class="memproto">
cannam@0 758 <table class="memname">
cannam@0 759 <tr>
cannam@0 760 <td class="memname">virtual std::string Vamp::Plugin::getType </td>
cannam@0 761 <td>(</td>
cannam@0 762 <td class="paramname"> </td>
cannam@0 763 <td>&nbsp;)&nbsp;</td>
cannam@21 764 <td> const<code> [inline, virtual, inherited]</code></td>
cannam@0 765 </tr>
cannam@0 766 </table>
cannam@0 767 </div>
cannam@0 768 <div class="memdoc">
cannam@0 769
cannam@0 770 <p>
cannam@0 771 Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>.
cannam@0 772 <p>
cannam@0 773 Do not reimplement this function in your subclass.
cannam@0 774 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
cannam@0 775
cannam@35 776 <p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00430">430</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
cannam@0 777
cannam@0 778 </div>
cannam@0 779 </div><p>
cannam@0 780 <a class="anchor" name="8fd2c48291c64b790f0efb8948508dcf"></a><!-- doxytag: member="ZeroCrossing::getVampApiVersion" ref="8fd2c48291c64b790f0efb8948508dcf" args="() const " -->
cannam@0 781 <div class="memitem">
cannam@0 782 <div class="memproto">
cannam@0 783 <table class="memname">
cannam@0 784 <tr>
cannam@0 785 <td class="memname">virtual unsigned int Vamp::PluginBase::getVampApiVersion </td>
cannam@0 786 <td>(</td>
cannam@0 787 <td class="paramname"> </td>
cannam@0 788 <td>&nbsp;)&nbsp;</td>
cannam@21 789 <td> const<code> [inline, virtual, inherited]</code></td>
cannam@0 790 </tr>
cannam@0 791 </table>
cannam@0 792 </div>
cannam@0 793 <div class="memdoc">
cannam@0 794
cannam@0 795 <p>
cannam@21 796 Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin.
cannam@0 797 <p>
cannam@0 798
cannam@0 799 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">Vamp::HostExt::PluginWrapper</a>.</p>
cannam@0 800
cannam@21 801 <p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00072">72</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
cannam@0 802
cannam@21 803 <p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
cannam@0 804
cannam@0 805 </div>
cannam@0 806 </div><p>
cannam@0 807 <a class="anchor" name="ac3e49b3b66cacfbb768dfdf07444f21"></a><!-- doxytag: member="ZeroCrossing::getParameterDescriptors" ref="ac3e49b3b66cacfbb768dfdf07444f21" args="() const " -->
cannam@0 808 <div class="memitem">
cannam@0 809 <div class="memproto">
cannam@0 810 <table class="memname">
cannam@0 811 <tr>
cannam@0 812 <td class="memname">virtual <a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> Vamp::PluginBase::getParameterDescriptors </td>
cannam@0 813 <td>(</td>
cannam@0 814 <td class="paramname"> </td>
cannam@0 815 <td>&nbsp;)&nbsp;</td>
cannam@21 816 <td> const<code> [inline, virtual, inherited]</code></td>
cannam@0 817 </tr>
cannam@0 818 </table>
cannam@0 819 </div>
cannam@0 820 <div class="memdoc">
cannam@0 821
cannam@0 822 <p>
cannam@0 823 Get the controllable parameters of this plugin.
cannam@0 824 <p>
cannam@0 825
cannam@21 826 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#602faa0bfaae83e2ca53b36292271a76">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#e157465a4e07d180bab05b5c3a4d8987">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">PercussionOnsetDetector</a>.</p>
cannam@0 827
cannam@21 828 <p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00208">208</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
cannam@0 829
cannam@21 830 <p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
cannam@0 831
cannam@0 832 </div>
cannam@0 833 </div><p>
cannam@0 834 <a class="anchor" name="97ababcd45348ceec998d0f8e0f38bf7"></a><!-- doxytag: member="ZeroCrossing::getParameter" ref="97ababcd45348ceec998d0f8e0f38bf7" args="(std::string) const " -->
cannam@0 835 <div class="memitem">
cannam@0 836 <div class="memproto">
cannam@0 837 <table class="memname">
cannam@0 838 <tr>
cannam@0 839 <td class="memname">virtual float Vamp::PluginBase::getParameter </td>
cannam@0 840 <td>(</td>
cannam@0 841 <td class="paramtype">std::string&nbsp;</td>
cannam@0 842 <td class="paramname"> </td>
cannam@0 843 <td>&nbsp;)&nbsp;</td>
cannam@21 844 <td> const<code> [inline, virtual, inherited]</code></td>
cannam@0 845 </tr>
cannam@0 846 </table>
cannam@0 847 </div>
cannam@0 848 <div class="memdoc">
cannam@0 849
cannam@0 850 <p>
cannam@0 851 Get the value of a named parameter.
cannam@0 852 <p>
cannam@0 853 The argument is the identifier field from that parameter's descriptor.
cannam@21 854 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#2030b05fb1228b30ace16200780c9152">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527">PercussionOnsetDetector</a>.</p>
cannam@0 855
cannam@21 856 <p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00216">216</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
cannam@0 857
cannam@0 858 </div>
cannam@0 859 </div><p>
cannam@0 860 <a class="anchor" name="6c718ce822f7b73b98940d59dcaa9366"></a><!-- doxytag: member="ZeroCrossing::setParameter" ref="6c718ce822f7b73b98940d59dcaa9366" args="(std::string, float)" -->
cannam@0 861 <div class="memitem">
cannam@0 862 <div class="memproto">
cannam@0 863 <table class="memname">
cannam@0 864 <tr>
cannam@0 865 <td class="memname">virtual void Vamp::PluginBase::setParameter </td>
cannam@0 866 <td>(</td>
cannam@0 867 <td class="paramtype">std::string&nbsp;</td>
cannam@0 868 <td class="paramname">, </td>
cannam@0 869 </tr>
cannam@0 870 <tr>
cannam@0 871 <td class="paramkey"></td>
cannam@0 872 <td></td>
cannam@0 873 <td class="paramtype">float&nbsp;</td>
cannam@0 874 <td class="paramname"></td><td>&nbsp;</td>
cannam@0 875 </tr>
cannam@0 876 <tr>
cannam@0 877 <td></td>
cannam@0 878 <td>)</td>
cannam@21 879 <td></td><td></td><td><code> [inline, virtual, inherited]</code></td>
cannam@0 880 </tr>
cannam@0 881 </table>
cannam@0 882 </div>
cannam@0 883 <div class="memdoc">
cannam@0 884
cannam@0 885 <p>
cannam@0 886 Set a named parameter.
cannam@0 887 <p>
cannam@0 888 The first argument is the identifier field from that parameter's descriptor.
cannam@21 889 <p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7a979b20c169d37adbd7b7d8b8a077b3">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#8a5a413025384cf451c64d2c2ce13a75">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">PercussionOnsetDetector</a>.</p>
cannam@0 890
cannam@21 891 <p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00222">222</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
cannam@0 892
cannam@0 893 </div>
cannam@0 894 </div><p>
cannam@0 895 <a class="anchor" name="bb307c60bdb981d5f5af50c3c4ae84af"></a><!-- doxytag: member="ZeroCrossing::getPrograms" ref="bb307c60bdb981d5f5af50c3c4ae84af" args="() const " -->
cannam@0 896 <div class="memitem">
cannam@0 897 <div class="memproto">
cannam@0 898 <table class="memname">
cannam@0 899 <tr>
cannam@0 900 <td class="memname">virtual <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> Vamp::PluginBase::getPrograms </td>
cannam@0 901 <td>(</td>
cannam@0 902 <td class="paramname"> </td>
cannam@0 903 <td>&nbsp;)&nbsp;</td>
cannam@21 904 <td> const<code> [inline, virtual, inherited]</code></td>
cannam@0 905 </tr>
cannam@0 906 </table>
cannam@0 907 </div>
cannam@0 908 <div class="memdoc">
cannam@0 909
cannam@0 910 <p>
cannam@0 911 Get the program settings available in this plugin.
cannam@0 912 <p>
cannam@0 913 A program is a named shorthand for a set of parameter values; changing the program may cause the plugin to alter the values of its published parameters (and/or non-public internal processing parameters). The host should re-read the plugin's parameter values after setting a new program.<p>
cannam@0 914 The programs must have unique names.
cannam@21 915 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#e0cde5cd625418c1bc470b91f75daafc">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">Vamp::HostExt::PluginWrapper</a>.</p>
cannam@0 916
cannam@21 917 <p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00237">237</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
cannam@0 918
cannam@0 919 </div>
cannam@0 920 </div><p>
cannam@0 921 <a class="anchor" name="24e77eccf1bdfbbca3c79bb25e8799b3"></a><!-- doxytag: member="ZeroCrossing::getCurrentProgram" ref="24e77eccf1bdfbbca3c79bb25e8799b3" args="() const " -->
cannam@0 922 <div class="memitem">
cannam@0 923 <div class="memproto">
cannam@0 924 <table class="memname">
cannam@0 925 <tr>
cannam@0 926 <td class="memname">virtual std::string Vamp::PluginBase::getCurrentProgram </td>
cannam@0 927 <td>(</td>
cannam@0 928 <td class="paramname"> </td>
cannam@0 929 <td>&nbsp;)&nbsp;</td>
cannam@21 930 <td> const<code> [inline, virtual, inherited]</code></td>
cannam@0 931 </tr>
cannam@0 932 </table>
cannam@0 933 </div>
cannam@0 934 <div class="memdoc">
cannam@0 935
cannam@0 936 <p>
cannam@0 937 Get the current program.
cannam@0 938 <p>
cannam@0 939
cannam@0 940 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">Vamp::HostExt::PluginWrapper</a>.</p>
cannam@0 941
cannam@21 942 <p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00242">242</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
cannam@0 943
cannam@0 944 </div>
cannam@0 945 </div><p>
cannam@0 946 <a class="anchor" name="add3a547ef140bae200473a9518e3353"></a><!-- doxytag: member="ZeroCrossing::selectProgram" ref="add3a547ef140bae200473a9518e3353" args="(std::string)" -->
cannam@0 947 <div class="memitem">
cannam@0 948 <div class="memproto">
cannam@0 949 <table class="memname">
cannam@0 950 <tr>
cannam@0 951 <td class="memname">virtual void Vamp::PluginBase::selectProgram </td>
cannam@0 952 <td>(</td>
cannam@0 953 <td class="paramtype">std::string&nbsp;</td>
cannam@0 954 <td class="paramname"> </td>
cannam@0 955 <td>&nbsp;)&nbsp;</td>
cannam@21 956 <td><code> [inline, virtual, inherited]</code></td>
cannam@0 957 </tr>
cannam@0 958 </table>
cannam@0 959 </div>
cannam@0 960 <div class="memdoc">
cannam@0 961
cannam@0 962 <p>
cannam@0 963 Select a program.
cannam@0 964 <p>
cannam@0 965 (If the given program name is not one of the available programs, do nothing.)
cannam@21 966 <p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
cannam@0 967
cannam@21 968 <p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00248">248</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
cannam@0 969
cannam@0 970 </div>
cannam@0 971 </div><p>
cannam@0 972 <hr><h2>Member Data Documentation</h2>
cannam@0 973 <a class="anchor" name="584f100b87c78f9af9da040d79567d52"></a><!-- doxytag: member="ZeroCrossing::m_stepSize" ref="584f100b87c78f9af9da040d79567d52" args="" -->
cannam@0 974 <div class="memitem">
cannam@0 975 <div class="memproto">
cannam@0 976 <table class="memname">
cannam@0 977 <tr>
cannam@0 978 <td class="memname">size_t <a class="el" href="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">ZeroCrossing::m_stepSize</a><code> [protected]</code> </td>
cannam@0 979 </tr>
cannam@0 980 </table>
cannam@0 981 </div>
cannam@0 982 <div class="memdoc">
cannam@0 983
cannam@0 984 <p>
cannam@0 985
cannam@0 986 <p>Definition at line <a class="el" href="ZeroCrossing_8h-source.html#l00073">73</a> of file <a class="el" href="ZeroCrossing_8h-source.html">ZeroCrossing.h</a>.</p>
cannam@0 987
cannam@21 988 <p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">initialise()</a>, and <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">process()</a>.</p>
cannam@0 989
cannam@0 990 </div>
cannam@0 991 </div><p>
cannam@0 992 <a class="anchor" name="0f2d9f2cab0a8a30344e1f2c0ebb8ee8"></a><!-- doxytag: member="ZeroCrossing::m_previousSample" ref="0f2d9f2cab0a8a30344e1f2c0ebb8ee8" args="" -->
cannam@0 993 <div class="memitem">
cannam@0 994 <div class="memproto">
cannam@0 995 <table class="memname">
cannam@0 996 <tr>
cannam@0 997 <td class="memname">float <a class="el" href="classZeroCrossing.html#0f2d9f2cab0a8a30344e1f2c0ebb8ee8">ZeroCrossing::m_previousSample</a><code> [protected]</code> </td>
cannam@0 998 </tr>
cannam@0 999 </table>
cannam@0 1000 </div>
cannam@0 1001 <div class="memdoc">
cannam@0 1002
cannam@0 1003 <p>
cannam@0 1004
cannam@0 1005 <p>Definition at line <a class="el" href="ZeroCrossing_8h-source.html#l00074">74</a> of file <a class="el" href="ZeroCrossing_8h-source.html">ZeroCrossing.h</a>.</p>
cannam@0 1006
cannam@21 1007 <p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">process()</a>, and <a class="el" href="ZeroCrossing_8cpp-source.html#l00105">reset()</a>.</p>
cannam@0 1008
cannam@0 1009 </div>
cannam@0 1010 </div><p>
cannam@0 1011 <a class="anchor" name="59b9dd82a4f4eb946cd0474cc81abc23"></a><!-- doxytag: member="ZeroCrossing::m_inputSampleRate" ref="59b9dd82a4f4eb946cd0474cc81abc23" args="" -->
cannam@0 1012 <div class="memitem">
cannam@0 1013 <div class="memproto">
cannam@0 1014 <table class="memname">
cannam@0 1015 <tr>
cannam@0 1016 <td class="memname">float <a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">Vamp::Plugin::m_inputSampleRate</a><code> [protected, inherited]</code> </td>
cannam@0 1017 </tr>
cannam@0 1018 </table>
cannam@0 1019 </div>
cannam@0 1020 <div class="memdoc">
cannam@0 1021
cannam@0 1022 <p>
cannam@0 1023
cannam@35 1024 <p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00436">436</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
cannam@0 1025
cannam@35 1026 <p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00146">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
cannam@0 1027
cannam@0 1028 </div>
cannam@0 1029 </div><p>
cannam@0 1030 <hr>The documentation for this class was generated from the following files:<ul>
cannam@0 1031 <li><a class="el" href="ZeroCrossing_8h-source.html">ZeroCrossing.h</a><li><a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a></ul>
cannam@0 1032 </div>
cannam@35 1033 <hr size="1"><address style="text-align: right;"><small>Generated on Thu Sep 24 13:40:13 2009 for VampPluginSDK by&nbsp;
cannam@0 1034 <a href="http://www.doxygen.org/index.html">
cannam@35 1035 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
cannam@0 1036 </body>
cannam@0 1037 </html>