# HG changeset patch # User Chris Cannam # Date 1487954687 0 # Node ID 27319718b1f89cc20e0fea0d600faf1c4ffd2b4c # Parent 5c95f546f0b4c4b0d3b79e0e0d20511abb3e0901 Update code docs to v2.7 SDK diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/AmplitudeFollower_8cpp.html --- a/code-docs/AmplitudeFollower_8cpp.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/AmplitudeFollower_8cpp.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: AmplitudeFollower.cpp File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,20 +63,36 @@
AmplitudeFollower.cpp File Reference
- +
#include "AmplitudeFollower.h"
+#include <cmath>
+#include <string>
+#include <vector>
+#include <iostream>
+#include <algorithm>
+
+Include dependency graph for AmplitudeFollower.cpp:
+
+
+ + + + + + + +
+

Go to the source code of this file.

+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/AmplitudeFollower_8cpp__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/AmplitudeFollower_8cpp__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/AmplitudeFollower_8cpp__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/AmplitudeFollower_8cpp__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +ad3072d81ba7d664e5a19a0dfc46618c \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/AmplitudeFollower_8cpp__incl.png Binary file code-docs/AmplitudeFollower_8cpp__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/AmplitudeFollower_8cpp_source.html --- a/code-docs/AmplitudeFollower_8cpp_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/AmplitudeFollower_8cpp_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: AmplitudeFollower.cpp Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,260 +63,67 @@
AmplitudeFollower.cpp
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     This file copyright 2006 Dan Stowell.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #include "AmplitudeFollower.h"
-00038 
-00039 #include <cmath>
-00040 
-00041 #include <string>
-00042 #include <vector>
-00043 #include <iostream>
-00044 
-00045 using std::string;
-00046 using std::vector;
-00047 using std::cerr;
-00048 using std::endl;
-00049 
-00055 AmplitudeFollower::AmplitudeFollower(float inputSampleRate) :
-00056     Plugin(inputSampleRate),
-00057     m_stepSize(0),
-00058     m_previn(0.0f),
-00059     m_clampcoef(0.01f),
-00060     m_relaxcoef(0.01f)
-00061 {
-00062 }
-00063 
-00064 AmplitudeFollower::~AmplitudeFollower()
-00065 {
-00066 }
-00067 
-00068 string
-00069 AmplitudeFollower::getIdentifier() const
-00070 {
-00071     return "amplitudefollower";
-00072 }
-00073 
-00074 string
-00075 AmplitudeFollower::getName() const
-00076 {
-00077     return "Amplitude Follower";
-00078 }
-00079 
-00080 string
-00081 AmplitudeFollower::getDescription() const
-00082 {
-00083     return "Track the amplitude of the audio signal";
-00084 }
-00085 
-00086 string
-00087 AmplitudeFollower::getMaker() const
-00088 {
-00089     return "Vamp SDK Example Plugins";
-00090 }
-00091 
-00092 int
-00093 AmplitudeFollower::getPluginVersion() const
-00094 {
-00095     return 1;
-00096 }
-00097 
-00098 string
-00099 AmplitudeFollower::getCopyright() const
-00100 {
-00101     return "Code copyright 2006 Dan Stowell; method from SuperCollider.  Freely redistributable (BSD license)";
-00102 }
-00103 
-00104 bool
-00105 AmplitudeFollower::initialise(size_t channels, size_t stepSize, size_t blockSize)
-00106 {
-00107     if (channels < getMinChannelCount() ||
-00108         channels > getMaxChannelCount()) return false;
-00109 
-00110     m_stepSize = std::min(stepSize, blockSize);
-00111         
-00112     // Translate the coefficients 
-00113     // from their "convenient" 60dB convergence-time values
-00114     // to real coefficients
-00115     m_clampcoef = m_clampcoef==0.0 ? 0.0 : exp(log(0.1)/(m_clampcoef * m_inputSampleRate));
-00116     m_relaxcoef = m_relaxcoef==0.0 ? 0.0 : exp(log(0.1)/(m_relaxcoef * m_inputSampleRate));
-00117 
-00118     return true;
-00119 }
-00120 
-00121 void
-00122 AmplitudeFollower::reset()
-00123 {
-00124     m_previn = 0.0f;
-00125 }
-00126 
-00127 AmplitudeFollower::OutputList
-00128 AmplitudeFollower::getOutputDescriptors() const
-00129 {
-00130     OutputList list;
-00131 
-00132     OutputDescriptor sca;
-00133     sca.identifier = "amplitude";
-00134     sca.name = "Amplitude";
-00135     sca.description = "The peak tracked amplitude for the current processing block";
-00136     sca.unit = "V";
-00137     sca.hasFixedBinCount = true;
-00138     sca.binCount = 1;
-00139     sca.hasKnownExtents = false;
-00140     sca.isQuantized = false;
-00141     sca.sampleType = OutputDescriptor::OneSamplePerStep;
-00142     list.push_back(sca);
-00143 
-00144     return list;
-00145 }
-00146 
-00147 AmplitudeFollower::ParameterList
-00148 AmplitudeFollower::getParameterDescriptors() const
-00149 {
-00150     ParameterList list;
-00151         
-00152     ParameterDescriptor att;
-00153     att.identifier = "attack";
-00154     att.name = "Attack time";
-00155     att.description = "The 60dB convergence time for an increase in amplitude";
-00156     att.unit = "s";
-00157     att.minValue = 0.0f;
-00158     att.maxValue = 1.f;
-00159     att.defaultValue = 0.01f;
-00160     att.isQuantized = false;
-00161     
-00162     list.push_back(att);
-00163     
-00164     ParameterDescriptor dec;
-00165     dec.identifier = "release";
-00166     dec.name = "Release time";
-00167     dec.description = "The 60dB convergence time for a decrease in amplitude";
-00168     dec.unit = "s";
-00169     dec.minValue = 0.0f;
-00170     dec.maxValue = 1.f;
-00171     dec.defaultValue = 0.01f;
-00172     dec.isQuantized = false;
-00173     
-00174     list.push_back(dec);
-00175     
-00176     return list;
-00177 }
-00178 
-00179 void AmplitudeFollower::setParameter(std::string paramid, float newval)
-00180 {
-00181     if (paramid == "attack") {
-00182         m_clampcoef = newval;
-00183     } else if (paramid == "release") {
-00184         m_relaxcoef = newval;
-00185     }
-00186 }
-00187 
-00188 float AmplitudeFollower::getParameter(std::string paramid) const
-00189 {
-00190     if (paramid == "attack") {
-00191         return m_clampcoef;
-00192     } else if (paramid == "release") {
-00193         return m_relaxcoef;
-00194     }
-00195 
-00196     return 0.0f;
-00197 }
-00198 
-00199 AmplitudeFollower::FeatureSet
-00200 AmplitudeFollower::process(const float *const *inputBuffers,
-00201                            Vamp::RealTime timestamp)
-00202 {
-00203     if (m_stepSize == 0) {
-00204         cerr << "ERROR: AmplitudeFollower::process: "
-00205              << "AmplitudeFollower has not been initialised"
-00206              << endl;
-00207         return FeatureSet();
-00208     }
-00209 
-00210     float previn = m_previn;
-00211 
-00212     FeatureSet returnFeatures;
-00213         
-00214     float val;
-00215     float peak = 0.0f;
-00216 
-00217     for (size_t i = 0; i < m_stepSize; ++i) {
-00218 
-00219         val = fabs(inputBuffers[0][i]);
-00220                 
-00221         if (val < previn) {
-00222             val = val + (previn - val) * m_relaxcoef;
-00223         } else {
-00224             val = val + (previn - val) * m_clampcoef;
-00225         }
-00226 
-00227         if (val > peak) peak = val;
-00228         previn = val;
-00229     }
-00230 
-00231     m_previn = previn;
-00232 
-00233     // Now store the "feature" (peak amp) for this sample
-00234     Feature feature;
-00235     feature.hasTimestamp = false;
-00236     feature.values.push_back(peak);
-00237     returnFeatures[0].push_back(feature);
-00238 
-00239     return returnFeatures;
-00240 }
-00241 
-00242 AmplitudeFollower::FeatureSet
-00243 AmplitudeFollower::getRemainingFeatures()
-00244 {
-00245     return FeatureSet();
-00246 }
-00247 
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  This file copyright 2006 Dan Stowell.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #include "AmplitudeFollower.h"
38 
39 #include <cmath>
40 
41 #include <string>
42 #include <vector>
43 #include <iostream>
44 #include <algorithm>
45 
46 using std::string;
47 using std::vector;
48 using std::cerr;
49 using std::endl;
50 
56 AmplitudeFollower::AmplitudeFollower(float inputSampleRate) :
57  Plugin(inputSampleRate),
58  m_stepSize(0),
59  m_previn(0.0f),
60  m_clampcoef(0.01f),
61  m_relaxcoef(0.01f)
62 {
63 }
64 
66 {
67 }
68 
69 string
71 {
72  return "amplitudefollower";
73 }
74 
75 string
77 {
78  return "Amplitude Follower";
79 }
80 
81 string
83 {
84  return "Track the amplitude of the audio signal";
85 }
86 
87 string
89 {
90  return "Vamp SDK Example Plugins";
91 }
92 
93 int
95 {
96  return 1;
97 }
98 
99 string
101 {
102  return "Code copyright 2006 Dan Stowell; method from SuperCollider. Freely redistributable (BSD license)";
103 }
104 
105 bool
106 AmplitudeFollower::initialise(size_t channels, size_t stepSize, size_t blockSize)
107 {
108  if (channels < getMinChannelCount() ||
109  channels > getMaxChannelCount()) return false;
110 
111  m_stepSize = std::min(stepSize, blockSize);
112 
113  // Translate the coefficients
114  // from their "convenient" 60dB convergence-time values
115  // to real coefficients
116  m_clampcoef = m_clampcoef==0.0 ? 0.0 : exp(log(0.1)/(m_clampcoef * m_inputSampleRate));
117  m_relaxcoef = m_relaxcoef==0.0 ? 0.0 : exp(log(0.1)/(m_relaxcoef * m_inputSampleRate));
118 
119  return true;
120 }
121 
122 void
124 {
125  m_previn = 0.0f;
126 }
127 
130 {
131  OutputList list;
132 
133  OutputDescriptor sca;
134  sca.identifier = "amplitude";
135  sca.name = "Amplitude";
136  sca.description = "The peak tracked amplitude for the current processing block";
137  sca.unit = "V";
138  sca.hasFixedBinCount = true;
139  sca.binCount = 1;
140  sca.hasKnownExtents = false;
141  sca.isQuantized = false;
143  list.push_back(sca);
144 
145  return list;
146 }
147 
150 {
151  ParameterList list;
152 
154  att.identifier = "attack";
155  att.name = "Attack time";
156  att.description = "The 60dB convergence time for an increase in amplitude";
157  att.unit = "s";
158  att.minValue = 0.0f;
159  att.maxValue = 1.f;
160  att.defaultValue = 0.01f;
161  att.isQuantized = false;
162 
163  list.push_back(att);
164 
166  dec.identifier = "release";
167  dec.name = "Release time";
168  dec.description = "The 60dB convergence time for a decrease in amplitude";
169  dec.unit = "s";
170  dec.minValue = 0.0f;
171  dec.maxValue = 1.f;
172  dec.defaultValue = 0.01f;
173  dec.isQuantized = false;
174 
175  list.push_back(dec);
176 
177  return list;
178 }
179 
180 void AmplitudeFollower::setParameter(std::string paramid, float newval)
181 {
182  if (paramid == "attack") {
183  m_clampcoef = newval;
184  } else if (paramid == "release") {
185  m_relaxcoef = newval;
186  }
187 }
188 
189 float AmplitudeFollower::getParameter(std::string paramid) const
190 {
191  if (paramid == "attack") {
192  return m_clampcoef;
193  } else if (paramid == "release") {
194  return m_relaxcoef;
195  }
196 
197  return 0.0f;
198 }
199 
201 AmplitudeFollower::process(const float *const *inputBuffers,
202  Vamp::RealTime /* timestamp */)
203 {
204  if (m_stepSize == 0) {
205  cerr << "ERROR: AmplitudeFollower::process: "
206  << "AmplitudeFollower has not been initialised"
207  << endl;
208  return FeatureSet();
209  }
210 
211  float previn = m_previn;
212 
213  FeatureSet returnFeatures;
214 
215  float val;
216  float peak = 0.0f;
217 
218  for (size_t i = 0; i < m_stepSize; ++i) {
219 
220  val = fabs(inputBuffers[0][i]);
221 
222  if (val < previn) {
223  val = val + (previn - val) * m_relaxcoef;
224  } else {
225  val = val + (previn - val) * m_clampcoef;
226  }
227 
228  if (val > peak) peak = val;
229  previn = val;
230  }
231 
232  m_previn = previn;
233 
234  // Now store the "feature" (peak amp) for this sample
235  Feature feature;
236  feature.hasTimestamp = false;
237  feature.values.push_back(peak);
238  returnFeatures[0].push_back(feature);
239 
240  return returnFeatures;
241 }
242 
245 {
246  return FeatureSet();
247 }
248 
std::vector< OutputDescriptor > OutputList
+
bool initialise(size_t channels, size_t stepSize, size_t blockSize)
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).
+ +
AmplitudeFollower(float inputSampleRate)
An implementation of SuperCollider&#39;s amplitude-follower algorithm as a simple Vamp plugin...
+
bool hasFixedBinCount
True if the output has the same number of values per sample for every output sample.
+
std::vector< float > values
Results for a single sample of this feature.
+
std::map< int, FeatureList > FeatureSet
+
std::string identifier
The name of the parameter, in computer-usable form.
+
std::string description
A human-readable short text describing the output.
+
std::string identifier
The name of the output, in computer-usable form.
+
FeatureSet getRemainingFeatures()
After all blocks have been processed, calculate and return any remaining features derived from the co...
+
std::string name
The human-readable name of the parameter.
+ +
float m_inputSampleRate
+
std::string getName() const
Get a human-readable name or title of the plugin.
+
float minValue
The minimum value of the parameter.
+
std::string unit
The unit of the parameter, in human-readable form.
+
std::string unit
The unit of the output, in human-readable form.
+
virtual size_t getMinChannelCount() const
Get the minimum supported number of input channels.
+
std::string name
The human-readable name of the output.
+
virtual size_t getMaxChannelCount() const
Get the maximum supported number of input channels.
+
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
bool hasTimestamp
True if an output feature has its own timestamp.
+
std::string getMaker() const
Get the name of the author or vendor of the plugin in human-readable form.
+ +
std::string description
A human-readable short text describing the parameter.
+ +
float maxValue
The maximum value of the parameter.
+
void reset()
Reset the plugin after use, to prepare it for another clean run.
+ +
std::string getIdentifier() const
Get the computer-usable name of the plugin.
+ +
std::string getCopyright() const
Get the copyright statement or licensing summary for the plugin.
+
OutputList getOutputDescriptors() const
Get the outputs of this plugin.
+
Results from each process() align with that call&#39;s block start.
+
size_t binCount
The number of values per result of the output.
+
ParameterList getParameterDescriptors() const
Get the controllable parameters of this plugin.
+
float getParameter(std::string paramid) const
Get the value of a named parameter.
+ +
bool isQuantized
True if the output values are quantized to a particular resolution.
+ +
float defaultValue
The default value of the parameter.
+
void setParameter(std::string paramid, float newval)
Set a named parameter.
+
int getPluginVersion() const
Get the version number of the plugin.
+
std::string getDescription() const
Get a human-readable description for the plugin, typically a line of text that may optionally be disp...
+
FeatureSet process(const float *const *inputBuffers, Vamp::RealTime timestamp)
Process a single block of input data.
+
bool isQuantized
True if the parameter values are quantized to a particular resolution.
+ +
SampleType sampleType
Positioning in time of the output results.
+
bool hasKnownExtents
True if the results in each output bin fall within a fixed numeric range (minimum and maximum values)...
+
std::vector< ParameterDescriptor > ParameterList
+
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/AmplitudeFollower_8h.html --- a/code-docs/AmplitudeFollower_8h.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/AmplitudeFollower_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: AmplitudeFollower.h File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -78,26 +65,46 @@
AmplitudeFollower.h File Reference
- +
#include "vamp-sdk/Plugin.h"
+
+Include dependency graph for AmplitudeFollower.h:
+
+
+ + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+

Go to the source code of this file.

- - + +

+

Classes

class  AmplitudeFollower
 Example plugin implementing the SuperCollider amplitude follower function. More...
 Example plugin implementing the SuperCollider amplitude follower function. More...
 
+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/AmplitudeFollower_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/AmplitudeFollower_8h__dep__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,4 @@ + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/AmplitudeFollower_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/AmplitudeFollower_8h__dep__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +6cfb4d8becca63ce6cd519591aba351f \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/AmplitudeFollower_8h__dep__incl.png Binary file code-docs/AmplitudeFollower_8h__dep__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/AmplitudeFollower_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/AmplitudeFollower_8h__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/AmplitudeFollower_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/AmplitudeFollower_8h__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +3b4613d66a52b6dad712c7bde95883e4 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/AmplitudeFollower_8h__incl.png Binary file code-docs/AmplitudeFollower_8h__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/AmplitudeFollower_8h_source.html --- a/code-docs/AmplitudeFollower_8h_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/AmplitudeFollower_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: AmplitudeFollower.h Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,97 +63,46 @@
AmplitudeFollower.h
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     This file copyright 2006 Dan Stowell.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #ifndef _AMPLITUDE_FOLLOWER_PLUGIN_H_
-00038 #define _AMPLITUDE_FOLLOWER_PLUGIN_H_
-00039 
-00040 #include "vamp-sdk/Plugin.h"
-00041 
-00047 class AmplitudeFollower : public Vamp::Plugin
-00048 {
-00049 public:
-00050     AmplitudeFollower(float inputSampleRate);
-00051     virtual ~AmplitudeFollower();
-00052 
-00053     bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-00054     void reset();
-00055 
-00056     InputDomain getInputDomain() const { return TimeDomain; }
-00057 
-00058     std::string getIdentifier() const;
-00059     std::string getName() const;
-00060     std::string getDescription() const;
-00061     std::string getMaker() const;
-00062     int getPluginVersion() const;
-00063     std::string getCopyright() const;
-00064         
-00065     OutputList getOutputDescriptors() const;
-00066         
-00067     ParameterList getParameterDescriptors() const;
-00068     float getParameter(std::string paramid) const;
-00069     void setParameter(std::string paramid, float newval);
-00070 
-00071     FeatureSet process(const float *const *inputBuffers,
-00072                        Vamp::RealTime timestamp);
-00073 
-00074     FeatureSet getRemainingFeatures();
-00075 
-00076 protected:
-00077     size_t m_stepSize;
-00078     float  m_previn;
-00079     float  m_clampcoef;
-00080     float  m_relaxcoef;
-00081 };
-00082 
-00083 
-00084 #endif
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  This file copyright 2006 Dan Stowell.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #ifndef _AMPLITUDE_FOLLOWER_PLUGIN_H_
38 #define _AMPLITUDE_FOLLOWER_PLUGIN_H_
39 
40 #include "vamp-sdk/Plugin.h"
41 
48 {
49 public:
50  AmplitudeFollower(float inputSampleRate);
51  virtual ~AmplitudeFollower();
52 
53  bool initialise(size_t channels, size_t stepSize, size_t blockSize);
54  void reset();
55 
57 
58  std::string getIdentifier() const;
59  std::string getName() const;
60  std::string getDescription() const;
61  std::string getMaker() const;
62  int getPluginVersion() const;
63  std::string getCopyright() const;
64 
66 
68  float getParameter(std::string paramid) const;
69  void setParameter(std::string paramid, float newval);
70 
71  FeatureSet process(const float *const *inputBuffers,
72  Vamp::RealTime timestamp);
73 
75 
76 protected:
77  size_t m_stepSize;
78  float m_previn;
79  float m_clampcoef;
80  float m_relaxcoef;
81 };
82 
83 
84 #endif
std::vector< OutputDescriptor > OutputList
+
Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...
+
bool initialise(size_t channels, size_t stepSize, size_t blockSize)
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).
+ +
AmplitudeFollower(float inputSampleRate)
An implementation of SuperCollider&#39;s amplitude-follower algorithm as a simple Vamp plugin...
+
std::map< int, FeatureList > FeatureSet
+
FeatureSet getRemainingFeatures()
After all blocks have been processed, calculate and return any remaining features derived from the co...
+
std::string getName() const
Get a human-readable name or title of the plugin.
+ +
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
std::string getMaker() const
Get the name of the author or vendor of the plugin in human-readable form.
+
void reset()
Reset the plugin after use, to prepare it for another clean run.
+ +
std::string getIdentifier() const
Get the computer-usable name of the plugin.
+ +
std::string getCopyright() const
Get the copyright statement or licensing summary for the plugin.
+
OutputList getOutputDescriptors() const
Get the outputs of this plugin.
+
ParameterList getParameterDescriptors() const
Get the controllable parameters of this plugin.
+
float getParameter(std::string paramid) const
Get the value of a named parameter.
+ + + +
void setParameter(std::string paramid, float newval)
Set a named parameter.
+
int getPluginVersion() const
Get the version number of the plugin.
+
std::string getDescription() const
Get a human-readable description for the plugin, typically a line of text that may optionally be disp...
+
FeatureSet process(const float *const *inputBuffers, Vamp::RealTime timestamp)
Process a single block of input data.
+ +
Example plugin implementing the SuperCollider amplitude follower function.
+
InputDomain getInputDomain() const
Get the plugin&#39;s required input domain.
+
std::vector< ParameterDescriptor > ParameterList
+
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FFT_8h.html --- a/code-docs/FFT_8h.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/FFT_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: FFT.h File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -79,29 +66,53 @@
FFT.h File Reference
- +
#include "plugguard.h"
+
+Include dependency graph for FFT.h:
+
+
+ + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + +
+

Go to the source code of this file.

- - - + + + + + + + +

+

Classes

class  Vamp::FFT
 A simple FFT implementation provided for convenience of plugin authors. More...

+

 A simple FFT implementation provided for convenience of plugin authors. More...
 
class  Vamp::FFTComplex
 A simple FFT implementation provided for convenience of plugin authors. More...
 
class  Vamp::FFTReal
 A simple FFT implementation provided for convenience of plugin authors. More...
 
+ - + +

Namespaces

namespace  Vamp
 Vamp
 
+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FFT_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/FFT_8h__dep__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,3 @@ + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FFT_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/FFT_8h__dep__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +dea059e221404797d358250f4e744a96 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FFT_8h__dep__incl.png Binary file code-docs/FFT_8h__dep__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FFT_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/FFT_8h__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,3 @@ + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FFT_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/FFT_8h__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +2a8dc149b1fd005c802d28d5f53c52f7 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FFT_8h__incl.png Binary file code-docs/FFT_8h__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FFT_8h_source.html --- a/code-docs/FFT_8h_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/FFT_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: FFT.h Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,79 +63,25 @@
FFT.h
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006-2012 Chris Cannam and QMUL.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #ifndef _VAMP_FFT_H_
-00038 #define _VAMP_FFT_H_
-00039 
-00040 #include "plugguard.h"
-00041 _VAMP_SDK_PLUGSPACE_BEGIN(FFT.h)
-00042 
-00043 namespace Vamp {
-00044 
-00058 class FFT
-00059 {
-00060 public:
-00072     static void forward(unsigned int n,
-00073                         const double *ri, const double *ii,
-00074                         double *ro, double *io);
-00075 
-00089     static void inverse(unsigned int n,
-00090                         const double *ri, const double *ii,
-00091                         double *ro, double *io);
-00092 };
-00093 
-00094 }
-00095 
-00096 _VAMP_SDK_PLUGSPACE_END(FFT.h)
-00097 
-00098 #endif
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006-2012 Chris Cannam and QMUL.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #ifndef _VAMP_FFT_H_
38 #define _VAMP_FFT_H_
39 
40 #include "plugguard.h"
42 
43 namespace Vamp {
44 
59 class FFT
60 {
61 public:
74  static void forward(unsigned int n,
75  const double *ri, const double *ii,
76  double *ro, double *io);
77 
92  static void inverse(unsigned int n,
93  const double *ri, const double *ii,
94  double *ro, double *io);
95 };
96 
110 {
111 public:
116  FFTComplex(unsigned int n);
117 
118  ~FFTComplex();
119 
129  void forward(const double *ci, double *co);
130 
141  void inverse(const double *ci, double *co);
142 
143 private:
144  class D;
145  D *m_d;
146 };
147 
161 class FFTReal
162 {
163 public:
168  FFTReal(unsigned int n);
169 
170  ~FFTReal();
171 
180  void forward(const double *ri, double *co);
181 
192  void inverse(const double *ci, double *ro);
193 
194 private:
195  class D;
196  D *m_d;
197 };
198 
199 }
200 
202 
203 #endif
Definition: FFT.h:43
+
A simple FFT implementation provided for convenience of plugin authors.
Definition: FFT.h:161
+
A simple FFT implementation provided for convenience of plugin authors.
Definition: FFT.h:109
+
D * m_d
Definition: FFT.h:195
+
#define _VAMP_SDK_PLUGSPACE_BEGIN(h)
Definition: plugguard.h:79
+
A simple FFT implementation provided for convenience of plugin authors.
Definition: FFT.h:59
+
#define _VAMP_SDK_PLUGSPACE_END(h)
Definition: plugguard.h:80
+ + +
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FixedTempoEstimator_8cpp.html --- a/code-docs/FixedTempoEstimator_8cpp.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/FixedTempoEstimator_8cpp.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: FixedTempoEstimator.cpp File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -79,118 +66,183 @@
FixedTempoEstimator.cpp File Reference
- +
#include "FixedTempoEstimator.h"
+#include <cmath>
+#include <cstdio>
+
+Include dependency graph for FixedTempoEstimator.cpp:
+
+
+ + + + + + + +
+

Go to the source code of this file.

- - +

+

Classes

class  FixedTempoEstimator::D

+

 
+ + + + + +

Variables

static int TempoOutput = 0
 
static int CandidatesOutput = 1
 
static int DFOutput = 2
 
static int ACFOutput = 3
 
static int FilteredACFOutput = 4
 
-

Variable Documentation

- +

Variable Documentation

+ +

◆ TempoOutput

+
+ + + + + +
- +
int TempoOutput = 0 [static]int TempoOutput = 0
- -
+
+static
+
-

Definition at line 183 of file FixedTempoEstimator.cpp.

+

Definition at line 183 of file FixedTempoEstimator.cpp.

-

Referenced by FixedTempoEstimator::D::assembleFeatures().

+

Referenced by FixedTempoEstimator::D::assembleFeatures().

- + +

◆ CandidatesOutput

+
+ + + + + +
- +
int CandidatesOutput = 1 [static]int CandidatesOutput = 1
- -
+
+static
+
-

Definition at line 184 of file FixedTempoEstimator.cpp.

+

Definition at line 184 of file FixedTempoEstimator.cpp.

-

Referenced by FixedTempoEstimator::D::assembleFeatures().

+

Referenced by FixedTempoEstimator::D::assembleFeatures().

- + +

◆ DFOutput

+
+ + + + + +
- +
int DFOutput = 2 [static]int DFOutput = 2
- -
+
+static
+
-

Definition at line 185 of file FixedTempoEstimator.cpp.

+

Definition at line 185 of file FixedTempoEstimator.cpp.

-

Referenced by FixedTempoEstimator::D::assembleFeatures().

+

Referenced by FixedTempoEstimator::D::assembleFeatures().

- + +

◆ ACFOutput

+
+ + + + + +
- +
int ACFOutput = 3 [static]int ACFOutput = 3
- -
+
+static
+
-

Definition at line 186 of file FixedTempoEstimator.cpp.

+

Definition at line 186 of file FixedTempoEstimator.cpp.

-

Referenced by FixedTempoEstimator::D::assembleFeatures().

+

Referenced by FixedTempoEstimator::D::assembleFeatures().

- + +

◆ FilteredACFOutput

+
+ + + + + +
- +
int FilteredACFOutput = 4 [static]int FilteredACFOutput = 4
- -
+
+static
+
-

Definition at line 187 of file FixedTempoEstimator.cpp.

+

Definition at line 187 of file FixedTempoEstimator.cpp.

-

Referenced by FixedTempoEstimator::D::assembleFeatures().

+

Referenced by FixedTempoEstimator::D::assembleFeatures().

+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FixedTempoEstimator_8cpp.js --- a/code-docs/FixedTempoEstimator_8cpp.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/FixedTempoEstimator_8cpp.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,5 +1,6 @@ var FixedTempoEstimator_8cpp = [ + [ "D", "classFixedTempoEstimator_1_1D.html", "classFixedTempoEstimator_1_1D" ], [ "TempoOutput", "FixedTempoEstimator_8cpp.html#a7a8511e62dffb5334ad3b70d57b2fcee", null ], [ "CandidatesOutput", "FixedTempoEstimator_8cpp.html#a554b16c6b7516530e52c65318bfe08eb", null ], [ "DFOutput", "FixedTempoEstimator_8cpp.html#acaa4524f29afce03c812a88ff31159c1", null ], diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FixedTempoEstimator_8cpp__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/FixedTempoEstimator_8cpp__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FixedTempoEstimator_8cpp__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/FixedTempoEstimator_8cpp__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +e23219cb7c5d2fc0dae8f1be0a903784 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FixedTempoEstimator_8cpp__incl.png Binary file code-docs/FixedTempoEstimator_8cpp__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FixedTempoEstimator_8cpp_source.html --- a/code-docs/FixedTempoEstimator_8cpp_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/FixedTempoEstimator_8cpp_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: FixedTempoEstimator.cpp Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,743 +63,113 @@
FixedTempoEstimator.cpp
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006-2009 Chris Cannam and QMUL.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #include "FixedTempoEstimator.h"
-00038 
-00039 using std::string;
-00040 using std::vector;
-00041 using std::cerr;
-00042 using std::endl;
-00043 
-00044 using Vamp::RealTime;
-00045 
-00046 #include <cmath>
-00047 #include <cstdio>
-00048 
-00049 
-00050 class FixedTempoEstimator::D
-00051 // this class just avoids us having to declare any data members in the header
-00052 {
-00053 public:
-00054     D(float inputSampleRate);
-00055     ~D();
-00056 
-00057     size_t getPreferredStepSize() const { return 64; }
-00058     size_t getPreferredBlockSize() const { return 256; }
-00059 
-00060     ParameterList getParameterDescriptors() const;
-00061     float getParameter(string id) const;
-00062     void setParameter(string id, float value);
-00063 
-00064     OutputList getOutputDescriptors() const;
-00065 
-00066     bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-00067     void reset();
-00068     FeatureSet process(const float *const *, RealTime);
-00069     FeatureSet getRemainingFeatures();
-00070 
-00071 private:
-00072     void calculate();
-00073     FeatureSet assembleFeatures();
-00074 
-00075     float lag2tempo(int);
-00076     int tempo2lag(float);
-00077 
-00078     float m_inputSampleRate;
-00079     size_t m_stepSize;
-00080     size_t m_blockSize;
-00081 
-00082     float m_minbpm;
-00083     float m_maxbpm;
-00084     float m_maxdflen;
-00085 
-00086     float *m_priorMagnitudes;
-00087 
-00088     size_t m_dfsize;
-00089     float *m_df;
-00090     float *m_r;
-00091     float *m_fr;
-00092     float *m_t;
-00093     size_t m_n;
-00094 
-00095     Vamp::RealTime m_start;
-00096     Vamp::RealTime m_lasttime;
-00097 };
-00098 
-00099 FixedTempoEstimator::D::D(float inputSampleRate) :
-00100     m_inputSampleRate(inputSampleRate),
-00101     m_stepSize(0),
-00102     m_blockSize(0),
-00103     m_minbpm(50),
-00104     m_maxbpm(190),
-00105     m_maxdflen(10),
-00106     m_priorMagnitudes(0),
-00107     m_df(0),
-00108     m_r(0),
-00109     m_fr(0),
-00110     m_t(0),
-00111     m_n(0)
-00112 {
-00113 }
-00114 
-00115 FixedTempoEstimator::D::~D()
-00116 {
-00117     delete[] m_priorMagnitudes;
-00118     delete[] m_df;
-00119     delete[] m_r;
-00120     delete[] m_fr;
-00121     delete[] m_t;
-00122 }
-00123 
-00124 FixedTempoEstimator::ParameterList
-00125 FixedTempoEstimator::D::getParameterDescriptors() const
-00126 {
-00127     ParameterList list;
-00128 
-00129     ParameterDescriptor d;
-00130     d.identifier = "minbpm";
-00131     d.name = "Minimum estimated tempo";
-00132     d.description = "Minimum beat-per-minute value which the tempo estimator is able to return";
-00133     d.unit = "bpm";
-00134     d.minValue = 10;
-00135     d.maxValue = 360;
-00136     d.defaultValue = 50;
-00137     d.isQuantized = false;
-00138     list.push_back(d);
-00139 
-00140     d.identifier = "maxbpm";
-00141     d.name = "Maximum estimated tempo";
-00142     d.description = "Maximum beat-per-minute value which the tempo estimator is able to return";
-00143     d.defaultValue = 190;
-00144     list.push_back(d);
-00145 
-00146     d.identifier = "maxdflen";
-00147     d.name = "Input duration to study";
-00148     d.description = "Length of audio input, in seconds, which should be taken into account when estimating tempo.  There is no need to supply the plugin with any further input once this time has elapsed since the start of the audio.  The tempo estimator may use only the first part of this, up to eight times the slowest beat duration: increasing this value further than that is unlikely to improve results.";
-00149     d.unit = "s";
-00150     d.minValue = 2;
-00151     d.maxValue = 40;
-00152     d.defaultValue = 10;
-00153     list.push_back(d);
-00154 
-00155     return list;
-00156 }
-00157 
-00158 float
-00159 FixedTempoEstimator::D::getParameter(string id) const
-00160 {
-00161     if (id == "minbpm") {
-00162         return m_minbpm;
-00163     } else if (id == "maxbpm") {
-00164         return m_maxbpm;
-00165     } else if (id == "maxdflen") {
-00166         return m_maxdflen;
-00167     }
-00168     return 0.f;
-00169 }
-00170 
-00171 void
-00172 FixedTempoEstimator::D::setParameter(string id, float value)
-00173 {
-00174     if (id == "minbpm") {
-00175         m_minbpm = value;
-00176     } else if (id == "maxbpm") {
-00177         m_maxbpm = value;
-00178     } else if (id == "maxdflen") {
-00179         m_maxdflen = value;
-00180     }
-00181 }
-00182 
-00183 static int TempoOutput = 0;
-00184 static int CandidatesOutput = 1;
-00185 static int DFOutput = 2;
-00186 static int ACFOutput = 3;
-00187 static int FilteredACFOutput = 4;
-00188 
-00189 FixedTempoEstimator::OutputList
-00190 FixedTempoEstimator::D::getOutputDescriptors() const
-00191 {
-00192     OutputList list;
-00193 
-00194     OutputDescriptor d;
-00195     d.identifier = "tempo";
-00196     d.name = "Tempo";
-00197     d.description = "Estimated tempo";
-00198     d.unit = "bpm";
-00199     d.hasFixedBinCount = true;
-00200     d.binCount = 1;
-00201     d.hasKnownExtents = false;
-00202     d.isQuantized = false;
-00203     d.sampleType = OutputDescriptor::VariableSampleRate;
-00204     d.sampleRate = m_inputSampleRate;
-00205     d.hasDuration = true; // our returned tempo spans a certain range
-00206     list.push_back(d);
-00207 
-00208     d.identifier = "candidates";
-00209     d.name = "Tempo candidates";
-00210     d.description = "Possible tempo estimates, one per bin with the most likely in the first bin";
-00211     d.unit = "bpm";
-00212     d.hasFixedBinCount = false;
-00213     list.push_back(d);
-00214 
-00215     d.identifier = "detectionfunction";
-00216     d.name = "Detection Function";
-00217     d.description = "Onset detection function";
-00218     d.unit = "";
-00219     d.hasFixedBinCount = 1;
-00220     d.binCount = 1;
-00221     d.hasKnownExtents = true;
-00222     d.minValue = 0.0;
-00223     d.maxValue = 1.0;
-00224     d.isQuantized = false;
-00225     d.quantizeStep = 0.0;
-00226     d.sampleType = OutputDescriptor::FixedSampleRate;
-00227     if (m_stepSize) {
-00228         d.sampleRate = m_inputSampleRate / m_stepSize;
-00229     } else {
-00230         d.sampleRate = m_inputSampleRate / (getPreferredBlockSize()/2);
-00231     }
-00232     d.hasDuration = false;
-00233     list.push_back(d);
-00234 
-00235     d.identifier = "acf";
-00236     d.name = "Autocorrelation Function";
-00237     d.description = "Autocorrelation of onset detection function";
-00238     d.hasKnownExtents = false;
-00239     d.unit = "r";
-00240     list.push_back(d);
-00241 
-00242     d.identifier = "filtered_acf";
-00243     d.name = "Filtered Autocorrelation";
-00244     d.description = "Filtered autocorrelation of onset detection function";
-00245     d.unit = "r";
-00246     list.push_back(d);
-00247 
-00248     return list;
-00249 }
-00250 
-00251 bool
-00252 FixedTempoEstimator::D::initialise(size_t, size_t stepSize, size_t blockSize)
-00253 {
-00254     m_stepSize = stepSize;
-00255     m_blockSize = blockSize;
-00256 
-00257     float dfLengthSecs = m_maxdflen;
-00258     m_dfsize = (dfLengthSecs * m_inputSampleRate) / m_stepSize;
-00259 
-00260     m_priorMagnitudes = new float[m_blockSize/2];
-00261     m_df = new float[m_dfsize];
-00262 
-00263     for (size_t i = 0; i < m_blockSize/2; ++i) {
-00264         m_priorMagnitudes[i] = 0.f;
-00265     }
-00266     for (size_t i = 0; i < m_dfsize; ++i) {
-00267         m_df[i] = 0.f;
-00268     }
-00269 
-00270     m_n = 0;
-00271 
-00272     return true;
-00273 }
-00274 
-00275 void
-00276 FixedTempoEstimator::D::reset()
-00277 {
-00278     if (!m_priorMagnitudes) return;
-00279 
-00280     for (size_t i = 0; i < m_blockSize/2; ++i) {
-00281         m_priorMagnitudes[i] = 0.f;
-00282     }
-00283     for (size_t i = 0; i < m_dfsize; ++i) {
-00284         m_df[i] = 0.f;
-00285     }
-00286 
-00287     delete[] m_r;
-00288     m_r = 0;
-00289 
-00290     delete[] m_fr; 
-00291     m_fr = 0;
-00292 
-00293     delete[] m_t; 
-00294     m_t = 0;
-00295 
-00296     m_n = 0;
-00297 
-00298     m_start = RealTime::zeroTime;
-00299     m_lasttime = RealTime::zeroTime;
-00300 }
-00301 
-00302 FixedTempoEstimator::FeatureSet
-00303 FixedTempoEstimator::D::process(const float *const *inputBuffers, RealTime ts)
-00304 {
-00305     FeatureSet fs;
-00306 
-00307     if (m_stepSize == 0) {
-00308         cerr << "ERROR: FixedTempoEstimator::process: "
-00309              << "FixedTempoEstimator has not been initialised"
-00310              << endl;
-00311         return fs;
-00312     }
-00313 
-00314     if (m_n == 0) m_start = ts;
-00315     m_lasttime = ts;
-00316 
-00317     if (m_n == m_dfsize) {
-00318         // If we have seen enough input, do the estimation and return
-00319         calculate();
-00320         fs = assembleFeatures();
-00321         ++m_n;
-00322         return fs;
-00323     }
-00324 
-00325     // If we have seen more than enough, just discard and return!
-00326     if (m_n > m_dfsize) return FeatureSet();
-00327 
-00328     float value = 0.f;
-00329 
-00330     // m_df will contain an onset detection function based on the rise
-00331     // in overall power from one spectral frame to the next --
-00332     // simplistic but reasonably effective for our purposes.
-00333 
-00334     for (size_t i = 1; i < m_blockSize/2; ++i) {
-00335 
-00336         float real = inputBuffers[0][i*2];
-00337         float imag = inputBuffers[0][i*2 + 1];
-00338 
-00339         float sqrmag = real * real + imag * imag;
-00340         value += fabsf(sqrmag - m_priorMagnitudes[i]);
-00341 
-00342         m_priorMagnitudes[i] = sqrmag;
-00343     }
-00344 
-00345     m_df[m_n] = value;
-00346 
-00347     ++m_n;
-00348     return fs;
-00349 }    
-00350 
-00351 FixedTempoEstimator::FeatureSet
-00352 FixedTempoEstimator::D::getRemainingFeatures()
-00353 {
-00354     FeatureSet fs;
-00355     if (m_n > m_dfsize) return fs;
-00356     calculate();
-00357     fs = assembleFeatures();
-00358     ++m_n;
-00359     return fs;
-00360 }
-00361 
-00362 float
-00363 FixedTempoEstimator::D::lag2tempo(int lag)
-00364 {
-00365     return 60.f / ((lag * m_stepSize) / m_inputSampleRate);
-00366 }
-00367 
-00368 int
-00369 FixedTempoEstimator::D::tempo2lag(float tempo)
-00370 {
-00371     return ((60.f / tempo) * m_inputSampleRate) / m_stepSize;
-00372 }
-00373 
-00374 void
-00375 FixedTempoEstimator::D::calculate()
-00376 {    
-00377     if (m_r) {
-00378         cerr << "FixedTempoEstimator::calculate: calculation already happened?" << endl;
-00379         return;
-00380     }
-00381 
-00382     if (m_n < m_dfsize / 9 &&
-00383         m_n < (1.0 * m_inputSampleRate) / m_stepSize) { // 1 second
-00384         cerr << "FixedTempoEstimator::calculate: Input is too short" << endl;
-00385         return;
-00386     }
-00387 
-00388     // This function takes m_df (the detection function array filled
-00389     // out in process()) and calculates m_r (the raw autocorrelation)
-00390     // and m_fr (the filtered autocorrelation from whose peaks tempo
-00391     // estimates will be taken).
-00392 
-00393     int n = m_n; // length of actual df array (m_dfsize is the theoretical max)
-00394 
-00395     m_r  = new float[n/2]; // raw autocorrelation
-00396     m_fr = new float[n/2]; // filtered autocorrelation
-00397     m_t  = new float[n/2]; // averaged tempo estimate for each lag value
-00398 
-00399     for (int i = 0; i < n/2; ++i) {
-00400         m_r[i]  = 0.f;
-00401         m_fr[i] = 0.f;
-00402         m_t[i]  = lag2tempo(i);
-00403     }
-00404 
-00405     // Calculate the raw autocorrelation of the detection function
-00406 
-00407     for (int i = 0; i < n/2; ++i) {
-00408 
-00409         for (int j = i; j < n; ++j) {
-00410             m_r[i] += m_df[j] * m_df[j - i];
-00411         }
-00412 
-00413         m_r[i] /= n - i - 1;
-00414     }
-00415 
-00416     // Filter the autocorrelation and average out the tempo estimates
-00417     
-00418     float related[] = { 0.5, 2, 4, 8 };
-00419 
-00420     for (int i = 1; i < n/2-1; ++i) {
-00421 
-00422         m_fr[i] = m_r[i];
-00423 
-00424         int div = 1;
-00425 
-00426         for (int j = 0; j < int(sizeof(related)/sizeof(related[0])); ++j) {
-00427 
-00428             // Check for an obvious peak at each metrically related lag
-00429 
-00430             int k0 = int(i * related[j] + 0.5);
-00431 
-00432             if (k0 >= 0 && k0 < int(n/2)) {
-00433 
-00434                 int kmax = 0, kmin = 0;
-00435                 float kvmax = 0, kvmin = 0;
-00436                 bool have = false;
-00437 
-00438                 for (int k = k0 - 1; k <= k0 + 1; ++k) {
-00439 
-00440                     if (k < 0 || k >= n/2) continue;
-00441 
-00442                     if (!have || (m_r[k] > kvmax)) { kmax = k; kvmax = m_r[k]; }
-00443                     if (!have || (m_r[k] < kvmin)) { kmin = k; kvmin = m_r[k]; }
-00444                     
-00445                     have = true;
-00446                 }
-00447                 
-00448                 // Boost the original lag according to the strongest
-00449                 // value found close to this related lag
-00450 
-00451                 m_fr[i] += m_r[kmax] / 5;
-00452 
-00453                 if ((kmax == 0 || m_r[kmax] > m_r[kmax-1]) &&
-00454                     (kmax == n/2-1 || m_r[kmax] > m_r[kmax+1]) &&
-00455                     kvmax > kvmin * 1.05) {
-00456 
-00457                     // The strongest value close to the related lag is
-00458                     // also a pretty good looking peak, so use it to
-00459                     // improve our tempo estimate for the original lag
-00460                     
-00461                     m_t[i] = m_t[i] + lag2tempo(kmax) * related[j];
-00462                     ++div;
-00463                 }
-00464             }
-00465         }
-00466         
-00467         m_t[i] /= div;
-00468         
-00469         // Finally apply a primitive perceptual weighting (to prefer
-00470         // tempi of around 120-130)
-00471 
-00472         float weight = 1.f - fabsf(128.f - lag2tempo(i)) * 0.005;
-00473         if (weight < 0.f) weight = 0.f;
-00474         weight = weight * weight * weight;
-00475 
-00476         m_fr[i] += m_fr[i] * (weight / 3);
-00477     }
-00478 }
-00479     
-00480 FixedTempoEstimator::FeatureSet
-00481 FixedTempoEstimator::D::assembleFeatures()
-00482 {
-00483     FeatureSet fs;
-00484     if (!m_r) return fs; // No autocorrelation: no results
-00485 
-00486     Feature feature;
-00487     feature.hasTimestamp = true;
-00488     feature.hasDuration = false;
-00489     feature.label = "";
-00490     feature.values.clear();
-00491     feature.values.push_back(0.f);
-00492 
-00493     char buffer[40];
-00494 
-00495     int n = m_n;
-00496 
-00497     for (int i = 0; i < n; ++i) {
-00498 
-00499         // Return the detection function in the DF output
-00500 
-00501         feature.timestamp = m_start +
-00502             RealTime::frame2RealTime(i * m_stepSize, m_inputSampleRate);
-00503         feature.values[0] = m_df[i];
-00504         feature.label = "";
-00505         fs[DFOutput].push_back(feature);
-00506     }
-00507 
-00508     for (int i = 1; i < n/2; ++i) {
-00509 
-00510         // Return the raw autocorrelation in the ACF output, each
-00511         // value labelled according to its corresponding tempo
-00512 
-00513         feature.timestamp = m_start +
-00514             RealTime::frame2RealTime(i * m_stepSize, m_inputSampleRate);
-00515         feature.values[0] = m_r[i];
-00516         sprintf(buffer, "%.1f bpm", lag2tempo(i));
-00517         if (i == n/2-1) feature.label = "";
-00518         else feature.label = buffer;
-00519         fs[ACFOutput].push_back(feature);
-00520     }
-00521 
-00522     float t0 = m_minbpm; // our minimum detected tempo
-00523     float t1 = m_maxbpm; // our maximum detected tempo
-00524 
-00525     int p0 = tempo2lag(t1);
-00526     int p1 = tempo2lag(t0);
-00527 
-00528     std::map<float, int> candidates;
-00529 
-00530     for (int i = p0; i <= p1 && i+1 < n/2; ++i) {
-00531 
-00532         if (m_fr[i] > m_fr[i-1] &&
-00533             m_fr[i] > m_fr[i+1]) {
-00534 
-00535             // This is a peak in the filtered autocorrelation: stick
-00536             // it into the map from filtered autocorrelation to lag
-00537             // index -- this sorts our peaks by filtered acf value
-00538 
-00539             candidates[m_fr[i]] = i;
-00540         }
-00541 
-00542         // Also return the filtered autocorrelation in its own output
-00543 
-00544         feature.timestamp = m_start +
-00545             RealTime::frame2RealTime(i * m_stepSize, m_inputSampleRate);
-00546         feature.values[0] = m_fr[i];
-00547         sprintf(buffer, "%.1f bpm", lag2tempo(i));
-00548         if (i == p1 || i == n/2-2) feature.label = "";
-00549         else feature.label = buffer;
-00550         fs[FilteredACFOutput].push_back(feature);
-00551     }
-00552 
-00553     if (candidates.empty()) {
-00554         cerr << "No tempo candidates!" << endl;
-00555         return fs;
-00556     }
-00557 
-00558     feature.hasTimestamp = true;
-00559     feature.timestamp = m_start;
-00560     
-00561     feature.hasDuration = true;
-00562     feature.duration = m_lasttime - m_start;
-00563 
-00564     // The map contains only peaks and is sorted by filtered acf
-00565     // value, so the final element in it is our "best" tempo guess
-00566 
-00567     std::map<float, int>::const_iterator ci = candidates.end();
-00568     --ci;
-00569     int maxpi = ci->second;
-00570 
-00571     if (m_t[maxpi] > 0) {
-00572 
-00573         // This lag has an adjusted tempo from the averaging process:
-00574         // use it
-00575 
-00576         feature.values[0] = m_t[maxpi];
-00577 
-00578     } else {
-00579 
-00580         // shouldn't happen -- it would imply that this high value was
-00581         // not a peak!
-00582 
-00583         feature.values[0] = lag2tempo(maxpi);
-00584         cerr << "WARNING: No stored tempo for index " << maxpi << endl;
-00585     }
-00586 
-00587     sprintf(buffer, "%.1f bpm", feature.values[0]);
-00588     feature.label = buffer;
-00589 
-00590     // Return the best tempo in the main output
-00591 
-00592     fs[TempoOutput].push_back(feature);
-00593 
-00594     // And return the other estimates (up to the arbitrarily chosen
-00595     // number of 10 of them) in the candidates output
-00596 
-00597     feature.values.clear();
-00598     feature.label = "";
-00599 
-00600     while (feature.values.size() < 10) {
-00601         if (m_t[ci->second] > 0) {
-00602             feature.values.push_back(m_t[ci->second]);
-00603         } else {
-00604             feature.values.push_back(lag2tempo(ci->second));
-00605         }
-00606         if (ci == candidates.begin()) break;
-00607         --ci;
-00608     }
-00609 
-00610     fs[CandidatesOutput].push_back(feature);
-00611     
-00612     return fs;
-00613 }
-00614 
-00615     
-00616 
-00617 FixedTempoEstimator::FixedTempoEstimator(float inputSampleRate) :
-00618     Plugin(inputSampleRate),
-00619     m_d(new D(inputSampleRate))
-00620 {
-00621 }
-00622 
-00623 FixedTempoEstimator::~FixedTempoEstimator()
-00624 {
-00625     delete m_d;
-00626 }
-00627 
-00628 string
-00629 FixedTempoEstimator::getIdentifier() const
-00630 {
-00631     return "fixedtempo";
-00632 }
-00633 
-00634 string
-00635 FixedTempoEstimator::getName() const
-00636 {
-00637     return "Simple Fixed Tempo Estimator";
-00638 }
-00639 
-00640 string
-00641 FixedTempoEstimator::getDescription() const
-00642 {
-00643     return "Study a short section of audio and estimate its tempo, assuming the tempo is constant";
-00644 }
-00645 
-00646 string
-00647 FixedTempoEstimator::getMaker() const
-00648 {
-00649     return "Vamp SDK Example Plugins";
-00650 }
-00651 
-00652 int
-00653 FixedTempoEstimator::getPluginVersion() const
-00654 {
-00655     return 1;
-00656 }
-00657 
-00658 string
-00659 FixedTempoEstimator::getCopyright() const
-00660 {
-00661     return "Code copyright 2008 Queen Mary, University of London.  Freely redistributable (BSD license)";
-00662 }
-00663 
-00664 size_t
-00665 FixedTempoEstimator::getPreferredStepSize() const
-00666 {
-00667     return m_d->getPreferredStepSize();
-00668 }
-00669 
-00670 size_t
-00671 FixedTempoEstimator::getPreferredBlockSize() const
-00672 {
-00673     return m_d->getPreferredBlockSize();
-00674 }
-00675 
-00676 bool
-00677 FixedTempoEstimator::initialise(size_t channels, size_t stepSize, size_t blockSize)
-00678 {
-00679     if (channels < getMinChannelCount() ||
-00680         channels > getMaxChannelCount()) return false;
-00681 
-00682     return m_d->initialise(channels, stepSize, blockSize);
-00683 }
-00684 
-00685 void
-00686 FixedTempoEstimator::reset()
-00687 {
-00688     return m_d->reset();
-00689 }
-00690 
-00691 FixedTempoEstimator::ParameterList
-00692 FixedTempoEstimator::getParameterDescriptors() const
-00693 {
-00694     return m_d->getParameterDescriptors();
-00695 }
-00696 
-00697 float
-00698 FixedTempoEstimator::getParameter(std::string id) const
-00699 {
-00700     return m_d->getParameter(id);
-00701 }
-00702 
-00703 void
-00704 FixedTempoEstimator::setParameter(std::string id, float value)
-00705 {
-00706     m_d->setParameter(id, value);
-00707 }
-00708 
-00709 FixedTempoEstimator::OutputList
-00710 FixedTempoEstimator::getOutputDescriptors() const
-00711 {
-00712     return m_d->getOutputDescriptors();
-00713 }
-00714 
-00715 FixedTempoEstimator::FeatureSet
-00716 FixedTempoEstimator::process(const float *const *inputBuffers, RealTime ts)
-00717 {
-00718     return m_d->process(inputBuffers, ts);
-00719 }
-00720 
-00721 FixedTempoEstimator::FeatureSet
-00722 FixedTempoEstimator::getRemainingFeatures()
-00723 {
-00724     return m_d->getRemainingFeatures();
-00725 }
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006-2009 Chris Cannam and QMUL.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #include "FixedTempoEstimator.h"
38 
39 using std::string;
40 using std::vector;
41 using std::cerr;
42 using std::endl;
43 
44 using Vamp::RealTime;
45 
46 #include <cmath>
47 #include <cstdio>
48 
49 
51 // this class just avoids us having to declare any data members in the header
52 {
53 public:
54  D(float inputSampleRate);
55  ~D();
56 
57  size_t getPreferredStepSize() const { return 64; }
58  size_t getPreferredBlockSize() const { return 256; }
59 
61  float getParameter(string id) const;
62  void setParameter(string id, float value);
63 
65 
66  bool initialise(size_t channels, size_t stepSize, size_t blockSize);
67  void reset();
68  FeatureSet process(const float *const *, RealTime);
70 
71 private:
72  void calculate();
74 
75  float lag2tempo(int);
76  int tempo2lag(float);
77 
79  size_t m_stepSize;
80  size_t m_blockSize;
81 
82  float m_minbpm;
83  float m_maxbpm;
84  float m_maxdflen;
85 
87 
88  size_t m_dfsize;
89  float *m_df;
90  float *m_r;
91  float *m_fr;
92  float *m_t;
93  size_t m_n;
94 
97 };
98 
99 FixedTempoEstimator::D::D(float inputSampleRate) :
100  m_inputSampleRate(inputSampleRate),
101  m_stepSize(0),
102  m_blockSize(0),
103  m_minbpm(50),
104  m_maxbpm(190),
105  m_maxdflen(10),
107  m_df(0),
108  m_r(0),
109  m_fr(0),
110  m_t(0),
111  m_n(0)
112 {
113 }
114 
116 {
117  delete[] m_priorMagnitudes;
118  delete[] m_df;
119  delete[] m_r;
120  delete[] m_fr;
121  delete[] m_t;
122 }
123 
126 {
127  ParameterList list;
128 
130  d.identifier = "minbpm";
131  d.name = "Minimum estimated tempo";
132  d.description = "Minimum beat-per-minute value which the tempo estimator is able to return";
133  d.unit = "bpm";
134  d.minValue = 10;
135  d.maxValue = 360;
136  d.defaultValue = 50;
137  d.isQuantized = false;
138  list.push_back(d);
139 
140  d.identifier = "maxbpm";
141  d.name = "Maximum estimated tempo";
142  d.description = "Maximum beat-per-minute value which the tempo estimator is able to return";
143  d.defaultValue = 190;
144  list.push_back(d);
145 
146  d.identifier = "maxdflen";
147  d.name = "Input duration to study";
148  d.description = "Length of audio input, in seconds, which should be taken into account when estimating tempo. There is no need to supply the plugin with any further input once this time has elapsed since the start of the audio. The tempo estimator may use only the first part of this, up to eight times the slowest beat duration: increasing this value further than that is unlikely to improve results.";
149  d.unit = "s";
150  d.minValue = 2;
151  d.maxValue = 40;
152  d.defaultValue = 10;
153  list.push_back(d);
154 
155  return list;
156 }
157 
158 float
160 {
161  if (id == "minbpm") {
162  return m_minbpm;
163  } else if (id == "maxbpm") {
164  return m_maxbpm;
165  } else if (id == "maxdflen") {
166  return m_maxdflen;
167  }
168  return 0.f;
169 }
170 
171 void
173 {
174  if (id == "minbpm") {
175  m_minbpm = value;
176  } else if (id == "maxbpm") {
177  m_maxbpm = value;
178  } else if (id == "maxdflen") {
179  m_maxdflen = value;
180  }
181 }
182 
183 static int TempoOutput = 0;
184 static int CandidatesOutput = 1;
185 static int DFOutput = 2;
186 static int ACFOutput = 3;
187 static int FilteredACFOutput = 4;
188 
191 {
192  OutputList list;
193 
195  d.identifier = "tempo";
196  d.name = "Tempo";
197  d.description = "Estimated tempo";
198  d.unit = "bpm";
199  d.hasFixedBinCount = true;
200  d.binCount = 1;
201  d.hasKnownExtents = false;
202  d.isQuantized = false;
205  d.hasDuration = true; // our returned tempo spans a certain range
206  list.push_back(d);
207 
208  d.identifier = "candidates";
209  d.name = "Tempo candidates";
210  d.description = "Possible tempo estimates, one per bin with the most likely in the first bin";
211  d.unit = "bpm";
212  d.hasFixedBinCount = false;
213  list.push_back(d);
214 
215  d.identifier = "detectionfunction";
216  d.name = "Detection Function";
217  d.description = "Onset detection function";
218  d.unit = "";
219  d.hasFixedBinCount = 1;
220  d.binCount = 1;
221  d.hasKnownExtents = true;
222  d.minValue = 0.0;
223  d.maxValue = 1.0;
224  d.isQuantized = false;
225  d.quantizeStep = 0.0;
227  if (m_stepSize) {
229  } else {
231  }
232  d.hasDuration = false;
233  list.push_back(d);
234 
235  d.identifier = "acf";
236  d.name = "Autocorrelation Function";
237  d.description = "Autocorrelation of onset detection function";
238  d.hasKnownExtents = false;
239  d.unit = "r";
240  list.push_back(d);
241 
242  d.identifier = "filtered_acf";
243  d.name = "Filtered Autocorrelation";
244  d.description = "Filtered autocorrelation of onset detection function";
245  d.unit = "r";
246  list.push_back(d);
247 
248  return list;
249 }
250 
251 bool
252 FixedTempoEstimator::D::initialise(size_t, size_t stepSize, size_t blockSize)
253 {
254  m_stepSize = stepSize;
255  m_blockSize = blockSize;
256 
257  float dfLengthSecs = m_maxdflen;
258  m_dfsize = (dfLengthSecs * m_inputSampleRate) / m_stepSize;
259 
260  m_priorMagnitudes = new float[m_blockSize/2];
261  m_df = new float[m_dfsize];
262 
263  for (size_t i = 0; i < m_blockSize/2; ++i) {
264  m_priorMagnitudes[i] = 0.f;
265  }
266  for (size_t i = 0; i < m_dfsize; ++i) {
267  m_df[i] = 0.f;
268  }
269 
270  m_n = 0;
271 
272  return true;
273 }
274 
275 void
277 {
278  if (!m_priorMagnitudes) return;
279 
280  for (size_t i = 0; i < m_blockSize/2; ++i) {
281  m_priorMagnitudes[i] = 0.f;
282  }
283  for (size_t i = 0; i < m_dfsize; ++i) {
284  m_df[i] = 0.f;
285  }
286 
287  delete[] m_r;
288  m_r = 0;
289 
290  delete[] m_fr;
291  m_fr = 0;
292 
293  delete[] m_t;
294  m_t = 0;
295 
296  m_n = 0;
297 
298  m_start = RealTime::zeroTime;
299  m_lasttime = RealTime::zeroTime;
300 }
301 
303 FixedTempoEstimator::D::process(const float *const *inputBuffers, RealTime ts)
304 {
305  FeatureSet fs;
306 
307  if (m_stepSize == 0) {
308  cerr << "ERROR: FixedTempoEstimator::process: "
309  << "FixedTempoEstimator has not been initialised"
310  << endl;
311  return fs;
312  }
313 
314  if (m_n == 0) m_start = ts;
315  m_lasttime = ts;
316 
317  if (m_n == m_dfsize) {
318  // If we have seen enough input, do the estimation and return
319  calculate();
320  fs = assembleFeatures();
321  ++m_n;
322  return fs;
323  }
324 
325  // If we have seen more than enough, just discard and return!
326  if (m_n > m_dfsize) return FeatureSet();
327 
328  float value = 0.f;
329 
330  // m_df will contain an onset detection function based on the rise
331  // in overall power from one spectral frame to the next --
332  // simplistic but reasonably effective for our purposes.
333 
334  for (size_t i = 1; i < m_blockSize/2; ++i) {
335 
336  float real = inputBuffers[0][i*2];
337  float imag = inputBuffers[0][i*2 + 1];
338 
339  float sqrmag = real * real + imag * imag;
340  value += fabsf(sqrmag - m_priorMagnitudes[i]);
341 
342  m_priorMagnitudes[i] = sqrmag;
343  }
344 
345  m_df[m_n] = value;
346 
347  ++m_n;
348  return fs;
349 }
350 
353 {
354  FeatureSet fs;
355  if (m_n > m_dfsize) return fs;
356  calculate();
357  fs = assembleFeatures();
358  ++m_n;
359  return fs;
360 }
361 
362 float
364 {
365  return 60.f / ((lag * m_stepSize) / m_inputSampleRate);
366 }
367 
368 int
370 {
371  return ((60.f / tempo) * m_inputSampleRate) / m_stepSize;
372 }
373 
374 void
376 {
377  if (m_r) {
378  cerr << "FixedTempoEstimator::calculate: calculation already happened?" << endl;
379  return;
380  }
381 
382  if (m_n < m_dfsize / 9 &&
383  m_n < (1.0 * m_inputSampleRate) / m_stepSize) { // 1 second
384  cerr << "FixedTempoEstimator::calculate: Input is too short" << endl;
385  return;
386  }
387 
388  // This function takes m_df (the detection function array filled
389  // out in process()) and calculates m_r (the raw autocorrelation)
390  // and m_fr (the filtered autocorrelation from whose peaks tempo
391  // estimates will be taken).
392 
393  int n = m_n; // length of actual df array (m_dfsize is the theoretical max)
394 
395  m_r = new float[n/2]; // raw autocorrelation
396  m_fr = new float[n/2]; // filtered autocorrelation
397  m_t = new float[n/2]; // averaged tempo estimate for each lag value
398 
399  for (int i = 0; i < n/2; ++i) {
400  m_r[i] = 0.f;
401  m_fr[i] = 0.f;
402  m_t[i] = lag2tempo(i);
403  }
404 
405  // Calculate the raw autocorrelation of the detection function
406 
407  for (int i = 0; i < n/2; ++i) {
408 
409  for (int j = i; j < n; ++j) {
410  m_r[i] += m_df[j] * m_df[j - i];
411  }
412 
413  m_r[i] /= n - i - 1;
414  }
415 
416  // Filter the autocorrelation and average out the tempo estimates
417 
418  float related[] = { 0.5, 2, 4, 8 };
419 
420  for (int i = 1; i < n/2-1; ++i) {
421 
422  m_fr[i] = m_r[i];
423 
424  int div = 1;
425 
426  for (int j = 0; j < int(sizeof(related)/sizeof(related[0])); ++j) {
427 
428  // Check for an obvious peak at each metrically related lag
429 
430  int k0 = int(i * related[j] + 0.5);
431 
432  if (k0 >= 0 && k0 < int(n/2)) {
433 
434  int kmax = 0;
435  float kvmax = 0, kvmin = 0;
436  bool have = false;
437 
438  for (int k = k0 - 1; k <= k0 + 1; ++k) {
439 
440  if (k < 0 || k >= n/2) continue;
441 
442  if (!have || (m_r[k] > kvmax)) { kvmax = m_r[k]; kmax = k; }
443  if (!have || (m_r[k] < kvmin)) { kvmin = m_r[k]; }
444 
445  have = true;
446  }
447 
448  // Boost the original lag according to the strongest
449  // value found close to this related lag
450 
451  m_fr[i] += m_r[kmax] / 5;
452 
453  if ((kmax == 0 || m_r[kmax] > m_r[kmax-1]) &&
454  (kmax == n/2-1 || m_r[kmax] > m_r[kmax+1]) &&
455  kvmax > kvmin * 1.05) {
456 
457  // The strongest value close to the related lag is
458  // also a pretty good looking peak, so use it to
459  // improve our tempo estimate for the original lag
460 
461  m_t[i] = m_t[i] + lag2tempo(kmax) * related[j];
462  ++div;
463  }
464  }
465  }
466 
467  m_t[i] /= div;
468 
469  // Finally apply a primitive perceptual weighting (to prefer
470  // tempi of around 120-130)
471 
472  float weight = 1.f - fabsf(128.f - lag2tempo(i)) * 0.005;
473  if (weight < 0.f) weight = 0.f;
474  weight = weight * weight * weight;
475 
476  m_fr[i] += m_fr[i] * (weight / 3);
477  }
478 }
479 
482 {
483  FeatureSet fs;
484  if (!m_r) return fs; // No autocorrelation: no results
485 
486  Feature feature;
487  feature.hasTimestamp = true;
488  feature.hasDuration = false;
489  feature.label = "";
490  feature.values.clear();
491  feature.values.push_back(0.f);
492 
493  char buffer[40];
494 
495  int n = m_n;
496 
497  for (int i = 0; i < n; ++i) {
498 
499  // Return the detection function in the DF output
500 
501  feature.timestamp = m_start +
502  RealTime::frame2RealTime(i * m_stepSize, m_inputSampleRate);
503  feature.values[0] = m_df[i];
504  feature.label = "";
505  fs[DFOutput].push_back(feature);
506  }
507 
508  for (int i = 1; i < n/2; ++i) {
509 
510  // Return the raw autocorrelation in the ACF output, each
511  // value labelled according to its corresponding tempo
512 
513  feature.timestamp = m_start +
514  RealTime::frame2RealTime(i * m_stepSize, m_inputSampleRate);
515  feature.values[0] = m_r[i];
516  sprintf(buffer, "%.1f bpm", lag2tempo(i));
517  if (i == n/2-1) feature.label = "";
518  else feature.label = buffer;
519  fs[ACFOutput].push_back(feature);
520  }
521 
522  float t0 = m_minbpm; // our minimum detected tempo
523  float t1 = m_maxbpm; // our maximum detected tempo
524 
525  int p0 = tempo2lag(t1);
526  int p1 = tempo2lag(t0);
527 
528  std::map<float, int> candidates;
529 
530  for (int i = p0; i <= p1 && i+1 < n/2; ++i) {
531 
532  if (m_fr[i] > m_fr[i-1] &&
533  m_fr[i] > m_fr[i+1]) {
534 
535  // This is a peak in the filtered autocorrelation: stick
536  // it into the map from filtered autocorrelation to lag
537  // index -- this sorts our peaks by filtered acf value
538 
539  candidates[m_fr[i]] = i;
540  }
541 
542  // Also return the filtered autocorrelation in its own output
543 
544  feature.timestamp = m_start +
545  RealTime::frame2RealTime(i * m_stepSize, m_inputSampleRate);
546  feature.values[0] = m_fr[i];
547  sprintf(buffer, "%.1f bpm", lag2tempo(i));
548  if (i == p1 || i == n/2-2) feature.label = "";
549  else feature.label = buffer;
550  fs[FilteredACFOutput].push_back(feature);
551  }
552 
553  if (candidates.empty()) {
554  cerr << "No tempo candidates!" << endl;
555  return fs;
556  }
557 
558  feature.hasTimestamp = true;
559  feature.timestamp = m_start;
560 
561  feature.hasDuration = true;
562  feature.duration = m_lasttime - m_start;
563 
564  // The map contains only peaks and is sorted by filtered acf
565  // value, so the final element in it is our "best" tempo guess
566 
567  std::map<float, int>::const_iterator ci = candidates.end();
568  --ci;
569  int maxpi = ci->second;
570 
571  if (m_t[maxpi] > 0) {
572 
573  // This lag has an adjusted tempo from the averaging process:
574  // use it
575 
576  feature.values[0] = m_t[maxpi];
577 
578  } else {
579 
580  // shouldn't happen -- it would imply that this high value was
581  // not a peak!
582 
583  feature.values[0] = lag2tempo(maxpi);
584  cerr << "WARNING: No stored tempo for index " << maxpi << endl;
585  }
586 
587  sprintf(buffer, "%.1f bpm", feature.values[0]);
588  feature.label = buffer;
589 
590  // Return the best tempo in the main output
591 
592  fs[TempoOutput].push_back(feature);
593 
594  // And return the other estimates (up to the arbitrarily chosen
595  // number of 10 of them) in the candidates output
596 
597  feature.values.clear();
598  feature.label = "";
599 
600  while (feature.values.size() < 10) {
601  if (m_t[ci->second] > 0) {
602  feature.values.push_back(m_t[ci->second]);
603  } else {
604  feature.values.push_back(lag2tempo(ci->second));
605  }
606  if (ci == candidates.begin()) break;
607  --ci;
608  }
609 
610  fs[CandidatesOutput].push_back(feature);
611 
612  return fs;
613 }
614 
615 
616 
618  Plugin(inputSampleRate),
619  m_d(new D(inputSampleRate))
620 {
621 }
622 
624 {
625  delete m_d;
626 }
627 
628 string
630 {
631  return "fixedtempo";
632 }
633 
634 string
636 {
637  return "Simple Fixed Tempo Estimator";
638 }
639 
640 string
642 {
643  return "Study a short section of audio and estimate its tempo, assuming the tempo is constant";
644 }
645 
646 string
648 {
649  return "Vamp SDK Example Plugins";
650 }
651 
652 int
654 {
655  return 1;
656 }
657 
658 string
660 {
661  return "Code copyright 2008 Queen Mary, University of London. Freely redistributable (BSD license)";
662 }
663 
664 size_t
666 {
667  return m_d->getPreferredStepSize();
668 }
669 
670 size_t
672 {
673  return m_d->getPreferredBlockSize();
674 }
675 
676 bool
677 FixedTempoEstimator::initialise(size_t channels, size_t stepSize, size_t blockSize)
678 {
679  if (channels < getMinChannelCount() ||
680  channels > getMaxChannelCount()) return false;
681 
682  return m_d->initialise(channels, stepSize, blockSize);
683 }
684 
685 void
687 {
688  return m_d->reset();
689 }
690 
693 {
694  return m_d->getParameterDescriptors();
695 }
696 
697 float
699 {
700  return m_d->getParameter(id);
701 }
702 
703 void
704 FixedTempoEstimator::setParameter(std::string id, float value)
705 {
706  m_d->setParameter(id, value);
707 }
708 
711 {
712  return m_d->getOutputDescriptors();
713 }
714 
716 FixedTempoEstimator::process(const float *const *inputBuffers, RealTime ts)
717 {
718  return m_d->process(inputBuffers, ts);
719 }
720 
723 {
724  return m_d->getRemainingFeatures();
725 }
std::vector< OutputDescriptor > OutputList
+
size_t getPreferredStepSize() const
Get the preferred step size (window increment – the distance in sample frames between the start fram...
+ +
OutputList getOutputDescriptors() const
Get the outputs of this plugin.
+
bool hasDuration
True if the returned results for this output are known to have a duration field.
+
static int ACFOutput
+
std::string label
Label for the sample of this feature.
+ + +
FeatureSet process(const float *const *inputBuffers, Vamp::RealTime timestamp)
Process a single block of input data.
+
float sampleRate
Sample rate of the output results, as samples per second.
+ +
bool hasFixedBinCount
True if the output has the same number of values per sample for every output sample.
+
std::vector< float > values
Results for a single sample of this feature.
+
Results are evenly spaced in time (sampleRate specified below)
+ +
std::map< int, FeatureList > FeatureSet
+
float quantizeStep
Quantization resolution of the output values (e.g.
+
float getParameter(std::string id) const
Get the value of a named parameter.
+
std::string getMaker() const
Get the name of the author or vendor of the plugin in human-readable form.
+
std::string getCopyright() const
Get the copyright statement or licensing summary for the plugin.
+
RealTime timestamp
Timestamp of the output feature.
+
std::string identifier
The name of the parameter, in computer-usable form.
+
std::string description
A human-readable short text describing the output.
+
Plugin(float inputSampleRate)
+
void reset()
Reset the plugin after use, to prepare it for another clean run.
+
ParameterList getParameterDescriptors() const
+
std::string identifier
The name of the output, in computer-usable form.
+
float minValue
Minimum value of the results in the output.
+ +
std::string getName() const
Get a human-readable name or title of the plugin.
+ +
std::string name
The human-readable name of the parameter.
+ + + +
float maxValue
Maximum value of the results in the output.
+ +
static int DFOutput
+
RealTime duration
Duration of the output feature.
+ +
float minValue
The minimum value of the parameter.
+ + +
std::string unit
The unit of the parameter, in human-readable form.
+
std::string unit
The unit of the output, in human-readable form.
+
virtual size_t getMinChannelCount() const
Get the minimum supported number of input channels.
+ +
std::string name
The human-readable name of the output.
+
OutputList getOutputDescriptors() const
+
size_t getPreferredBlockSize() const
+
virtual size_t getMaxChannelCount() const
Get the maximum supported number of input channels.
+
std::string getIdentifier() const
Get the computer-usable name of the plugin.
+
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
bool hasTimestamp
True if an output feature has its own timestamp.
+ +
FeatureSet getRemainingFeatures()
After all blocks have been processed, calculate and return any remaining features derived from the co...
+
size_t getPreferredStepSize() const
+
void setParameter(std::string id, float value)
Set a named parameter.
+
std::string description
A human-readable short text describing the parameter.
+ +
float maxValue
The maximum value of the parameter.
+
static int CandidatesOutput
+
size_t getPreferredBlockSize() const
Get the preferred block size (window size – the number of sample frames passed in each block to the ...
+ +
FeatureSet process(const float *const *, RealTime)
+ + +
ParameterList getParameterDescriptors() const
Get the controllable parameters of this plugin.
+
bool hasDuration
True if an output feature has a specified duration.
+
std::string getDescription() const
Get a human-readable description for the plugin, typically a line of text that may optionally be disp...
+ + +
float getParameter(string id) const
+ +
static int FilteredACFOutput
+
size_t binCount
The number of values per result of the output.
+
void setParameter(string id, float value)
+ +
bool initialise(size_t channels, size_t stepSize, size_t blockSize)
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).
+
bool initialise(size_t channels, size_t stepSize, size_t blockSize)
+ +
bool isQuantized
True if the output values are quantized to a particular resolution.
+ +
static int TempoOutput
+
float defaultValue
The default value of the parameter.
+ +
int getPluginVersion() const
Get the version number of the plugin.
+
bool isQuantized
True if the parameter values are quantized to a particular resolution.
+ +
FixedTempoEstimator(float inputSampleRate)
+ +
SampleType sampleType
Positioning in time of the output results.
+
D(float inputSampleRate)
+
Results are unevenly spaced and have individual timestamps.
+
bool hasKnownExtents
True if the results in each output bin fall within a fixed numeric range (minimum and maximum values)...
+
std::vector< ParameterDescriptor > ParameterList
+
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FixedTempoEstimator_8h.html --- a/code-docs/FixedTempoEstimator_8h.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/FixedTempoEstimator_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: FixedTempoEstimator.h File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -78,26 +65,46 @@
FixedTempoEstimator.h File Reference
- +
#include "vamp-sdk/Plugin.h"
+
+Include dependency graph for FixedTempoEstimator.h:
+
+
+ + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+

Go to the source code of this file.

- - + +

+

Classes

class  FixedTempoEstimator
 Example plugin that estimates the tempo of a short fixed-tempo sample. More...
 Example plugin that estimates the tempo of a short fixed-tempo sample. More...
 
+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FixedTempoEstimator_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/FixedTempoEstimator_8h__dep__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,4 @@ + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FixedTempoEstimator_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/FixedTempoEstimator_8h__dep__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +6006f4e8c88f526c616e2d27909ac358 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FixedTempoEstimator_8h__dep__incl.png Binary file code-docs/FixedTempoEstimator_8h__dep__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FixedTempoEstimator_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/FixedTempoEstimator_8h__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FixedTempoEstimator_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/FixedTempoEstimator_8h__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +0487f8344966196ca322855f82f7bd59 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FixedTempoEstimator_8h__incl.png Binary file code-docs/FixedTempoEstimator_8h__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/FixedTempoEstimator_8h_source.html --- a/code-docs/FixedTempoEstimator_8h_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/FixedTempoEstimator_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: FixedTempoEstimator.h Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,98 +63,46 @@
FixedTempoEstimator.h
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006-2009 Chris Cannam and QMUL.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #ifndef _FIXED_TEMPO_ESTIMATOR_PLUGIN_H_
-00038 #define _FIXED_TEMPO_ESTIMATOR_PLUGIN_H_
-00039 
-00040 #include "vamp-sdk/Plugin.h"
-00041 
-00046 class FixedTempoEstimator : public Vamp::Plugin
-00047 {
-00048 public:
-00049     FixedTempoEstimator(float inputSampleRate);
-00050     virtual ~FixedTempoEstimator();
-00051 
-00052     bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-00053     void reset();
-00054 
-00055     InputDomain getInputDomain() const { return FrequencyDomain; }
-00056 
-00057     std::string getIdentifier() const;
-00058     std::string getName() const;
-00059     std::string getDescription() const;
-00060     std::string getMaker() const;
-00061     int getPluginVersion() const;
-00062     std::string getCopyright() const;
-00063 
-00064     size_t getPreferredStepSize() const;
-00065     size_t getPreferredBlockSize() const;
-00066 
-00067     ParameterList getParameterDescriptors() const;
-00068     float getParameter(std::string id) const;
-00069     void setParameter(std::string id, float value);
-00070 
-00071     OutputList getOutputDescriptors() const;
-00072 
-00073     FeatureSet process(const float *const *inputBuffers,
-00074                        Vamp::RealTime timestamp);
-00075 
-00076     FeatureSet getRemainingFeatures();
-00077 
-00078 protected:
-00079     class D;
-00080     D *m_d;
-00081 };
-00082 
-00083 
-00084 #endif
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006-2009 Chris Cannam and QMUL.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #ifndef _FIXED_TEMPO_ESTIMATOR_PLUGIN_H_
38 #define _FIXED_TEMPO_ESTIMATOR_PLUGIN_H_
39 
40 #include "vamp-sdk/Plugin.h"
41 
47 {
48 public:
49  FixedTempoEstimator(float inputSampleRate);
50  virtual ~FixedTempoEstimator();
51 
52  bool initialise(size_t channels, size_t stepSize, size_t blockSize);
53  void reset();
54 
56 
57  std::string getIdentifier() const;
58  std::string getName() const;
59  std::string getDescription() const;
60  std::string getMaker() const;
61  int getPluginVersion() const;
62  std::string getCopyright() const;
63 
64  size_t getPreferredStepSize() const;
65  size_t getPreferredBlockSize() const;
66 
68  float getParameter(std::string id) const;
69  void setParameter(std::string id, float value);
70 
72 
73  FeatureSet process(const float *const *inputBuffers,
74  Vamp::RealTime timestamp);
75 
77 
78 protected:
79  class D;
80  D *m_d;
81 };
82 
83 
84 #endif
std::vector< OutputDescriptor > OutputList
+
size_t getPreferredStepSize() const
Get the preferred step size (window increment – the distance in sample frames between the start fram...
+
OutputList getOutputDescriptors() const
Get the outputs of this plugin.
+
Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...
+ +
FeatureSet process(const float *const *inputBuffers, Vamp::RealTime timestamp)
Process a single block of input data.
+ + +
std::map< int, FeatureList > FeatureSet
+
float getParameter(std::string id) const
Get the value of a named parameter.
+
InputDomain getInputDomain() const
Get the plugin&#39;s required input domain.
+
std::string getMaker() const
Get the name of the author or vendor of the plugin in human-readable form.
+
std::string getCopyright() const
Get the copyright statement or licensing summary for the plugin.
+
void reset()
Reset the plugin after use, to prepare it for another clean run.
+
std::string getName() const
Get a human-readable name or title of the plugin.
+ +
Example plugin that estimates the tempo of a short fixed-tempo sample.
+
std::string getIdentifier() const
Get the computer-usable name of the plugin.
+
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
FeatureSet getRemainingFeatures()
After all blocks have been processed, calculate and return any remaining features derived from the co...
+
void setParameter(std::string id, float value)
Set a named parameter.
+
size_t getPreferredBlockSize() const
Get the preferred block size (window size – the number of sample frames passed in each block to the ...
+ +
ParameterList getParameterDescriptors() const
Get the controllable parameters of this plugin.
+
std::string getDescription() const
Get a human-readable description for the plugin, typically a line of text that may optionally be disp...
+
bool initialise(size_t channels, size_t stepSize, size_t blockSize)
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).
+ +
int getPluginVersion() const
Get the version number of the plugin.
+
FixedTempoEstimator(float inputSampleRate)
+
std::vector< ParameterDescriptor > ParameterList
+
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PercussionOnsetDetector_8cpp.html --- a/code-docs/PercussionOnsetDetector_8cpp.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PercussionOnsetDetector_8cpp.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PercussionOnsetDetector.cpp File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,20 +63,32 @@
PercussionOnsetDetector.cpp File Reference
- +
#include "PercussionOnsetDetector.h"
+#include <cmath>
+
+Include dependency graph for PercussionOnsetDetector.cpp:
+
+
+ + + + + + + +
+

Go to the source code of this file.

+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PercussionOnsetDetector_8cpp__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PercussionOnsetDetector_8cpp__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PercussionOnsetDetector_8cpp__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PercussionOnsetDetector_8cpp__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +dcdf1165cccb87768a7145cb2e3d6dd2 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PercussionOnsetDetector_8cpp__incl.png Binary file code-docs/PercussionOnsetDetector_8cpp__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PercussionOnsetDetector_8cpp_source.html --- a/code-docs/PercussionOnsetDetector_8cpp_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PercussionOnsetDetector_8cpp_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PercussionOnsetDetector.cpp Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,305 +63,77 @@
PercussionOnsetDetector.cpp
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006 Chris Cannam.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #include "PercussionOnsetDetector.h"
-00038 
-00039 using std::string;
-00040 using std::vector;
-00041 using std::cerr;
-00042 using std::endl;
-00043 
-00044 #include <cmath>
-00045 
-00046 
-00047 PercussionOnsetDetector::PercussionOnsetDetector(float inputSampleRate) :
-00048     Plugin(inputSampleRate),
-00049     m_stepSize(0),
-00050     m_blockSize(0),
-00051     m_threshold(3),
-00052     m_sensitivity(40),
-00053     m_priorMagnitudes(0),
-00054     m_dfMinus1(0),
-00055     m_dfMinus2(0)
-00056 {
-00057 }
-00058 
-00059 PercussionOnsetDetector::~PercussionOnsetDetector()
-00060 {
-00061     delete[] m_priorMagnitudes;
-00062 }
-00063 
-00064 string
-00065 PercussionOnsetDetector::getIdentifier() const
-00066 {
-00067     return "percussiononsets";
-00068 }
-00069 
-00070 string
-00071 PercussionOnsetDetector::getName() const
-00072 {
-00073     return "Simple Percussion Onset Detector";
-00074 }
-00075 
-00076 string
-00077 PercussionOnsetDetector::getDescription() const
-00078 {
-00079     return "Detect percussive note onsets by identifying broadband energy rises";
-00080 }
-00081 
-00082 string
-00083 PercussionOnsetDetector::getMaker() const
-00084 {
-00085     return "Vamp SDK Example Plugins";
-00086 }
-00087 
-00088 int
-00089 PercussionOnsetDetector::getPluginVersion() const
-00090 {
-00091     return 2;
-00092 }
-00093 
-00094 string
-00095 PercussionOnsetDetector::getCopyright() const
-00096 {
-00097     return "Code copyright 2006 Queen Mary, University of London, after Dan Barry et al 2005.  Freely redistributable (BSD license)";
-00098 }
-00099 
-00100 size_t
-00101 PercussionOnsetDetector::getPreferredStepSize() const
-00102 {
-00103     return 0;
-00104 }
-00105 
-00106 size_t
-00107 PercussionOnsetDetector::getPreferredBlockSize() const
-00108 {
-00109     return 1024;
-00110 }
-00111 
-00112 bool
-00113 PercussionOnsetDetector::initialise(size_t channels, size_t stepSize, size_t blockSize)
-00114 {
-00115     if (channels < getMinChannelCount() ||
-00116         channels > getMaxChannelCount()) return false;
-00117 
-00118     m_stepSize = stepSize;
-00119     m_blockSize = blockSize;
-00120 
-00121     m_priorMagnitudes = new float[m_blockSize/2];
-00122 
-00123     for (size_t i = 0; i < m_blockSize/2; ++i) {
-00124         m_priorMagnitudes[i] = 0.f;
-00125     }
-00126 
-00127     m_dfMinus1 = 0.f;
-00128     m_dfMinus2 = 0.f;
-00129 
-00130     return true;
-00131 }
-00132 
-00133 void
-00134 PercussionOnsetDetector::reset()
-00135 {
-00136     for (size_t i = 0; i < m_blockSize/2; ++i) {
-00137         m_priorMagnitudes[i] = 0.f;
-00138     }
-00139 
-00140     m_dfMinus1 = 0.f;
-00141     m_dfMinus2 = 0.f;
-00142 }
-00143 
-00144 PercussionOnsetDetector::ParameterList
-00145 PercussionOnsetDetector::getParameterDescriptors() const
-00146 {
-00147     ParameterList list;
-00148 
-00149     ParameterDescriptor d;
-00150     d.identifier = "threshold";
-00151     d.name = "Energy rise threshold";
-00152     d.description = "Energy rise within a frequency bin necessary to count toward broadband total";
-00153     d.unit = "dB";
-00154     d.minValue = 0;
-00155     d.maxValue = 20;
-00156     d.defaultValue = 3;
-00157     d.isQuantized = false;
-00158     list.push_back(d);
-00159 
-00160     d.identifier = "sensitivity";
-00161     d.name = "Sensitivity";
-00162     d.description = "Sensitivity of peak detector applied to broadband detection function";
-00163     d.unit = "%";
-00164     d.minValue = 0;
-00165     d.maxValue = 100;
-00166     d.defaultValue = 40;
-00167     d.isQuantized = false;
-00168     list.push_back(d);
-00169 
-00170     return list;
-00171 }
-00172 
-00173 float
-00174 PercussionOnsetDetector::getParameter(std::string id) const
-00175 {
-00176     if (id == "threshold") return m_threshold;
-00177     if (id == "sensitivity") return m_sensitivity;
-00178     return 0.f;
-00179 }
-00180 
-00181 void
-00182 PercussionOnsetDetector::setParameter(std::string id, float value)
-00183 {
-00184     if (id == "threshold") {
-00185         if (value < 0) value = 0;
-00186         if (value > 20) value = 20;
-00187         m_threshold = value;
-00188     } else if (id == "sensitivity") {
-00189         if (value < 0) value = 0;
-00190         if (value > 100) value = 100;
-00191         m_sensitivity = value;
-00192     }
-00193 }
-00194 
-00195 PercussionOnsetDetector::OutputList
-00196 PercussionOnsetDetector::getOutputDescriptors() const
-00197 {
-00198     OutputList list;
-00199 
-00200     OutputDescriptor d;
-00201     d.identifier = "onsets";
-00202     d.name = "Onsets";
-00203     d.description = "Percussive note onset locations";
-00204     d.unit = "";
-00205     d.hasFixedBinCount = true;
-00206     d.binCount = 0;
-00207     d.hasKnownExtents = false;
-00208     d.isQuantized = false;
-00209     d.sampleType = OutputDescriptor::VariableSampleRate;
-00210     d.sampleRate = m_inputSampleRate;
-00211     list.push_back(d);
-00212 
-00213     d.identifier = "detectionfunction";
-00214     d.name = "Detection Function";
-00215     d.description = "Broadband energy rise detection function";
-00216     d.binCount = 1;
-00217     d.isQuantized = true;
-00218     d.quantizeStep = 1.0;
-00219     d.sampleType = OutputDescriptor::OneSamplePerStep;
-00220     list.push_back(d);
-00221 
-00222     return list;
-00223 }
-00224 
-00225 PercussionOnsetDetector::FeatureSet
-00226 PercussionOnsetDetector::process(const float *const *inputBuffers,
-00227                                  Vamp::RealTime ts)
-00228 {
-00229     if (m_stepSize == 0) {
-00230         cerr << "ERROR: PercussionOnsetDetector::process: "
-00231              << "PercussionOnsetDetector has not been initialised"
-00232              << endl;
-00233         return FeatureSet();
-00234     }
-00235 
-00236     int count = 0;
-00237 
-00238     for (size_t i = 1; i < m_blockSize/2; ++i) {
-00239 
-00240         float real = inputBuffers[0][i*2];
-00241         float imag = inputBuffers[0][i*2 + 1];
-00242 
-00243         float sqrmag = real * real + imag * imag;
-00244 
-00245         if (m_priorMagnitudes[i] > 0.f) {
-00246             float diff = 10.f * log10f(sqrmag / m_priorMagnitudes[i]);
-00247 
-00248 //        std::cout << "i=" << i << ", sqrmag=" << sqrmag << ", prior=" << m_priorMagnitudes[i] << ", diff=" << diff << ", threshold=" << m_threshold << " " << (diff >= m_threshold ? "[*]" : "") << std::endl;
-00249 
-00250             if (diff >= m_threshold) ++count;
-00251         }
-00252 
-00253         m_priorMagnitudes[i] = sqrmag;
-00254     }
-00255 
-00256     FeatureSet returnFeatures;
-00257 
-00258     Feature detectionFunction;
-00259     detectionFunction.hasTimestamp = false;
-00260     detectionFunction.values.push_back(count);
-00261     returnFeatures[1].push_back(detectionFunction);
-00262 
-00263     if (m_dfMinus2 < m_dfMinus1 &&
-00264         m_dfMinus1 >= count &&
-00265         m_dfMinus1 > ((100 - m_sensitivity) * m_blockSize) / 200) {
-00266 
-00267 //std::cout << "result at " << ts << "! (count == " << count << ", prev == " << m_dfMinus1 << ")" << std::endl;
-00268 
-00269         Feature onset;
-00270         onset.hasTimestamp = true;
-00271         onset.timestamp = ts - Vamp::RealTime::frame2RealTime
-00272             (m_stepSize, int(m_inputSampleRate + 0.5));
-00273         returnFeatures[0].push_back(onset);
-00274     }
-00275 
-00276     m_dfMinus2 = m_dfMinus1;
-00277     m_dfMinus1 = count;
-00278 
-00279     return returnFeatures;
-00280 }
-00281 
-00282 PercussionOnsetDetector::FeatureSet
-00283 PercussionOnsetDetector::getRemainingFeatures()
-00284 {
-00285     return FeatureSet();
-00286 }
-00287 
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006 Chris Cannam.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
38 
39 using std::string;
40 using std::vector;
41 using std::cerr;
42 using std::endl;
43 
44 #include <cmath>
45 
46 
48  Plugin(inputSampleRate),
49  m_stepSize(0),
50  m_blockSize(0),
51  m_threshold(3),
52  m_sensitivity(40),
53  m_priorMagnitudes(0),
54  m_dfMinus1(0),
55  m_dfMinus2(0)
56 {
57 }
58 
60 {
61  delete[] m_priorMagnitudes;
62 }
63 
64 string
66 {
67  return "percussiononsets";
68 }
69 
70 string
72 {
73  return "Simple Percussion Onset Detector";
74 }
75 
76 string
78 {
79  return "Detect percussive note onsets by identifying broadband energy rises";
80 }
81 
82 string
84 {
85  return "Vamp SDK Example Plugins";
86 }
87 
88 int
90 {
91  return 2;
92 }
93 
94 string
96 {
97  return "Code copyright 2006 Queen Mary, University of London, after Dan Barry et al 2005. Freely redistributable (BSD license)";
98 }
99 
100 size_t
102 {
103  return 0;
104 }
105 
106 size_t
108 {
109  return 1024;
110 }
111 
112 bool
113 PercussionOnsetDetector::initialise(size_t channels, size_t stepSize, size_t blockSize)
114 {
115  if (channels < getMinChannelCount() ||
116  channels > getMaxChannelCount()) return false;
117 
118  m_stepSize = stepSize;
119  m_blockSize = blockSize;
120 
121  m_priorMagnitudes = new float[m_blockSize/2];
122 
123  for (size_t i = 0; i < m_blockSize/2; ++i) {
124  m_priorMagnitudes[i] = 0.f;
125  }
126 
127  m_dfMinus1 = 0.f;
128  m_dfMinus2 = 0.f;
129 
130  return true;
131 }
132 
133 void
135 {
136  for (size_t i = 0; i < m_blockSize/2; ++i) {
137  m_priorMagnitudes[i] = 0.f;
138  }
139 
140  m_dfMinus1 = 0.f;
141  m_dfMinus2 = 0.f;
142 }
143 
146 {
147  ParameterList list;
148 
150  d.identifier = "threshold";
151  d.name = "Energy rise threshold";
152  d.description = "Energy rise within a frequency bin necessary to count toward broadband total";
153  d.unit = "dB";
154  d.minValue = 0;
155  d.maxValue = 20;
156  d.defaultValue = 3;
157  d.isQuantized = false;
158  list.push_back(d);
159 
160  d.identifier = "sensitivity";
161  d.name = "Sensitivity";
162  d.description = "Sensitivity of peak detector applied to broadband detection function";
163  d.unit = "%";
164  d.minValue = 0;
165  d.maxValue = 100;
166  d.defaultValue = 40;
167  d.isQuantized = false;
168  list.push_back(d);
169 
170  return list;
171 }
172 
173 float
175 {
176  if (id == "threshold") return m_threshold;
177  if (id == "sensitivity") return m_sensitivity;
178  return 0.f;
179 }
180 
181 void
182 PercussionOnsetDetector::setParameter(std::string id, float value)
183 {
184  if (id == "threshold") {
185  if (value < 0) value = 0;
186  if (value > 20) value = 20;
187  m_threshold = value;
188  } else if (id == "sensitivity") {
189  if (value < 0) value = 0;
190  if (value > 100) value = 100;
191  m_sensitivity = value;
192  }
193 }
194 
197 {
198  OutputList list;
199 
201  d.identifier = "onsets";
202  d.name = "Onsets";
203  d.description = "Percussive note onset locations";
204  d.unit = "";
205  d.hasFixedBinCount = true;
206  d.binCount = 0;
207  d.hasKnownExtents = false;
208  d.isQuantized = false;
211  list.push_back(d);
212 
213  d.identifier = "detectionfunction";
214  d.name = "Detection Function";
215  d.description = "Broadband energy rise detection function";
216  d.binCount = 1;
217  d.isQuantized = true;
218  d.quantizeStep = 1.0;
220  list.push_back(d);
221 
222  return list;
223 }
224 
226 PercussionOnsetDetector::process(const float *const *inputBuffers,
227  Vamp::RealTime ts)
228 {
229  if (m_stepSize == 0) {
230  cerr << "ERROR: PercussionOnsetDetector::process: "
231  << "PercussionOnsetDetector has not been initialised"
232  << endl;
233  return FeatureSet();
234  }
235 
236  int count = 0;
237 
238  for (size_t i = 1; i < m_blockSize/2; ++i) {
239 
240  float real = inputBuffers[0][i*2];
241  float imag = inputBuffers[0][i*2 + 1];
242 
243  float sqrmag = real * real + imag * imag;
244 
245  if (m_priorMagnitudes[i] > 0.f) {
246  float diff = 10.f * log10f(sqrmag / m_priorMagnitudes[i]);
247 
248 // std::cout << "i=" << i << ", sqrmag=" << sqrmag << ", prior=" << m_priorMagnitudes[i] << ", diff=" << diff << ", threshold=" << m_threshold << " " << (diff >= m_threshold ? "[*]" : "") << std::endl;
249 
250  if (diff >= m_threshold) ++count;
251  }
252 
253  m_priorMagnitudes[i] = sqrmag;
254  }
255 
256  FeatureSet returnFeatures;
257 
258  Feature detectionFunction;
259  detectionFunction.hasTimestamp = false;
260  detectionFunction.values.push_back(count);
261  returnFeatures[1].push_back(detectionFunction);
262 
263  if (m_dfMinus2 < m_dfMinus1 &&
264  m_dfMinus1 >= count &&
265  m_dfMinus1 > ((100 - m_sensitivity) * m_blockSize) / 200) {
266 
267 //std::cout << "result at " << ts << "! (count == " << count << ", prev == " << m_dfMinus1 << ")" << std::endl;
268 
269  Feature onset;
270  onset.hasTimestamp = true;
272  (m_stepSize, int(m_inputSampleRate + 0.5));
273  returnFeatures[0].push_back(onset);
274  }
275 
277  m_dfMinus1 = count;
278 
279  return returnFeatures;
280 }
281 
284 {
285  return FeatureSet();
286 }
287 
std::vector< OutputDescriptor > OutputList
+
FeatureSet getRemainingFeatures()
After all blocks have been processed, calculate and return any remaining features derived from the co...
+ +
size_t getPreferredBlockSize() const
Get the preferred block size (window size – the number of sample frames passed in each block to the ...
+ +
float sampleRate
Sample rate of the output results, as samples per second.
+
bool hasFixedBinCount
True if the output has the same number of values per sample for every output sample.
+
std::vector< float > values
Results for a single sample of this feature.
+
std::string getDescription() const
Get a human-readable description for the plugin, typically a line of text that may optionally be disp...
+
std::map< int, FeatureList > FeatureSet
+
float quantizeStep
Quantization resolution of the output values (e.g.
+
bool initialise(size_t channels, size_t stepSize, size_t blockSize)
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).
+
RealTime timestamp
Timestamp of the output feature.
+
std::string identifier
The name of the parameter, in computer-usable form.
+
std::string description
A human-readable short text describing the output.
+
std::string identifier
The name of the output, in computer-usable form.
+
OutputList getOutputDescriptors() const
Get the outputs of this plugin.
+
std::string name
The human-readable name of the parameter.
+
ParameterList getParameterDescriptors() const
Get the controllable parameters of this plugin.
+
size_t getPreferredStepSize() const
Get the preferred step size (window increment – the distance in sample frames between the start fram...
+ + +
float m_inputSampleRate
+ +
float minValue
The minimum value of the parameter.
+
float getParameter(std::string id) const
Get the value of a named parameter.
+
std::string unit
The unit of the parameter, in human-readable form.
+
std::string unit
The unit of the output, in human-readable form.
+
std::string getName() const
Get a human-readable name or title of the plugin.
+
virtual size_t getMinChannelCount() const
Get the minimum supported number of input channels.
+
std::string name
The human-readable name of the output.
+
virtual size_t getMaxChannelCount() const
Get the maximum supported number of input channels.
+
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
bool hasTimestamp
True if an output feature has its own timestamp.
+
std::string description
A human-readable short text describing the parameter.
+ +
float maxValue
The maximum value of the parameter.
+
std::string getCopyright() const
Get the copyright statement or licensing summary for the plugin.
+ +
static RealTime frame2RealTime(long frame, unsigned int sampleRate)
Convert a sample frame at the given sample rate into a RealTime.
+ +
void reset()
Reset the plugin after use, to prepare it for another clean run.
+
void setParameter(std::string id, float value)
Set a named parameter.
+
Results from each process() align with that call&#39;s block start.
+
size_t binCount
The number of values per result of the output.
+
PercussionOnsetDetector(float inputSampleRate)
+
bool isQuantized
True if the output values are quantized to a particular resolution.
+
int getPluginVersion() const
Get the version number of the plugin.
+
float defaultValue
The default value of the parameter.
+
std::string getMaker() const
Get the name of the author or vendor of the plugin in human-readable form.
+
FeatureSet process(const float *const *inputBuffers, Vamp::RealTime timestamp)
Process a single block of input data.
+ +
bool isQuantized
True if the parameter values are quantized to a particular resolution.
+
std::string getIdentifier() const
Get the computer-usable name of the plugin.
+ +
SampleType sampleType
Positioning in time of the output results.
+ +
Results are unevenly spaced and have individual timestamps.
+
bool hasKnownExtents
True if the results in each output bin fall within a fixed numeric range (minimum and maximum values)...
+
std::vector< ParameterDescriptor > ParameterList
+ +
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PercussionOnsetDetector_8h.html --- a/code-docs/PercussionOnsetDetector_8h.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PercussionOnsetDetector_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PercussionOnsetDetector.h File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -78,26 +65,46 @@
PercussionOnsetDetector.h File Reference
- +
#include "vamp-sdk/Plugin.h"
+
+Include dependency graph for PercussionOnsetDetector.h:
+
+
+ + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+

Go to the source code of this file.

- - + +

+

Classes

class  PercussionOnsetDetector
 Example plugin that detects percussive events. More...
 Example plugin that detects percussive events. More...
 
+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PercussionOnsetDetector_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PercussionOnsetDetector_8h__dep__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,4 @@ + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PercussionOnsetDetector_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PercussionOnsetDetector_8h__dep__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +c05113ec6bc0f4ce17a110a3b6bb5c05 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PercussionOnsetDetector_8h__dep__incl.png Binary file code-docs/PercussionOnsetDetector_8h__dep__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PercussionOnsetDetector_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PercussionOnsetDetector_8h__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PercussionOnsetDetector_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PercussionOnsetDetector_8h__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +b31568e622a8eb95f75f25a83f0e8bb6 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PercussionOnsetDetector_8h__incl.png Binary file code-docs/PercussionOnsetDetector_8h__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PercussionOnsetDetector_8h_source.html --- a/code-docs/PercussionOnsetDetector_8h_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PercussionOnsetDetector_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PercussionOnsetDetector.h Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,104 +63,51 @@
PercussionOnsetDetector.h
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006 Chris Cannam.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #ifndef _PERCUSSION_ONSET_DETECTOR_PLUGIN_H_
-00038 #define _PERCUSSION_ONSET_DETECTOR_PLUGIN_H_
-00039 
-00040 #include "vamp-sdk/Plugin.h"
-00041 
-00046 class PercussionOnsetDetector : public Vamp::Plugin
-00047 {
-00048 public:
-00049     PercussionOnsetDetector(float inputSampleRate);
-00050     virtual ~PercussionOnsetDetector();
-00051 
-00052     bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-00053     void reset();
-00054 
-00055     InputDomain getInputDomain() const { return FrequencyDomain; }
-00056 
-00057     std::string getIdentifier() const;
-00058     std::string getName() const;
-00059     std::string getDescription() const;
-00060     std::string getMaker() const;
-00061     int getPluginVersion() const;
-00062     std::string getCopyright() const;
-00063 
-00064     size_t getPreferredStepSize() const;
-00065     size_t getPreferredBlockSize() const;
-00066 
-00067     ParameterList getParameterDescriptors() const;
-00068     float getParameter(std::string id) const;
-00069     void setParameter(std::string id, float value);
-00070 
-00071     OutputList getOutputDescriptors() const;
-00072 
-00073     FeatureSet process(const float *const *inputBuffers,
-00074                        Vamp::RealTime timestamp);
-00075 
-00076     FeatureSet getRemainingFeatures();
-00077 
-00078 protected:
-00079     size_t m_stepSize;
-00080     size_t m_blockSize;
-00081 
-00082     float  m_threshold;
-00083     float  m_sensitivity;
-00084     float *m_priorMagnitudes;
-00085     float  m_dfMinus1;
-00086     float  m_dfMinus2;
-00087 };
-00088 
-00089 
-00090 #endif
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006 Chris Cannam.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #ifndef _PERCUSSION_ONSET_DETECTOR_PLUGIN_H_
38 #define _PERCUSSION_ONSET_DETECTOR_PLUGIN_H_
39 
40 #include "vamp-sdk/Plugin.h"
41 
47 {
48 public:
49  PercussionOnsetDetector(float inputSampleRate);
50  virtual ~PercussionOnsetDetector();
51 
52  bool initialise(size_t channels, size_t stepSize, size_t blockSize);
53  void reset();
54 
56 
57  std::string getIdentifier() const;
58  std::string getName() const;
59  std::string getDescription() const;
60  std::string getMaker() const;
61  int getPluginVersion() const;
62  std::string getCopyright() const;
63 
64  size_t getPreferredStepSize() const;
65  size_t getPreferredBlockSize() const;
66 
68  float getParameter(std::string id) const;
69  void setParameter(std::string id, float value);
70 
72 
73  FeatureSet process(const float *const *inputBuffers,
74  Vamp::RealTime timestamp);
75 
77 
78 protected:
79  size_t m_stepSize;
80  size_t m_blockSize;
81 
82  float m_threshold;
85  float m_dfMinus1;
86  float m_dfMinus2;
87 };
88 
89 
90 #endif
std::vector< OutputDescriptor > OutputList
+
FeatureSet getRemainingFeatures()
After all blocks have been processed, calculate and return any remaining features derived from the co...
+ +
Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...
+
size_t getPreferredBlockSize() const
Get the preferred block size (window size – the number of sample frames passed in each block to the ...
+ + +
std::string getDescription() const
Get a human-readable description for the plugin, typically a line of text that may optionally be disp...
+
std::map< int, FeatureList > FeatureSet
+
bool initialise(size_t channels, size_t stepSize, size_t blockSize)
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).
+
InputDomain getInputDomain() const
Get the plugin&#39;s required input domain.
+
OutputList getOutputDescriptors() const
Get the outputs of this plugin.
+
ParameterList getParameterDescriptors() const
Get the controllable parameters of this plugin.
+
size_t getPreferredStepSize() const
Get the preferred step size (window increment – the distance in sample frames between the start fram...
+ + +
float getParameter(std::string id) const
Get the value of a named parameter.
+
std::string getName() const
Get a human-readable name or title of the plugin.
+
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
std::string getCopyright() const
Get the copyright statement or licensing summary for the plugin.
+ + +
void reset()
Reset the plugin after use, to prepare it for another clean run.
+
void setParameter(std::string id, float value)
Set a named parameter.
+
PercussionOnsetDetector(float inputSampleRate)
+ +
int getPluginVersion() const
Get the version number of the plugin.
+
std::string getMaker() const
Get the name of the author or vendor of the plugin in human-readable form.
+
FeatureSet process(const float *const *inputBuffers, Vamp::RealTime timestamp)
Process a single block of input data.
+
Example plugin that detects percussive events.
+
std::string getIdentifier() const
Get the computer-usable name of the plugin.
+ + +
std::vector< ParameterDescriptor > ParameterList
+ +
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginAdapter_8h.html --- a/code-docs/PluginAdapter_8h.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PluginAdapter_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PluginAdapter.h File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -79,31 +66,57 @@
PluginAdapter.h File Reference
- +
#include <map>
+#include <vamp/vamp.h>
+#include "Plugin.h"
+#include "plugguard.h"
+
+Include dependency graph for PluginAdapter.h:
+
+
+ + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + +
+

Go to the source code of this file.

- - + + - - + +

+

Classes

class  Vamp::PluginAdapterBase
 PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library can use to make its C++ Vamp::Plugin objects available through the Vamp C API. More...
 PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library can use to make its C++ Vamp::Plugin objects available through the Vamp C API. More...
 
class  Vamp::PluginAdapter< P >
 PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular plugin implementation. More...

+

 PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular plugin implementation. More...
 
+ - + +

Namespaces

namespace  Vamp
 Vamp
 
+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginAdapter_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginAdapter_8h__dep__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,3 @@ + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginAdapter_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginAdapter_8h__dep__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +710589eb532c9003ee1e6460142eedb3 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginAdapter_8h__dep__incl.png Binary file code-docs/PluginAdapter_8h__dep__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginAdapter_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginAdapter_8h__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginAdapter_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginAdapter_8h__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +cea06a53e5de119e89b3c32d2b441bd2 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginAdapter_8h__incl.png Binary file code-docs/PluginAdapter_8h__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginAdapter_8h_source.html --- a/code-docs/PluginAdapter_8h_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PluginAdapter_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PluginAdapter.h Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,111 +63,30 @@
PluginAdapter.h
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006 Chris Cannam.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #ifndef _VAMP_PLUGIN_ADAPTER_H_
-00038 #define _VAMP_PLUGIN_ADAPTER_H_
-00039 
-00040 #include <map>
-00041 #include <vamp/vamp.h>
-00042 
-00043 #include "Plugin.h"
-00044 
-00045 #include "plugguard.h"
-00046 _VAMP_SDK_PLUGSPACE_BEGIN(PluginAdapter.h)
-00047 
-00048 namespace Vamp {
-00049 
-00065 class PluginAdapterBase
-00066 {
-00067 public:
-00068     virtual ~PluginAdapterBase();
-00069 
-00074     const VampPluginDescriptor *getDescriptor();
-00075 
-00076 protected:
-00077     PluginAdapterBase();
-00078 
-00079     virtual Plugin *createPlugin(float inputSampleRate) = 0;
-00080 
-00081     class Impl;
-00082     Impl *m_impl;
-00083 };
-00084 
-00094 template <typename P>
-00095 class PluginAdapter : public PluginAdapterBase
-00096 {
-00097 public:
-00098     PluginAdapter() : PluginAdapterBase() { }
-00099     virtual ~PluginAdapter() { }
-00100 
-00101 protected:
-00102     Plugin *createPlugin(float inputSampleRate) {
-00103         P *p = new P(inputSampleRate);
-00104         Plugin *plugin = dynamic_cast<Plugin *>(p);
-00105         if (!plugin) {
-00106             std::cerr << "ERROR: PluginAdapter::createPlugin: "
-00107                       << "Template type is not a plugin!"
-00108                       << std::endl;
-00109             delete p;
-00110             return 0;
-00111         }
-00112         return plugin;
-00113     }
-00114 };
-00115     
-00116 }
-00117 
-00118 _VAMP_SDK_PLUGSPACE_END(PluginAdapter.h)
-00119 
-00120 #endif
-00121 
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006 Chris Cannam.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #ifndef _VAMP_PLUGIN_ADAPTER_H_
38 #define _VAMP_PLUGIN_ADAPTER_H_
39 
40 #include <map>
41 #include <vamp/vamp.h>
42 
43 #include "Plugin.h"
44 
45 #include "plugguard.h"
46 _VAMP_SDK_PLUGSPACE_BEGIN(PluginAdapter.h)
47 
48 namespace Vamp {
49 
66 {
67 public:
68  virtual ~PluginAdapterBase();
69 
74  const VampPluginDescriptor *getDescriptor();
75 
76 protected:
78 
79  virtual Plugin *createPlugin(float inputSampleRate) = 0;
80 
81  class Impl;
82  Impl *m_impl;
83 };
84 
94 template <typename P>
96 {
97 public:
99  virtual ~PluginAdapter() { }
100 
101 protected:
102  Plugin *createPlugin(float inputSampleRate) {
103  P *p = new P(inputSampleRate);
104  Plugin *plugin = dynamic_cast<Plugin *>(p);
105  if (!plugin) {
106  std::cerr << "ERROR: PluginAdapter::createPlugin: "
107  << "Template type is not a plugin!"
108  << std::endl;
109  delete p;
110  return 0;
111  }
112  return plugin;
113  }
114 };
115 
116 }
117 
119 
120 #endif
121 
PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular plugin implementatio...
Definition: PluginAdapter.h:95
+
Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...
+
Definition: FFT.h:43
+ + + +
PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library can use to make its...
Definition: PluginAdapter.h:65
+
#define _VAMP_SDK_PLUGSPACE_BEGIN(h)
Definition: plugguard.h:79
+ +
#define _VAMP_SDK_PLUGSPACE_END(h)
Definition: plugguard.h:80
+
virtual ~PluginAdapter()
Definition: PluginAdapter.h:99
+
Plugin * createPlugin(float inputSampleRate)
+ + +
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginBufferingAdapter_8h.html --- a/code-docs/PluginBufferingAdapter_8h.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PluginBufferingAdapter_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PluginBufferingAdapter.h File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -79,30 +66,56 @@
PluginBufferingAdapter.h File Reference
- +
#include "hostguard.h"
+#include "PluginWrapper.h"
+
+Include dependency graph for PluginBufferingAdapter.h:
+
+
+ + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + +
+

Go to the source code of this file.

- - - + +

+

Classes

class  Vamp::HostExt::PluginBufferingAdapter
 PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by a host supplying an audio stream in non-overlapping buffers of arbitrary size. More...

+

 PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by a host supplying an audio stream in non-overlapping buffers of arbitrary size. More...
 
+ - - + + + +

Namespaces

namespace  Vamp
namespace  Vamp::HostExt
 Vamp
 
 Vamp::HostExt
 
+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginBufferingAdapter_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginBufferingAdapter_8h__dep__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,3 @@ + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginBufferingAdapter_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginBufferingAdapter_8h__dep__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +bb78d6067c0c2b82ebc2ee3ca27de2cc \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginBufferingAdapter_8h__dep__incl.png Binary file code-docs/PluginBufferingAdapter_8h__dep__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginBufferingAdapter_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginBufferingAdapter_8h__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,9 @@ + + + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginBufferingAdapter_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginBufferingAdapter_8h__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +0e2cd821103f6fda5b78433852d49b21 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginBufferingAdapter_8h__incl.png Binary file code-docs/PluginBufferingAdapter_8h__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginBufferingAdapter_8h_source.html --- a/code-docs/PluginBufferingAdapter_8h_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PluginBufferingAdapter_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PluginBufferingAdapter.h Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,112 +63,28 @@
PluginBufferingAdapter.h
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006-2009 Chris Cannam and QMUL.
-00010     This file by Mark Levy and Chris Cannam, Copyright 2007-2008 QMUL.
-00011   
-00012     Permission is hereby granted, free of charge, to any person
-00013     obtaining a copy of this software and associated documentation
-00014     files (the "Software"), to deal in the Software without
-00015     restriction, including without limitation the rights to use, copy,
-00016     modify, merge, publish, distribute, sublicense, and/or sell copies
-00017     of the Software, and to permit persons to whom the Software is
-00018     furnished to do so, subject to the following conditions:
-00019 
-00020     The above copyright notice and this permission notice shall be
-00021     included in all copies or substantial portions of the Software.
-00022 
-00023     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00024     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00025     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00026     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00027     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00028     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00029     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00030 
-00031     Except as contained in this notice, the names of the Centre for
-00032     Digital Music; Queen Mary, University of London; and Chris Cannam
-00033     shall not be used in advertising or otherwise to promote the sale,
-00034     use or other dealings in this Software without prior written
-00035     authorization.
-00036 */
-00037 
-00038 #ifndef _VAMP_PLUGIN_BUFFERING_ADAPTER_H_
-00039 #define _VAMP_PLUGIN_BUFFERING_ADAPTER_H_
-00040 
-00041 #include "hostguard.h"
-00042 #include "PluginWrapper.h"
-00043 
-00044 _VAMP_SDK_HOSTSPACE_BEGIN(PluginBufferingAdapter.h)
-00045 
-00046 namespace Vamp {
-00047         
-00048 namespace HostExt {
-00049                 
-00075 class PluginBufferingAdapter : public PluginWrapper
-00076 {
-00077 public:
-00083     PluginBufferingAdapter(Plugin *plugin);
-00084     virtual ~PluginBufferingAdapter();
-00085 
-00095     size_t getPreferredStepSize() const;
-00096 
-00107     size_t getPreferredBlockSize() const;
-00108 
-00118     bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-00119 
-00131     size_t getPluginPreferredStepSize() const;
-00132 
-00139     size_t getPluginPreferredBlockSize() const;
-00140 
-00148     void setPluginStepSize(size_t stepSize);
-00149 
-00157     void setPluginBlockSize(size_t blockSize);
-00158 
-00170     void getActualStepAndBlockSizes(size_t &stepSize, size_t &blockSize);
-00171 
-00172     void setParameter(std::string, float);
-00173     void selectProgram(std::string);
-00174 
-00175     OutputList getOutputDescriptors() const;
-00176 
-00177     void reset();
-00178 
-00179     FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-00180     
-00181     FeatureSet getRemainingFeatures();
-00182     
-00183 protected:
-00184     class Impl;
-00185     Impl *m_impl;
-00186 };
-00187     
-00188 }
-00189 
-00190 }
-00191 
-00192 _VAMP_SDK_HOSTSPACE_END(PluginBufferingAdapter.h)
-00193 
-00194 #endif
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006-2009 Chris Cannam and QMUL.
10  This file by Mark Levy and Chris Cannam, Copyright 2007-2008 QMUL.
11 
12  Permission is hereby granted, free of charge, to any person
13  obtaining a copy of this software and associated documentation
14  files (the "Software"), to deal in the Software without
15  restriction, including without limitation the rights to use, copy,
16  modify, merge, publish, distribute, sublicense, and/or sell copies
17  of the Software, and to permit persons to whom the Software is
18  furnished to do so, subject to the following conditions:
19 
20  The above copyright notice and this permission notice shall be
21  included in all copies or substantial portions of the Software.
22 
23  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
27  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
28  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 
31  Except as contained in this notice, the names of the Centre for
32  Digital Music; Queen Mary, University of London; and Chris Cannam
33  shall not be used in advertising or otherwise to promote the sale,
34  use or other dealings in this Software without prior written
35  authorization.
36 */
37 
38 #ifndef _VAMP_PLUGIN_BUFFERING_ADAPTER_H_
39 #define _VAMP_PLUGIN_BUFFERING_ADAPTER_H_
40 
41 #include "hostguard.h"
42 #include "PluginWrapper.h"
43 
44 _VAMP_SDK_HOSTSPACE_BEGIN(PluginBufferingAdapter.h)
45 
46 namespace Vamp {
47 
48 namespace HostExt {
49 
76 {
77 public:
84  virtual ~PluginBufferingAdapter();
85 
95  size_t getPreferredStepSize() const;
96 
107  size_t getPreferredBlockSize() const;
108 
118  bool initialise(size_t channels, size_t stepSize, size_t blockSize);
119 
131  size_t getPluginPreferredStepSize() const;
132 
139  size_t getPluginPreferredBlockSize() const;
140 
148  void setPluginStepSize(size_t stepSize);
149 
157  void setPluginBlockSize(size_t blockSize);
158 
170  void getActualStepAndBlockSizes(size_t &stepSize, size_t &blockSize);
171 
172  void setParameter(std::string, float);
173  void selectProgram(std::string);
174 
175  OutputList getOutputDescriptors() const;
176 
177  void reset();
178 
179  FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
180 
181  FeatureSet getRemainingFeatures();
182 
183 protected:
184  class Impl;
185  Impl *m_impl;
186 };
187 
188 }
189 
190 }
191 
193 
194 #endif
std::vector< OutputDescriptor > OutputList
+
Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...
+
#define _VAMP_SDK_HOSTSPACE_BEGIN(h)
Definition: hostguard.h:56
+
std::map< int, FeatureList > FeatureSet
+
Definition: FFT.h:43
+
PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by a host supplying an...
+
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
PluginWrapper is a simple base class for adapter plugins.
Definition: PluginWrapper.h:62
+ +
#define _VAMP_SDK_HOSTSPACE_END(h)
Definition: hostguard.h:59
+ + +
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginChannelAdapter_8h.html --- a/code-docs/PluginChannelAdapter_8h.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PluginChannelAdapter_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PluginChannelAdapter.h File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -79,30 +66,56 @@
PluginChannelAdapter.h File Reference
- +
#include "hostguard.h"
+#include "PluginWrapper.h"
+
+Include dependency graph for PluginChannelAdapter.h:
+
+
+ + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + +
+

Go to the source code of this file.

- - - + +

+

Classes

class  Vamp::HostExt::PluginChannelAdapter
 PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management of plugins that expect a different number of input channels from the number actually available in the source audio data. More...

+

 PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management of plugins that expect a different number of input channels from the number actually available in the source audio data. More...
 
+ - - + + + +

Namespaces

namespace  Vamp
namespace  Vamp::HostExt
 Vamp
 
 Vamp::HostExt
 
+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginChannelAdapter_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginChannelAdapter_8h__dep__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,3 @@ + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginChannelAdapter_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginChannelAdapter_8h__dep__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +588dc20f80ec66d433023c1acf785403 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginChannelAdapter_8h__dep__incl.png Binary file code-docs/PluginChannelAdapter_8h__dep__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginChannelAdapter_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginChannelAdapter_8h__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,9 @@ + + + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginChannelAdapter_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginChannelAdapter_8h__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +ef404a1be9430206c775b901029a0024 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginChannelAdapter_8h__incl.png Binary file code-docs/PluginChannelAdapter_8h__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginChannelAdapter_8h_source.html --- a/code-docs/PluginChannelAdapter_8h_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PluginChannelAdapter_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PluginChannelAdapter.h Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,90 +63,27 @@
PluginChannelAdapter.h
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006-2009 Chris Cannam and QMUL.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #ifndef _VAMP_PLUGIN_CHANNEL_ADAPTER_H_
-00038 #define _VAMP_PLUGIN_CHANNEL_ADAPTER_H_
-00039 
-00040 #include "hostguard.h"
-00041 #include "PluginWrapper.h"
-00042 
-00043 _VAMP_SDK_HOSTSPACE_BEGIN(PluginChannelAdapter.h)
-00044 
-00045 namespace Vamp {
-00046 
-00047 namespace HostExt {
-00048 
-00112 class PluginChannelAdapter : public PluginWrapper
-00113 {
-00114 public:
-00120     PluginChannelAdapter(Plugin *plugin);
-00121     virtual ~PluginChannelAdapter();
-00122 
-00123     bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-00124 
-00125     FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-00126 
-00136     FeatureSet processInterleaved(const float *inputBuffer, RealTime timestamp);
-00137 
-00138 protected:
-00139     class Impl;
-00140     Impl *m_impl;
-00141 };
-00142 
-00143 }
-00144 
-00145 }
-00146 
-00147 _VAMP_SDK_HOSTSPACE_END(PluginChannelAdapter.h)
-00148 
-00149 #endif
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006-2009 Chris Cannam and QMUL.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #ifndef _VAMP_PLUGIN_CHANNEL_ADAPTER_H_
38 #define _VAMP_PLUGIN_CHANNEL_ADAPTER_H_
39 
40 #include "hostguard.h"
41 #include "PluginWrapper.h"
42 
43 _VAMP_SDK_HOSTSPACE_BEGIN(PluginChannelAdapter.h)
44 
45 namespace Vamp {
46 
47 namespace HostExt {
48 
113 {
114 public:
120  PluginChannelAdapter(Plugin *plugin);
121  virtual ~PluginChannelAdapter();
122 
123  bool initialise(size_t channels, size_t stepSize, size_t blockSize);
124 
125  FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
126 
136  FeatureSet processInterleaved(const float *inputBuffer, RealTime timestamp);
137 
138 protected:
139  class Impl;
140  Impl *m_impl;
141 };
142 
143 }
144 
145 }
146 
148 
149 #endif
PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management of plugins that...
+
Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...
+
#define _VAMP_SDK_HOSTSPACE_BEGIN(h)
Definition: hostguard.h:56
+
std::map< int, FeatureList > FeatureSet
+
Definition: FFT.h:43
+ +
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
PluginWrapper is a simple base class for adapter plugins.
Definition: PluginWrapper.h:62
+ +
#define _VAMP_SDK_HOSTSPACE_END(h)
Definition: hostguard.h:59
+ +
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginHostAdapter_8h.html --- a/code-docs/PluginHostAdapter_8h.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PluginHostAdapter_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PluginHostAdapter.h File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -79,29 +66,57 @@
PluginHostAdapter.h File Reference
- +
#include "hostguard.h"
+#include "Plugin.h"
+#include <vamp/vamp.h>
+#include <vector>
+
+Include dependency graph for PluginHostAdapter.h:
+
+
+ + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+

Go to the source code of this file.

- - - + +

+

Classes

class  Vamp::PluginHostAdapter
 PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language VampPluginDescriptor object appear as a C++ Vamp::Plugin object. More...

+

 PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language VampPluginDescriptor object appear as a C++ Vamp::Plugin object. More...
 
+ - + +

Namespaces

namespace  Vamp
 Vamp
 
+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginHostAdapter_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginHostAdapter_8h__dep__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,4 @@ + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginHostAdapter_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginHostAdapter_8h__dep__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +e49d6834f51f4316c72499a76d670f00 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginHostAdapter_8h__dep__incl.png Binary file code-docs/PluginHostAdapter_8h__dep__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginHostAdapter_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginHostAdapter_8h__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,9 @@ + + + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginHostAdapter_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginHostAdapter_8h__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +c56e41e63057117b7afa3f6cfc13372d \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginHostAdapter_8h__incl.png Binary file code-docs/PluginHostAdapter_8h__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginHostAdapter_8h_source.html --- a/code-docs/PluginHostAdapter_8h_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PluginHostAdapter_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PluginHostAdapter.h Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,124 +63,35 @@
PluginHostAdapter.h
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006 Chris Cannam.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #ifndef _VAMP_PLUGIN_HOST_ADAPTER_H_
-00038 #define _VAMP_PLUGIN_HOST_ADAPTER_H_
-00039 
-00040 #include "hostguard.h"
-00041 #include "Plugin.h"
-00042 
-00043 #include <vamp/vamp.h>
-00044 
-00045 #include <vector>
-00046 
-00047 _VAMP_SDK_HOSTSPACE_BEGIN(PluginHostAdapter.h)
-00048 
-00049 namespace Vamp {
-00050 
-00068 class PluginHostAdapter : public Plugin
-00069 {
-00070 public:
-00071     PluginHostAdapter(const VampPluginDescriptor *descriptor,
-00072                       float inputSampleRate);
-00073     virtual ~PluginHostAdapter();
-00074     
-00075     static std::vector<std::string> getPluginPath();
-00076 
-00077     bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-00078     void reset();
-00079 
-00080     InputDomain getInputDomain() const;
-00081 
-00082     unsigned int getVampApiVersion() const;
-00083     std::string getIdentifier() const;
-00084     std::string getName() const;
-00085     std::string getDescription() const;
-00086     std::string getMaker() const;
-00087     int getPluginVersion() const;
-00088     std::string getCopyright() const;
-00089 
-00090     ParameterList getParameterDescriptors() const;
-00091     float getParameter(std::string) const;
-00092     void setParameter(std::string, float);
-00093 
-00094     ProgramList getPrograms() const;
-00095     std::string getCurrentProgram() const;
-00096     void selectProgram(std::string);
-00097 
-00098     size_t getPreferredStepSize() const;
-00099     size_t getPreferredBlockSize() const;
-00100 
-00101     size_t getMinChannelCount() const;
-00102     size_t getMaxChannelCount() const;
-00103 
-00104     OutputList getOutputDescriptors() const;
-00105 
-00106     FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-00107 
-00108     FeatureSet getRemainingFeatures();
-00109 
-00110 protected:
-00111     void convertFeatures(VampFeatureList *, FeatureSet &);
-00112 
-00113     const VampPluginDescriptor *m_descriptor;
-00114     VampPluginHandle m_handle;
-00115 };
-00116 
-00117 }
-00118 
-00119 _VAMP_SDK_HOSTSPACE_END(PluginHostAdapter.h)
-00120 
-00121 #endif
-00122 
-00123 
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006 Chris Cannam.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #ifndef _VAMP_PLUGIN_HOST_ADAPTER_H_
38 #define _VAMP_PLUGIN_HOST_ADAPTER_H_
39 
40 #include "hostguard.h"
41 #include "Plugin.h"
42 
43 #include <vamp/vamp.h>
44 
45 #include <vector>
46 
47 _VAMP_SDK_HOSTSPACE_BEGIN(PluginHostAdapter.h)
48 
49 namespace Vamp {
50 
68 class PluginHostAdapter : public Plugin
69 {
70 public:
71  PluginHostAdapter(const VampPluginDescriptor *descriptor,
72  float inputSampleRate);
73  virtual ~PluginHostAdapter();
74 
75  static std::vector<std::string> getPluginPath();
76 
77  bool initialise(size_t channels, size_t stepSize, size_t blockSize);
78  void reset();
79 
80  InputDomain getInputDomain() const;
81 
82  unsigned int getVampApiVersion() const;
83  std::string getIdentifier() const;
84  std::string getName() const;
85  std::string getDescription() const;
86  std::string getMaker() const;
87  int getPluginVersion() const;
88  std::string getCopyright() const;
89 
90  ParameterList getParameterDescriptors() const;
91  float getParameter(std::string) const;
92  void setParameter(std::string, float);
93 
94  ProgramList getPrograms() const;
95  std::string getCurrentProgram() const;
96  void selectProgram(std::string);
97 
98  size_t getPreferredStepSize() const;
99  size_t getPreferredBlockSize() const;
100 
101  size_t getMinChannelCount() const;
102  size_t getMaxChannelCount() const;
103 
104  OutputList getOutputDescriptors() const;
105 
106  FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
107 
108  FeatureSet getRemainingFeatures();
109 
110 protected:
111  void convertFeatures(VampFeatureList *, FeatureSet &);
112 
115 };
116 
117 }
118 
120 
121 #endif
122 
123 
std::vector< OutputDescriptor > OutputList
+
Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...
+ +
#define _VAMP_SDK_HOSTSPACE_BEGIN(h)
Definition: hostguard.h:56
+
std::map< int, FeatureList > FeatureSet
+
Definition: FFT.h:43
+ + + +
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language VampPluginDescri...
+ +
std::vector< std::string > ProgramList
+ +
void * VampPluginHandle
Definition: vamp.h:246
+
#define _VAMP_SDK_HOSTSPACE_END(h)
Definition: hostguard.h:59
+
const VampPluginDescriptor * m_descriptor
+ +
std::vector< ParameterDescriptor > ParameterList
+
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginInputDomainAdapter_8h.html --- a/code-docs/PluginInputDomainAdapter_8h.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PluginInputDomainAdapter_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PluginInputDomainAdapter.h File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -79,30 +66,57 @@
PluginInputDomainAdapter.h File Reference
- +
#include "hostguard.h"
+#include "PluginWrapper.h"
+
+Include dependency graph for PluginInputDomainAdapter.h:
+
+
+ + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+

Go to the source code of this file.

- - - + +

+

Classes

class  Vamp::HostExt::PluginInputDomainAdapter
 PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input into frequency-domain input for plugins that need it. More...

+

 PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input into frequency-domain input for plugins that need it. More...
 
+ - - + + + +

Namespaces

namespace  Vamp
namespace  Vamp::HostExt
 Vamp
 
 Vamp::HostExt
 
+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginInputDomainAdapter_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginInputDomainAdapter_8h__dep__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,4 @@ + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginInputDomainAdapter_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginInputDomainAdapter_8h__dep__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +3a100146b4d8aa9b3b4742f02ff3ad73 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginInputDomainAdapter_8h__dep__incl.png Binary file code-docs/PluginInputDomainAdapter_8h__dep__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginInputDomainAdapter_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginInputDomainAdapter_8h__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,9 @@ + + + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginInputDomainAdapter_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginInputDomainAdapter_8h__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +4d69d1e82dcdde36cac500af12498415 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginInputDomainAdapter_8h__incl.png Binary file code-docs/PluginInputDomainAdapter_8h__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginInputDomainAdapter_8h_source.html --- a/code-docs/PluginInputDomainAdapter_8h_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PluginInputDomainAdapter_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PluginInputDomainAdapter.h Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,130 +63,32 @@
PluginInputDomainAdapter.h
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006-2009 Chris Cannam and QMUL.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #ifndef _VAMP_PLUGIN_INPUT_DOMAIN_ADAPTER_H_
-00038 #define _VAMP_PLUGIN_INPUT_DOMAIN_ADAPTER_H_
-00039 
-00040 #include "hostguard.h"
-00041 #include "PluginWrapper.h"
-00042 
-00043 _VAMP_SDK_HOSTSPACE_BEGIN(PluginInputDomainAdapter.h)
-00044 
-00045 namespace Vamp {
-00046 
-00047 namespace HostExt {
-00048 
-00087 class PluginInputDomainAdapter : public PluginWrapper
-00088 {
-00089 public:
-00095     PluginInputDomainAdapter(Plugin *plugin);
-00096     virtual ~PluginInputDomainAdapter();
-00097     
-00098     bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-00099     void reset();
-00100 
-00101     InputDomain getInputDomain() const;
-00102 
-00103     size_t getPreferredStepSize() const;
-00104     size_t getPreferredBlockSize() const;
-00105 
-00106     FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-00107 
-00142     enum ProcessTimestampMethod {
-00143         ShiftTimestamp,
-00144         ShiftData,
-00145         NoShift
-00146     };
-00147 
-00156     void setProcessTimestampMethod(ProcessTimestampMethod);
-00157 
-00163     ProcessTimestampMethod getProcessTimestampMethod() const;
-00164 
-00190     RealTime getTimestampAdjustment() const;
-00191 
-00195     enum WindowType {
-00196 
-00197         RectangularWindow    = 0,
-00198 
-00199         BartlettWindow       = 1, 
-00200         TriangularWindow     = 1, 
-00201 
-00202         HammingWindow        = 2,
-00203 
-00204         HanningWindow        = 3, 
-00205         HannWindow           = 3, 
-00206 
-00207         BlackmanWindow       = 4,
-00208 
-00209         NuttallWindow        = 7,
-00210 
-00211         BlackmanHarrisWindow = 8
-00212     };
-00213 
-00217     WindowType getWindowType() const;
-00218     
-00222     void setWindowType(WindowType type);
-00223 
-00224 
-00225 protected:
-00226     class Impl;
-00227     Impl *m_impl;
-00228 };
-00229 
-00230 }
-00231 
-00232 }
-00233 
-00234 _VAMP_SDK_HOSTSPACE_END(PluginInputDomainAdapter.h)
-00235 
-00236 #endif
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006-2009 Chris Cannam and QMUL.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #ifndef _VAMP_PLUGIN_INPUT_DOMAIN_ADAPTER_H_
38 #define _VAMP_PLUGIN_INPUT_DOMAIN_ADAPTER_H_
39 
40 #include "hostguard.h"
41 #include "PluginWrapper.h"
42 
43 _VAMP_SDK_HOSTSPACE_BEGIN(PluginInputDomainAdapter.h)
44 
45 namespace Vamp {
46 
47 namespace HostExt {
48 
88 {
89 public:
96  virtual ~PluginInputDomainAdapter();
97 
98  bool initialise(size_t channels, size_t stepSize, size_t blockSize);
99  void reset();
100 
101  InputDomain getInputDomain() const;
102 
103  size_t getPreferredStepSize() const;
104  size_t getPreferredBlockSize() const;
105 
106  FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
107 
145  NoShift
146  };
147 
156  void setProcessTimestampMethod(ProcessTimestampMethod);
157 
163  ProcessTimestampMethod getProcessTimestampMethod() const;
164 
190  RealTime getTimestampAdjustment() const;
191 
195  enum WindowType {
196 
197  RectangularWindow = 0,
198 
199  BartlettWindow = 1,
200  TriangularWindow = 1,
201 
202  HammingWindow = 2,
203 
204  HanningWindow = 3,
205  HannWindow = 3,
206 
207  BlackmanWindow = 4,
208 
209  NuttallWindow = 7,
210 
211  BlackmanHarrisWindow = 8
212  };
213 
217  WindowType getWindowType() const;
218 
222  void setWindowType(WindowType type);
223 
224 
225 protected:
226  class Impl;
227  Impl *m_impl;
228 };
229 
230 }
231 
232 }
233 
235 
236 #endif
+
Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...
+ + +
#define _VAMP_SDK_HOSTSPACE_BEGIN(h)
Definition: hostguard.h:56
+
std::map< int, FeatureList > FeatureSet
+
Definition: FFT.h:43
+
PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input into frequency-doma...
+ +
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
WindowType
The set of supported window shapes.
+
PluginWrapper is a simple base class for adapter plugins.
Definition: PluginWrapper.h:62
+ +
#define _VAMP_SDK_HOSTSPACE_END(h)
Definition: hostguard.h:59
+ +
ProcessTimestampMethod
ProcessTimestampMethod determines how the PluginInputDomainAdapter handles timestamps for the data pa...
+
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginLoader_8h.html --- a/code-docs/PluginLoader_8h.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PluginLoader_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PluginLoader.h File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -79,30 +66,60 @@
PluginLoader.h File Reference
- +
#include <vector>
+#include <string>
+#include <map>
+#include "hostguard.h"
+#include "PluginWrapper.h"
+
+Include dependency graph for PluginLoader.h:
+
+
+ + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+

Go to the source code of this file.

- - - + +

+

Classes

class  Vamp::HostExt::PluginLoader
 Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp plugins using the typical plugin-path, library naming, and categorisation conventions described in the Vamp SDK documentation. More...

+

 Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp plugins using the typical plugin-path, library naming, and categorisation conventions described in the Vamp SDK documentation. More...
 
+ - - + + + +

Namespaces

namespace  Vamp
namespace  Vamp::HostExt
 Vamp
 
 Vamp::HostExt
 
+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginLoader_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginLoader_8h__dep__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,4 @@ + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginLoader_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginLoader_8h__dep__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +fae116fe2b70a517a99e7f55c5b8fa55 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginLoader_8h__dep__incl.png Binary file code-docs/PluginLoader_8h__dep__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginLoader_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginLoader_8h__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,9 @@ + + + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginLoader_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginLoader_8h__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +1aea8d8d75c3a33d338b77a3d0f8b156 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginLoader_8h__incl.png Binary file code-docs/PluginLoader_8h__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginLoader_8h_source.html --- a/code-docs/PluginLoader_8h_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PluginLoader_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PluginLoader.h Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,125 +63,29 @@
PluginLoader.h
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006-2009 Chris Cannam and QMUL.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #ifndef _VAMP_PLUGIN_LOADER_H_
-00038 #define _VAMP_PLUGIN_LOADER_H_
-00039 
-00040 #include <vector>
-00041 #include <string>
-00042 #include <map>
-00043 
-00044 #include "hostguard.h"
-00045 #include "PluginWrapper.h"
-00046 
-00047 _VAMP_SDK_HOSTSPACE_BEGIN(PluginLoader.h)
-00048 
-00049 namespace Vamp {
-00050 
-00051 class Plugin;
-00052 
-00053 namespace HostExt {
-00054 
-00072 class PluginLoader
-00073 {
-00074 public:
-00079     static PluginLoader *getInstance();
-00080 
-00101     typedef std::string PluginKey;
-00102 
-00107     typedef std::vector<PluginKey> PluginKeyList;
-00108 
-00119     typedef std::vector<std::string> PluginCategoryHierarchy;
-00120 
-00125     PluginKeyList listPlugins();
-00126 
-00169     enum AdapterFlags {
-00170 
-00171         ADAPT_INPUT_DOMAIN  = 0x01,
-00172         ADAPT_CHANNEL_COUNT = 0x02,
-00173         ADAPT_BUFFER_SIZE   = 0x04,
-00174 
-00175         ADAPT_ALL_SAFE      = 0x03,
-00176 
-00177         ADAPT_ALL           = 0xff
-00178     };
-00179 
-00197     Plugin *loadPlugin(PluginKey key,
-00198                        float inputSampleRate,
-00199                        int adapterFlags = 0);
-00200 
-00206     PluginKey composePluginKey(std::string libraryName,
-00207                                std::string identifier);
-00208 
-00218     PluginCategoryHierarchy getPluginCategory(PluginKey plugin);
-00219 
-00224     std::string getLibraryPathForPlugin(PluginKey plugin);
-00225 
-00226 protected:
-00227     PluginLoader();
-00228     virtual ~PluginLoader();
-00229 
-00230     class Impl;
-00231     Impl *m_impl;
-00232 
-00233     static PluginLoader *m_instance;
-00234 };
-00235 
-00236 }
-00237 
-00238 }
-00239 
-00240 _VAMP_SDK_HOSTSPACE_END(PluginLoader.h)
-00241 
-00242 #endif
-00243 
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006-2009 Chris Cannam and QMUL.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #ifndef _VAMP_PLUGIN_LOADER_H_
38 #define _VAMP_PLUGIN_LOADER_H_
39 
40 #include <vector>
41 #include <string>
42 #include <map>
43 
44 #include "hostguard.h"
45 #include "PluginWrapper.h"
46 
47 _VAMP_SDK_HOSTSPACE_BEGIN(PluginLoader.h)
48 
49 namespace Vamp {
50 
51 class Plugin;
52 
53 namespace HostExt {
54 
76 {
77 public:
82  static PluginLoader *getInstance();
83 
104  typedef std::string PluginKey;
105 
110  typedef std::vector<PluginKey> PluginKeyList;
111 
122  typedef std::vector<std::string> PluginCategoryHierarchy;
123 
128  PluginKeyList listPlugins();
129 
142  PluginKeyList listPluginsIn(std::vector<std::string> libraryNames);
143 
156  PluginKeyList listPluginsNotIn(std::vector<std::string> libraryNames);
157 
201 
202  ADAPT_INPUT_DOMAIN = 0x01,
203  ADAPT_CHANNEL_COUNT = 0x02,
204  ADAPT_BUFFER_SIZE = 0x04,
205 
206  ADAPT_ALL_SAFE = 0x03,
207 
208  ADAPT_ALL = 0xff
209  };
210 
228  Plugin *loadPlugin(PluginKey key,
229  float inputSampleRate,
230  int adapterFlags = 0);
231 
237  PluginKey composePluginKey(std::string libraryName,
238  std::string identifier);
239 
249  PluginCategoryHierarchy getPluginCategory(PluginKey plugin);
250 
255  std::string getLibraryPathForPlugin(PluginKey plugin);
256 
257 protected:
258  PluginLoader();
259  virtual ~PluginLoader();
260 
261  class Impl;
262  Impl *m_impl;
263 
265 };
266 
267 }
268 
269 }
270 
272 
273 #endif
274 
std::vector< PluginKey > PluginKeyList
PluginKeyList is a sequence of plugin keys, such as returned by listPlugins().
Definition: PluginLoader.h:110
+
Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...
+
#define _VAMP_SDK_HOSTSPACE_BEGIN(h)
Definition: hostguard.h:56
+
Definition: FFT.h:43
+
std::vector< std::string > PluginCategoryHierarchy
PluginCategoryHierarchy is a sequence of general->specific category names, as may be associated with ...
Definition: PluginLoader.h:122
+
static PluginLoader * m_instance
Definition: PluginLoader.h:264
+ +
AdapterFlags
AdapterFlags contains a set of values that may be OR&#39;d together to indicate in which circumstances Pl...
Definition: PluginLoader.h:200
+ +
#define _VAMP_SDK_HOSTSPACE_END(h)
Definition: hostguard.h:59
+
Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp plugins using the...
Definition: PluginLoader.h:75
+
std::string PluginKey
PluginKey is a string type that is used to identify a plugin uniquely within the scope of "the curren...
Definition: PluginLoader.h:104
+ +
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginSummarisingAdapter_8h.html --- a/code-docs/PluginSummarisingAdapter_8h.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PluginSummarisingAdapter_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PluginSummarisingAdapter.h File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -79,30 +66,57 @@
PluginSummarisingAdapter.h File Reference
- +
#include "hostguard.h"
+#include "PluginWrapper.h"
+#include <set>
+
+Include dependency graph for PluginSummarisingAdapter.h:
+
+
+ + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + +
+

Go to the source code of this file.

- - - + +

+

Classes

class  Vamp::HostExt::PluginSummarisingAdapter
 PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods such as mean and median averages of output features, for use in any context where an available plugin produces individual values but the result that is actually needed is some sort of aggregate. More...

+

 PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods such as mean and median averages of output features, for use in any context where an available plugin produces individual values but the result that is actually needed is some sort of aggregate. More...
 
+ - - + + + +

Namespaces

namespace  Vamp
namespace  Vamp::HostExt
 Vamp
 
 Vamp::HostExt
 
+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginSummarisingAdapter_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginSummarisingAdapter_8h__dep__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,3 @@ + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginSummarisingAdapter_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginSummarisingAdapter_8h__dep__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +830338b9d86f3ad7cdb2762d1a55d9bb \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginSummarisingAdapter_8h__dep__incl.png Binary file code-docs/PluginSummarisingAdapter_8h__dep__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginSummarisingAdapter_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginSummarisingAdapter_8h__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,9 @@ + + + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginSummarisingAdapter_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginSummarisingAdapter_8h__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +b891fc95100934608a0c4ee6dcf41569 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginSummarisingAdapter_8h__incl.png Binary file code-docs/PluginSummarisingAdapter_8h__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginSummarisingAdapter_8h_source.html --- a/code-docs/PluginSummarisingAdapter_8h_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PluginSummarisingAdapter_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PluginSummarisingAdapter.h Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,123 +63,31 @@
PluginSummarisingAdapter.h
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006-2009 Chris Cannam and QMUL.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #ifndef _VAMP_PLUGIN_SUMMARISING_ADAPTER_H_
-00038 #define _VAMP_PLUGIN_SUMMARISING_ADAPTER_H_
-00039 
-00040 #include "hostguard.h"
-00041 #include "PluginWrapper.h"
-00042 
-00043 #include <set>
-00044 
-00045 _VAMP_SDK_HOSTSPACE_BEGIN(PluginSummarisingAdapter.h)
-00046 
-00047 namespace Vamp {
-00048 
-00049 namespace HostExt {
-00050 
-00086 class PluginSummarisingAdapter : public PluginWrapper
-00087 {
-00088 public:
-00094     PluginSummarisingAdapter(Plugin *plugin); 
-00095     virtual ~PluginSummarisingAdapter();
-00096 
-00097     bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-00098 
-00099     void reset();
-00100 
-00101     FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-00102     FeatureSet getRemainingFeatures();
-00103 
-00104     typedef std::set<RealTime> SegmentBoundaries;
-00105 
-00119     void setSummarySegmentBoundaries(const SegmentBoundaries &);
-00120 
-00121     enum SummaryType {
-00122         Minimum            = 0,
-00123         Maximum            = 1,
-00124         Mean               = 2,
-00125         Median             = 3,
-00126         Mode               = 4,
-00127         Sum                = 5,
-00128         Variance           = 6,
-00129         StandardDeviation  = 7,
-00130         Count              = 8,
-00131 
-00132         UnknownSummaryType = 999
-00133     };
-00134 
-00157     enum AveragingMethod {
-00158         SampleAverage         = 0,
-00159         ContinuousTimeAverage = 1
-00160     };
-00161 
-00170     FeatureList getSummaryForOutput(int output,
-00171                                     SummaryType type,
-00172                                     AveragingMethod method = SampleAverage);
-00173 
-00183     FeatureSet getSummaryForAllOutputs(SummaryType type,
-00184                                        AveragingMethod method = SampleAverage);
-00185 
-00186 protected:
-00187     class Impl;
-00188     Impl *m_impl;
-00189 };
-00190 
-00191 }
-00192 
-00193 }
-00194 
-00195 _VAMP_SDK_HOSTSPACE_END(PluginSummarisingAdapter.h)
-00196 
-00197 #endif
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006-2009 Chris Cannam and QMUL.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #ifndef _VAMP_PLUGIN_SUMMARISING_ADAPTER_H_
38 #define _VAMP_PLUGIN_SUMMARISING_ADAPTER_H_
39 
40 #include "hostguard.h"
41 #include "PluginWrapper.h"
42 
43 #include <set>
44 
45 _VAMP_SDK_HOSTSPACE_BEGIN(PluginSummarisingAdapter.h)
46 
47 namespace Vamp {
48 
49 namespace HostExt {
50 
87 {
88 public:
95  virtual ~PluginSummarisingAdapter();
96 
97  bool initialise(size_t channels, size_t stepSize, size_t blockSize);
98 
99  void reset();
100 
101  FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
102  FeatureSet getRemainingFeatures();
103 
104  typedef std::set<RealTime> SegmentBoundaries;
105 
119  void setSummarySegmentBoundaries(const SegmentBoundaries &);
120 
121  enum SummaryType {
122  Minimum = 0,
123  Maximum = 1,
124  Mean = 2,
125  Median = 3,
126  Mode = 4,
127  Sum = 5,
128  Variance = 6,
129  StandardDeviation = 7,
130  Count = 8,
131 
132  UnknownSummaryType = 999
133  };
134 
158  SampleAverage = 0,
159  ContinuousTimeAverage = 1
160  };
161 
170  FeatureList getSummaryForOutput(int output,
171  SummaryType type,
172  AveragingMethod method = SampleAverage);
173 
183  FeatureSet getSummaryForAllOutputs(SummaryType type,
184  AveragingMethod method = SampleAverage);
185 
186 protected:
187  class Impl;
188  Impl *m_impl;
189 };
190 
191 }
192 
193 }
194 
196 
197 #endif
Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...
+
#define _VAMP_SDK_HOSTSPACE_BEGIN(h)
Definition: hostguard.h:56
+
std::map< int, FeatureList > FeatureSet
+
Definition: FFT.h:43
+ + +
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
PluginWrapper is a simple base class for adapter plugins.
Definition: PluginWrapper.h:62
+ +
#define _VAMP_SDK_HOSTSPACE_END(h)
Definition: hostguard.h:59
+
std::vector< Feature > FeatureList
+
PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods such as mean an...
+ +
AveragingMethod
AveragingMethod indicates how the adapter should handle average-based summaries of features whose res...
+ +
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginWrapper_8h.html --- a/code-docs/PluginWrapper_8h.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PluginWrapper_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PluginWrapper.h File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -79,30 +66,61 @@
PluginWrapper.h File Reference
- +
#include "hostguard.h"
+#include <vamp-hostsdk/Plugin.h>
+
+Include dependency graph for PluginWrapper.h:
+
+
+ + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + +
+

Go to the source code of this file.

- - - + +

+

Classes

class  Vamp::HostExt::PluginWrapper
 PluginWrapper is a simple base class for adapter plugins. More...

+

 PluginWrapper is a simple base class for adapter plugins. More...
 
+ - - + + + +

Namespaces

namespace  Vamp
namespace  Vamp::HostExt
 Vamp
 
 Vamp::HostExt
 
+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginWrapper_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginWrapper_8h__dep__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,9 @@ + + + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginWrapper_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginWrapper_8h__dep__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +afcb9bcfe8cfd9b24c0ef38c366fa10b \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginWrapper_8h__dep__incl.png Binary file code-docs/PluginWrapper_8h__dep__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginWrapper_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginWrapper_8h__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,8 @@ + + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginWrapper_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PluginWrapper_8h__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +0fbd9344b9b64d59e4213fbf90f638f6 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginWrapper_8h__incl.png Binary file code-docs/PluginWrapper_8h__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PluginWrapper_8h_source.html --- a/code-docs/PluginWrapper_8h_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PluginWrapper_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PluginWrapper.h Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,125 +63,31 @@
PluginWrapper.h
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006-2009 Chris Cannam and QMUL.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #ifndef _VAMP_PLUGIN_WRAPPER_H_
-00038 #define _VAMP_PLUGIN_WRAPPER_H_
-00039 
-00040 #include "hostguard.h"
-00041 #include <vamp-hostsdk/Plugin.h>
-00042 
-00043 _VAMP_SDK_HOSTSPACE_BEGIN(PluginWrapper.h)
-00044 
-00045 namespace Vamp {
-00046 
-00047 namespace HostExt {
-00048 
-00062 class PluginWrapper : public Plugin
-00063 {
-00064 public:
-00065     virtual ~PluginWrapper();
-00066     
-00067     bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-00068     void reset();
-00069 
-00070     InputDomain getInputDomain() const;
-00071 
-00072     unsigned int getVampApiVersion() const;
-00073     std::string getIdentifier() const;
-00074     std::string getName() const;
-00075     std::string getDescription() const;
-00076     std::string getMaker() const;
-00077     int getPluginVersion() const;
-00078     std::string getCopyright() const;
-00079 
-00080     ParameterList getParameterDescriptors() const;
-00081     float getParameter(std::string) const;
-00082     void setParameter(std::string, float);
-00083 
-00084     ProgramList getPrograms() const;
-00085     std::string getCurrentProgram() const;
-00086     void selectProgram(std::string);
-00087 
-00088     size_t getPreferredStepSize() const;
-00089     size_t getPreferredBlockSize() const;
-00090 
-00091     size_t getMinChannelCount() const;
-00092     size_t getMaxChannelCount() const;
-00093 
-00094     OutputList getOutputDescriptors() const;
-00095 
-00096     FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-00097 
-00098     FeatureSet getRemainingFeatures();
-00099 
-00115     template <typename WrapperType>
-00116     WrapperType *getWrapper() {
-00117         WrapperType *w = dynamic_cast<WrapperType *>(this);
-00118         if (w) return w;
-00119         PluginWrapper *pw = dynamic_cast<PluginWrapper *>(m_plugin);
-00120         if (pw) return pw->getWrapper<WrapperType>();
-00121         return 0;
-00122     }
-00123 
-00124 protected:
-00125     PluginWrapper(Plugin *plugin); // I take ownership of plugin
-00126     Plugin *m_plugin;
-00127 };
-00128 
-00129 }
-00130 
-00131 }
-00132 
-00133 _VAMP_SDK_HOSTSPACE_END(PluginWrapper.h)
-00134 
-00135 #endif
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006-2009 Chris Cannam and QMUL.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #ifndef _VAMP_PLUGIN_WRAPPER_H_
38 #define _VAMP_PLUGIN_WRAPPER_H_
39 
40 #include "hostguard.h"
41 #include <vamp-hostsdk/Plugin.h>
42 
43 _VAMP_SDK_HOSTSPACE_BEGIN(PluginWrapper.h)
44 
45 namespace Vamp {
46 
47 namespace HostExt {
48 
62 class PluginWrapper : public Plugin
63 {
64 public:
65  virtual ~PluginWrapper();
66 
67  bool initialise(size_t channels, size_t stepSize, size_t blockSize);
68  void reset();
69 
70  InputDomain getInputDomain() const;
71 
72  unsigned int getVampApiVersion() const;
73  std::string getIdentifier() const;
74  std::string getName() const;
75  std::string getDescription() const;
76  std::string getMaker() const;
77  int getPluginVersion() const;
78  std::string getCopyright() const;
79 
80  ParameterList getParameterDescriptors() const;
81  float getParameter(std::string) const;
82  void setParameter(std::string, float);
83 
84  ProgramList getPrograms() const;
85  std::string getCurrentProgram() const;
86  void selectProgram(std::string);
87 
88  size_t getPreferredStepSize() const;
89  size_t getPreferredBlockSize() const;
90 
91  size_t getMinChannelCount() const;
92  size_t getMaxChannelCount() const;
93 
94  OutputList getOutputDescriptors() const;
95 
96  FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
97 
98  FeatureSet getRemainingFeatures();
99 
115  template <typename WrapperType>
116  WrapperType *getWrapper() {
117  WrapperType *w = dynamic_cast<WrapperType *>(this);
118  if (w) return w;
119  PluginWrapper *pw = dynamic_cast<PluginWrapper *>(m_plugin);
120  if (pw) return pw->getWrapper<WrapperType>();
121  return 0;
122  }
123 
124 protected:
125  PluginWrapper(Plugin *plugin); // I take ownership of plugin
127 };
128 
129 }
130 
131 }
132 
134 
135 #endif
std::vector< OutputDescriptor > OutputList
+
Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...
+ +
#define _VAMP_SDK_HOSTSPACE_BEGIN(h)
Definition: hostguard.h:56
+
std::map< int, FeatureList > FeatureSet
+
Definition: FFT.h:43
+ +
WrapperType * getWrapper()
Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper&#39;s plugin...
+
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
PluginWrapper is a simple base class for adapter plugins.
Definition: PluginWrapper.h:62
+
std::vector< std::string > ProgramList
+ +
#define _VAMP_SDK_HOSTSPACE_END(h)
Definition: hostguard.h:59
+ +
std::vector< ParameterDescriptor > ParameterList
+
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PowerSpectrum_8cpp.html --- a/code-docs/PowerSpectrum_8cpp.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PowerSpectrum_8cpp.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PowerSpectrum.cpp File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,20 +63,32 @@
PowerSpectrum.cpp File Reference
- +
#include "PowerSpectrum.h"
+#include <math.h>
+
+Include dependency graph for PowerSpectrum.cpp:
+
+
+ + + + + + + +
+

Go to the source code of this file.

+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PowerSpectrum_8cpp__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PowerSpectrum_8cpp__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PowerSpectrum_8cpp__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PowerSpectrum_8cpp__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +4f60be202ac9d3f87fb6df6c07854306 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PowerSpectrum_8cpp__incl.png Binary file code-docs/PowerSpectrum_8cpp__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PowerSpectrum_8cpp_source.html --- a/code-docs/PowerSpectrum_8cpp_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PowerSpectrum_8cpp_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PowerSpectrum.cpp Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,188 +63,50 @@
PowerSpectrum.cpp
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2008 QMUL.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #include "PowerSpectrum.h"
-00038 
-00039 using std::string;
-00040 using std::cerr;
-00041 using std::endl;
-00042 
-00043 #include <math.h>
-00044 
-00045 PowerSpectrum::PowerSpectrum(float inputSampleRate) :
-00046     Plugin(inputSampleRate),
-00047     m_blockSize(0)
-00048 {
-00049 }
-00050 
-00051 PowerSpectrum::~PowerSpectrum()
-00052 {
-00053 }
-00054 
-00055 string
-00056 PowerSpectrum::getIdentifier() const
-00057 {
-00058     return "powerspectrum";
-00059 }
-00060 
-00061 string
-00062 PowerSpectrum::getName() const
-00063 {
-00064     return "Simple Power Spectrum";
-00065 }
-00066 
-00067 string
-00068 PowerSpectrum::getDescription() const
-00069 {
-00070     return "Return the power spectrum of a signal";
-00071 }
-00072 
-00073 string
-00074 PowerSpectrum::getMaker() const
-00075 {
-00076     return "Vamp SDK Example Plugins";
-00077 }
-00078 
-00079 int
-00080 PowerSpectrum::getPluginVersion() const
-00081 {
-00082     return 1;
-00083 }
-00084 
-00085 string
-00086 PowerSpectrum::getCopyright() const
-00087 {
-00088     return "Freely redistributable (BSD license)";
-00089 }
-00090 
-00091 bool
-00092 PowerSpectrum::initialise(size_t channels, size_t stepSize, size_t blockSize)
-00093 {
-00094     if (channels < getMinChannelCount() ||
-00095         channels > getMaxChannelCount()) return false;
-00096 
-00097     m_blockSize = blockSize;
-00098 
-00099     return true;
-00100 }
-00101 
-00102 void
-00103 PowerSpectrum::reset()
-00104 {
-00105 }
-00106 
-00107 PowerSpectrum::OutputList
-00108 PowerSpectrum::getOutputDescriptors() const
-00109 {
-00110     OutputList list;
-00111 
-00112     OutputDescriptor d;
-00113     d.identifier = "powerspectrum";
-00114     d.name = "Power Spectrum";
-00115     d.description = "Power values of the frequency spectrum bins calculated from the input signal";
-00116     d.unit = "";
-00117     d.hasFixedBinCount = true;
-00118     if (m_blockSize == 0) {
-00119         // Just so as not to return "1".  This is the bin count that
-00120         // would result from a block size of 1024, which is a likely
-00121         // default -- but the host should always set the block size
-00122         // before querying the bin count for certain.
-00123         d.binCount = 513;
-00124     } else {
-00125         d.binCount = m_blockSize / 2 + 1;
-00126     }
-00127     d.hasKnownExtents = false;
-00128     d.isQuantized = false;
-00129     d.sampleType = OutputDescriptor::OneSamplePerStep;
-00130     list.push_back(d);
-00131 
-00132     return list;
-00133 }
-00134 
-00135 PowerSpectrum::FeatureSet
-00136 PowerSpectrum::process(const float *const *inputBuffers, Vamp::RealTime timestamp)
-00137 {
-00138     FeatureSet fs;
-00139 
-00140     if (m_blockSize == 0) {
-00141         cerr << "ERROR: PowerSpectrum::process: Not initialised" << endl;
-00142         return fs;
-00143     }
-00144 
-00145     size_t n = m_blockSize / 2 + 1;
-00146     const float *fbuf = inputBuffers[0];
-00147 
-00148     Feature feature;
-00149     feature.hasTimestamp = false;
-00150     feature.values.reserve(n); // optional
-00151 
-00152     for (size_t i = 0; i < n; ++i) {
-00153 
-00154         double real = fbuf[i * 2];
-00155         double imag = fbuf[i * 2 + 1];
-00156 
-00157         feature.values.push_back(real * real + imag * imag);
-00158     }
-00159 
-00160     fs[0].push_back(feature);
-00161 
-00162     return fs;
-00163 }
-00164 
-00165 PowerSpectrum::FeatureSet
-00166 PowerSpectrum::getRemainingFeatures()
-00167 {
-00168     return FeatureSet();
-00169 }
-00170 
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2008 QMUL.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #include "PowerSpectrum.h"
38 
39 using std::string;
40 using std::cerr;
41 using std::endl;
42 
43 #include <math.h>
44 
45 PowerSpectrum::PowerSpectrum(float inputSampleRate) :
46  Plugin(inputSampleRate),
47  m_blockSize(0)
48 {
49 }
50 
52 {
53 }
54 
55 string
57 {
58  return "powerspectrum";
59 }
60 
61 string
63 {
64  return "Simple Power Spectrum";
65 }
66 
67 string
69 {
70  return "Return the power spectrum of a signal";
71 }
72 
73 string
75 {
76  return "Vamp SDK Example Plugins";
77 }
78 
79 int
81 {
82  return 1;
83 }
84 
85 string
87 {
88  return "Freely redistributable (BSD license)";
89 }
90 
91 bool
92 PowerSpectrum::initialise(size_t channels, size_t, size_t blockSize)
93 {
94  if (channels < getMinChannelCount() ||
95  channels > getMaxChannelCount()) return false;
96 
97  m_blockSize = blockSize;
98 
99  return true;
100 }
101 
102 void
104 {
105 }
106 
109 {
110  OutputList list;
111 
113  d.identifier = "powerspectrum";
114  d.name = "Power Spectrum";
115  d.description = "Power values of the frequency spectrum bins calculated from the input signal";
116  d.unit = "";
117  d.hasFixedBinCount = true;
118  if (m_blockSize == 0) {
119  // Just so as not to return "1". This is the bin count that
120  // would result from a block size of 1024, which is a likely
121  // default -- but the host should always set the block size
122  // before querying the bin count for certain.
123  d.binCount = 513;
124  } else {
125  d.binCount = m_blockSize / 2 + 1;
126  }
127  d.hasKnownExtents = false;
128  d.isQuantized = false;
130  list.push_back(d);
131 
132  return list;
133 }
134 
136 PowerSpectrum::process(const float *const *inputBuffers, Vamp::RealTime)
137 {
138  FeatureSet fs;
139 
140  if (m_blockSize == 0) {
141  cerr << "ERROR: PowerSpectrum::process: Not initialised" << endl;
142  return fs;
143  }
144 
145  size_t n = m_blockSize / 2 + 1;
146  const float *fbuf = inputBuffers[0];
147 
148  Feature feature;
149  feature.hasTimestamp = false;
150  feature.values.reserve(n); // optional
151 
152  for (size_t i = 0; i < n; ++i) {
153 
154  double real = fbuf[i * 2];
155  double imag = fbuf[i * 2 + 1];
156 
157  feature.values.push_back(real * real + imag * imag);
158  }
159 
160  fs[0].push_back(feature);
161 
162  return fs;
163 }
164 
167 {
168  return FeatureSet();
169 }
170 
std::vector< OutputDescriptor > OutputList
+
virtual ~PowerSpectrum()
+
std::string getName() const
Get a human-readable name or title of the plugin.
+ + +
bool hasFixedBinCount
True if the output has the same number of values per sample for every output sample.
+
int getPluginVersion() const
Get the version number of the plugin.
+
std::vector< float > values
Results for a single sample of this feature.
+
std::map< int, FeatureList > FeatureSet
+
std::string getMaker() const
Get the name of the author or vendor of the plugin in human-readable form.
+
std::string description
A human-readable short text describing the output.
+
std::string identifier
The name of the output, in computer-usable form.
+
std::string getIdentifier() const
Get the computer-usable name of the plugin.
+
FeatureSet process(const float *const *inputBuffers, Vamp::RealTime timestamp)
Process a single block of input data.
+ +
std::string unit
The unit of the output, in human-readable form.
+
virtual size_t getMinChannelCount() const
Get the minimum supported number of input channels.
+
std::string name
The human-readable name of the output.
+
virtual size_t getMaxChannelCount() const
Get the maximum supported number of input channels.
+
std::string getDescription() const
Get a human-readable description for the plugin, typically a line of text that may optionally be disp...
+
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
bool hasTimestamp
True if an output feature has its own timestamp.
+
bool initialise(size_t channels, size_t stepSize, size_t blockSize)
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).
+
FeatureSet getRemainingFeatures()
After all blocks have been processed, calculate and return any remaining features derived from the co...
+
OutputList getOutputDescriptors() const
Get the outputs of this plugin.
+
Results from each process() align with that call&#39;s block start.
+
size_t binCount
The number of values per result of the output.
+
void reset()
Reset the plugin after use, to prepare it for another clean run.
+
bool isQuantized
True if the output values are quantized to a particular resolution.
+
size_t m_blockSize
Definition: PowerSpectrum.h:76
+
std::string getCopyright() const
Get the copyright statement or licensing summary for the plugin.
+
PowerSpectrum(float inputSampleRate)
+
SampleType sampleType
Positioning in time of the output results.
+
bool hasKnownExtents
True if the results in each output bin fall within a fixed numeric range (minimum and maximum values)...
+
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PowerSpectrum_8h.html --- a/code-docs/PowerSpectrum_8h.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PowerSpectrum_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PowerSpectrum.h File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -78,26 +65,46 @@
PowerSpectrum.h File Reference
- +
#include "vamp-sdk/Plugin.h"
+
+Include dependency graph for PowerSpectrum.h:
+
+
+ + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+

Go to the source code of this file.

- - + +

+

Classes

class  PowerSpectrum
 Example plugin that returns a power spectrum calculated (trivially) from the frequency domain representation of each block of audio. More...
 Example plugin that returns a power spectrum calculated (trivially) from the frequency domain representation of each block of audio. More...
 
+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PowerSpectrum_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PowerSpectrum_8h__dep__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,4 @@ + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PowerSpectrum_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PowerSpectrum_8h__dep__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +3d7cf1eedb3477086df6897462e8193a \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PowerSpectrum_8h__dep__incl.png Binary file code-docs/PowerSpectrum_8h__dep__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PowerSpectrum_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PowerSpectrum_8h__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PowerSpectrum_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/PowerSpectrum_8h__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +8e8ebc8d2d5c55f935abd9873a4fa8b5 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PowerSpectrum_8h__incl.png Binary file code-docs/PowerSpectrum_8h__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/PowerSpectrum_8h_source.html --- a/code-docs/PowerSpectrum_8h_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/PowerSpectrum_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: PowerSpectrum.h Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,90 +63,39 @@
PowerSpectrum.h
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006 Chris Cannam.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #ifndef _POWER_SPECTRUM_PLUGIN_H_
-00038 #define _POWER_SPECTRUM_PLUGIN_H_
-00039 
-00040 #include "vamp-sdk/Plugin.h"
-00041 
-00050 class PowerSpectrum : public Vamp::Plugin
-00051 {
-00052 public:
-00053     PowerSpectrum(float inputSampleRate);
-00054     virtual ~PowerSpectrum();
-00055 
-00056     bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-00057     void reset();
-00058 
-00059     InputDomain getInputDomain() const { return FrequencyDomain; }
-00060 
-00061     std::string getIdentifier() const;
-00062     std::string getName() const;
-00063     std::string getDescription() const;
-00064     std::string getMaker() const;
-00065     int getPluginVersion() const;
-00066     std::string getCopyright() const;
-00067 
-00068     OutputList getOutputDescriptors() const;
-00069 
-00070     FeatureSet process(const float *const *inputBuffers,
-00071                        Vamp::RealTime timestamp);
-00072 
-00073     FeatureSet getRemainingFeatures();
-00074 
-00075 protected:
-00076     size_t m_blockSize;
-00077 };
-00078 
-00079 
-00080 #endif
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006 Chris Cannam.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #ifndef _POWER_SPECTRUM_PLUGIN_H_
38 #define _POWER_SPECTRUM_PLUGIN_H_
39 
40 #include "vamp-sdk/Plugin.h"
41 
51 {
52 public:
53  PowerSpectrum(float inputSampleRate);
54  virtual ~PowerSpectrum();
55 
56  bool initialise(size_t channels, size_t stepSize, size_t blockSize);
57  void reset();
58 
60 
61  std::string getIdentifier() const;
62  std::string getName() const;
63  std::string getDescription() const;
64  std::string getMaker() const;
65  int getPluginVersion() const;
66  std::string getCopyright() const;
67 
69 
70  FeatureSet process(const float *const *inputBuffers,
71  Vamp::RealTime timestamp);
72 
74 
75 protected:
76  size_t m_blockSize;
77 };
78 
79 
80 #endif
std::vector< OutputDescriptor > OutputList
+
virtual ~PowerSpectrum()
+
Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...
+ +
std::string getName() const
Get a human-readable name or title of the plugin.
+ +
int getPluginVersion() const
Get the version number of the plugin.
+
std::map< int, FeatureList > FeatureSet
+
std::string getMaker() const
Get the name of the author or vendor of the plugin in human-readable form.
+
std::string getIdentifier() const
Get the computer-usable name of the plugin.
+
FeatureSet process(const float *const *inputBuffers, Vamp::RealTime timestamp)
Process a single block of input data.
+
InputDomain getInputDomain() const
Get the plugin&#39;s required input domain.
Definition: PowerSpectrum.h:59
+
Example plugin that returns a power spectrum calculated (trivially) from the frequency domain represe...
Definition: PowerSpectrum.h:50
+
std::string getDescription() const
Get a human-readable description for the plugin, typically a line of text that may optionally be disp...
+
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
bool initialise(size_t channels, size_t stepSize, size_t blockSize)
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).
+
FeatureSet getRemainingFeatures()
After all blocks have been processed, calculate and return any remaining features derived from the co...
+
OutputList getOutputDescriptors() const
Get the outputs of this plugin.
+
void reset()
Reset the plugin after use, to prepare it for another clean run.
+ +
size_t m_blockSize
Definition: PowerSpectrum.h:76
+
std::string getCopyright() const
Get the copyright statement or licensing summary for the plugin.
+
PowerSpectrum(float inputSampleRate)
+
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/SpectralCentroid_8cpp.html --- a/code-docs/SpectralCentroid_8cpp.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/SpectralCentroid_8cpp.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: SpectralCentroid.cpp File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,20 +63,32 @@
SpectralCentroid.cpp File Reference
- +
#include "SpectralCentroid.h"
+#include <math.h>
+
+Include dependency graph for SpectralCentroid.cpp:
+
+
+ + + + + + + +
+

Go to the source code of this file.

+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/SpectralCentroid_8cpp__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/SpectralCentroid_8cpp__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/SpectralCentroid_8cpp__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/SpectralCentroid_8cpp__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +4ae791237fbcc085065a7bdf2b06a191 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/SpectralCentroid_8cpp__incl.png Binary file code-docs/SpectralCentroid_8cpp__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/SpectralCentroid_8cpp_source.html --- a/code-docs/SpectralCentroid_8cpp_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/SpectralCentroid_8cpp_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: SpectralCentroid.cpp Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,214 +63,52 @@
SpectralCentroid.cpp
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006 Chris Cannam.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #include "SpectralCentroid.h"
-00038 
-00039 using std::string;
-00040 using std::vector;
-00041 using std::cerr;
-00042 using std::endl;
-00043 
-00044 #include <math.h>
-00045 
-00046 #ifdef __SUNPRO_CC
-00047 #include <ieeefp.h>
-00048 #define isinf(x) (!finite(x))
-00049 #endif
-00050 
-00051 #ifdef WIN32
-00052 #define isnan(x) false
-00053 #define isinf(x) false
-00054 #endif
-00055 
-00056 SpectralCentroid::SpectralCentroid(float inputSampleRate) :
-00057     Plugin(inputSampleRate),
-00058     m_stepSize(0),
-00059     m_blockSize(0)
-00060 {
-00061 }
-00062 
-00063 SpectralCentroid::~SpectralCentroid()
-00064 {
-00065 }
-00066 
-00067 string
-00068 SpectralCentroid::getIdentifier() const
-00069 {
-00070     return "spectralcentroid";
-00071 }
-00072 
-00073 string
-00074 SpectralCentroid::getName() const
-00075 {
-00076     return "Spectral Centroid";
-00077 }
-00078 
-00079 string
-00080 SpectralCentroid::getDescription() const
-00081 {
-00082     return "Calculate the centroid frequency of the spectrum of the input signal";
-00083 }
-00084 
-00085 string
-00086 SpectralCentroid::getMaker() const
-00087 {
-00088     return "Vamp SDK Example Plugins";
-00089 }
-00090 
-00091 int
-00092 SpectralCentroid::getPluginVersion() const
-00093 {
-00094     return 2;
-00095 }
-00096 
-00097 string
-00098 SpectralCentroid::getCopyright() const
-00099 {
-00100     return "Freely redistributable (BSD license)";
-00101 }
-00102 
-00103 bool
-00104 SpectralCentroid::initialise(size_t channels, size_t stepSize, size_t blockSize)
-00105 {
-00106     if (channels < getMinChannelCount() ||
-00107         channels > getMaxChannelCount()) return false;
-00108 
-00109     m_stepSize = stepSize;
-00110     m_blockSize = blockSize;
-00111 
-00112     return true;
-00113 }
-00114 
-00115 void
-00116 SpectralCentroid::reset()
-00117 {
-00118 }
-00119 
-00120 SpectralCentroid::OutputList
-00121 SpectralCentroid::getOutputDescriptors() const
-00122 {
-00123     OutputList list;
-00124 
-00125     OutputDescriptor d;
-00126     d.identifier = "logcentroid";
-00127     d.name = "Log Frequency Centroid";
-00128     d.description = "Centroid of the log weighted frequency spectrum";
-00129     d.unit = "Hz";
-00130     d.hasFixedBinCount = true;
-00131     d.binCount = 1;
-00132     d.hasKnownExtents = false;
-00133     d.isQuantized = false;
-00134     d.sampleType = OutputDescriptor::OneSamplePerStep;
-00135     list.push_back(d);
-00136 
-00137     d.identifier = "linearcentroid";
-00138     d.name = "Linear Frequency Centroid";
-00139     d.description = "Centroid of the linear frequency spectrum";
-00140     list.push_back(d);
-00141 
-00142     return list;
-00143 }
-00144 
-00145 SpectralCentroid::FeatureSet
-00146 SpectralCentroid::process(const float *const *inputBuffers, Vamp::RealTime timestamp)
-00147 {
-00148     if (m_stepSize == 0) {
-00149         cerr << "ERROR: SpectralCentroid::process: "
-00150              << "SpectralCentroid has not been initialised"
-00151              << endl;
-00152         return FeatureSet();
-00153     }
-00154 
-00155     double numLin = 0.0, numLog = 0.0, denom = 0.0;
-00156 
-00157     for (size_t i = 1; i <= m_blockSize/2; ++i) {
-00158         double freq = (double(i) * m_inputSampleRate) / m_blockSize;
-00159         double real = inputBuffers[0][i*2];
-00160         double imag = inputBuffers[0][i*2 + 1];
-00161         double scalemag = sqrt(real * real + imag * imag) / (m_blockSize/2);
-00162         numLin += freq * scalemag;
-00163         numLog += log10f(freq) * scalemag;
-00164         denom += scalemag;
-00165     }
-00166 
-00167     FeatureSet returnFeatures;
-00168 
-00169     if (denom != 0.0) {
-00170         float centroidLin = float(numLin / denom);
-00171         float centroidLog = powf(10, float(numLog / denom));
-00172 
-00173         Feature feature;
-00174         feature.hasTimestamp = false;
-00175 
-00176         if (!isnan(centroidLog) && !isinf(centroidLog)) {
-00177             feature.values.push_back(centroidLog);
-00178         }
-00179         returnFeatures[0].push_back(feature);
-00180 
-00181         feature.values.clear();
-00182         if (!isnan(centroidLin) && !isinf(centroidLin)) {
-00183             feature.values.push_back(centroidLin);
-00184         }
-00185         returnFeatures[1].push_back(feature);
-00186     }
-00187 
-00188     return returnFeatures;
-00189 }
-00190 
-00191 SpectralCentroid::FeatureSet
-00192 SpectralCentroid::getRemainingFeatures()
-00193 {
-00194     return FeatureSet();
-00195 }
-00196 
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006 Chris Cannam.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #include "SpectralCentroid.h"
38 
39 using std::string;
40 using std::vector;
41 using std::cerr;
42 using std::endl;
43 
44 #include <math.h>
45 
46 #ifdef __SUNPRO_CC
47 #include <ieeefp.h>
48 #define isinf(x) (!finite(x))
49 #endif
50 
51 #ifdef WIN32
52 #define isnan(x) false
53 #define isinf(x) false
54 #endif
55 
56 SpectralCentroid::SpectralCentroid(float inputSampleRate) :
57  Plugin(inputSampleRate),
58  m_stepSize(0),
59  m_blockSize(0)
60 {
61 }
62 
64 {
65 }
66 
67 string
69 {
70  return "spectralcentroid";
71 }
72 
73 string
75 {
76  return "Spectral Centroid";
77 }
78 
79 string
81 {
82  return "Calculate the centroid frequency of the spectrum of the input signal";
83 }
84 
85 string
87 {
88  return "Vamp SDK Example Plugins";
89 }
90 
91 int
93 {
94  return 2;
95 }
96 
97 string
99 {
100  return "Freely redistributable (BSD license)";
101 }
102 
103 bool
104 SpectralCentroid::initialise(size_t channels, size_t stepSize, size_t blockSize)
105 {
106  if (channels < getMinChannelCount() ||
107  channels > getMaxChannelCount()) return false;
108 
109  m_stepSize = stepSize;
110  m_blockSize = blockSize;
111 
112  return true;
113 }
114 
115 void
117 {
118 }
119 
122 {
123  OutputList list;
124 
126  d.identifier = "logcentroid";
127  d.name = "Log Frequency Centroid";
128  d.description = "Centroid of the log weighted frequency spectrum";
129  d.unit = "Hz";
130  d.hasFixedBinCount = true;
131  d.binCount = 1;
132  d.hasKnownExtents = false;
133  d.isQuantized = false;
135  list.push_back(d);
136 
137  d.identifier = "linearcentroid";
138  d.name = "Linear Frequency Centroid";
139  d.description = "Centroid of the linear frequency spectrum";
140  list.push_back(d);
141 
142  return list;
143 }
144 
146 SpectralCentroid::process(const float *const *inputBuffers, Vamp::RealTime)
147 {
148  if (m_stepSize == 0) {
149  cerr << "ERROR: SpectralCentroid::process: "
150  << "SpectralCentroid has not been initialised"
151  << endl;
152  return FeatureSet();
153  }
154 
155  double numLin = 0.0, numLog = 0.0, denom = 0.0;
156 
157  for (size_t i = 1; i <= m_blockSize/2; ++i) {
158  double freq = (double(i) * m_inputSampleRate) / m_blockSize;
159  double real = inputBuffers[0][i*2];
160  double imag = inputBuffers[0][i*2 + 1];
161  double scalemag = sqrt(real * real + imag * imag) / (m_blockSize/2);
162  numLin += freq * scalemag;
163  numLog += log10f(freq) * scalemag;
164  denom += scalemag;
165  }
166 
167  FeatureSet returnFeatures;
168 
169  if (denom != 0.0) {
170  float centroidLin = float(numLin / denom);
171  float centroidLog = powf(10, float(numLog / denom));
172 
173  Feature feature;
174  feature.hasTimestamp = false;
175 
176  if (!isnan(centroidLog) && !isinf(centroidLog)) {
177  feature.values.push_back(centroidLog);
178  }
179  returnFeatures[0].push_back(feature);
180 
181  feature.values.clear();
182  if (!isnan(centroidLin) && !isinf(centroidLin)) {
183  feature.values.push_back(centroidLin);
184  }
185  returnFeatures[1].push_back(feature);
186  }
187 
188  return returnFeatures;
189 }
190 
193 {
194  return FeatureSet();
195 }
196 
std::vector< OutputDescriptor > OutputList
+
std::string getCopyright() const
Get the copyright statement or licensing summary for the plugin.
+
OutputList getOutputDescriptors() const
Get the outputs of this plugin.
+ +
bool hasFixedBinCount
True if the output has the same number of values per sample for every output sample.
+
std::vector< float > values
Results for a single sample of this feature.
+
std::map< int, FeatureList > FeatureSet
+
FeatureSet process(const float *const *inputBuffers, Vamp::RealTime timestamp)
Process a single block of input data.
+
void reset()
Reset the plugin after use, to prepare it for another clean run.
+
std::string description
A human-readable short text describing the output.
+
std::string getName() const
Get a human-readable name or title of the plugin.
+
std::string identifier
The name of the output, in computer-usable form.
+ + + +
int getPluginVersion() const
Get the version number of the plugin.
+ +
float m_inputSampleRate
+
std::string unit
The unit of the output, in human-readable form.
+
virtual size_t getMinChannelCount() const
Get the minimum supported number of input channels.
+
std::string name
The human-readable name of the output.
+
virtual size_t getMaxChannelCount() const
Get the maximum supported number of input channels.
+
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
bool hasTimestamp
True if an output feature has its own timestamp.
+
std::string getMaker() const
Get the name of the author or vendor of the plugin in human-readable form.
+
std::string getIdentifier() const
Get the computer-usable name of the plugin.
+
SpectralCentroid(float inputSampleRate)
+
std::string getDescription() const
Get a human-readable description for the plugin, typically a line of text that may optionally be disp...
+
virtual ~SpectralCentroid()
+
Results from each process() align with that call&#39;s block start.
+
size_t binCount
The number of values per result of the output.
+
bool isQuantized
True if the output values are quantized to a particular resolution.
+
SampleType sampleType
Positioning in time of the output results.
+
bool initialise(size_t channels, size_t stepSize, size_t blockSize)
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).
+
bool hasKnownExtents
True if the results in each output bin fall within a fixed numeric range (minimum and maximum values)...
+
FeatureSet getRemainingFeatures()
After all blocks have been processed, calculate and return any remaining features derived from the co...
+
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/SpectralCentroid_8h.html --- a/code-docs/SpectralCentroid_8h.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/SpectralCentroid_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: SpectralCentroid.h File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -78,26 +65,46 @@
SpectralCentroid.h File Reference
- +
#include "vamp-sdk/Plugin.h"
+
+Include dependency graph for SpectralCentroid.h:
+
+
+ + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+

Go to the source code of this file.

- - + +

+

Classes

class  SpectralCentroid
 Example plugin that calculates the centre of gravity of the frequency domain representation of each block of audio. More...
 Example plugin that calculates the centre of gravity of the frequency domain representation of each block of audio. More...
 
+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/SpectralCentroid_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/SpectralCentroid_8h__dep__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,4 @@ + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/SpectralCentroid_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/SpectralCentroid_8h__dep__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +296844ea6d7a10cd42f410798a297cc2 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/SpectralCentroid_8h__dep__incl.png Binary file code-docs/SpectralCentroid_8h__dep__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/SpectralCentroid_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/SpectralCentroid_8h__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/SpectralCentroid_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/SpectralCentroid_8h__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +2480608793d9519e5588b8d82606a636 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/SpectralCentroid_8h__incl.png Binary file code-docs/SpectralCentroid_8h__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/SpectralCentroid_8h_source.html --- a/code-docs/SpectralCentroid_8h_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/SpectralCentroid_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: SpectralCentroid.h Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,91 +63,40 @@
SpectralCentroid.h
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006 Chris Cannam.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #ifndef _SPECTRAL_CENTROID_PLUGIN_H_
-00038 #define _SPECTRAL_CENTROID_PLUGIN_H_
-00039 
-00040 #include "vamp-sdk/Plugin.h"
-00041 
-00047 class SpectralCentroid : public Vamp::Plugin
-00048 {
-00049 public:
-00050     SpectralCentroid(float inputSampleRate);
-00051     virtual ~SpectralCentroid();
-00052 
-00053     bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-00054     void reset();
-00055 
-00056     InputDomain getInputDomain() const { return FrequencyDomain; }
-00057 
-00058     std::string getIdentifier() const;
-00059     std::string getName() const;
-00060     std::string getDescription() const;
-00061     std::string getMaker() const;
-00062     int getPluginVersion() const;
-00063     std::string getCopyright() const;
-00064 
-00065     OutputList getOutputDescriptors() const;
-00066 
-00067     FeatureSet process(const float *const *inputBuffers,
-00068                        Vamp::RealTime timestamp);
-00069 
-00070     FeatureSet getRemainingFeatures();
-00071 
-00072 protected:
-00073     size_t m_stepSize;
-00074     size_t m_blockSize;
-00075 };
-00076 
-00077 
-00078 #endif
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006 Chris Cannam.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #ifndef _SPECTRAL_CENTROID_PLUGIN_H_
38 #define _SPECTRAL_CENTROID_PLUGIN_H_
39 
40 #include "vamp-sdk/Plugin.h"
41 
48 {
49 public:
50  SpectralCentroid(float inputSampleRate);
51  virtual ~SpectralCentroid();
52 
53  bool initialise(size_t channels, size_t stepSize, size_t blockSize);
54  void reset();
55 
57 
58  std::string getIdentifier() const;
59  std::string getName() const;
60  std::string getDescription() const;
61  std::string getMaker() const;
62  int getPluginVersion() const;
63  std::string getCopyright() const;
64 
66 
67  FeatureSet process(const float *const *inputBuffers,
68  Vamp::RealTime timestamp);
69 
71 
72 protected:
73  size_t m_stepSize;
74  size_t m_blockSize;
75 };
76 
77 
78 #endif
std::vector< OutputDescriptor > OutputList
+
std::string getCopyright() const
Get the copyright statement or licensing summary for the plugin.
+
Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...
+
OutputList getOutputDescriptors() const
Get the outputs of this plugin.
+ + +
std::map< int, FeatureList > FeatureSet
+
FeatureSet process(const float *const *inputBuffers, Vamp::RealTime timestamp)
Process a single block of input data.
+
void reset()
Reset the plugin after use, to prepare it for another clean run.
+
std::string getName() const
Get a human-readable name or title of the plugin.
+ + +
int getPluginVersion() const
Get the version number of the plugin.
+
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
std::string getMaker() const
Get the name of the author or vendor of the plugin in human-readable form.
+
std::string getIdentifier() const
Get the computer-usable name of the plugin.
+
SpectralCentroid(float inputSampleRate)
+
std::string getDescription() const
Get a human-readable description for the plugin, typically a line of text that may optionally be disp...
+
virtual ~SpectralCentroid()
+
InputDomain getInputDomain() const
Get the plugin&#39;s required input domain.
+ +
Example plugin that calculates the centre of gravity of the frequency domain representation of each b...
+
bool initialise(size_t channels, size_t stepSize, size_t blockSize)
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).
+
FeatureSet getRemainingFeatures()
After all blocks have been processed, calculate and return any remaining features derived from the co...
+
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ZeroCrossing_8cpp.html --- a/code-docs/ZeroCrossing_8cpp.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/ZeroCrossing_8cpp.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: ZeroCrossing.cpp File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,20 +63,33 @@
ZeroCrossing.cpp File Reference
- +
#include "ZeroCrossing.h"
+#include <cmath>
+#include <algorithm>
+
+Include dependency graph for ZeroCrossing.cpp:
+
+
+ + + + + + + +
+

Go to the source code of this file.

+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ZeroCrossing_8cpp__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/ZeroCrossing_8cpp__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ZeroCrossing_8cpp__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/ZeroCrossing_8cpp__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +6d609b65713c70dae913ff0fda673624 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ZeroCrossing_8cpp__incl.png Binary file code-docs/ZeroCrossing_8cpp__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ZeroCrossing_8cpp_source.html --- a/code-docs/ZeroCrossing_8cpp_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/ZeroCrossing_8cpp_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: ZeroCrossing.cpp Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,213 +63,57 @@
ZeroCrossing.cpp
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006 Chris Cannam.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #include "ZeroCrossing.h"
-00038 
-00039 using std::string;
-00040 using std::vector;
-00041 using std::cerr;
-00042 using std::endl;
-00043 
-00044 #include <cmath>
-00045 
-00046 ZeroCrossing::ZeroCrossing(float inputSampleRate) :
-00047     Plugin(inputSampleRate),
-00048     m_stepSize(0),
-00049     m_previousSample(0.0f)
-00050 {
-00051 }
-00052 
-00053 ZeroCrossing::~ZeroCrossing()
-00054 {
-00055 }
-00056 
-00057 string
-00058 ZeroCrossing::getIdentifier() const
-00059 {
-00060     return "zerocrossing";
-00061 }
-00062 
-00063 string
-00064 ZeroCrossing::getName() const
-00065 {
-00066     return "Zero Crossings";
-00067 }
-00068 
-00069 string
-00070 ZeroCrossing::getDescription() const
-00071 {
-00072     return "Detect and count zero crossing points";
-00073 }
-00074 
-00075 string
-00076 ZeroCrossing::getMaker() const
-00077 {
-00078     return "Vamp SDK Example Plugins";
-00079 }
-00080 
-00081 int
-00082 ZeroCrossing::getPluginVersion() const
-00083 {
-00084     return 2;
-00085 }
-00086 
-00087 string
-00088 ZeroCrossing::getCopyright() const
-00089 {
-00090     return "Freely redistributable (BSD license)";
-00091 }
-00092 
-00093 bool
-00094 ZeroCrossing::initialise(size_t channels, size_t stepSize, size_t blockSize)
-00095 {
-00096     if (channels < getMinChannelCount() ||
-00097         channels > getMaxChannelCount()) return false;
-00098 
-00099     m_stepSize = std::min(stepSize, blockSize);
-00100 
-00101     return true;
-00102 }
-00103 
-00104 void
-00105 ZeroCrossing::reset()
-00106 {
-00107     m_previousSample = 0.0f;
-00108 }
-00109 
-00110 ZeroCrossing::OutputList
-00111 ZeroCrossing::getOutputDescriptors() const
-00112 {
-00113     OutputList list;
-00114 
-00115     OutputDescriptor zc;
-00116     zc.identifier = "counts";
-00117     zc.name = "Zero Crossing Counts";
-00118     zc.description = "The number of zero crossing points per processing block";
-00119     zc.unit = "crossings";
-00120     zc.hasFixedBinCount = true;
-00121     zc.binCount = 1;
-00122     zc.hasKnownExtents = false;
-00123     zc.isQuantized = true;
-00124     zc.quantizeStep = 1.0;
-00125     zc.sampleType = OutputDescriptor::OneSamplePerStep;
-00126     list.push_back(zc);
-00127 
-00128     zc.identifier = "zerocrossings";
-00129     zc.name = "Zero Crossings";
-00130     zc.description = "The locations of zero crossing points";
-00131     zc.unit = "";
-00132     zc.hasFixedBinCount = true;
-00133     zc.binCount = 0;
-00134     zc.sampleType = OutputDescriptor::VariableSampleRate;
-00135     zc.sampleRate = m_inputSampleRate;
-00136     list.push_back(zc);
-00137 
-00138     return list;
-00139 }
-00140 
-00141 ZeroCrossing::FeatureSet
-00142 ZeroCrossing::process(const float *const *inputBuffers,
-00143                       Vamp::RealTime timestamp)
-00144 {
-00145     if (m_stepSize == 0) {
-00146         cerr << "ERROR: ZeroCrossing::process: "
-00147              << "ZeroCrossing has not been initialised"
-00148              << endl;
-00149         return FeatureSet();
-00150     }
-00151 
-00152     float prev = m_previousSample;
-00153     size_t count = 0;
-00154 
-00155     FeatureSet returnFeatures;
-00156 
-00157     for (size_t i = 0; i < m_stepSize; ++i) {
-00158 
-00159         float sample = inputBuffers[0][i];
-00160         bool crossing = false;
-00161 
-00162         if (sample <= 0.0) {
-00163             if (prev > 0.0) crossing = true;
-00164         } else if (sample > 0.0) {
-00165             if (prev <= 0.0) crossing = true;
-00166         }
-00167 
-00168         if (crossing) {
-00169             ++count; 
-00170             Feature feature;
-00171             feature.hasTimestamp = true;
-00172             feature.timestamp = timestamp +
-00173                 Vamp::RealTime::frame2RealTime(i, (size_t)m_inputSampleRate);
-00174             returnFeatures[1].push_back(feature);
-00175         }
-00176 
-00177         prev = sample;
-00178     }
-00179 
-00180     m_previousSample = prev;
-00181 
-00182     Feature feature;
-00183     feature.hasTimestamp = false;
-00184     feature.values.push_back(float(count));
-00185 
-00186     returnFeatures[0].push_back(feature);
-00187     return returnFeatures;
-00188 }
-00189 
-00190 ZeroCrossing::FeatureSet
-00191 ZeroCrossing::getRemainingFeatures()
-00192 {
-00193     return FeatureSet();
-00194 }
-00195 
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006 Chris Cannam.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #include "ZeroCrossing.h"
38 
39 using std::string;
40 using std::vector;
41 using std::cerr;
42 using std::endl;
43 
44 #include <cmath>
45 #include <algorithm>
46 
47 ZeroCrossing::ZeroCrossing(float inputSampleRate) :
48  Plugin(inputSampleRate),
49  m_stepSize(0),
50  m_previousSample(0.0f)
51 {
52 }
53 
55 {
56 }
57 
58 string
60 {
61  return "zerocrossing";
62 }
63 
64 string
66 {
67  return "Zero Crossings";
68 }
69 
70 string
72 {
73  return "Detect and count zero crossing points";
74 }
75 
76 string
78 {
79  return "Vamp SDK Example Plugins";
80 }
81 
82 int
84 {
85  return 2;
86 }
87 
88 string
90 {
91  return "Freely redistributable (BSD license)";
92 }
93 
94 bool
95 ZeroCrossing::initialise(size_t channels, size_t stepSize, size_t blockSize)
96 {
97  if (channels < getMinChannelCount() ||
98  channels > getMaxChannelCount()) return false;
99 
100  m_stepSize = std::min(stepSize, blockSize);
101 
102  return true;
103 }
104 
105 void
107 {
108  m_previousSample = 0.0f;
109 }
110 
113 {
114  OutputList list;
115 
116  OutputDescriptor zc;
117  zc.identifier = "counts";
118  zc.name = "Zero Crossing Counts";
119  zc.description = "The number of zero crossing points per processing block";
120  zc.unit = "crossings";
121  zc.hasFixedBinCount = true;
122  zc.binCount = 1;
123  zc.hasKnownExtents = false;
124  zc.isQuantized = true;
125  zc.quantizeStep = 1.0;
127  list.push_back(zc);
128 
129  zc.identifier = "zerocrossings";
130  zc.name = "Zero Crossings";
131  zc.description = "The locations of zero crossing points";
132  zc.unit = "";
133  zc.hasFixedBinCount = true;
134  zc.binCount = 0;
137  list.push_back(zc);
138 
139  return list;
140 }
141 
143 ZeroCrossing::process(const float *const *inputBuffers,
144  Vamp::RealTime timestamp)
145 {
146  if (m_stepSize == 0) {
147  cerr << "ERROR: ZeroCrossing::process: "
148  << "ZeroCrossing has not been initialised"
149  << endl;
150  return FeatureSet();
151  }
152 
153  float prev = m_previousSample;
154  size_t count = 0;
155 
156  FeatureSet returnFeatures;
157 
158  for (size_t i = 0; i < m_stepSize; ++i) {
159 
160  float sample = inputBuffers[0][i];
161  bool crossing = false;
162 
163  if (sample <= 0.0) {
164  if (prev > 0.0) crossing = true;
165  } else if (sample > 0.0) {
166  if (prev <= 0.0) crossing = true;
167  }
168 
169  if (crossing) {
170  ++count;
171  Feature feature;
172  feature.hasTimestamp = true;
173  feature.timestamp = timestamp +
175  returnFeatures[1].push_back(feature);
176  }
177 
178  prev = sample;
179  }
180 
181  m_previousSample = prev;
182 
183  Feature feature;
184  feature.hasTimestamp = false;
185  feature.values.push_back(float(count));
186 
187  returnFeatures[0].push_back(feature);
188  return returnFeatures;
189 }
190 
193 {
194  return FeatureSet();
195 }
196 
std::vector< OutputDescriptor > OutputList
+
FeatureSet process(const float *const *inputBuffers, Vamp::RealTime timestamp)
Process a single block of input data.
+ +
float sampleRate
Sample rate of the output results, as samples per second.
+
OutputList getOutputDescriptors() const
Get the outputs of this plugin.
+
bool hasFixedBinCount
True if the output has the same number of values per sample for every output sample.
+
std::vector< float > values
Results for a single sample of this feature.
+
bool initialise(size_t channels, size_t stepSize, size_t blockSize)
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).
+
std::map< int, FeatureList > FeatureSet
+
size_t m_stepSize
Definition: ZeroCrossing.h:73
+
float quantizeStep
Quantization resolution of the output values (e.g.
+
FeatureSet getRemainingFeatures()
After all blocks have been processed, calculate and return any remaining features derived from the co...
+
RealTime timestamp
Timestamp of the output feature.
+
std::string description
A human-readable short text describing the output.
+
void reset()
Reset the plugin after use, to prepare it for another clean run.
+
std::string identifier
The name of the output, in computer-usable form.
+ +
float m_inputSampleRate
+
std::string getIdentifier() const
Get the computer-usable name of the plugin.
+
virtual ~ZeroCrossing()
+
ZeroCrossing(float inputSampleRate)
+
std::string unit
The unit of the output, in human-readable form.
+
virtual size_t getMinChannelCount() const
Get the minimum supported number of input channels.
+
std::string name
The human-readable name of the output.
+ +
virtual size_t getMaxChannelCount() const
Get the maximum supported number of input channels.
+
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
bool hasTimestamp
True if an output feature has its own timestamp.
+
int getPluginVersion() const
Get the version number of the plugin.
+
std::string getMaker() const
Get the name of the author or vendor of the plugin in human-readable form.
+
static RealTime frame2RealTime(long frame, unsigned int sampleRate)
Convert a sample frame at the given sample rate into a RealTime.
+
std::string getCopyright() const
Get the copyright statement or licensing summary for the plugin.
+
std::string getName() const
Get a human-readable name or title of the plugin.
+
std::string getDescription() const
Get a human-readable description for the plugin, typically a line of text that may optionally be disp...
+
Results from each process() align with that call&#39;s block start.
+
size_t binCount
The number of values per result of the output.
+
float m_previousSample
Definition: ZeroCrossing.h:74
+
bool isQuantized
True if the output values are quantized to a particular resolution.
+
SampleType sampleType
Positioning in time of the output results.
+
Results are unevenly spaced and have individual timestamps.
+
bool hasKnownExtents
True if the results in each output bin fall within a fixed numeric range (minimum and maximum values)...
+
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ZeroCrossing_8h.html --- a/code-docs/ZeroCrossing_8h.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/ZeroCrossing_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: ZeroCrossing.h File Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -78,26 +65,46 @@
ZeroCrossing.h File Reference
- +
#include "vamp-sdk/Plugin.h"
+
+Include dependency graph for ZeroCrossing.h:
+
+
+ + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+

Go to the source code of this file.

- - + +

+

Classes

class  ZeroCrossing
 Example plugin that calculates the positions and density of zero-crossing points in an audio waveform. More...
 Example plugin that calculates the positions and density of zero-crossing points in an audio waveform. More...
 
+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ZeroCrossing_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/ZeroCrossing_8h__dep__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,4 @@ + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ZeroCrossing_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/ZeroCrossing_8h__dep__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +2c8fa5859109ad72bb853495d3d61c99 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ZeroCrossing_8h__dep__incl.png Binary file code-docs/ZeroCrossing_8h__dep__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ZeroCrossing_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/ZeroCrossing_8h__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ZeroCrossing_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/ZeroCrossing_8h__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +b464dc0e3be5ca7c1026c8edc695f13b \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ZeroCrossing_8h__incl.png Binary file code-docs/ZeroCrossing_8h__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ZeroCrossing_8h_source.html --- a/code-docs/ZeroCrossing_8h_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/ZeroCrossing_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: ZeroCrossing.h Source File - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -76,91 +63,40 @@
ZeroCrossing.h
-Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-00002 
-00003 /*
-00004     Vamp
-00005 
-00006     An API for audio analysis and feature extraction plugins.
-00007 
-00008     Centre for Digital Music, Queen Mary, University of London.
-00009     Copyright 2006 Chris Cannam.
-00010   
-00011     Permission is hereby granted, free of charge, to any person
-00012     obtaining a copy of this software and associated documentation
-00013     files (the "Software"), to deal in the Software without
-00014     restriction, including without limitation the rights to use, copy,
-00015     modify, merge, publish, distribute, sublicense, and/or sell copies
-00016     of the Software, and to permit persons to whom the Software is
-00017     furnished to do so, subject to the following conditions:
-00018 
-00019     The above copyright notice and this permission notice shall be
-00020     included in all copies or substantial portions of the Software.
-00021 
-00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-00029 
-00030     Except as contained in this notice, the names of the Centre for
-00031     Digital Music; Queen Mary, University of London; and Chris Cannam
-00032     shall not be used in advertising or otherwise to promote the sale,
-00033     use or other dealings in this Software without prior written
-00034     authorization.
-00035 */
-00036 
-00037 #ifndef _ZERO_CROSSING_PLUGIN_H_
-00038 #define _ZERO_CROSSING_PLUGIN_H_
-00039 
-00040 #include "vamp-sdk/Plugin.h"
-00041 
-00047 class ZeroCrossing : public Vamp::Plugin
-00048 {
-00049 public:
-00050     ZeroCrossing(float inputSampleRate);
-00051     virtual ~ZeroCrossing();
-00052 
-00053     bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-00054     void reset();
-00055 
-00056     InputDomain getInputDomain() const { return TimeDomain; }
-00057 
-00058     std::string getIdentifier() const;
-00059     std::string getName() const;
-00060     std::string getDescription() const;
-00061     std::string getMaker() const;
-00062     int getPluginVersion() const;
-00063     std::string getCopyright() const;
-00064 
-00065     OutputList getOutputDescriptors() const;
-00066 
-00067     FeatureSet process(const float *const *inputBuffers,
-00068                        Vamp::RealTime timestamp);
-00069 
-00070     FeatureSet getRemainingFeatures();
-00071 
-00072 protected:
-00073     size_t m_stepSize;
-00074     float m_previousSample;
-00075 };
-00076 
-00077 
-00078 #endif
-
+Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Vamp
5 
6  An API for audio analysis and feature extraction plugins.
7 
8  Centre for Digital Music, Queen Mary, University of London.
9  Copyright 2006 Chris Cannam.
10 
11  Permission is hereby granted, free of charge, to any person
12  obtaining a copy of this software and associated documentation
13  files (the "Software"), to deal in the Software without
14  restriction, including without limitation the rights to use, copy,
15  modify, merge, publish, distribute, sublicense, and/or sell copies
16  of the Software, and to permit persons to whom the Software is
17  furnished to do so, subject to the following conditions:
18 
19  The above copyright notice and this permission notice shall be
20  included in all copies or substantial portions of the Software.
21 
22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 
30  Except as contained in this notice, the names of the Centre for
31  Digital Music; Queen Mary, University of London; and Chris Cannam
32  shall not be used in advertising or otherwise to promote the sale,
33  use or other dealings in this Software without prior written
34  authorization.
35 */
36 
37 #ifndef _ZERO_CROSSING_PLUGIN_H_
38 #define _ZERO_CROSSING_PLUGIN_H_
39 
40 #include "vamp-sdk/Plugin.h"
41 
47 class ZeroCrossing : public Vamp::Plugin
48 {
49 public:
50  ZeroCrossing(float inputSampleRate);
51  virtual ~ZeroCrossing();
52 
53  bool initialise(size_t channels, size_t stepSize, size_t blockSize);
54  void reset();
55 
57 
58  std::string getIdentifier() const;
59  std::string getName() const;
60  std::string getDescription() const;
61  std::string getMaker() const;
62  int getPluginVersion() const;
63  std::string getCopyright() const;
64 
66 
67  FeatureSet process(const float *const *inputBuffers,
68  Vamp::RealTime timestamp);
69 
71 
72 protected:
73  size_t m_stepSize;
75 };
76 
77 
78 #endif
std::vector< OutputDescriptor > OutputList
+
FeatureSet process(const float *const *inputBuffers, Vamp::RealTime timestamp)
Process a single block of input data.
+
Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...
+ +
OutputList getOutputDescriptors() const
Get the outputs of this plugin.
+
bool initialise(size_t channels, size_t stepSize, size_t blockSize)
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).
+
Example plugin that calculates the positions and density of zero-crossing points in an audio waveform...
Definition: ZeroCrossing.h:47
+
std::map< int, FeatureList > FeatureSet
+
size_t m_stepSize
Definition: ZeroCrossing.h:73
+
FeatureSet getRemainingFeatures()
After all blocks have been processed, calculate and return any remaining features derived from the co...
+
void reset()
Reset the plugin after use, to prepare it for another clean run.
+
std::string getIdentifier() const
Get the computer-usable name of the plugin.
+
virtual ~ZeroCrossing()
+
ZeroCrossing(float inputSampleRate)
+
InputDomain getInputDomain() const
Get the plugin&#39;s required input domain.
Definition: ZeroCrossing.h:56
+ +
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
+
int getPluginVersion() const
Get the version number of the plugin.
+
std::string getMaker() const
Get the name of the author or vendor of the plugin in human-readable form.
+
std::string getCopyright() const
Get the copyright statement or licensing summary for the plugin.
+
std::string getName() const
Get a human-readable name or title of the plugin.
+
std::string getDescription() const
Get a human-readable description for the plugin, typically a line of text that may optionally be disp...
+
float m_previousSample
Definition: ZeroCrossing.h:74
+ +
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/annotated.html --- a/code-docs/annotated.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/annotated.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Class List - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -77,49 +63,53 @@
Class List
-
Here are the classes, structs, unions and interfaces with brief descriptions:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 123]
_VampFeature
_VampFeatureList
_VampFeatureUnion
_VampFeatureV2
_VampOutputDescriptor
_VampParameterDescriptorC language API for Vamp plugins
_VampPluginDescriptor
AmplitudeFollowerExample plugin implementing the SuperCollider amplitude follower function
FixedTempoEstimator::D
Vamp::Plugin::Feature
Vamp::FFTA simple FFT implementation provided for convenience of plugin authors
FixedTempoEstimatorExample plugin that estimates the tempo of a short fixed-tempo sample
Vamp::Plugin::OutputDescriptor
Vamp::PluginBase::ParameterDescriptor
PercussionOnsetDetectorExample plugin that detects percussive events
Vamp::PluginVamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio or related data
Vamp::PluginAdapter< P >PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular plugin implementation
Vamp::PluginAdapterBasePluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library can use to make its C++ Vamp::Plugin objects available through the Vamp C API
Vamp::PluginBaseA base class for plugins with optional configurable parameters, programs, etc
Vamp::HostExt::PluginBufferingAdapterPluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by a host supplying an audio stream in non-overlapping buffers of arbitrary size
Vamp::HostExt::PluginChannelAdapterPluginChannelAdapter is a Vamp plugin adapter that implements a policy for management of plugins that expect a different number of input channels from the number actually available in the source audio data
Vamp::PluginHostAdapterPluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language VampPluginDescriptor object appear as a C++ Vamp::Plugin object
Vamp::HostExt::PluginInputDomainAdapterPluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input into frequency-domain input for plugins that need it
Vamp::HostExt::PluginLoaderVamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp plugins using the typical plugin-path, library naming, and categorisation conventions described in the Vamp SDK documentation
Vamp::HostExt::PluginSummarisingAdapterPluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods such as mean and median averages of output features, for use in any context where an available plugin produces individual values but the result that is actually needed is some sort of aggregate
Vamp::HostExt::PluginWrapperPluginWrapper is a simple base class for adapter plugins
PowerSpectrumExample plugin that returns a power spectrum calculated (trivially) from the frequency domain representation of each block of audio
Vamp::RealTimeRealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conversion functions
SpectralCentroidExample plugin that calculates the centre of gravity of the frequency domain representation of each block of audio
ZeroCrossingExample plugin that calculates the positions and density of zero-crossing points in an audio waveform
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 NVamp
 NHostExt
 CPluginBufferingAdapterPluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by a host supplying an audio stream in non-overlapping buffers of arbitrary size
 CPluginChannelAdapterPluginChannelAdapter is a Vamp plugin adapter that implements a policy for management of plugins that expect a different number of input channels from the number actually available in the source audio data
 CPluginInputDomainAdapterPluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input into frequency-domain input for plugins that need it
 CPluginLoaderVamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp plugins using the typical plugin-path, library naming, and categorisation conventions described in the Vamp SDK documentation
 CPluginSummarisingAdapterPluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods such as mean and median averages of output features, for use in any context where an available plugin produces individual values but the result that is actually needed is some sort of aggregate
 CPluginWrapperPluginWrapper is a simple base class for adapter plugins
 CFFTA simple FFT implementation provided for convenience of plugin authors
 CFFTComplexA simple FFT implementation provided for convenience of plugin authors
 CFFTRealA simple FFT implementation provided for convenience of plugin authors
 CPluginVamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio or related data
 CFeature
 COutputDescriptor
 CPluginAdapterPluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular plugin implementation
 CPluginAdapterBasePluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library can use to make its C++ Vamp::Plugin objects available through the Vamp C API
 CPluginBaseA base class for plugins with optional configurable parameters, programs, etc
 CParameterDescriptor
 CPluginHostAdapterPluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language VampPluginDescriptor object appear as a C++ Vamp::Plugin object
 CRealTimeRealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conversion functions
 C_VampFeature
 C_VampFeatureList
 C_VampFeatureUnion
 C_VampFeatureV2
 C_VampOutputDescriptor
 C_VampParameterDescriptorC language API for Vamp plugins
 C_VampPluginDescriptor
 CAmplitudeFollowerExample plugin implementing the SuperCollider amplitude follower function
 CFixedTempoEstimatorExample plugin that estimates the tempo of a short fixed-tempo sample
 CD
 CPercussionOnsetDetectorExample plugin that detects percussive events
 CPowerSpectrumExample plugin that returns a power spectrum calculated (trivially) from the frequency domain representation of each block of audio
 CSpectralCentroidExample plugin that calculates the centre of gravity of the frequency domain representation of each block of audio
 CZeroCrossingExample plugin that calculates the positions and density of zero-crossing points in an audio waveform
+
+ + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/annotated.js --- a/code-docs/annotated.js Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -var annotated = -[ - [ "_VampFeature", "struct__VampFeature.html", "struct__VampFeature" ], - [ "_VampFeatureList", "struct__VampFeatureList.html", "struct__VampFeatureList" ], - [ "_VampFeatureUnion", "union__VampFeatureUnion.html", "union__VampFeatureUnion" ], - [ "_VampFeatureV2", "struct__VampFeatureV2.html", "struct__VampFeatureV2" ], - [ "_VampOutputDescriptor", "struct__VampOutputDescriptor.html", "struct__VampOutputDescriptor" ], - [ "_VampParameterDescriptor", "struct__VampParameterDescriptor.html", "struct__VampParameterDescriptor" ], - [ "_VampPluginDescriptor", "struct__VampPluginDescriptor.html", "struct__VampPluginDescriptor" ], - [ "AmplitudeFollower", "classAmplitudeFollower.html", "classAmplitudeFollower" ], - [ "FixedTempoEstimator::D", "classFixedTempoEstimator_1_1D.html", "classFixedTempoEstimator_1_1D" ], - [ "Vamp::Plugin::Feature", "structVamp_1_1Plugin_1_1Feature.html", "structVamp_1_1Plugin_1_1Feature" ], - [ "Vamp::FFT", "classVamp_1_1FFT.html", "classVamp_1_1FFT" ], - [ "FixedTempoEstimator", "classFixedTempoEstimator.html", "classFixedTempoEstimator" ], - [ "Vamp::Plugin::OutputDescriptor", "structVamp_1_1Plugin_1_1OutputDescriptor.html", "structVamp_1_1Plugin_1_1OutputDescriptor" ], - [ "Vamp::PluginBase::ParameterDescriptor", "structVamp_1_1PluginBase_1_1ParameterDescriptor.html", "structVamp_1_1PluginBase_1_1ParameterDescriptor" ], - [ "PercussionOnsetDetector", "classPercussionOnsetDetector.html", "classPercussionOnsetDetector" ], - [ "Vamp::Plugin", "classVamp_1_1Plugin.html", "classVamp_1_1Plugin" ], - [ "Vamp::PluginAdapter< P >", "classVamp_1_1PluginAdapter.html", "classVamp_1_1PluginAdapter" ], - [ "Vamp::PluginAdapterBase", "classVamp_1_1PluginAdapterBase.html", "classVamp_1_1PluginAdapterBase" ], - [ "Vamp::PluginBase", "classVamp_1_1PluginBase.html", "classVamp_1_1PluginBase" ], - [ "Vamp::HostExt::PluginBufferingAdapter", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html", "classVamp_1_1HostExt_1_1PluginBufferingAdapter" ], - [ "Vamp::HostExt::PluginChannelAdapter", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html", "classVamp_1_1HostExt_1_1PluginChannelAdapter" ], - [ "Vamp::PluginHostAdapter", "classVamp_1_1PluginHostAdapter.html", "classVamp_1_1PluginHostAdapter" ], - [ "Vamp::HostExt::PluginInputDomainAdapter", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter" ], - [ "Vamp::HostExt::PluginLoader", "classVamp_1_1HostExt_1_1PluginLoader.html", "classVamp_1_1HostExt_1_1PluginLoader" ], - [ "Vamp::HostExt::PluginSummarisingAdapter", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter" ], - [ "Vamp::HostExt::PluginWrapper", "classVamp_1_1HostExt_1_1PluginWrapper.html", "classVamp_1_1HostExt_1_1PluginWrapper" ], - [ "PowerSpectrum", "classPowerSpectrum.html", "classPowerSpectrum" ], - [ "Vamp::RealTime", "structVamp_1_1RealTime.html", "structVamp_1_1RealTime" ], - [ "SpectralCentroid", "classSpectralCentroid.html", "classSpectralCentroid" ], - [ "ZeroCrossing", "classZeroCrossing.html", "classZeroCrossing" ] -]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/annotated_dup.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/annotated_dup.js Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,17 @@ +var annotated_dup = +[ + [ "Vamp", "namespaceVamp.html", "namespaceVamp" ], + [ "_VampFeature", "struct__VampFeature.html", "struct__VampFeature" ], + [ "_VampFeatureList", "struct__VampFeatureList.html", "struct__VampFeatureList" ], + [ "_VampFeatureUnion", "union__VampFeatureUnion.html", "union__VampFeatureUnion" ], + [ "_VampFeatureV2", "struct__VampFeatureV2.html", "struct__VampFeatureV2" ], + [ "_VampOutputDescriptor", "struct__VampOutputDescriptor.html", "struct__VampOutputDescriptor" ], + [ "_VampParameterDescriptor", "struct__VampParameterDescriptor.html", "struct__VampParameterDescriptor" ], + [ "_VampPluginDescriptor", "struct__VampPluginDescriptor.html", "struct__VampPluginDescriptor" ], + [ "AmplitudeFollower", "classAmplitudeFollower.html", "classAmplitudeFollower" ], + [ "FixedTempoEstimator", "classFixedTempoEstimator.html", "classFixedTempoEstimator" ], + [ "PercussionOnsetDetector", "classPercussionOnsetDetector.html", "classPercussionOnsetDetector" ], + [ "PowerSpectrum", "classPowerSpectrum.html", "classPowerSpectrum" ], + [ "SpectralCentroid", "classSpectralCentroid.html", "classSpectralCentroid" ], + [ "ZeroCrossing", "classZeroCrossing.html", "classZeroCrossing" ] +]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/bc_s.png Binary file code-docs/bc_s.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/bdwn.png Binary file code-docs/bdwn.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classAmplitudeFollower-members.html --- a/code-docs/classAmplitudeFollower-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classAmplitudeFollower-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
@@ -77,60 +63,60 @@
AmplitudeFollower Member List
-This is the complete list of members for AmplitudeFollower, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

This is the complete list of members for AmplitudeFollower, including all inherited members.

+
AmplitudeFollower(float inputSampleRate)AmplitudeFollower
FeatureList typedefVamp::Plugin
FeatureSet typedefVamp::Plugin
FrequencyDomain enum valueVamp::Plugin
getCopyright() const AmplitudeFollower [virtual]
getCurrentProgram() const Vamp::PluginBase [inline, virtual]
getDescription() const AmplitudeFollower [virtual]
getIdentifier() const AmplitudeFollower [virtual]
getInputDomain() const AmplitudeFollower [inline, virtual]
getMaker() const AmplitudeFollower [virtual]
getMaxChannelCount() const Vamp::Plugin [inline, virtual]
getMinChannelCount() const Vamp::Plugin [inline, virtual]
getName() const AmplitudeFollower [virtual]
getOutputDescriptors() const AmplitudeFollower [virtual]
getParameter(std::string paramid) const AmplitudeFollower [virtual]
getParameterDescriptors() const AmplitudeFollower [virtual]
getPluginVersion() const AmplitudeFollower [virtual]
getPreferredBlockSize() const Vamp::Plugin [inline, virtual]
getPreferredStepSize() const Vamp::Plugin [inline, virtual]
getPrograms() const Vamp::PluginBase [inline, virtual]
getRemainingFeatures()AmplitudeFollower [virtual]
getType() const Vamp::Plugin [inline, virtual]
getVampApiVersion() const Vamp::PluginBase [inline, virtual]
initialise(size_t channels, size_t stepSize, size_t blockSize)AmplitudeFollower [virtual]
InputDomain enum nameVamp::Plugin
m_clampcoefAmplitudeFollower [protected]
m_inputSampleRateVamp::Plugin [protected]
m_previnAmplitudeFollower [protected]
m_relaxcoefAmplitudeFollower [protected]
m_stepSizeAmplitudeFollower [protected]
OutputList typedefVamp::Plugin
ParameterList typedefVamp::PluginBase
Plugin(float inputSampleRate)Vamp::Plugin [inline, protected]
process(const float *const *inputBuffers, Vamp::RealTime timestamp)AmplitudeFollower [virtual]
ProgramList typedefVamp::PluginBase
reset()AmplitudeFollower [virtual]
selectProgram(std::string)Vamp::PluginBase [inline, virtual]
setParameter(std::string paramid, float newval)AmplitudeFollower [virtual]
TimeDomain enum valueVamp::Plugin
~AmplitudeFollower()AmplitudeFollower [virtual]
~Plugin()Vamp::Plugin [inline, virtual]
~PluginBase()Vamp::PluginBase [inline, virtual]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AmplitudeFollower(float inputSampleRate)AmplitudeFollower
FeatureList typedefVamp::Plugin
FeatureSet typedefVamp::Plugin
FrequencyDomain enum valueVamp::Plugin
getCopyright() constAmplitudeFollowervirtual
getCurrentProgram() constVamp::PluginBaseinlinevirtual
getDescription() constAmplitudeFollowervirtual
getIdentifier() constAmplitudeFollowervirtual
getInputDomain() constAmplitudeFollowerinlinevirtual
getMaker() constAmplitudeFollowervirtual
getMaxChannelCount() constVamp::Plugininlinevirtual
getMinChannelCount() constVamp::Plugininlinevirtual
getName() constAmplitudeFollowervirtual
getOutputDescriptors() constAmplitudeFollowervirtual
getParameter(std::string paramid) constAmplitudeFollowervirtual
getParameterDescriptors() constAmplitudeFollowervirtual
getPluginVersion() constAmplitudeFollowervirtual
getPreferredBlockSize() constVamp::Plugininlinevirtual
getPreferredStepSize() constVamp::Plugininlinevirtual
getPrograms() constVamp::PluginBaseinlinevirtual
getRemainingFeatures()AmplitudeFollowervirtual
getType() constVamp::Plugininlinevirtual
getVampApiVersion() constVamp::PluginBaseinlinevirtual
initialise(size_t channels, size_t stepSize, size_t blockSize)AmplitudeFollowervirtual
InputDomain enum nameVamp::Plugin
m_clampcoefAmplitudeFollowerprotected
m_inputSampleRateVamp::Pluginprotected
m_previnAmplitudeFollowerprotected
m_relaxcoefAmplitudeFollowerprotected
m_stepSizeAmplitudeFollowerprotected
OutputList typedefVamp::Plugin
ParameterList typedefVamp::PluginBase
Plugin(float inputSampleRate)Vamp::Plugininlineprotected
process(const float *const *inputBuffers, Vamp::RealTime timestamp)AmplitudeFollowervirtual
ProgramList typedefVamp::PluginBase
reset()AmplitudeFollowervirtual
selectProgram(std::string)Vamp::PluginBaseinlinevirtual
setParameter(std::string paramid, float newval)AmplitudeFollowervirtual
TimeDomain enum valueVamp::Plugin
~AmplitudeFollower()AmplitudeFollowervirtual
~Plugin()Vamp::Plugininlinevirtual
~PluginBase()Vamp::PluginBaseinlinevirtual
+
+ + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classAmplitudeFollower.html --- a/code-docs/classAmplitudeFollower.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classAmplitudeFollower.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: AmplitudeFollower Class Reference - - + + - + - - + -
- - +
- - - - - -
+
VampPluginSDK -  2.4 +  2.7
-
- - - - -
+ + + + + + +
AmplitudeFollower Class Reference
@@ -91,236 +78,337 @@
Inheritance graph
- + + +
[legend]
- -

List of all members.

- - + + + - - + + + + + - +

+

Public Types

enum  InputDomain { TimeDomain, FrequencyDomain }
typedef std::vector
-< OutputDescriptor
OutputList
 
typedef std::vector< OutputDescriptorOutputList
 
typedef std::vector< FeatureFeatureList
typedef std::map< int,
-FeatureList
FeatureSet
typedef std::vector
-< ParameterDescriptor
ParameterList
 
typedef std::map< int, FeatureListFeatureSet
 
typedef std::vector< ParameterDescriptorParameterList
 
typedef std::vector< std::string > ProgramList

+

 
+ - + + + - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + +

Public Member Functions

 AmplitudeFollower (float inputSampleRate)
 An implementation of SuperCollider's amplitude-follower algorithm as a simple Vamp plugin.
 An implementation of SuperCollider's amplitude-follower algorithm as a simple Vamp plugin. More...
 
virtual ~AmplitudeFollower ()
 
bool initialise (size_t channels, size_t stepSize, size_t blockSize)
 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).
 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). More...
 
void reset ()
 Reset the plugin after use, to prepare it for another clean run.
InputDomain getInputDomain () const
 Get the plugin's required input domain.
std::string getIdentifier () const
 Get the computer-usable name of the plugin.
std::string getName () const
 Get a human-readable name or title of the plugin.
std::string getDescription () const
 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".
std::string getMaker () const
 Get the name of the author or vendor of the plugin in human-readable form.
int getPluginVersion () const
 Get the version number of the plugin.
std::string getCopyright () const
 Get the copyright statement or licensing summary for the plugin.
OutputList getOutputDescriptors () const
 Get the outputs of this plugin.
ParameterList getParameterDescriptors () const
 Get the controllable parameters of this plugin.
float getParameter (std::string paramid) const
 Get the value of a named parameter.
 Reset the plugin after use, to prepare it for another clean run. More...
 
InputDomain getInputDomain () const
 Get the plugin's required input domain. More...
 
std::string getIdentifier () const
 Get the computer-usable name of the plugin. More...
 
std::string getName () const
 Get a human-readable name or title of the plugin. More...
 
std::string getDescription () const
 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". More...
 
std::string getMaker () const
 Get the name of the author or vendor of the plugin in human-readable form. More...
 
int getPluginVersion () const
 Get the version number of the plugin. More...
 
std::string getCopyright () const
 Get the copyright statement or licensing summary for the plugin. More...
 
OutputList getOutputDescriptors () const
 Get the outputs of this plugin. More...
 
ParameterList getParameterDescriptors () const
 Get the controllable parameters of this plugin. More...
 
float getParameter (std::string paramid) const
 Get the value of a named parameter. More...
 
void setParameter (std::string paramid, float newval)
 Set a named parameter.
 Set a named parameter. More...
 
FeatureSet process (const float *const *inputBuffers, Vamp::RealTime timestamp)
 Process a single block of input data.
 Process a single block of input data. More...
 
FeatureSet getRemainingFeatures ()
 After all blocks have been processed, calculate and return any remaining features derived from the complete input.
virtual size_t getPreferredBlockSize () const
 Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).
virtual size_t getPreferredStepSize () const
 Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.
virtual size_t getMinChannelCount () const
 Get the minimum supported number of input channels.
virtual size_t getMaxChannelCount () const
 Get the maximum supported number of input channels.
virtual std::string getType () const
 Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.
virtual unsigned int getVampApiVersion () const
 Get the Vamp API compatibility level of the plugin.
virtual ProgramList getPrograms () const
 Get the program settings available in this plugin.
virtual std::string getCurrentProgram () const
 Get the current program.
 After all blocks have been processed, calculate and return any remaining features derived from the complete input. More...
 
virtual size_t getPreferredBlockSize () const
 Get the preferred block size (window size – the number of sample frames passed in each block to the process() function). More...
 
virtual size_t getPreferredStepSize () const
 Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin. More...
 
virtual size_t getMinChannelCount () const
 Get the minimum supported number of input channels. More...
 
virtual size_t getMaxChannelCount () const
 Get the maximum supported number of input channels. More...
 
virtual std::string getType () const
 Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase. More...
 
virtual unsigned int getVampApiVersion () const
 Get the Vamp API compatibility level of the plugin. More...
 
virtual ProgramList getPrograms () const
 Get the program settings available in this plugin. More...
 
virtual std::string getCurrentProgram () const
 Get the current program. More...
 
virtual void selectProgram (std::string)
 Select a program.

+

 Select a program. More...
 
+ + + + + +

Protected Attributes

size_t m_stepSize
 
float m_previn
 
float m_clampcoef
 
float m_relaxcoef
 
float m_inputSampleRate
 
-

Detailed Description

+

Detailed Description

Example plugin implementing the SuperCollider amplitude follower function.

-

Definition at line 47 of file AmplitudeFollower.h.

-

Member Typedef Documentation

- +

Definition at line 47 of file AmplitudeFollower.h.

+

Member Typedef Documentation

+ +

◆ OutputList

+ +
+
+ + + + + +
+ + + + +
typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList
+
+inherited
+
+ +

Definition at line 335 of file vamp-sdk/Plugin.h.

+ +
+
+ +

◆ FeatureList

+ +
+
+ + + + + +
+ + + + +
typedef std::vector<Feature> Vamp::Plugin::FeatureList
+
+inherited
+
+ +

Definition at line 393 of file vamp-sdk/Plugin.h.

+ +
+
+ +

◆ FeatureSet

+ +
+
+ + + + + +
+ + + + +
typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet
+
+inherited
+
+ +

Definition at line 395 of file vamp-sdk/Plugin.h.

+ +
+
+ +

◆ ParameterList

+ +
+
+ + + + + +
+ + + + +
typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList
+
+inherited
+
+ +

Definition at line 203 of file vamp-sdk/PluginBase.h.

+ +
+
+ +

◆ ProgramList

+ +
+
+ + + + + +
+ + + + +
typedef std::vector<std::string> Vamp::PluginBase::ProgramList
+
+inherited
+
+ +

Definition at line 225 of file vamp-sdk/PluginBase.h.

+ +
+
+

Member Enumeration Documentation

+ +

◆ InputDomain

+ +
+
+ + + + + +
+ + + + +
enum Vamp::Plugin::InputDomain
+
+inherited
+
+ + + +
Enumerator
TimeDomain 
FrequencyDomain 
+ +

Definition at line 152 of file vamp-sdk/Plugin.h.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ AmplitudeFollower()

+
- - -
typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList [inherited]
-
-
- -

Definition at line 327 of file vamp-sdk/Plugin.h.

- -
-
- -
-
- - - - -
typedef std::vector<Feature> Vamp::Plugin::FeatureList [inherited]
-
-
- -

Definition at line 385 of file vamp-sdk/Plugin.h.

- -
-
- -
-
- - - - -
typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet [inherited]
-
-
- -

Definition at line 387 of file vamp-sdk/Plugin.h.

- -
-
- -
-
- - - - -
typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList [inherited]
-
-
- -

Definition at line 199 of file vamp-sdk/PluginBase.h.

- -
-
- -
-
- - - - -
typedef std::vector<std::string> Vamp::PluginBase::ProgramList [inherited]
-
-
- -

Definition at line 221 of file vamp-sdk/PluginBase.h.

- -
-
-

Member Enumeration Documentation

- -
-
- - - - -
enum Vamp::Plugin::InputDomain [inherited]
-
-
-
Enumerator:
- - -
TimeDomain  -
FrequencyDomain  -
-
-
- -

Definition at line 152 of file vamp-sdk/Plugin.h.

- -
-
-

Constructor & Destructor Documentation

- -
-
- - - +
AmplitudeFollower::AmplitudeFollower AmplitudeFollower::AmplitudeFollower ( float  inputSampleRate)
-
-
+

An implementation of SuperCollider's amplitude-follower algorithm as a simple Vamp plugin.

-

Definition at line 55 of file AmplitudeFollower.cpp.

+

Definition at line 56 of file AmplitudeFollower.cpp.

- + +

◆ ~AmplitudeFollower()

+
+ + + + + +
- + - +
AmplitudeFollower::~AmplitudeFollower AmplitudeFollower::~AmplitudeFollower ( ) [virtual]
- -
+
+virtual
+
-

Definition at line 64 of file AmplitudeFollower.cpp.

+

Definition at line 65 of file AmplitudeFollower.cpp.

-

Member Function Documentation

- +

Member Function Documentation

+ +

◆ initialise()

+
+ + + + + +
- + @@ -340,11 +428,15 @@ - +
bool AmplitudeFollower::initialise bool AmplitudeFollower::initialise ( size_t  inputChannels,
) [virtual]
- -
+
+virtual
+

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).

The input sample rate should have been already specified at construction time.

@@ -352,76 +444,103 @@

Implements Vamp::Plugin.

-

Definition at line 105 of file AmplitudeFollower.cpp.

+

Definition at line 106 of file AmplitudeFollower.cpp.

-

References Vamp::Plugin::getMaxChannelCount(), Vamp::Plugin::getMinChannelCount(), m_clampcoef, Vamp::Plugin::m_inputSampleRate, m_relaxcoef, and m_stepSize.

+

References Vamp::Plugin::getMaxChannelCount(), Vamp::Plugin::getMinChannelCount(), m_clampcoef, Vamp::Plugin::m_inputSampleRate, m_relaxcoef, and m_stepSize.

- + +

◆ reset()

+
+ + + + + +
- + - +
void AmplitudeFollower::reset void AmplitudeFollower::reset ( ) [virtual]
- -
+
+virtual
+

Reset the plugin after use, to prepare it for another clean run.

Not called for the first initialisation (i.e. initialise must also do a reset).

Implements Vamp::Plugin.

-

Definition at line 122 of file AmplitudeFollower.cpp.

+

Definition at line 123 of file AmplitudeFollower.cpp.

-

References m_previn.

+

References m_previn.

- + +

◆ getInputDomain()

+
+ + + + + +
- + - +
InputDomain AmplitudeFollower::getInputDomain InputDomain AmplitudeFollower::getInputDomain ( ) const [inline, virtual] const
- -
+
+inlinevirtual
+

Get the plugin's required input domain.

-

If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

-

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 process(). 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.

+

If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

+

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 process(). 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.

Implements Vamp::Plugin.

-

Definition at line 56 of file AmplitudeFollower.h.

+

Definition at line 56 of file AmplitudeFollower.h.

-

References Vamp::Plugin::TimeDomain.

+

References getCopyright(), getDescription(), getIdentifier(), getMaker(), getName(), getOutputDescriptors(), getParameter(), getParameterDescriptors(), getPluginVersion(), getRemainingFeatures(), process(), setParameter(), and Vamp::Plugin::TimeDomain.

- + +

◆ getIdentifier()

+
+ + + + + +
- + - +
string AmplitudeFollower::getIdentifier string AmplitudeFollower::getIdentifier ( ) const [virtual] const
- -
+
+virtual
+

Get the computer-usable name of the plugin.

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.

@@ -430,23 +549,34 @@

Implements Vamp::PluginBase.

-

Definition at line 69 of file AmplitudeFollower.cpp.

+

Definition at line 70 of file AmplitudeFollower.cpp.

+ +

Referenced by getInputDomain().

- + +

◆ getName()

+
+ + + + + +
- + - +
string AmplitudeFollower::getName string AmplitudeFollower::getName ( ) const [virtual] const
- -
+
+virtual
+

Get a human-readable name or title of the plugin.

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").

@@ -454,23 +584,34 @@

Implements Vamp::PluginBase.

-

Definition at line 75 of file AmplitudeFollower.cpp.

+

Definition at line 76 of file AmplitudeFollower.cpp.

+ +

Referenced by getInputDomain().

- + +

◆ getDescription()

+
+ + + + + +
- + - +
string AmplitudeFollower::getDescription string AmplitudeFollower::getDescription ( ) const [virtual] const
- -
+
+virtual
+

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".

May be empty if the name has said it all already.

@@ -478,159 +619,232 @@

Implements Vamp::PluginBase.

-

Definition at line 81 of file AmplitudeFollower.cpp.

+

Definition at line 82 of file AmplitudeFollower.cpp.

+ +

Referenced by getInputDomain().

- + +

◆ getMaker()

+
+ + + + + +
- + - +
string AmplitudeFollower::getMaker string AmplitudeFollower::getMaker ( ) const [virtual] const
- -
+
+virtual
+

Get the name of the author or vendor of the plugin in human-readable form.

This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar.

Implements Vamp::PluginBase.

-

Definition at line 87 of file AmplitudeFollower.cpp.

+

Definition at line 88 of file AmplitudeFollower.cpp.

+ +

Referenced by getInputDomain().

- + +

◆ getPluginVersion()

+
+ + + + + +
- + - +
int AmplitudeFollower::getPluginVersion int AmplitudeFollower::getPluginVersion ( ) const [virtual] const
- -
+
+virtual
+

Get the version number of the plugin.

Implements Vamp::PluginBase.

-

Definition at line 93 of file AmplitudeFollower.cpp.

+

Definition at line 94 of file AmplitudeFollower.cpp.

+ +

Referenced by getInputDomain().

- + +

◆ getCopyright()

+
+ + + + + +
- + - +
string AmplitudeFollower::getCopyright string AmplitudeFollower::getCopyright ( ) const [virtual] const
- -
+
+virtual
+

Get the copyright statement or licensing summary for the plugin.

This can be an informative text, without the same presentation constraints as mentioned for getMaker above.

Implements Vamp::PluginBase.

-

Definition at line 99 of file AmplitudeFollower.cpp.

+

Definition at line 100 of file AmplitudeFollower.cpp.

+ +

Referenced by getInputDomain().

- + +

◆ getOutputDescriptors()

+
+ + + + + +
- + - +
AmplitudeFollower::OutputList AmplitudeFollower::getOutputDescriptors AmplitudeFollower::OutputList AmplitudeFollower::getOutputDescriptors ( ) const [virtual] const
- -
+
+virtual
+

Get the outputs of this plugin.

-

An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

+

An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

Implements Vamp::Plugin.

-

Definition at line 128 of file AmplitudeFollower.cpp.

+

Definition at line 129 of file AmplitudeFollower.cpp.

-

References Vamp::Plugin::OutputDescriptor::binCount, Vamp::Plugin::OutputDescriptor::description, Vamp::Plugin::OutputDescriptor::hasFixedBinCount, Vamp::Plugin::OutputDescriptor::hasKnownExtents, Vamp::Plugin::OutputDescriptor::identifier, Vamp::Plugin::OutputDescriptor::isQuantized, Vamp::Plugin::OutputDescriptor::name, Vamp::Plugin::OutputDescriptor::OneSamplePerStep, Vamp::Plugin::OutputDescriptor::sampleType, and Vamp::Plugin::OutputDescriptor::unit.

+

References Vamp::Plugin::OutputDescriptor::binCount, Vamp::Plugin::OutputDescriptor::description, Vamp::Plugin::OutputDescriptor::hasFixedBinCount, Vamp::Plugin::OutputDescriptor::hasKnownExtents, Vamp::Plugin::OutputDescriptor::identifier, Vamp::Plugin::OutputDescriptor::isQuantized, Vamp::Plugin::OutputDescriptor::name, Vamp::Plugin::OutputDescriptor::OneSamplePerStep, Vamp::Plugin::OutputDescriptor::sampleType, and Vamp::Plugin::OutputDescriptor::unit.

+ +

Referenced by getInputDomain().

- + +

◆ getParameterDescriptors()

+
+ + + + + +
- + - +
AmplitudeFollower::ParameterList AmplitudeFollower::getParameterDescriptors AmplitudeFollower::ParameterList AmplitudeFollower::getParameterDescriptors ( ) const [virtual] const
- -
+
+virtual
+

Get the controllable parameters of this plugin.

-

Reimplemented from Vamp::PluginBase.

+

Reimplemented from Vamp::PluginBase.

-

Definition at line 148 of file AmplitudeFollower.cpp.

+

Definition at line 149 of file AmplitudeFollower.cpp.

-

References Vamp::PluginBase::ParameterDescriptor::defaultValue, Vamp::PluginBase::ParameterDescriptor::description, Vamp::PluginBase::ParameterDescriptor::identifier, Vamp::PluginBase::ParameterDescriptor::isQuantized, Vamp::PluginBase::ParameterDescriptor::maxValue, Vamp::PluginBase::ParameterDescriptor::minValue, Vamp::PluginBase::ParameterDescriptor::name, and Vamp::PluginBase::ParameterDescriptor::unit.

+

References Vamp::PluginBase::ParameterDescriptor::defaultValue, Vamp::PluginBase::ParameterDescriptor::description, Vamp::PluginBase::ParameterDescriptor::identifier, Vamp::PluginBase::ParameterDescriptor::isQuantized, Vamp::PluginBase::ParameterDescriptor::maxValue, Vamp::PluginBase::ParameterDescriptor::minValue, Vamp::PluginBase::ParameterDescriptor::name, and Vamp::PluginBase::ParameterDescriptor::unit.

+ +

Referenced by getInputDomain().

- + +

◆ getParameter()

+
+ + + + + +
- + - +
float AmplitudeFollower::getParameter float AmplitudeFollower::getParameter ( std::string  ) const [virtual] const
- -
+
+virtual
+

Get the value of a named parameter.

The argument is the identifier field from that parameter's descriptor.

-

Reimplemented from Vamp::PluginBase.

+

Reimplemented from Vamp::PluginBase.

-

Definition at line 188 of file AmplitudeFollower.cpp.

+

Definition at line 189 of file AmplitudeFollower.cpp.

-

References m_clampcoef, and m_relaxcoef.

+

References m_clampcoef, and m_relaxcoef.

+ +

Referenced by getInputDomain().

- + +

◆ setParameter()

+
+ + + + + +
- + @@ -644,29 +858,40 @@ - +
void AmplitudeFollower::setParameter void AmplitudeFollower::setParameter ( std::string  ,
) [virtual]
- -
+
+virtual
+

Set a named parameter.

The first argument is the identifier field from that parameter's descriptor.

Reimplemented from Vamp::PluginBase.

-

Definition at line 179 of file AmplitudeFollower.cpp.

+

Definition at line 180 of file AmplitudeFollower.cpp.

-

References m_clampcoef, and m_relaxcoef.

+

References m_clampcoef, and m_relaxcoef.

+ +

Referenced by getInputDomain().

- + +

◆ process()

+
+ + + + + +
- + @@ -680,11 +905,15 @@ - +
AmplitudeFollower::FeatureSet AmplitudeFollower::process AmplitudeFollower::FeatureSet AmplitudeFollower::process ( const float *const *  inputBuffers,
) [virtual]
- -
+
+virtual
+

Process a single block of input data.

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.

@@ -693,334 +922,475 @@

Implements Vamp::Plugin.

-

Definition at line 200 of file AmplitudeFollower.cpp.

+

Definition at line 201 of file AmplitudeFollower.cpp.

-

References Vamp::Plugin::Feature::hasTimestamp, m_clampcoef, m_previn, m_relaxcoef, m_stepSize, and Vamp::Plugin::Feature::values.

+

References Vamp::Plugin::Feature::hasTimestamp, m_clampcoef, m_previn, m_relaxcoef, m_stepSize, and Vamp::Plugin::Feature::values.

+ +

Referenced by getInputDomain().

- + +

◆ getRemainingFeatures()

+
+ + + + + +
- + - +
AmplitudeFollower::FeatureSet AmplitudeFollower::getRemainingFeatures AmplitudeFollower::FeatureSet AmplitudeFollower::getRemainingFeatures ( ) [virtual]
- -
+
+virtual
+

After all blocks have been processed, calculate and return any remaining features derived from the complete input.

Implements Vamp::Plugin.

-

Definition at line 243 of file AmplitudeFollower.cpp.

+

Definition at line 244 of file AmplitudeFollower.cpp.

+ +

Referenced by getInputDomain().

- + +

◆ getPreferredBlockSize()

+
+ + + + + +
- + - +
virtual size_t Vamp::Plugin::getPreferredBlockSize virtual size_t Vamp::Plugin::getPreferredBlockSize ( ) const [inline, virtual, inherited] const
- -
+
+inlinevirtualinherited
+
-

Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).

-

This should be called before initialise().

-

A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

+

Get the preferred block size (window size – the number of sample frames passed in each block to the process() function).

+

This should be called before initialise().

+

A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

-

Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

+

Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

-

Definition at line 179 of file vamp-sdk/Plugin.h.

+

Definition at line 179 of file vamp-sdk/Plugin.h.

-

Referenced by enumeratePlugins(), and runPlugin().

+

Referenced by enumeratePlugins(), and runPlugin().

- + +

◆ getPreferredStepSize()

+
+ + + + + +
- + - +
virtual size_t Vamp::Plugin::getPreferredStepSize virtual size_t Vamp::Plugin::getPreferredStepSize ( ) const [inline, virtual, inherited] const
- -
+
+inlinevirtualinherited
+
-

Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

-

This should be called before initialise().

-

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 initialise() call.

+

Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

+

This should be called before initialise().

+

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 initialise() call.

-

Reimplemented in Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

+

Reimplemented in Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

-

Definition at line 194 of file vamp-sdk/Plugin.h.

+

Definition at line 194 of file vamp-sdk/Plugin.h.

-

Referenced by enumeratePlugins(), and runPlugin().

+

Referenced by enumeratePlugins(), and runPlugin().

- + +

◆ getMinChannelCount()

+
+ + + + + +
- + - +
virtual size_t Vamp::Plugin::getMinChannelCount virtual size_t Vamp::Plugin::getMinChannelCount ( ) const [inline, virtual, inherited] const
- -
+
+inlinevirtualinherited
+

Get the minimum supported number of input channels.

-

Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

+

Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

-

Definition at line 199 of file vamp-sdk/Plugin.h.

+

Definition at line 199 of file vamp-sdk/Plugin.h.

-

Referenced by enumeratePlugins(), FixedTempoEstimator::initialise(), PercussionOnsetDetector::initialise(), initialise(), SpectralCentroid::initialise(), ZeroCrossing::initialise(), PowerSpectrum::initialise(), and runPlugin().

+

Referenced by enumeratePlugins(), FixedTempoEstimator::initialise(), PercussionOnsetDetector::initialise(), initialise(), SpectralCentroid::initialise(), ZeroCrossing::initialise(), PowerSpectrum::initialise(), and runPlugin().

- + +

◆ getMaxChannelCount()

+
+ + + + + +
- + - +
virtual size_t Vamp::Plugin::getMaxChannelCount virtual size_t Vamp::Plugin::getMaxChannelCount ( ) const [inline, virtual, inherited] const
- -
+
+inlinevirtualinherited
+

Get the maximum supported number of input channels.

-

Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

+

Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

-

Definition at line 204 of file vamp-sdk/Plugin.h.

+

Definition at line 204 of file vamp-sdk/Plugin.h.

-

Referenced by enumeratePlugins(), FixedTempoEstimator::initialise(), PercussionOnsetDetector::initialise(), initialise(), SpectralCentroid::initialise(), ZeroCrossing::initialise(), PowerSpectrum::initialise(), and runPlugin().

+

Referenced by enumeratePlugins(), FixedTempoEstimator::initialise(), PercussionOnsetDetector::initialise(), initialise(), SpectralCentroid::initialise(), ZeroCrossing::initialise(), PowerSpectrum::initialise(), and runPlugin().

- + +

◆ getType()

+
+ + + + + +
- + - +
virtual std::string Vamp::Plugin::getType virtual std::string Vamp::Plugin::getType ( ) const [inline, virtual, inherited] const
- -
+
+inlinevirtualinherited
+
-

Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

+

Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

Do not reimplement this function in your subclass.

Implements Vamp::PluginBase.

-

Definition at line 430 of file vamp-sdk/Plugin.h.

+

Definition at line 438 of file vamp-sdk/Plugin.h.

- + +

◆ getVampApiVersion()

+
+ + + + + +
- + - +
virtual unsigned int Vamp::PluginBase::getVampApiVersion virtual unsigned int Vamp::PluginBase::getVampApiVersion ( ) const [inline, virtual, inherited] const
- -
+
+inlinevirtualinherited
+

Get the Vamp API compatibility level of the plugin.

-

Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

+

Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

-

Definition at line 68 of file vamp-sdk/PluginBase.h.

+

Definition at line 68 of file vamp-sdk/PluginBase.h.

-

Referenced by enumeratePlugins().

+

Referenced by enumeratePlugins().

- + +

◆ getPrograms()

+
+ + + + + +
- + - +
virtual ProgramList Vamp::PluginBase::getPrograms virtual ProgramList Vamp::PluginBase::getPrograms ( ) const [inline, virtual, inherited] const
- -
+
+inlinevirtualinherited
+

Get the program settings available in this plugin.

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.

The programs must have unique names.

-

Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

+

Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

-

Definition at line 233 of file vamp-sdk/PluginBase.h.

+

Definition at line 237 of file vamp-sdk/PluginBase.h.

- + +

◆ getCurrentProgram()

+
+ + + + + +
- + - +
virtual std::string Vamp::PluginBase::getCurrentProgram virtual std::string Vamp::PluginBase::getCurrentProgram ( ) const [inline, virtual, inherited] const
- -
+
+inlinevirtualinherited
+

Get the current program.

-

Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

+

Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

-

Definition at line 238 of file vamp-sdk/PluginBase.h.

+

Definition at line 242 of file vamp-sdk/PluginBase.h.

- + +

◆ selectProgram()

+
+ + + + + +
- + - +
virtual void Vamp::PluginBase::selectProgram virtual void Vamp::PluginBase::selectProgram ( std::string  ) [inline, virtual, inherited]
- -
+
+inlinevirtualinherited
+

Select a program.

(If the given program name is not one of the available programs, do nothing.)

Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

-

Definition at line 244 of file vamp-sdk/PluginBase.h.

+

Definition at line 248 of file vamp-sdk/PluginBase.h.

+ +

References _VAMP_SDK_PLUGSPACE_END.

-

Member Data Documentation

- +

Member Data Documentation

+ +

◆ m_stepSize

+
+ + + + + +
- +
size_t AmplitudeFollower::m_stepSize [protected]size_t AmplitudeFollower::m_stepSize
- -
+
+protected
+
-

Definition at line 77 of file AmplitudeFollower.h.

+

Definition at line 77 of file AmplitudeFollower.h.

-

Referenced by initialise(), and process().

+

Referenced by initialise(), and process().

- + +

◆ m_previn

+
+ + + + + +
- +
float AmplitudeFollower::m_previn [protected]float AmplitudeFollower::m_previn
- -
+
+protected
+
-

Definition at line 78 of file AmplitudeFollower.h.

+

Definition at line 78 of file AmplitudeFollower.h.

-

Referenced by process(), and reset().

+

Referenced by process(), and reset().

- + +

◆ m_clampcoef

+
+ + + + + +
- +
float AmplitudeFollower::m_clampcoef [protected]float AmplitudeFollower::m_clampcoef
- -
+
+protected
+
-

Definition at line 79 of file AmplitudeFollower.h.

+

Definition at line 79 of file AmplitudeFollower.h.

-

Referenced by getParameter(), initialise(), process(), and setParameter().

+

Referenced by getParameter(), initialise(), process(), and setParameter().

- + +

◆ m_relaxcoef

+
+ + + + + +
- +
float AmplitudeFollower::m_relaxcoef [protected]float AmplitudeFollower::m_relaxcoef
- -
+
+protected
+
-

Definition at line 80 of file AmplitudeFollower.h.

+

Definition at line 80 of file AmplitudeFollower.h.

-

Referenced by getParameter(), initialise(), process(), and setParameter().

+

Referenced by getParameter(), initialise(), process(), and setParameter().

- + +

◆ m_inputSampleRate

+
+ + + + + +
- +
float Vamp::Plugin::m_inputSampleRate [protected, inherited]float Vamp::Plugin::m_inputSampleRate
- -
+
+protectedinherited
+
-

Definition at line 436 of file vamp-sdk/Plugin.h.

+

Definition at line 444 of file vamp-sdk/Plugin.h.

-

Referenced by FixedTempoEstimator::D::assembleFeatures(), FixedTempoEstimator::D::calculate(), FixedTempoEstimator::D::getOutputDescriptors(), ZeroCrossing::getOutputDescriptors(), PercussionOnsetDetector::getOutputDescriptors(), initialise(), FixedTempoEstimator::D::initialise(), FixedTempoEstimator::D::lag2tempo(), SpectralCentroid::process(), ZeroCrossing::process(), PercussionOnsetDetector::process(), and FixedTempoEstimator::D::tempo2lag().

+

Referenced by ZeroCrossing::getOutputDescriptors(), PercussionOnsetDetector::getOutputDescriptors(), initialise(), SpectralCentroid::process(), ZeroCrossing::process(), and PercussionOnsetDetector::process().

@@ -1029,17 +1399,15 @@
  • AmplitudeFollower.cpp
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classAmplitudeFollower.js --- a/code-docs/classAmplitudeFollower.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classAmplitudeFollower.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,40 +1,43 @@ var classAmplitudeFollower = [ - [ "OutputList", "classVamp_1_1Plugin.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], - [ "FeatureList", "classVamp_1_1Plugin.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], - [ "FeatureSet", "classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], - [ "ParameterList", "classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], - [ "ProgramList", "classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20", null ], - [ "InputDomain", "classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc", null ], + [ "OutputList", "classAmplitudeFollower.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], + [ "FeatureList", "classAmplitudeFollower.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], + [ "FeatureSet", "classAmplitudeFollower.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], + [ "ParameterList", "classAmplitudeFollower.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], + [ "ProgramList", "classAmplitudeFollower.html#a7f66f00437b21e5f694fe02356b12f20", null ], + [ "InputDomain", "classAmplitudeFollower.html#a39cb7649d6dcc20e4cb1640cd55907bc", [ + [ "TimeDomain", "classAmplitudeFollower.html#a39cb7649d6dcc20e4cb1640cd55907bcad4a9f31b958a43a9757af7893aa2e7ff", null ], + [ "FrequencyDomain", "classAmplitudeFollower.html#a39cb7649d6dcc20e4cb1640cd55907bcaa30e7877ab33f76acbdca28607e6ab53", null ] + ] ], [ "AmplitudeFollower", "classAmplitudeFollower.html#a29eaeffc353da2614ae508abcd0ab63f", null ], [ "~AmplitudeFollower", "classAmplitudeFollower.html#aa78f98539ad3a1b08691a99b32035b2d", null ], [ "initialise", "classAmplitudeFollower.html#aeb727e44ee8ad1aceb90964d20f8d90d", null ], [ "reset", "classAmplitudeFollower.html#acebd835e80e84669df078fbd7591d8f7", null ], - [ "getInputDomain", "classAmplitudeFollower.html#afc07a389b5f922b944b0350fd232d2eb", null ], - [ "getIdentifier", "classAmplitudeFollower.html#afe7576af95c8fcc7f5bad42eec9f9f29", null ], - [ "getName", "classAmplitudeFollower.html#a7cfed00bc9d96ba6c709b69ab6a40594", null ], - [ "getDescription", "classAmplitudeFollower.html#a6f0f2fea1fdb4b51e688edfe859d5062", null ], - [ "getMaker", "classAmplitudeFollower.html#a44fc43838f203f58bc2ce6e3cb2b03dd", null ], - [ "getPluginVersion", "classAmplitudeFollower.html#a8a5d7a834eb996d517c51f84b2a72250", null ], - [ "getCopyright", "classAmplitudeFollower.html#a0c197fc90f30d91cb4403115c83c9134", null ], - [ "getOutputDescriptors", "classAmplitudeFollower.html#a043e3c3db77d76267cd8069e1485bf26", null ], - [ "getParameterDescriptors", "classAmplitudeFollower.html#a9df01323a09e117bc12354ebe9244edf", null ], - [ "getParameter", "classAmplitudeFollower.html#ab278c4b6f2ca23248dc94ad775273f39", null ], + [ "getInputDomain", "classAmplitudeFollower.html#aa11a470900da2b800b3ab118ae81f69e", null ], + [ "getIdentifier", "classAmplitudeFollower.html#ad77b59b8e8bc0f415edab073f2e5edef", null ], + [ "getName", "classAmplitudeFollower.html#a4a4ea5c0b2e30b420646aa78571176c2", null ], + [ "getDescription", "classAmplitudeFollower.html#aad780ea62291ef94925d6f4d1cc3f4ac", null ], + [ "getMaker", "classAmplitudeFollower.html#ac7a9db3ec7daa0e9bd83106bbf641777", null ], + [ "getPluginVersion", "classAmplitudeFollower.html#ad84e40327cb36e470790af9619e8e80e", null ], + [ "getCopyright", "classAmplitudeFollower.html#acd61ab359d1b7a5514fb2e1bc191f95a", null ], + [ "getOutputDescriptors", "classAmplitudeFollower.html#a3e7f3c93c66f161e9b37e7f2aff1fe60", null ], + [ "getParameterDescriptors", "classAmplitudeFollower.html#a4a707648d17d03a66b110b73b99e821b", null ], + [ "getParameter", "classAmplitudeFollower.html#a93f32b68462f46af5265327a69479c38", null ], [ "setParameter", "classAmplitudeFollower.html#ae1fc37ece4d20e40f3066a3361a99340", null ], [ "process", "classAmplitudeFollower.html#a48d0f95cac31ffd190cff89b50a2a5bd", null ], [ "getRemainingFeatures", "classAmplitudeFollower.html#a368606f643b88e0df0823d85e36f030c", null ], - [ "getPreferredBlockSize", "classVamp_1_1Plugin.html#aa529adf83f87a603954eb31407602aac", null ], - [ "getPreferredStepSize", "classVamp_1_1Plugin.html#a514c716c22f81c055f19b56c3f882567", null ], - [ "getMinChannelCount", "classVamp_1_1Plugin.html#a267b42e866df3cf0d190893e8096f525", null ], - [ "getMaxChannelCount", "classVamp_1_1Plugin.html#a2c5ab12b6fa4847cb244bd1e9cb3ae5e", null ], - [ "getType", "classVamp_1_1Plugin.html#abe13b3997a69fbcc09e2213faa352f91", null ], - [ "getVampApiVersion", "classVamp_1_1PluginBase.html#a8fd2c48291c64b790f0efb8948508dcf", null ], - [ "getPrograms", "classVamp_1_1PluginBase.html#abb307c60bdb981d5f5af50c3c4ae84af", null ], - [ "getCurrentProgram", "classVamp_1_1PluginBase.html#a24e77eccf1bdfbbca3c79bb25e8799b3", null ], - [ "selectProgram", "classVamp_1_1PluginBase.html#aadd3a547ef140bae200473a9518e3353", null ], + [ "getPreferredBlockSize", "classAmplitudeFollower.html#ae3b9c32b12796ece152388babad7cc7d", null ], + [ "getPreferredStepSize", "classAmplitudeFollower.html#a33eaf9a265bc3a055e156452112456c2", null ], + [ "getMinChannelCount", "classAmplitudeFollower.html#ab74f7634c6ac6e3da115667808a79c30", null ], + [ "getMaxChannelCount", "classAmplitudeFollower.html#a0bff9464bc8c117470136c396b2405dd", null ], + [ "getType", "classAmplitudeFollower.html#a530123068767a8728c568ffccfe3e4e5", null ], + [ "getVampApiVersion", "classAmplitudeFollower.html#ab4aa9c3e6f6dd9addbc095463c9fb772", null ], + [ "getPrograms", "classAmplitudeFollower.html#aaf6febff0ab4daf4a5089c98a67f4df8", null ], + [ "getCurrentProgram", "classAmplitudeFollower.html#aac38c5dc6e87208616122897518ca3d5", null ], + [ "selectProgram", "classAmplitudeFollower.html#aadd3a547ef140bae200473a9518e3353", null ], [ "m_stepSize", "classAmplitudeFollower.html#a959c2647fd3c5feea2591e3618774027", null ], [ "m_previn", "classAmplitudeFollower.html#ac95e8d2f334821c6c92c706bae29695a", null ], [ "m_clampcoef", "classAmplitudeFollower.html#a1cb205b08cfe2ce94a4af05b18f72876", null ], [ "m_relaxcoef", "classAmplitudeFollower.html#aceecd3b3879f32eb4a2e597c32c41cfc", null ], - [ "m_inputSampleRate", "classVamp_1_1Plugin.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] + [ "m_inputSampleRate", "classAmplitudeFollower.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classAmplitudeFollower__inherit__graph.map --- a/code-docs/classAmplitudeFollower__inherit__graph.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classAmplitudeFollower__inherit__graph.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,4 +1,4 @@ - - - + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classAmplitudeFollower__inherit__graph.md5 --- a/code-docs/classAmplitudeFollower__inherit__graph.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classAmplitudeFollower__inherit__graph.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -378861f0015413e8059212a2b0322a82 \ No newline at end of file +aa10891e9ad56cd3829ca3b0eb2d9247 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classAmplitudeFollower__inherit__graph.png Binary file code-docs/classAmplitudeFollower__inherit__graph.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classFixedTempoEstimator-members.html --- a/code-docs/classFixedTempoEstimator-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classFixedTempoEstimator-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,57 +63,57 @@
    FixedTempoEstimator Member List
    -This is the complete list of members for FixedTempoEstimator, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

    This is the complete list of members for FixedTempoEstimator, including all inherited members.

    +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FixedTempoEstimator(float inputSampleRate)FixedTempoEstimator
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() const FixedTempoEstimator [virtual]
    getCurrentProgram() const Vamp::PluginBase [inline, virtual]
    getDescription() const FixedTempoEstimator [virtual]
    getIdentifier() const FixedTempoEstimator [virtual]
    getInputDomain() const FixedTempoEstimator [inline, virtual]
    getMaker() const FixedTempoEstimator [virtual]
    getMaxChannelCount() const Vamp::Plugin [inline, virtual]
    getMinChannelCount() const Vamp::Plugin [inline, virtual]
    getName() const FixedTempoEstimator [virtual]
    getOutputDescriptors() const FixedTempoEstimator [virtual]
    getParameter(std::string id) const FixedTempoEstimator [virtual]
    getParameterDescriptors() const FixedTempoEstimator [virtual]
    getPluginVersion() const FixedTempoEstimator [virtual]
    getPreferredBlockSize() const FixedTempoEstimator [virtual]
    getPreferredStepSize() const FixedTempoEstimator [virtual]
    getPrograms() const Vamp::PluginBase [inline, virtual]
    getRemainingFeatures()FixedTempoEstimator [virtual]
    getType() const Vamp::Plugin [inline, virtual]
    getVampApiVersion() const Vamp::PluginBase [inline, virtual]
    initialise(size_t channels, size_t stepSize, size_t blockSize)FixedTempoEstimator [virtual]
    InputDomain enum nameVamp::Plugin
    m_dFixedTempoEstimator [protected]
    m_inputSampleRateVamp::Plugin [protected]
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugin [inline, protected]
    process(const float *const *inputBuffers, Vamp::RealTime timestamp)FixedTempoEstimator [virtual]
    ProgramList typedefVamp::PluginBase
    reset()FixedTempoEstimator [virtual]
    selectProgram(std::string)Vamp::PluginBase [inline, virtual]
    setParameter(std::string id, float value)FixedTempoEstimator [virtual]
    TimeDomain enum valueVamp::Plugin
    ~FixedTempoEstimator()FixedTempoEstimator [virtual]
    ~Plugin()Vamp::Plugin [inline, virtual]
    ~PluginBase()Vamp::PluginBase [inline, virtual]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FixedTempoEstimator(float inputSampleRate)FixedTempoEstimator
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() constFixedTempoEstimatorvirtual
    getCurrentProgram() constVamp::PluginBaseinlinevirtual
    getDescription() constFixedTempoEstimatorvirtual
    getIdentifier() constFixedTempoEstimatorvirtual
    getInputDomain() constFixedTempoEstimatorinlinevirtual
    getMaker() constFixedTempoEstimatorvirtual
    getMaxChannelCount() constVamp::Plugininlinevirtual
    getMinChannelCount() constVamp::Plugininlinevirtual
    getName() constFixedTempoEstimatorvirtual
    getOutputDescriptors() constFixedTempoEstimatorvirtual
    getParameter(std::string id) constFixedTempoEstimatorvirtual
    getParameterDescriptors() constFixedTempoEstimatorvirtual
    getPluginVersion() constFixedTempoEstimatorvirtual
    getPreferredBlockSize() constFixedTempoEstimatorvirtual
    getPreferredStepSize() constFixedTempoEstimatorvirtual
    getPrograms() constVamp::PluginBaseinlinevirtual
    getRemainingFeatures()FixedTempoEstimatorvirtual
    getType() constVamp::Plugininlinevirtual
    getVampApiVersion() constVamp::PluginBaseinlinevirtual
    initialise(size_t channels, size_t stepSize, size_t blockSize)FixedTempoEstimatorvirtual
    InputDomain enum nameVamp::Plugin
    m_dFixedTempoEstimatorprotected
    m_inputSampleRateVamp::Pluginprotected
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugininlineprotected
    process(const float *const *inputBuffers, Vamp::RealTime timestamp)FixedTempoEstimatorvirtual
    ProgramList typedefVamp::PluginBase
    reset()FixedTempoEstimatorvirtual
    selectProgram(std::string)Vamp::PluginBaseinlinevirtual
    setParameter(std::string id, float value)FixedTempoEstimatorvirtual
    TimeDomain enum valueVamp::Plugin
    ~FixedTempoEstimator()FixedTempoEstimatorvirtual
    ~Plugin()Vamp::Plugininlinevirtual
    ~PluginBase()Vamp::PluginBaseinlinevirtual
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classFixedTempoEstimator.html --- a/code-docs/classFixedTempoEstimator.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classFixedTempoEstimator.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: FixedTempoEstimator Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    FixedTempoEstimator Class Reference
    @@ -92,235 +79,335 @@
    Inheritance graph
    - + + +
    [legend]
    - -

    List of all members.

    - - +

    +

    Classes

    class  D

    +

     
    + - + + + - - + + + + + - +

    Public Types

    enum  InputDomain { TimeDomain, FrequencyDomain }
    typedef std::vector
    -< OutputDescriptor
    OutputList
     
    typedef std::vector< OutputDescriptorOutputList
     
    typedef std::vector< FeatureFeatureList
    typedef std::map< int,
    -FeatureList
    FeatureSet
    typedef std::vector
    -< ParameterDescriptor
    ParameterList
     
    typedef std::map< int, FeatureListFeatureSet
     
    typedef std::vector< ParameterDescriptorParameterList
     
    typedef std::vector< std::string > ProgramList

    +

     
    + + + - + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - + +

    Public Member Functions

     FixedTempoEstimator (float inputSampleRate)
     
    virtual ~FixedTempoEstimator ()
     
    bool initialise (size_t channels, size_t stepSize, size_t blockSize)
     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).
     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). More...
     
    void reset ()
     Reset the plugin after use, to prepare it for another clean run.
    InputDomain getInputDomain () const
     Get the plugin's required input domain.
    std::string getIdentifier () const
     Get the computer-usable name of the plugin.
    std::string getName () const
     Get a human-readable name or title of the plugin.
    std::string getDescription () const
     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".
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form.
    int getPluginVersion () const
     Get the version number of the plugin.
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin.
    size_t getPreferredStepSize () const
     Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.
    size_t getPreferredBlockSize () const
     Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).
    ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin.
    float getParameter (std::string id) const
     Get the value of a named parameter.
     Reset the plugin after use, to prepare it for another clean run. More...
     
    InputDomain getInputDomain () const
     Get the plugin's required input domain. More...
     
    std::string getIdentifier () const
     Get the computer-usable name of the plugin. More...
     
    std::string getName () const
     Get a human-readable name or title of the plugin. More...
     
    std::string getDescription () const
     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". More...
     
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form. More...
     
    int getPluginVersion () const
     Get the version number of the plugin. More...
     
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin. More...
     
    size_t getPreferredStepSize () const
     Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin. More...
     
    size_t getPreferredBlockSize () const
     Get the preferred block size (window size – the number of sample frames passed in each block to the process() function). More...
     
    ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin. More...
     
    float getParameter (std::string id) const
     Get the value of a named parameter. More...
     
    void setParameter (std::string id, float value)
     Set a named parameter.
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin.
     Set a named parameter. More...
     
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin. More...
     
    FeatureSet process (const float *const *inputBuffers, Vamp::RealTime timestamp)
     Process a single block of input data.
     Process a single block of input data. More...
     
    FeatureSet getRemainingFeatures ()
     After all blocks have been processed, calculate and return any remaining features derived from the complete input.
    virtual size_t getMinChannelCount () const
     Get the minimum supported number of input channels.
    virtual size_t getMaxChannelCount () const
     Get the maximum supported number of input channels.
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.
    virtual unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin.
    virtual ProgramList getPrograms () const
     Get the program settings available in this plugin.
    virtual std::string getCurrentProgram () const
     Get the current program.
     After all blocks have been processed, calculate and return any remaining features derived from the complete input. More...
     
    virtual size_t getMinChannelCount () const
     Get the minimum supported number of input channels. More...
     
    virtual size_t getMaxChannelCount () const
     Get the maximum supported number of input channels. More...
     
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase. More...
     
    virtual unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin. More...
     
    virtual ProgramList getPrograms () const
     Get the program settings available in this plugin. More...
     
    virtual std::string getCurrentProgram () const
     Get the current program. More...
     
    virtual void selectProgram (std::string)
     Select a program.

    +

     Select a program. More...
     
    + + +

    Protected Attributes

    Dm_d
     
    float m_inputSampleRate
     
    -

    Detailed Description

    +

    Detailed Description

    Example plugin that estimates the tempo of a short fixed-tempo sample.

    -

    Definition at line 46 of file FixedTempoEstimator.h.

    -

    Member Typedef Documentation

    - +

    Definition at line 46 of file FixedTempoEstimator.h.

    +

    Member Typedef Documentation

    + +

    ◆ OutputList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList
    +
    +inherited
    +
    + +

    Definition at line 335 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ FeatureList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<Feature> Vamp::Plugin::FeatureList
    +
    +inherited
    +
    + +

    Definition at line 393 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ FeatureSet

    + +
    +
    + + + + + +
    + + + + +
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet
    +
    +inherited
    +
    + +

    Definition at line 395 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ ParameterList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList
    +
    +inherited
    +
    + +

    Definition at line 203 of file vamp-sdk/PluginBase.h.

    + +
    +
    + +

    ◆ ProgramList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList
    +
    +inherited
    +
    + +

    Definition at line 225 of file vamp-sdk/PluginBase.h.

    + +
    +
    +

    Member Enumeration Documentation

    + +

    ◆ InputDomain

    + +
    +
    + + + + + +
    + + + + +
    enum Vamp::Plugin::InputDomain
    +
    +inherited
    +
    + + + +
    Enumerator
    TimeDomain 
    FrequencyDomain 
    + +

    Definition at line 152 of file vamp-sdk/Plugin.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ FixedTempoEstimator()

    +
    - - -
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList [inherited]
    -
    -
    - -

    Definition at line 327 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<Feature> Vamp::Plugin::FeatureList [inherited]
    -
    -
    - -

    Definition at line 385 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet [inherited]
    -
    -
    - -

    Definition at line 387 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList [inherited]
    -
    -
    - -

    Definition at line 199 of file vamp-sdk/PluginBase.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList [inherited]
    -
    -
    - -

    Definition at line 221 of file vamp-sdk/PluginBase.h.

    - -
    -
    -

    Member Enumeration Documentation

    - -
    -
    - - - - -
    enum Vamp::Plugin::InputDomain [inherited]
    -
    -
    -
    Enumerator:
    - - -
    TimeDomain  -
    FrequencyDomain  -
    -
    -
    - -

    Definition at line 152 of file vamp-sdk/Plugin.h.

    - -
    -
    -

    Constructor & Destructor Documentation

    - -
    -
    - - - +
    FixedTempoEstimator::FixedTempoEstimator FixedTempoEstimator::FixedTempoEstimator ( float  inputSampleRate)
    -
    -
    +
    -

    Definition at line 617 of file FixedTempoEstimator.cpp.

    +

    Definition at line 617 of file FixedTempoEstimator.cpp.

    - + +

    ◆ ~FixedTempoEstimator()

    +
    + + + + + +
    - + - +
    FixedTempoEstimator::~FixedTempoEstimator FixedTempoEstimator::~FixedTempoEstimator ( ) [virtual]
    - -
    +
    +virtual
    +
    -

    Definition at line 623 of file FixedTempoEstimator.cpp.

    +

    Definition at line 623 of file FixedTempoEstimator.cpp.

    -

    References m_d.

    +

    References m_d.

    -

    Member Function Documentation

    - +

    Member Function Documentation

    + +

    ◆ initialise()

    +
    + + + + + +
    - + @@ -340,11 +427,15 @@ - +
    bool FixedTempoEstimator::initialise bool FixedTempoEstimator::initialise ( size_t  inputChannels,
    ) [virtual]
    - -
    +
    +virtual
    +

    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).

    The input sample rate should have been already specified at construction time.

    @@ -352,76 +443,103 @@

    Implements Vamp::Plugin.

    -

    Definition at line 677 of file FixedTempoEstimator.cpp.

    +

    Definition at line 677 of file FixedTempoEstimator.cpp.

    -

    References Vamp::Plugin::getMaxChannelCount(), Vamp::Plugin::getMinChannelCount(), FixedTempoEstimator::D::initialise(), and m_d.

    +

    References Vamp::Plugin::getMaxChannelCount(), Vamp::Plugin::getMinChannelCount(), FixedTempoEstimator::D::initialise(), and m_d.

    - + +

    ◆ reset()

    +
    + + + + + +
    - + - +
    void FixedTempoEstimator::reset void FixedTempoEstimator::reset ( ) [virtual]
    - -
    +
    +virtual
    +

    Reset the plugin after use, to prepare it for another clean run.

    Not called for the first initialisation (i.e. initialise must also do a reset).

    Implements Vamp::Plugin.

    -

    Definition at line 686 of file FixedTempoEstimator.cpp.

    +

    Definition at line 686 of file FixedTempoEstimator.cpp.

    -

    References m_d, and FixedTempoEstimator::D::reset().

    +

    References m_d, and FixedTempoEstimator::D::reset().

    - + +

    ◆ getInputDomain()

    +
    + + + + + +
    - + - +
    InputDomain FixedTempoEstimator::getInputDomain InputDomain FixedTempoEstimator::getInputDomain ( ) const [inline, virtual] const
    - -
    +
    +inlinevirtual
    +

    Get the plugin's required input domain.

    -

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    -

    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 process(). 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.

    +

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    +

    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 process(). 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.

    Implements Vamp::Plugin.

    -

    Definition at line 55 of file FixedTempoEstimator.h.

    +

    Definition at line 55 of file FixedTempoEstimator.h.

    -

    References Vamp::Plugin::FrequencyDomain.

    +

    References Vamp::Plugin::FrequencyDomain, getCopyright(), getDescription(), getIdentifier(), getMaker(), getName(), getOutputDescriptors(), getParameter(), getParameterDescriptors(), getPluginVersion(), getPreferredBlockSize(), getPreferredStepSize(), getRemainingFeatures(), process(), and setParameter().

    - + +

    ◆ getIdentifier()

    +
    + + + + + +
    - + - +
    string FixedTempoEstimator::getIdentifier string FixedTempoEstimator::getIdentifier ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the computer-usable name of the plugin.

    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.

    @@ -430,23 +548,34 @@

    Implements Vamp::PluginBase.

    -

    Definition at line 629 of file FixedTempoEstimator.cpp.

    +

    Definition at line 629 of file FixedTempoEstimator.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getName()

    +
    + + + + + +
    - + - +
    string FixedTempoEstimator::getName string FixedTempoEstimator::getName ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get a human-readable name or title of the plugin.

    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").

    @@ -454,23 +583,34 @@

    Implements Vamp::PluginBase.

    -

    Definition at line 635 of file FixedTempoEstimator.cpp.

    +

    Definition at line 635 of file FixedTempoEstimator.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getDescription()

    +
    + + + + + +
    - + - +
    string FixedTempoEstimator::getDescription string FixedTempoEstimator::getDescription ( ) const [virtual] const
    - -
    +
    +virtual
    +

    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".

    May be empty if the name has said it all already.

    @@ -478,188 +618,270 @@

    Implements Vamp::PluginBase.

    -

    Definition at line 641 of file FixedTempoEstimator.cpp.

    +

    Definition at line 641 of file FixedTempoEstimator.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getMaker()

    +
    + + + + + +
    - + - +
    string FixedTempoEstimator::getMaker string FixedTempoEstimator::getMaker ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the name of the author or vendor of the plugin in human-readable form.

    This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar.

    Implements Vamp::PluginBase.

    -

    Definition at line 647 of file FixedTempoEstimator.cpp.

    +

    Definition at line 647 of file FixedTempoEstimator.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getPluginVersion()

    +
    + + + + + +
    - + - +
    int FixedTempoEstimator::getPluginVersion int FixedTempoEstimator::getPluginVersion ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the version number of the plugin.

    Implements Vamp::PluginBase.

    -

    Definition at line 653 of file FixedTempoEstimator.cpp.

    +

    Definition at line 653 of file FixedTempoEstimator.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getCopyright()

    +
    + + + + + +
    - + - +
    string FixedTempoEstimator::getCopyright string FixedTempoEstimator::getCopyright ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the copyright statement or licensing summary for the plugin.

    This can be an informative text, without the same presentation constraints as mentioned for getMaker above.

    Implements Vamp::PluginBase.

    -

    Definition at line 659 of file FixedTempoEstimator.cpp.

    +

    Definition at line 659 of file FixedTempoEstimator.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getPreferredStepSize()

    +
    + + + + + +
    - + - +
    size_t FixedTempoEstimator::getPreferredStepSize size_t FixedTempoEstimator::getPreferredStepSize ( ) const [virtual] const
    - -
    +
    +virtual
    +
    -

    Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    -

    This should be called before initialise().

    -

    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 initialise() call.

    +

    Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    +

    This should be called before initialise().

    +

    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 initialise() call.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    -

    Definition at line 665 of file FixedTempoEstimator.cpp.

    +

    Definition at line 665 of file FixedTempoEstimator.cpp.

    -

    References FixedTempoEstimator::D::getPreferredStepSize(), and m_d.

    +

    References FixedTempoEstimator::D::getPreferredStepSize(), and m_d.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getPreferredBlockSize()

    +
    + + + + + +
    - + - +
    size_t FixedTempoEstimator::getPreferredBlockSize size_t FixedTempoEstimator::getPreferredBlockSize ( ) const [virtual] const
    - -
    +
    +virtual
    +
    -

    Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).

    -

    This should be called before initialise().

    -

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    +

    Get the preferred block size (window size – the number of sample frames passed in each block to the process() function).

    +

    This should be called before initialise().

    +

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    -

    Definition at line 671 of file FixedTempoEstimator.cpp.

    +

    Definition at line 671 of file FixedTempoEstimator.cpp.

    -

    References FixedTempoEstimator::D::getPreferredBlockSize(), and m_d.

    +

    References FixedTempoEstimator::D::getPreferredBlockSize(), and m_d.

    -

    Referenced by FixedTempoEstimator::D::getOutputDescriptors().

    +

    Referenced by getInputDomain().

    - + +

    ◆ getParameterDescriptors()

    +
    + + + + + +
    - + - +
    FixedTempoEstimator::ParameterList FixedTempoEstimator::getParameterDescriptors FixedTempoEstimator::ParameterList FixedTempoEstimator::getParameterDescriptors ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the controllable parameters of this plugin.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    -

    Definition at line 692 of file FixedTempoEstimator.cpp.

    +

    Definition at line 692 of file FixedTempoEstimator.cpp.

    -

    References FixedTempoEstimator::D::getParameterDescriptors(), and m_d.

    +

    References FixedTempoEstimator::D::getParameterDescriptors(), and m_d.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getParameter()

    +
    + + + + + +
    - + - +
    float FixedTempoEstimator::getParameter float FixedTempoEstimator::getParameter ( std::string  ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the value of a named parameter.

    The argument is the identifier field from that parameter's descriptor.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    -

    Definition at line 698 of file FixedTempoEstimator.cpp.

    +

    Definition at line 698 of file FixedTempoEstimator.cpp.

    -

    References FixedTempoEstimator::D::getParameter(), and m_d.

    +

    References FixedTempoEstimator::D::getParameter(), and m_d.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ setParameter()

    +
    + + + + + +
    - + @@ -673,54 +895,76 @@ - +
    void FixedTempoEstimator::setParameter void FixedTempoEstimator::setParameter ( std::string  ,
    ) [virtual]
    - -
    +
    +virtual
    +

    Set a named parameter.

    The first argument is the identifier field from that parameter's descriptor.

    Reimplemented from Vamp::PluginBase.

    -

    Definition at line 704 of file FixedTempoEstimator.cpp.

    +

    Definition at line 704 of file FixedTempoEstimator.cpp.

    -

    References m_d, and FixedTempoEstimator::D::setParameter().

    +

    References m_d, and FixedTempoEstimator::D::setParameter().

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getOutputDescriptors()

    +
    + + + + + +
    - + - +
    FixedTempoEstimator::OutputList FixedTempoEstimator::getOutputDescriptors FixedTempoEstimator::OutputList FixedTempoEstimator::getOutputDescriptors ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the outputs of this plugin.

    -

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    +

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    Implements Vamp::Plugin.

    -

    Definition at line 710 of file FixedTempoEstimator.cpp.

    +

    Definition at line 710 of file FixedTempoEstimator.cpp.

    -

    References FixedTempoEstimator::D::getOutputDescriptors(), and m_d.

    +

    References FixedTempoEstimator::D::getOutputDescriptors(), and m_d.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ process()

    +
    + + + + + +
    - + @@ -734,11 +978,15 @@ - +
    FixedTempoEstimator::FeatureSet FixedTempoEstimator::process FixedTempoEstimator::FeatureSet FixedTempoEstimator::process ( const float *const *  inputBuffers,
    ) [virtual]
    - -
    +
    +virtual
    +

    Process a single block of input data.

    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.

    @@ -747,233 +995,329 @@

    Implements Vamp::Plugin.

    -

    Definition at line 716 of file FixedTempoEstimator.cpp.

    +

    Definition at line 716 of file FixedTempoEstimator.cpp.

    -

    References m_d, and FixedTempoEstimator::D::process().

    +

    References m_d, and FixedTempoEstimator::D::process().

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getRemainingFeatures()

    +
    + + + + + +
    - + - +
    FixedTempoEstimator::FeatureSet FixedTempoEstimator::getRemainingFeatures FixedTempoEstimator::FeatureSet FixedTempoEstimator::getRemainingFeatures ( ) [virtual]
    - -
    +
    +virtual
    +

    After all blocks have been processed, calculate and return any remaining features derived from the complete input.

    Implements Vamp::Plugin.

    -

    Definition at line 722 of file FixedTempoEstimator.cpp.

    +

    Definition at line 722 of file FixedTempoEstimator.cpp.

    -

    References FixedTempoEstimator::D::getRemainingFeatures(), and m_d.

    +

    References FixedTempoEstimator::D::getRemainingFeatures(), and m_d.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getMinChannelCount()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getMinChannelCount virtual size_t Vamp::Plugin::getMinChannelCount ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    - + +

    ◆ getMaxChannelCount()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getMaxChannelCount virtual size_t Vamp::Plugin::getMaxChannelCount ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    - + +

    ◆ getType()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::Plugin::getType virtual std::string Vamp::Plugin::getType ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    Do not reimplement this function in your subclass.

    Implements Vamp::PluginBase.

    -

    Definition at line 430 of file vamp-sdk/Plugin.h.

    +

    Definition at line 438 of file vamp-sdk/Plugin.h.

    - + +

    ◆ getVampApiVersion()

    +
    + + + + + +
    - + - +
    virtual unsigned int Vamp::PluginBase::getVampApiVersion virtual unsigned int Vamp::PluginBase::getVampApiVersion ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the Vamp API compatibility level of the plugin.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 68 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 68 of file vamp-sdk/PluginBase.h.

    -

    Referenced by enumeratePlugins().

    +

    Referenced by enumeratePlugins().

    - + +

    ◆ getPrograms()

    +
    + + + + + +
    - + - +
    virtual ProgramList Vamp::PluginBase::getPrograms virtual ProgramList Vamp::PluginBase::getPrograms ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the program settings available in this plugin.

    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.

    The programs must have unique names.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 233 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 237 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ getCurrentProgram()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getCurrentProgram virtual std::string Vamp::PluginBase::getCurrentProgram ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the current program.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 238 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 242 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ selectProgram()

    +
    + + + + + +
    - + - +
    virtual void Vamp::PluginBase::selectProgram virtual void Vamp::PluginBase::selectProgram ( std::string  ) [inline, virtual, inherited]
    - -
    +
    +inlinevirtualinherited
    +

    Select a program.

    (If the given program name is not one of the available programs, do nothing.)

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 244 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 248 of file vamp-sdk/PluginBase.h.

    + +

    References _VAMP_SDK_PLUGSPACE_END.

    -

    Member Data Documentation

    - +

    Member Data Documentation

    + +

    ◆ m_d

    +
    + + + + + +
    - +
    D* FixedTempoEstimator::m_d [protected]D* FixedTempoEstimator::m_d
    - -
    +
    +protected
    +
    - + +

    ◆ m_inputSampleRate

    +
    + + + + + +
    - +
    float Vamp::Plugin::m_inputSampleRate [protected, inherited]float Vamp::Plugin::m_inputSampleRate
    - -
    +
    +protectedinherited
    +
    @@ -982,17 +1326,15 @@
  • FixedTempoEstimator.cpp
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classFixedTempoEstimator.js --- a/code-docs/classFixedTempoEstimator.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classFixedTempoEstimator.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,37 +1,41 @@ var classFixedTempoEstimator = [ - [ "OutputList", "classVamp_1_1Plugin.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], - [ "FeatureList", "classVamp_1_1Plugin.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], - [ "FeatureSet", "classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], - [ "ParameterList", "classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], - [ "ProgramList", "classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20", null ], - [ "InputDomain", "classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc", null ], + [ "D", "classFixedTempoEstimator_1_1D.html", "classFixedTempoEstimator_1_1D" ], + [ "OutputList", "classFixedTempoEstimator.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], + [ "FeatureList", "classFixedTempoEstimator.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], + [ "FeatureSet", "classFixedTempoEstimator.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], + [ "ParameterList", "classFixedTempoEstimator.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], + [ "ProgramList", "classFixedTempoEstimator.html#a7f66f00437b21e5f694fe02356b12f20", null ], + [ "InputDomain", "classFixedTempoEstimator.html#a39cb7649d6dcc20e4cb1640cd55907bc", [ + [ "TimeDomain", "classFixedTempoEstimator.html#a39cb7649d6dcc20e4cb1640cd55907bcad4a9f31b958a43a9757af7893aa2e7ff", null ], + [ "FrequencyDomain", "classFixedTempoEstimator.html#a39cb7649d6dcc20e4cb1640cd55907bcaa30e7877ab33f76acbdca28607e6ab53", null ] + ] ], [ "FixedTempoEstimator", "classFixedTempoEstimator.html#a3967c189f054f864639837c2519bd64d", null ], [ "~FixedTempoEstimator", "classFixedTempoEstimator.html#a0302c4bfdc163a3d34478cde93c96a53", null ], [ "initialise", "classFixedTempoEstimator.html#aa7500a4ffbc4653baaf5101defdb37f5", null ], [ "reset", "classFixedTempoEstimator.html#ac41708397255400c6682fee6c1b3d45f", null ], - [ "getInputDomain", "classFixedTempoEstimator.html#a055689c9b41b0945e8d3cdbc3b8c3a2e", null ], - [ "getIdentifier", "classFixedTempoEstimator.html#ab818edcf1555177d10260e197e3a5e7a", null ], - [ "getName", "classFixedTempoEstimator.html#af9eb6fa8a98aa66b55e64e1795f9405f", null ], - [ "getDescription", "classFixedTempoEstimator.html#a06b00853f00c2e78d490697fcd7d1920", null ], - [ "getMaker", "classFixedTempoEstimator.html#ae910d1b9250b11097fd6b51cd8285b68", null ], - [ "getPluginVersion", "classFixedTempoEstimator.html#ad002fddb3735c2dd7e31e6a9def9949f", null ], - [ "getCopyright", "classFixedTempoEstimator.html#a50c6b64530c84c0707ba3936c5022a48", null ], - [ "getPreferredStepSize", "classFixedTempoEstimator.html#ad450bb7e7df559ae3d68dfbfb085676f", null ], - [ "getPreferredBlockSize", "classFixedTempoEstimator.html#a68b8569b71504a0478caf990dbe30683", null ], - [ "getParameterDescriptors", "classFixedTempoEstimator.html#ae157465a4e07d180bab05b5c3a4d8987", null ], - [ "getParameter", "classFixedTempoEstimator.html#a2030b05fb1228b30ace16200780c9152", null ], + [ "getInputDomain", "classFixedTempoEstimator.html#a7da277b8bf01708e2e7817ee5f4afce6", null ], + [ "getIdentifier", "classFixedTempoEstimator.html#a149f40bbccc3cf3bc05f35e32e6cedac", null ], + [ "getName", "classFixedTempoEstimator.html#aad3f044387fb8fd4dbadca8f397dd798", null ], + [ "getDescription", "classFixedTempoEstimator.html#a4e48cbf0eedb001c0824db864ee4d942", null ], + [ "getMaker", "classFixedTempoEstimator.html#a5ade364056e5ff7c3e2978d9a75a2988", null ], + [ "getPluginVersion", "classFixedTempoEstimator.html#a243f85a07ef5236e5c547a183969e0d2", null ], + [ "getCopyright", "classFixedTempoEstimator.html#a3bcf5f3d231454792d9abef114ad21b6", null ], + [ "getPreferredStepSize", "classFixedTempoEstimator.html#ac7c25bbeeef013210f4ab808ad12b659", null ], + [ "getPreferredBlockSize", "classFixedTempoEstimator.html#a9a2706b057bb269531f5c2797c42ddf4", null ], + [ "getParameterDescriptors", "classFixedTempoEstimator.html#a4d5edffcea6c8757e0c077913b098aea", null ], + [ "getParameter", "classFixedTempoEstimator.html#ae988b4015672a73914e83c1589952752", null ], [ "setParameter", "classFixedTempoEstimator.html#a8a5a413025384cf451c64d2c2ce13a75", null ], - [ "getOutputDescriptors", "classFixedTempoEstimator.html#a83121c205a723fe6297e2bf8870622a4", null ], + [ "getOutputDescriptors", "classFixedTempoEstimator.html#af8d3aaa1025078a6ee004f615cc68cbb", null ], [ "process", "classFixedTempoEstimator.html#a1cf76b0e55cf4ed3da095cffcdeaec3c", null ], [ "getRemainingFeatures", "classFixedTempoEstimator.html#a4965cf99be77fc4d1de51e11d83936b0", null ], - [ "getMinChannelCount", "classVamp_1_1Plugin.html#a267b42e866df3cf0d190893e8096f525", null ], - [ "getMaxChannelCount", "classVamp_1_1Plugin.html#a2c5ab12b6fa4847cb244bd1e9cb3ae5e", null ], - [ "getType", "classVamp_1_1Plugin.html#abe13b3997a69fbcc09e2213faa352f91", null ], - [ "getVampApiVersion", "classVamp_1_1PluginBase.html#a8fd2c48291c64b790f0efb8948508dcf", null ], - [ "getPrograms", "classVamp_1_1PluginBase.html#abb307c60bdb981d5f5af50c3c4ae84af", null ], - [ "getCurrentProgram", "classVamp_1_1PluginBase.html#a24e77eccf1bdfbbca3c79bb25e8799b3", null ], - [ "selectProgram", "classVamp_1_1PluginBase.html#aadd3a547ef140bae200473a9518e3353", null ], + [ "getMinChannelCount", "classFixedTempoEstimator.html#ab74f7634c6ac6e3da115667808a79c30", null ], + [ "getMaxChannelCount", "classFixedTempoEstimator.html#a0bff9464bc8c117470136c396b2405dd", null ], + [ "getType", "classFixedTempoEstimator.html#a530123068767a8728c568ffccfe3e4e5", null ], + [ "getVampApiVersion", "classFixedTempoEstimator.html#ab4aa9c3e6f6dd9addbc095463c9fb772", null ], + [ "getPrograms", "classFixedTempoEstimator.html#aaf6febff0ab4daf4a5089c98a67f4df8", null ], + [ "getCurrentProgram", "classFixedTempoEstimator.html#aac38c5dc6e87208616122897518ca3d5", null ], + [ "selectProgram", "classFixedTempoEstimator.html#aadd3a547ef140bae200473a9518e3353", null ], [ "m_d", "classFixedTempoEstimator.html#a5e1c9abaf33e9f48eb7d3b48f8af3308", null ], - [ "m_inputSampleRate", "classVamp_1_1Plugin.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] + [ "m_inputSampleRate", "classFixedTempoEstimator.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classFixedTempoEstimator_1_1D-members.html --- a/code-docs/classFixedTempoEstimator_1_1D-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classFixedTempoEstimator_1_1D-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,49 +63,49 @@
    FixedTempoEstimator::D Member List
    -This is the complete list of members for FixedTempoEstimator::D, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

    This is the complete list of members for FixedTempoEstimator::D, including all inherited members.

    +
    assembleFeatures()FixedTempoEstimator::D [private]
    calculate()FixedTempoEstimator::D [private]
    D(float inputSampleRate)FixedTempoEstimator::D
    getOutputDescriptors() const FixedTempoEstimator::D
    getParameter(string id) const FixedTempoEstimator::D
    getParameterDescriptors() const FixedTempoEstimator::D
    getPreferredBlockSize() const FixedTempoEstimator::D [inline]
    getPreferredStepSize() const FixedTempoEstimator::D [inline]
    getRemainingFeatures()FixedTempoEstimator::D
    initialise(size_t channels, size_t stepSize, size_t blockSize)FixedTempoEstimator::D
    lag2tempo(int)FixedTempoEstimator::D [private]
    m_blockSizeFixedTempoEstimator::D [private]
    m_dfFixedTempoEstimator::D [private]
    m_dfsizeFixedTempoEstimator::D [private]
    m_frFixedTempoEstimator::D [private]
    m_inputSampleRateFixedTempoEstimator::D [private]
    m_lasttimeFixedTempoEstimator::D [private]
    m_maxbpmFixedTempoEstimator::D [private]
    m_maxdflenFixedTempoEstimator::D [private]
    m_minbpmFixedTempoEstimator::D [private]
    m_nFixedTempoEstimator::D [private]
    m_priorMagnitudesFixedTempoEstimator::D [private]
    m_rFixedTempoEstimator::D [private]
    m_startFixedTempoEstimator::D [private]
    m_stepSizeFixedTempoEstimator::D [private]
    m_tFixedTempoEstimator::D [private]
    process(const float *const *, RealTime)FixedTempoEstimator::D
    reset()FixedTempoEstimator::D
    setParameter(string id, float value)FixedTempoEstimator::D
    tempo2lag(float)FixedTempoEstimator::D [private]
    ~D()FixedTempoEstimator::D
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    assembleFeatures()FixedTempoEstimator::Dprivate
    calculate()FixedTempoEstimator::Dprivate
    D(float inputSampleRate)FixedTempoEstimator::D
    getOutputDescriptors() constFixedTempoEstimator::D
    getParameter(string id) constFixedTempoEstimator::D
    getParameterDescriptors() constFixedTempoEstimator::D
    getPreferredBlockSize() constFixedTempoEstimator::Dinline
    getPreferredStepSize() constFixedTempoEstimator::Dinline
    getRemainingFeatures()FixedTempoEstimator::D
    initialise(size_t channels, size_t stepSize, size_t blockSize)FixedTempoEstimator::D
    lag2tempo(int)FixedTempoEstimator::Dprivate
    m_blockSizeFixedTempoEstimator::Dprivate
    m_dfFixedTempoEstimator::Dprivate
    m_dfsizeFixedTempoEstimator::Dprivate
    m_frFixedTempoEstimator::Dprivate
    m_inputSampleRateFixedTempoEstimator::Dprivate
    m_lasttimeFixedTempoEstimator::Dprivate
    m_maxbpmFixedTempoEstimator::Dprivate
    m_maxdflenFixedTempoEstimator::Dprivate
    m_minbpmFixedTempoEstimator::Dprivate
    m_nFixedTempoEstimator::Dprivate
    m_priorMagnitudesFixedTempoEstimator::Dprivate
    m_rFixedTempoEstimator::Dprivate
    m_startFixedTempoEstimator::Dprivate
    m_stepSizeFixedTempoEstimator::Dprivate
    m_tFixedTempoEstimator::Dprivate
    process(const float *const *, RealTime)FixedTempoEstimator::D
    reset()FixedTempoEstimator::D
    setParameter(string id, float value)FixedTempoEstimator::D
    tempo2lag(float)FixedTempoEstimator::Dprivate
    ~D()FixedTempoEstimator::D
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classFixedTempoEstimator_1_1D.html --- a/code-docs/classFixedTempoEstimator_1_1D.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classFixedTempoEstimator_1_1D.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: FixedTempoEstimator::D Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    - -

    List of all members.

    - + - - - - + + + + + + + + + - + + + + + + - +

    +

    Public Member Functions

     D (float inputSampleRate)
     
     ~D ()
    size_t getPreferredStepSize () const
    size_t getPreferredBlockSize () const
    ParameterList getParameterDescriptors () const
    float getParameter (string id) const
     
    size_t getPreferredStepSize () const
     
    size_t getPreferredBlockSize () const
     
    ParameterList getParameterDescriptors () const
     
    float getParameter (string id) const
     
    void setParameter (string id, float value)
    OutputList getOutputDescriptors () const
     
    OutputList getOutputDescriptors () const
     
    bool initialise (size_t channels, size_t stepSize, size_t blockSize)
     
    void reset ()
     
    FeatureSet process (const float *const *, RealTime)
     
    FeatureSet getRemainingFeatures ()

    +

     
    + + + + - +

    Private Member Functions

    void calculate ()
     
    FeatureSet assembleFeatures ()
     
    float lag2tempo (int)
     
    int tempo2lag (float)

    +

     
    + + + + + + + + + + + + + + + +

    Private Attributes

    float m_inputSampleRate
     
    size_t m_stepSize
     
    size_t m_blockSize
     
    float m_minbpm
     
    float m_maxbpm
     
    float m_maxdflen
     
    float * m_priorMagnitudes
     
    size_t m_dfsize
     
    float * m_df
     
    float * m_r
     
    float * m_fr
     
    float * m_t
     
    size_t m_n
     
    Vamp::RealTime m_start
     
    Vamp::RealTime m_lasttime
     
    -

    Detailed Description

    +

    Detailed Description

    -

    Definition at line 50 of file FixedTempoEstimator.cpp.

    -

    Constructor & Destructor Documentation

    - +

    Definition at line 50 of file FixedTempoEstimator.cpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ D()

    +
    - +
    FixedTempoEstimator::D::D FixedTempoEstimator::D::D ( float  inputSampleRate)
    -
    -
    +
    -

    Definition at line 99 of file FixedTempoEstimator.cpp.

    +

    Definition at line 99 of file FixedTempoEstimator.cpp.

    - + +

    ◆ ~D()

    +
    - +
    FixedTempoEstimator::D::~D FixedTempoEstimator::D::~D ( )
    -
    -
    +
    -

    Definition at line 115 of file FixedTempoEstimator.cpp.

    +

    Definition at line 115 of file FixedTempoEstimator.cpp.

    + +

    References m_df, m_fr, m_priorMagnitudes, m_r, and m_t.

    -

    Member Function Documentation

    - +

    Member Function Documentation

    + +

    ◆ getPreferredStepSize()

    + - + +

    ◆ getPreferredBlockSize()

    + +
    +
    + + + + + +
    + + + + + + + +
    size_t FixedTempoEstimator::D::getPreferredBlockSize () const
    +
    +inline
    +
    +
    + +

    ◆ getParameterDescriptors()

    + + +

    ◆ getParameter()

    + +
    +
    + + +
    float FixedTempoEstimator::D::getParameter ( string  id) const
    -
    -
    +
    -

    Definition at line 159 of file FixedTempoEstimator.cpp.

    +

    Definition at line 159 of file FixedTempoEstimator.cpp.

    -

    Referenced by FixedTempoEstimator::getParameter().

    +

    References m_maxbpm, m_maxdflen, and m_minbpm.

    + +

    Referenced by FixedTempoEstimator::getParameter(), and getPreferredBlockSize().

    - + +

    ◆ setParameter()

    +
    - + @@ -269,43 +317,47 @@
    void FixedTempoEstimator::D::setParameter void FixedTempoEstimator::D::setParameter ( string  id,
    -
    -
    +
    -

    Definition at line 172 of file FixedTempoEstimator.cpp.

    +

    Definition at line 172 of file FixedTempoEstimator.cpp.

    -

    Referenced by FixedTempoEstimator::setParameter().

    +

    References m_maxbpm, m_maxdflen, and m_minbpm.

    + +

    Referenced by getPreferredBlockSize(), and FixedTempoEstimator::setParameter().

    - + +

    ◆ getOutputDescriptors()

    +
    -
    +
    -

    Definition at line 190 of file FixedTempoEstimator.cpp.

    +

    Definition at line 190 of file FixedTempoEstimator.cpp.

    -

    References Vamp::Plugin::OutputDescriptor::binCount, Vamp::Plugin::OutputDescriptor::description, Vamp::Plugin::OutputDescriptor::FixedSampleRate, FixedTempoEstimator::getPreferredBlockSize(), Vamp::Plugin::OutputDescriptor::hasDuration, Vamp::Plugin::OutputDescriptor::hasFixedBinCount, Vamp::Plugin::OutputDescriptor::hasKnownExtents, Vamp::Plugin::OutputDescriptor::identifier, Vamp::Plugin::OutputDescriptor::isQuantized, Vamp::Plugin::m_inputSampleRate, Vamp::Plugin::OutputDescriptor::maxValue, Vamp::Plugin::OutputDescriptor::minValue, Vamp::Plugin::OutputDescriptor::name, Vamp::Plugin::OutputDescriptor::quantizeStep, Vamp::Plugin::OutputDescriptor::sampleRate, Vamp::Plugin::OutputDescriptor::sampleType, Vamp::Plugin::OutputDescriptor::unit, and Vamp::Plugin::OutputDescriptor::VariableSampleRate.

    +

    References Vamp::Plugin::OutputDescriptor::binCount, Vamp::Plugin::OutputDescriptor::description, Vamp::Plugin::OutputDescriptor::FixedSampleRate, getPreferredBlockSize(), Vamp::Plugin::OutputDescriptor::hasDuration, Vamp::Plugin::OutputDescriptor::hasFixedBinCount, Vamp::Plugin::OutputDescriptor::hasKnownExtents, Vamp::Plugin::OutputDescriptor::identifier, Vamp::Plugin::OutputDescriptor::isQuantized, m_inputSampleRate, m_stepSize, Vamp::Plugin::OutputDescriptor::maxValue, Vamp::Plugin::OutputDescriptor::minValue, Vamp::Plugin::OutputDescriptor::name, Vamp::Plugin::OutputDescriptor::quantizeStep, Vamp::Plugin::OutputDescriptor::sampleRate, Vamp::Plugin::OutputDescriptor::sampleType, Vamp::Plugin::OutputDescriptor::unit, and Vamp::Plugin::OutputDescriptor::VariableSampleRate.

    -

    Referenced by FixedTempoEstimator::getOutputDescriptors().

    +

    Referenced by FixedTempoEstimator::getOutputDescriptors(), and getPreferredBlockSize().

    - + +

    ◆ initialise()

    +
    - + @@ -328,43 +380,47 @@
    bool FixedTempoEstimator::D::initialise bool FixedTempoEstimator::D::initialise ( size_t  channels,
    -
    -
    +
    - + +

    ◆ reset()

    +
    - +
    void FixedTempoEstimator::D::reset void FixedTempoEstimator::D::reset ( )
    -
    -
    +
    -

    Definition at line 276 of file FixedTempoEstimator.cpp.

    +

    Definition at line 276 of file FixedTempoEstimator.cpp.

    -

    Referenced by FixedTempoEstimator::reset().

    +

    References m_blockSize, m_df, m_dfsize, m_fr, m_lasttime, m_n, m_priorMagnitudes, m_r, m_start, and m_t.

    + +

    Referenced by getPreferredBlockSize(), and FixedTempoEstimator::reset().

    - + +

    ◆ process()

    +
    - + @@ -381,340 +437,553 @@
    FixedTempoEstimator::FeatureSet FixedTempoEstimator::D::process FixedTempoEstimator::FeatureSet FixedTempoEstimator::D::process ( const float *const *  inputBuffers,
    -
    -
    +
    - + +

    ◆ getRemainingFeatures()

    + - + +

    ◆ calculate()

    +
    + + + + + +
    - + - +
    void FixedTempoEstimator::D::calculate void FixedTempoEstimator::D::calculate ( ) [private]
    - -
    +
    +private
    +
    -

    Definition at line 375 of file FixedTempoEstimator.cpp.

    +

    Definition at line 375 of file FixedTempoEstimator.cpp.

    -

    References Vamp::Plugin::m_inputSampleRate.

    +

    References lag2tempo(), m_df, m_dfsize, m_fr, m_inputSampleRate, m_n, m_r, m_stepSize, and m_t.

    + +

    Referenced by getPreferredBlockSize(), getRemainingFeatures(), and process().

    - + +

    ◆ assembleFeatures()

    + - + +

    ◆ lag2tempo()

    +
    + + + + + +
    - + - +
    float FixedTempoEstimator::D::lag2tempo float FixedTempoEstimator::D::lag2tempo ( int  lag) [private]
    - -
    +
    +private
    +
    -

    Definition at line 363 of file FixedTempoEstimator.cpp.

    +

    Definition at line 363 of file FixedTempoEstimator.cpp.

    -

    References Vamp::Plugin::m_inputSampleRate.

    +

    References m_inputSampleRate, and m_stepSize.

    + +

    Referenced by assembleFeatures(), calculate(), and getPreferredBlockSize().

    - + +

    ◆ tempo2lag()

    +
    + + + + + +
    - + - +
    int FixedTempoEstimator::D::tempo2lag int FixedTempoEstimator::D::tempo2lag ( float  tempo) [private]
    - -
    +
    +private
    +
    -

    Definition at line 369 of file FixedTempoEstimator.cpp.

    +

    Definition at line 369 of file FixedTempoEstimator.cpp.

    -

    References Vamp::Plugin::m_inputSampleRate.

    +

    References m_inputSampleRate, and m_stepSize.

    + +

    Referenced by assembleFeatures(), and getPreferredBlockSize().

    -

    Member Data Documentation

    - +

    Member Data Documentation

    + +

    ◆ m_inputSampleRate

    +
    + + + + + +
    - +
    float FixedTempoEstimator::D::m_inputSampleRate [private]float FixedTempoEstimator::D::m_inputSampleRate
    - -
    +
    +private
    +
    -

    Definition at line 78 of file FixedTempoEstimator.cpp.

    +

    Definition at line 78 of file FixedTempoEstimator.cpp.

    + +

    Referenced by assembleFeatures(), calculate(), getOutputDescriptors(), initialise(), lag2tempo(), and tempo2lag().

    - + +

    ◆ m_stepSize

    +
    + + + + + +
    - +
    size_t FixedTempoEstimator::D::m_stepSize [private]size_t FixedTempoEstimator::D::m_stepSize
    - -
    +
    +private
    +
    -

    Definition at line 79 of file FixedTempoEstimator.cpp.

    +

    Definition at line 79 of file FixedTempoEstimator.cpp.

    + +

    Referenced by assembleFeatures(), calculate(), getOutputDescriptors(), initialise(), lag2tempo(), process(), and tempo2lag().

    - + +

    ◆ m_blockSize

    +
    + + + + + +
    - +
    size_t FixedTempoEstimator::D::m_blockSize [private]size_t FixedTempoEstimator::D::m_blockSize
    - -
    +
    +private
    +
    -

    Definition at line 80 of file FixedTempoEstimator.cpp.

    +

    Definition at line 80 of file FixedTempoEstimator.cpp.

    + +

    Referenced by initialise(), process(), and reset().

    - + +

    ◆ m_minbpm

    +
    + + + + + +
    - +
    float FixedTempoEstimator::D::m_minbpm [private]float FixedTempoEstimator::D::m_minbpm
    - -
    +
    +private
    +
    -

    Definition at line 82 of file FixedTempoEstimator.cpp.

    +

    Definition at line 82 of file FixedTempoEstimator.cpp.

    + +

    Referenced by assembleFeatures(), getParameter(), and setParameter().

    - + +

    ◆ m_maxbpm

    +
    + + + + + +
    - +
    float FixedTempoEstimator::D::m_maxbpm [private]float FixedTempoEstimator::D::m_maxbpm
    - -
    +
    +private
    +
    -

    Definition at line 83 of file FixedTempoEstimator.cpp.

    +

    Definition at line 83 of file FixedTempoEstimator.cpp.

    + +

    Referenced by assembleFeatures(), getParameter(), and setParameter().

    - + +

    ◆ m_maxdflen

    +
    + + + + + +
    - +
    float FixedTempoEstimator::D::m_maxdflen [private]float FixedTempoEstimator::D::m_maxdflen
    - -
    +
    +private
    +
    -

    Definition at line 84 of file FixedTempoEstimator.cpp.

    +

    Definition at line 84 of file FixedTempoEstimator.cpp.

    + +

    Referenced by getParameter(), initialise(), and setParameter().

    - + +

    ◆ m_priorMagnitudes

    +
    + + + + + +
    - +
    float* FixedTempoEstimator::D::m_priorMagnitudes [private]float* FixedTempoEstimator::D::m_priorMagnitudes
    - -
    +
    +private
    +
    -

    Definition at line 86 of file FixedTempoEstimator.cpp.

    +

    Definition at line 86 of file FixedTempoEstimator.cpp.

    + +

    Referenced by initialise(), process(), reset(), and ~D().

    - + +

    ◆ m_dfsize

    +
    + + + + + +
    - +
    size_t FixedTempoEstimator::D::m_dfsize [private]size_t FixedTempoEstimator::D::m_dfsize
    - -
    +
    +private
    +
    -

    Definition at line 88 of file FixedTempoEstimator.cpp.

    +

    Definition at line 88 of file FixedTempoEstimator.cpp.

    + +

    Referenced by calculate(), getRemainingFeatures(), initialise(), process(), and reset().

    - + +

    ◆ m_df

    +
    + + + + + +
    - +
    float* FixedTempoEstimator::D::m_df [private]float* FixedTempoEstimator::D::m_df
    - -
    +
    +private
    +
    -

    Definition at line 89 of file FixedTempoEstimator.cpp.

    +

    Definition at line 89 of file FixedTempoEstimator.cpp.

    + +

    Referenced by assembleFeatures(), calculate(), initialise(), process(), reset(), and ~D().

    - + +

    ◆ m_r

    +
    + + + + + +
    - +
    float* FixedTempoEstimator::D::m_r [private]float* FixedTempoEstimator::D::m_r
    - -
    +
    +private
    +
    -

    Definition at line 90 of file FixedTempoEstimator.cpp.

    +

    Definition at line 90 of file FixedTempoEstimator.cpp.

    + +

    Referenced by assembleFeatures(), calculate(), reset(), and ~D().

    - + +

    ◆ m_fr

    +
    + + + + + +
    - +
    float* FixedTempoEstimator::D::m_fr [private]float* FixedTempoEstimator::D::m_fr
    - -
    +
    +private
    +
    -

    Definition at line 91 of file FixedTempoEstimator.cpp.

    +

    Definition at line 91 of file FixedTempoEstimator.cpp.

    + +

    Referenced by assembleFeatures(), calculate(), reset(), and ~D().

    - + +

    ◆ m_t

    +
    + + + + + +
    - +
    float* FixedTempoEstimator::D::m_t [private]float* FixedTempoEstimator::D::m_t
    - -
    +
    +private
    +
    -

    Definition at line 92 of file FixedTempoEstimator.cpp.

    +

    Definition at line 92 of file FixedTempoEstimator.cpp.

    + +

    Referenced by assembleFeatures(), calculate(), reset(), and ~D().

    - + +

    ◆ m_n

    +
    + + + + + +
    - +
    size_t FixedTempoEstimator::D::m_n [private]size_t FixedTempoEstimator::D::m_n
    - -
    +
    +private
    +
    -

    Definition at line 93 of file FixedTempoEstimator.cpp.

    +

    Definition at line 93 of file FixedTempoEstimator.cpp.

    + +

    Referenced by assembleFeatures(), calculate(), getRemainingFeatures(), initialise(), process(), and reset().

    - + +

    ◆ m_start

    +
    + + + + + +
    - +
    Vamp::RealTime FixedTempoEstimator::D::m_start [private]Vamp::RealTime FixedTempoEstimator::D::m_start
    - -
    +
    +private
    +
    -

    Definition at line 95 of file FixedTempoEstimator.cpp.

    +

    Definition at line 95 of file FixedTempoEstimator.cpp.

    + +

    Referenced by assembleFeatures(), process(), and reset().

    - + +

    ◆ m_lasttime

    +
    + + + + + +
    - +
    Vamp::RealTime FixedTempoEstimator::D::m_lasttime [private]Vamp::RealTime FixedTempoEstimator::D::m_lasttime
    - -
    +
    +private
    +
    -

    Definition at line 96 of file FixedTempoEstimator.cpp.

    +

    Definition at line 96 of file FixedTempoEstimator.cpp.

    + +

    Referenced by assembleFeatures(), process(), and reset().

    @@ -722,18 +991,15 @@
  • FixedTempoEstimator.cpp
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classFixedTempoEstimator_1_1D.js --- a/code-docs/classFixedTempoEstimator_1_1D.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classFixedTempoEstimator_1_1D.js Fri Feb 24 16:44:47 2017 +0000 @@ -2,12 +2,12 @@ [ [ "D", "classFixedTempoEstimator_1_1D.html#a104a9b64d47eca678844584f69ca0b9d", null ], [ "~D", "classFixedTempoEstimator_1_1D.html#a78a63ac8bbf342cb0405747871adf4cc", null ], - [ "getPreferredStepSize", "classFixedTempoEstimator_1_1D.html#add749be18355ab1ae5c1ccbacfd2e192", null ], - [ "getPreferredBlockSize", "classFixedTempoEstimator_1_1D.html#ac02826f981736fc2aa5d835fa14e174d", null ], - [ "getParameterDescriptors", "classFixedTempoEstimator_1_1D.html#a06fcf80a9a22c4b90abbc88eb592621a", null ], - [ "getParameter", "classFixedTempoEstimator_1_1D.html#a968ef2e555c81e4a3bde89d19fafb31a", null ], + [ "getPreferredStepSize", "classFixedTempoEstimator_1_1D.html#af766d753c0e468470fbca43620164aa4", null ], + [ "getPreferredBlockSize", "classFixedTempoEstimator_1_1D.html#a12f1c5dc6b1101a9c8a91e4f3eaed4b7", null ], + [ "getParameterDescriptors", "classFixedTempoEstimator_1_1D.html#aa8c27a6743d666f6d33227374d84360c", null ], + [ "getParameter", "classFixedTempoEstimator_1_1D.html#a18751bfd7126626178bbf5987144c060", null ], [ "setParameter", "classFixedTempoEstimator_1_1D.html#a6cafa64d4cc8aa3556bc0ce6b0c49bc4", null ], - [ "getOutputDescriptors", "classFixedTempoEstimator_1_1D.html#a7ce98af800f36045a0dae4b1dbed943f", null ], + [ "getOutputDescriptors", "classFixedTempoEstimator_1_1D.html#a61ce207b248cabe87ca757a858b16e87", null ], [ "initialise", "classFixedTempoEstimator_1_1D.html#af0fcad4493650728babb7e341963c91d", null ], [ "reset", "classFixedTempoEstimator_1_1D.html#af5ac8147bfe79371d00aba8a19c2f8fd", null ], [ "process", "classFixedTempoEstimator_1_1D.html#a7fac74fc9fc54f436408705d1e125e20", null ], diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classFixedTempoEstimator__inherit__graph.map --- a/code-docs/classFixedTempoEstimator__inherit__graph.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classFixedTempoEstimator__inherit__graph.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,4 +1,4 @@ - - - + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classFixedTempoEstimator__inherit__graph.md5 --- a/code-docs/classFixedTempoEstimator__inherit__graph.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classFixedTempoEstimator__inherit__graph.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -326039cc76da1b1dddbe8c796ad3202b \ No newline at end of file +5735795ccabf060a4085df493910df91 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classFixedTempoEstimator__inherit__graph.png Binary file code-docs/classFixedTempoEstimator__inherit__graph.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classPercussionOnsetDetector-members.html --- a/code-docs/classPercussionOnsetDetector-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classPercussionOnsetDetector-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,63 +63,63 @@
    PercussionOnsetDetector Member List
    -This is the complete list of members for PercussionOnsetDetector, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

    This is the complete list of members for PercussionOnsetDetector, including all inherited members.

    +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() const PercussionOnsetDetector [virtual]
    getCurrentProgram() const Vamp::PluginBase [inline, virtual]
    getDescription() const PercussionOnsetDetector [virtual]
    getIdentifier() const PercussionOnsetDetector [virtual]
    getInputDomain() const PercussionOnsetDetector [inline, virtual]
    getMaker() const PercussionOnsetDetector [virtual]
    getMaxChannelCount() const Vamp::Plugin [inline, virtual]
    getMinChannelCount() const Vamp::Plugin [inline, virtual]
    getName() const PercussionOnsetDetector [virtual]
    getOutputDescriptors() const PercussionOnsetDetector [virtual]
    getParameter(std::string id) const PercussionOnsetDetector [virtual]
    getParameterDescriptors() const PercussionOnsetDetector [virtual]
    getPluginVersion() const PercussionOnsetDetector [virtual]
    getPreferredBlockSize() const PercussionOnsetDetector [virtual]
    getPreferredStepSize() const PercussionOnsetDetector [virtual]
    getPrograms() const Vamp::PluginBase [inline, virtual]
    getRemainingFeatures()PercussionOnsetDetector [virtual]
    getType() const Vamp::Plugin [inline, virtual]
    getVampApiVersion() const Vamp::PluginBase [inline, virtual]
    initialise(size_t channels, size_t stepSize, size_t blockSize)PercussionOnsetDetector [virtual]
    InputDomain enum nameVamp::Plugin
    m_blockSizePercussionOnsetDetector [protected]
    m_dfMinus1PercussionOnsetDetector [protected]
    m_dfMinus2PercussionOnsetDetector [protected]
    m_inputSampleRateVamp::Plugin [protected]
    m_priorMagnitudesPercussionOnsetDetector [protected]
    m_sensitivityPercussionOnsetDetector [protected]
    m_stepSizePercussionOnsetDetector [protected]
    m_thresholdPercussionOnsetDetector [protected]
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    PercussionOnsetDetector(float inputSampleRate)PercussionOnsetDetector
    Plugin(float inputSampleRate)Vamp::Plugin [inline, protected]
    process(const float *const *inputBuffers, Vamp::RealTime timestamp)PercussionOnsetDetector [virtual]
    ProgramList typedefVamp::PluginBase
    reset()PercussionOnsetDetector [virtual]
    selectProgram(std::string)Vamp::PluginBase [inline, virtual]
    setParameter(std::string id, float value)PercussionOnsetDetector [virtual]
    TimeDomain enum valueVamp::Plugin
    ~PercussionOnsetDetector()PercussionOnsetDetector [virtual]
    ~Plugin()Vamp::Plugin [inline, virtual]
    ~PluginBase()Vamp::PluginBase [inline, virtual]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() constPercussionOnsetDetectorvirtual
    getCurrentProgram() constVamp::PluginBaseinlinevirtual
    getDescription() constPercussionOnsetDetectorvirtual
    getIdentifier() constPercussionOnsetDetectorvirtual
    getInputDomain() constPercussionOnsetDetectorinlinevirtual
    getMaker() constPercussionOnsetDetectorvirtual
    getMaxChannelCount() constVamp::Plugininlinevirtual
    getMinChannelCount() constVamp::Plugininlinevirtual
    getName() constPercussionOnsetDetectorvirtual
    getOutputDescriptors() constPercussionOnsetDetectorvirtual
    getParameter(std::string id) constPercussionOnsetDetectorvirtual
    getParameterDescriptors() constPercussionOnsetDetectorvirtual
    getPluginVersion() constPercussionOnsetDetectorvirtual
    getPreferredBlockSize() constPercussionOnsetDetectorvirtual
    getPreferredStepSize() constPercussionOnsetDetectorvirtual
    getPrograms() constVamp::PluginBaseinlinevirtual
    getRemainingFeatures()PercussionOnsetDetectorvirtual
    getType() constVamp::Plugininlinevirtual
    getVampApiVersion() constVamp::PluginBaseinlinevirtual
    initialise(size_t channels, size_t stepSize, size_t blockSize)PercussionOnsetDetectorvirtual
    InputDomain enum nameVamp::Plugin
    m_blockSizePercussionOnsetDetectorprotected
    m_dfMinus1PercussionOnsetDetectorprotected
    m_dfMinus2PercussionOnsetDetectorprotected
    m_inputSampleRateVamp::Pluginprotected
    m_priorMagnitudesPercussionOnsetDetectorprotected
    m_sensitivityPercussionOnsetDetectorprotected
    m_stepSizePercussionOnsetDetectorprotected
    m_thresholdPercussionOnsetDetectorprotected
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    PercussionOnsetDetector(float inputSampleRate)PercussionOnsetDetector
    Plugin(float inputSampleRate)Vamp::Plugininlineprotected
    process(const float *const *inputBuffers, Vamp::RealTime timestamp)PercussionOnsetDetectorvirtual
    ProgramList typedefVamp::PluginBase
    reset()PercussionOnsetDetectorvirtual
    selectProgram(std::string)Vamp::PluginBaseinlinevirtual
    setParameter(std::string id, float value)PercussionOnsetDetectorvirtual
    TimeDomain enum valueVamp::Plugin
    ~PercussionOnsetDetector()PercussionOnsetDetectorvirtual
    ~Plugin()Vamp::Plugininlinevirtual
    ~PluginBase()Vamp::PluginBaseinlinevirtual
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classPercussionOnsetDetector.html --- a/code-docs/classPercussionOnsetDetector.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classPercussionOnsetDetector.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: PercussionOnsetDetector Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -91,238 +78,342 @@
    Inheritance graph
    - + + +
    [legend]
    - -

    List of all members.

    - - + + + - - + + + + + - +

    +

    Public Types

    enum  InputDomain { TimeDomain, FrequencyDomain }
    typedef std::vector
    -< OutputDescriptor
    OutputList
     
    typedef std::vector< OutputDescriptorOutputList
     
    typedef std::vector< FeatureFeatureList
    typedef std::map< int,
    -FeatureList
    FeatureSet
    typedef std::vector
    -< ParameterDescriptor
    ParameterList
     
    typedef std::map< int, FeatureListFeatureSet
     
    typedef std::vector< ParameterDescriptorParameterList
     
    typedef std::vector< std::string > ProgramList

    +

     
    + + + - + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - + +

    Public Member Functions

     PercussionOnsetDetector (float inputSampleRate)
     
    virtual ~PercussionOnsetDetector ()
     
    bool initialise (size_t channels, size_t stepSize, size_t blockSize)
     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).
     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). More...
     
    void reset ()
     Reset the plugin after use, to prepare it for another clean run.
    InputDomain getInputDomain () const
     Get the plugin's required input domain.
    std::string getIdentifier () const
     Get the computer-usable name of the plugin.
    std::string getName () const
     Get a human-readable name or title of the plugin.
    std::string getDescription () const
     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".
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form.
    int getPluginVersion () const
     Get the version number of the plugin.
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin.
    size_t getPreferredStepSize () const
     Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.
    size_t getPreferredBlockSize () const
     Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).
    ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin.
    float getParameter (std::string id) const
     Get the value of a named parameter.
     Reset the plugin after use, to prepare it for another clean run. More...
     
    InputDomain getInputDomain () const
     Get the plugin's required input domain. More...
     
    std::string getIdentifier () const
     Get the computer-usable name of the plugin. More...
     
    std::string getName () const
     Get a human-readable name or title of the plugin. More...
     
    std::string getDescription () const
     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". More...
     
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form. More...
     
    int getPluginVersion () const
     Get the version number of the plugin. More...
     
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin. More...
     
    size_t getPreferredStepSize () const
     Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin. More...
     
    size_t getPreferredBlockSize () const
     Get the preferred block size (window size – the number of sample frames passed in each block to the process() function). More...
     
    ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin. More...
     
    float getParameter (std::string id) const
     Get the value of a named parameter. More...
     
    void setParameter (std::string id, float value)
     Set a named parameter.
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin.
     Set a named parameter. More...
     
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin. More...
     
    FeatureSet process (const float *const *inputBuffers, Vamp::RealTime timestamp)
     Process a single block of input data.
     Process a single block of input data. More...
     
    FeatureSet getRemainingFeatures ()
     After all blocks have been processed, calculate and return any remaining features derived from the complete input.
    virtual size_t getMinChannelCount () const
     Get the minimum supported number of input channels.
    virtual size_t getMaxChannelCount () const
     Get the maximum supported number of input channels.
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.
    virtual unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin.
    virtual ProgramList getPrograms () const
     Get the program settings available in this plugin.
    virtual std::string getCurrentProgram () const
     Get the current program.
     After all blocks have been processed, calculate and return any remaining features derived from the complete input. More...
     
    virtual size_t getMinChannelCount () const
     Get the minimum supported number of input channels. More...
     
    virtual size_t getMaxChannelCount () const
     Get the maximum supported number of input channels. More...
     
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase. More...
     
    virtual unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin. More...
     
    virtual ProgramList getPrograms () const
     Get the program settings available in this plugin. More...
     
    virtual std::string getCurrentProgram () const
     Get the current program. More...
     
    virtual void selectProgram (std::string)
     Select a program.

    +

     Select a program. More...
     
    + + + + + + + + +

    Protected Attributes

    size_t m_stepSize
     
    size_t m_blockSize
     
    float m_threshold
     
    float m_sensitivity
     
    float * m_priorMagnitudes
     
    float m_dfMinus1
     
    float m_dfMinus2
     
    float m_inputSampleRate
     
    -

    Detailed Description

    +

    Detailed Description

    Example plugin that detects percussive events.

    -

    Definition at line 46 of file PercussionOnsetDetector.h.

    -

    Member Typedef Documentation

    - +

    Definition at line 46 of file PercussionOnsetDetector.h.

    +

    Member Typedef Documentation

    + +

    ◆ OutputList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList
    +
    +inherited
    +
    + +

    Definition at line 335 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ FeatureList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<Feature> Vamp::Plugin::FeatureList
    +
    +inherited
    +
    + +

    Definition at line 393 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ FeatureSet

    + +
    +
    + + + + + +
    + + + + +
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet
    +
    +inherited
    +
    + +

    Definition at line 395 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ ParameterList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList
    +
    +inherited
    +
    + +

    Definition at line 203 of file vamp-sdk/PluginBase.h.

    + +
    +
    + +

    ◆ ProgramList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList
    +
    +inherited
    +
    + +

    Definition at line 225 of file vamp-sdk/PluginBase.h.

    + +
    +
    +

    Member Enumeration Documentation

    + +

    ◆ InputDomain

    + +
    +
    + + + + + +
    + + + + +
    enum Vamp::Plugin::InputDomain
    +
    +inherited
    +
    + + + +
    Enumerator
    TimeDomain 
    FrequencyDomain 
    + +

    Definition at line 152 of file vamp-sdk/Plugin.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ PercussionOnsetDetector()

    +
    - - -
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList [inherited]
    -
    -
    - -

    Definition at line 327 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<Feature> Vamp::Plugin::FeatureList [inherited]
    -
    -
    - -

    Definition at line 385 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet [inherited]
    -
    -
    - -

    Definition at line 387 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList [inherited]
    -
    -
    - -

    Definition at line 199 of file vamp-sdk/PluginBase.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList [inherited]
    -
    -
    - -

    Definition at line 221 of file vamp-sdk/PluginBase.h.

    - -
    -
    -

    Member Enumeration Documentation

    - -
    -
    - - - - -
    enum Vamp::Plugin::InputDomain [inherited]
    -
    -
    -
    Enumerator:
    - - -
    TimeDomain  -
    FrequencyDomain  -
    -
    -
    - -

    Definition at line 152 of file vamp-sdk/Plugin.h.

    - -
    -
    -

    Constructor & Destructor Documentation

    - -
    -
    - - - +
    PercussionOnsetDetector::PercussionOnsetDetector PercussionOnsetDetector::PercussionOnsetDetector ( float  inputSampleRate)
    -
    -
    +
    -

    Definition at line 47 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 47 of file PercussionOnsetDetector.cpp.

    - + +

    ◆ ~PercussionOnsetDetector()

    +
    + + + + + +
    - + - +
    PercussionOnsetDetector::~PercussionOnsetDetector PercussionOnsetDetector::~PercussionOnsetDetector ( ) [virtual]
    - -
    +
    +virtual
    +
    -

    Definition at line 59 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 59 of file PercussionOnsetDetector.cpp.

    -

    References m_priorMagnitudes.

    +

    References m_priorMagnitudes.

    -

    Member Function Documentation

    - +

    Member Function Documentation

    + +

    ◆ initialise()

    +
    + + + + + +
    - + @@ -342,11 +433,15 @@ - +
    bool PercussionOnsetDetector::initialise bool PercussionOnsetDetector::initialise ( size_t  inputChannels,
    ) [virtual]
    - -
    +
    +virtual
    +

    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).

    The input sample rate should have been already specified at construction time.

    @@ -354,76 +449,103 @@

    Implements Vamp::Plugin.

    -

    Definition at line 113 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 113 of file PercussionOnsetDetector.cpp.

    -

    References Vamp::Plugin::getMaxChannelCount(), Vamp::Plugin::getMinChannelCount(), m_blockSize, m_dfMinus1, m_dfMinus2, m_priorMagnitudes, and m_stepSize.

    +

    References Vamp::Plugin::getMaxChannelCount(), Vamp::Plugin::getMinChannelCount(), m_blockSize, m_dfMinus1, m_dfMinus2, m_priorMagnitudes, and m_stepSize.

    - + +

    ◆ reset()

    +
    + + + + + +
    - + - +
    void PercussionOnsetDetector::reset void PercussionOnsetDetector::reset ( ) [virtual]
    - -
    +
    +virtual
    +

    Reset the plugin after use, to prepare it for another clean run.

    Not called for the first initialisation (i.e. initialise must also do a reset).

    Implements Vamp::Plugin.

    -

    Definition at line 134 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 134 of file PercussionOnsetDetector.cpp.

    -

    References m_blockSize, m_dfMinus1, m_dfMinus2, and m_priorMagnitudes.

    +

    References m_blockSize, m_dfMinus1, m_dfMinus2, and m_priorMagnitudes.

    - + +

    ◆ getInputDomain()

    +
    + + + + + +
    - + - +
    InputDomain PercussionOnsetDetector::getInputDomain InputDomain PercussionOnsetDetector::getInputDomain ( ) const [inline, virtual] const
    - -
    +
    +inlinevirtual
    +

    Get the plugin's required input domain.

    -

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    -

    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 process(). 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.

    +

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    +

    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 process(). 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.

    Implements Vamp::Plugin.

    -

    Definition at line 55 of file PercussionOnsetDetector.h.

    +

    Definition at line 55 of file PercussionOnsetDetector.h.

    -

    References Vamp::Plugin::FrequencyDomain.

    +

    References Vamp::Plugin::FrequencyDomain, getCopyright(), getDescription(), getIdentifier(), getMaker(), getName(), getOutputDescriptors(), getParameter(), getParameterDescriptors(), getPluginVersion(), getPreferredBlockSize(), getPreferredStepSize(), getRemainingFeatures(), process(), and setParameter().

    - + +

    ◆ getIdentifier()

    +
    + + + + + +
    - + - +
    string PercussionOnsetDetector::getIdentifier string PercussionOnsetDetector::getIdentifier ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the computer-usable name of the plugin.

    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.

    @@ -432,23 +554,34 @@

    Implements Vamp::PluginBase.

    -

    Definition at line 65 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 65 of file PercussionOnsetDetector.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getName()

    +
    + + + + + +
    - + - +
    string PercussionOnsetDetector::getName string PercussionOnsetDetector::getName ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get a human-readable name or title of the plugin.

    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").

    @@ -456,23 +589,34 @@

    Implements Vamp::PluginBase.

    -

    Definition at line 71 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 71 of file PercussionOnsetDetector.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getDescription()

    +
    + + + + + +
    - + - +
    string PercussionOnsetDetector::getDescription string PercussionOnsetDetector::getDescription ( ) const [virtual] const
    - -
    +
    +virtual
    +

    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".

    May be empty if the name has said it all already.

    @@ -480,182 +624,266 @@

    Implements Vamp::PluginBase.

    -

    Definition at line 77 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 77 of file PercussionOnsetDetector.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getMaker()

    +
    + + + + + +
    - + - +
    string PercussionOnsetDetector::getMaker string PercussionOnsetDetector::getMaker ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the name of the author or vendor of the plugin in human-readable form.

    This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar.

    Implements Vamp::PluginBase.

    -

    Definition at line 83 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 83 of file PercussionOnsetDetector.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getPluginVersion()

    +
    + + + + + +
    - + - +
    int PercussionOnsetDetector::getPluginVersion int PercussionOnsetDetector::getPluginVersion ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the version number of the plugin.

    Implements Vamp::PluginBase.

    -

    Definition at line 89 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 89 of file PercussionOnsetDetector.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getCopyright()

    +
    + + + + + +
    - + - +
    string PercussionOnsetDetector::getCopyright string PercussionOnsetDetector::getCopyright ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the copyright statement or licensing summary for the plugin.

    This can be an informative text, without the same presentation constraints as mentioned for getMaker above.

    Implements Vamp::PluginBase.

    -

    Definition at line 95 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 95 of file PercussionOnsetDetector.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getPreferredStepSize()

    +
    + + + + + +
    - + - +
    size_t PercussionOnsetDetector::getPreferredStepSize size_t PercussionOnsetDetector::getPreferredStepSize ( ) const [virtual] const
    - -
    +
    +virtual
    +
    -

    Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    -

    This should be called before initialise().

    -

    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 initialise() call.

    +

    Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    +

    This should be called before initialise().

    +

    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 initialise() call.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    -

    Definition at line 101 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 101 of file PercussionOnsetDetector.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getPreferredBlockSize()

    +
    + + + + + +
    - + - +
    size_t PercussionOnsetDetector::getPreferredBlockSize size_t PercussionOnsetDetector::getPreferredBlockSize ( ) const [virtual] const
    - -
    +
    +virtual
    +
    -

    Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).

    -

    This should be called before initialise().

    -

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    +

    Get the preferred block size (window size – the number of sample frames passed in each block to the process() function).

    +

    This should be called before initialise().

    +

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    -

    Definition at line 107 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 107 of file PercussionOnsetDetector.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getParameterDescriptors()

    + - + +

    ◆ getParameter()

    +
    + + + + + +
    - + - +
    float PercussionOnsetDetector::getParameter float PercussionOnsetDetector::getParameter ( std::string  ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the value of a named parameter.

    The argument is the identifier field from that parameter's descriptor.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    -

    Definition at line 174 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 174 of file PercussionOnsetDetector.cpp.

    -

    References m_sensitivity, and m_threshold.

    +

    References m_sensitivity, and m_threshold.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ setParameter()

    +
    + + + + + +
    - + @@ -669,54 +897,76 @@ - +
    void PercussionOnsetDetector::setParameter void PercussionOnsetDetector::setParameter ( std::string  ,
    ) [virtual]
    - -
    +
    +virtual
    +

    Set a named parameter.

    The first argument is the identifier field from that parameter's descriptor.

    Reimplemented from Vamp::PluginBase.

    -

    Definition at line 182 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 182 of file PercussionOnsetDetector.cpp.

    -

    References m_sensitivity, and m_threshold.

    +

    References m_sensitivity, and m_threshold.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getOutputDescriptors()

    +
    + + + + + +
    - + - +
    PercussionOnsetDetector::OutputList PercussionOnsetDetector::getOutputDescriptors PercussionOnsetDetector::OutputList PercussionOnsetDetector::getOutputDescriptors ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the outputs of this plugin.

    -

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    +

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    Implements Vamp::Plugin.

    -

    Definition at line 196 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 196 of file PercussionOnsetDetector.cpp.

    -

    References Vamp::Plugin::OutputDescriptor::binCount, Vamp::Plugin::OutputDescriptor::description, Vamp::Plugin::OutputDescriptor::hasFixedBinCount, Vamp::Plugin::OutputDescriptor::hasKnownExtents, Vamp::Plugin::OutputDescriptor::identifier, Vamp::Plugin::OutputDescriptor::isQuantized, Vamp::Plugin::m_inputSampleRate, Vamp::Plugin::OutputDescriptor::name, Vamp::Plugin::OutputDescriptor::OneSamplePerStep, Vamp::Plugin::OutputDescriptor::quantizeStep, Vamp::Plugin::OutputDescriptor::sampleRate, Vamp::Plugin::OutputDescriptor::sampleType, Vamp::Plugin::OutputDescriptor::unit, and Vamp::Plugin::OutputDescriptor::VariableSampleRate.

    +

    References Vamp::Plugin::OutputDescriptor::binCount, Vamp::Plugin::OutputDescriptor::description, Vamp::Plugin::OutputDescriptor::hasFixedBinCount, Vamp::Plugin::OutputDescriptor::hasKnownExtents, Vamp::Plugin::OutputDescriptor::identifier, Vamp::Plugin::OutputDescriptor::isQuantized, Vamp::Plugin::m_inputSampleRate, Vamp::Plugin::OutputDescriptor::name, Vamp::Plugin::OutputDescriptor::OneSamplePerStep, Vamp::Plugin::OutputDescriptor::quantizeStep, Vamp::Plugin::OutputDescriptor::sampleRate, Vamp::Plugin::OutputDescriptor::sampleType, Vamp::Plugin::OutputDescriptor::unit, and Vamp::Plugin::OutputDescriptor::VariableSampleRate.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ process()

    +
    + + + + + +
    - + @@ -730,11 +980,15 @@ - +
    PercussionOnsetDetector::FeatureSet PercussionOnsetDetector::process PercussionOnsetDetector::FeatureSet PercussionOnsetDetector::process ( const float *const *  inputBuffers,
    ) [virtual]
    - -
    +
    +virtual
    +

    Process a single block of input data.

    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.

    @@ -743,333 +997,483 @@

    Implements Vamp::Plugin.

    -

    Definition at line 226 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 226 of file PercussionOnsetDetector.cpp.

    -

    References Vamp::RealTime::frame2RealTime(), Vamp::Plugin::Feature::hasTimestamp, m_blockSize, m_dfMinus1, m_dfMinus2, Vamp::Plugin::m_inputSampleRate, m_priorMagnitudes, m_sensitivity, m_stepSize, m_threshold, Vamp::Plugin::Feature::timestamp, and Vamp::Plugin::Feature::values.

    +

    References Vamp::RealTime::frame2RealTime(), Vamp::Plugin::Feature::hasTimestamp, m_blockSize, m_dfMinus1, m_dfMinus2, Vamp::Plugin::m_inputSampleRate, m_priorMagnitudes, m_sensitivity, m_stepSize, m_threshold, Vamp::Plugin::Feature::timestamp, and Vamp::Plugin::Feature::values.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getRemainingFeatures()

    +
    + + + + + +
    - + - +
    PercussionOnsetDetector::FeatureSet PercussionOnsetDetector::getRemainingFeatures PercussionOnsetDetector::FeatureSet PercussionOnsetDetector::getRemainingFeatures ( ) [virtual]
    - -
    +
    +virtual
    +

    After all blocks have been processed, calculate and return any remaining features derived from the complete input.

    Implements Vamp::Plugin.

    -

    Definition at line 283 of file PercussionOnsetDetector.cpp.

    +

    Definition at line 283 of file PercussionOnsetDetector.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getMinChannelCount()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getMinChannelCount virtual size_t Vamp::Plugin::getMinChannelCount ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    - + +

    ◆ getMaxChannelCount()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getMaxChannelCount virtual size_t Vamp::Plugin::getMaxChannelCount ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    - + +

    ◆ getType()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::Plugin::getType virtual std::string Vamp::Plugin::getType ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    Do not reimplement this function in your subclass.

    Implements Vamp::PluginBase.

    -

    Definition at line 430 of file vamp-sdk/Plugin.h.

    +

    Definition at line 438 of file vamp-sdk/Plugin.h.

    - + +

    ◆ getVampApiVersion()

    +
    + + + + + +
    - + - +
    virtual unsigned int Vamp::PluginBase::getVampApiVersion virtual unsigned int Vamp::PluginBase::getVampApiVersion ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the Vamp API compatibility level of the plugin.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 68 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 68 of file vamp-sdk/PluginBase.h.

    -

    Referenced by enumeratePlugins().

    +

    Referenced by enumeratePlugins().

    - + +

    ◆ getPrograms()

    +
    + + + + + +
    - + - +
    virtual ProgramList Vamp::PluginBase::getPrograms virtual ProgramList Vamp::PluginBase::getPrograms ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the program settings available in this plugin.

    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.

    The programs must have unique names.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 233 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 237 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ getCurrentProgram()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getCurrentProgram virtual std::string Vamp::PluginBase::getCurrentProgram ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the current program.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 238 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 242 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ selectProgram()

    +
    + + + + + +
    - + - +
    virtual void Vamp::PluginBase::selectProgram virtual void Vamp::PluginBase::selectProgram ( std::string  ) [inline, virtual, inherited]
    - -
    +
    +inlinevirtualinherited
    +

    Select a program.

    (If the given program name is not one of the available programs, do nothing.)

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 244 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 248 of file vamp-sdk/PluginBase.h.

    + +

    References _VAMP_SDK_PLUGSPACE_END.

    -

    Member Data Documentation

    - +

    Member Data Documentation

    + +

    ◆ m_stepSize

    +
    + + + + + +
    - +
    size_t PercussionOnsetDetector::m_stepSize [protected]size_t PercussionOnsetDetector::m_stepSize
    - -
    +
    +protected
    +
    -

    Definition at line 79 of file PercussionOnsetDetector.h.

    +

    Definition at line 79 of file PercussionOnsetDetector.h.

    -

    Referenced by initialise(), and process().

    +

    Referenced by initialise(), and process().

    - + +

    ◆ m_blockSize

    +
    + + + + + +
    - +
    size_t PercussionOnsetDetector::m_blockSize [protected]size_t PercussionOnsetDetector::m_blockSize
    - -
    +
    +protected
    +
    -

    Definition at line 80 of file PercussionOnsetDetector.h.

    +

    Definition at line 80 of file PercussionOnsetDetector.h.

    -

    Referenced by initialise(), process(), and reset().

    +

    Referenced by initialise(), process(), and reset().

    - + +

    ◆ m_threshold

    +
    + + + + + +
    - +
    float PercussionOnsetDetector::m_threshold [protected]float PercussionOnsetDetector::m_threshold
    - -
    +
    +protected
    +
    -

    Definition at line 82 of file PercussionOnsetDetector.h.

    +

    Definition at line 82 of file PercussionOnsetDetector.h.

    -

    Referenced by getParameter(), process(), and setParameter().

    +

    Referenced by getParameter(), process(), and setParameter().

    - + +

    ◆ m_sensitivity

    +
    + + + + + +
    - +
    float PercussionOnsetDetector::m_sensitivity [protected]float PercussionOnsetDetector::m_sensitivity
    - -
    +
    +protected
    +
    -

    Definition at line 83 of file PercussionOnsetDetector.h.

    +

    Definition at line 83 of file PercussionOnsetDetector.h.

    -

    Referenced by getParameter(), process(), and setParameter().

    +

    Referenced by getParameter(), process(), and setParameter().

    - + +

    ◆ m_priorMagnitudes

    +
    + + + + + +
    - +
    float* PercussionOnsetDetector::m_priorMagnitudes [protected]float* PercussionOnsetDetector::m_priorMagnitudes
    - -
    +
    +protected
    +
    -

    Definition at line 84 of file PercussionOnsetDetector.h.

    +

    Definition at line 84 of file PercussionOnsetDetector.h.

    -

    Referenced by initialise(), process(), reset(), and ~PercussionOnsetDetector().

    +

    Referenced by initialise(), process(), reset(), and ~PercussionOnsetDetector().

    - + +

    ◆ m_dfMinus1

    +
    + + + + + +
    - +
    float PercussionOnsetDetector::m_dfMinus1 [protected]float PercussionOnsetDetector::m_dfMinus1
    - -
    +
    +protected
    +
    -

    Definition at line 85 of file PercussionOnsetDetector.h.

    +

    Definition at line 85 of file PercussionOnsetDetector.h.

    -

    Referenced by initialise(), process(), and reset().

    +

    Referenced by initialise(), process(), and reset().

    - + +

    ◆ m_dfMinus2

    +
    + + + + + +
    - +
    float PercussionOnsetDetector::m_dfMinus2 [protected]float PercussionOnsetDetector::m_dfMinus2
    - -
    +
    +protected
    +
    -

    Definition at line 86 of file PercussionOnsetDetector.h.

    +

    Definition at line 86 of file PercussionOnsetDetector.h.

    -

    Referenced by initialise(), process(), and reset().

    +

    Referenced by initialise(), process(), and reset().

    - + +

    ◆ m_inputSampleRate

    + @@ -1078,17 +1482,15 @@
  • PercussionOnsetDetector.cpp
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classPercussionOnsetDetector.js --- a/code-docs/classPercussionOnsetDetector.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classPercussionOnsetDetector.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,37 +1,40 @@ var classPercussionOnsetDetector = [ - [ "OutputList", "classVamp_1_1Plugin.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], - [ "FeatureList", "classVamp_1_1Plugin.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], - [ "FeatureSet", "classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], - [ "ParameterList", "classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], - [ "ProgramList", "classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20", null ], - [ "InputDomain", "classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc", null ], + [ "OutputList", "classPercussionOnsetDetector.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], + [ "FeatureList", "classPercussionOnsetDetector.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], + [ "FeatureSet", "classPercussionOnsetDetector.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], + [ "ParameterList", "classPercussionOnsetDetector.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], + [ "ProgramList", "classPercussionOnsetDetector.html#a7f66f00437b21e5f694fe02356b12f20", null ], + [ "InputDomain", "classPercussionOnsetDetector.html#a39cb7649d6dcc20e4cb1640cd55907bc", [ + [ "TimeDomain", "classPercussionOnsetDetector.html#a39cb7649d6dcc20e4cb1640cd55907bcad4a9f31b958a43a9757af7893aa2e7ff", null ], + [ "FrequencyDomain", "classPercussionOnsetDetector.html#a39cb7649d6dcc20e4cb1640cd55907bcaa30e7877ab33f76acbdca28607e6ab53", null ] + ] ], [ "PercussionOnsetDetector", "classPercussionOnsetDetector.html#a9f700579805ee5105758d847baab3511", null ], [ "~PercussionOnsetDetector", "classPercussionOnsetDetector.html#a99f833667cf8185e879d735216c7642b", null ], [ "initialise", "classPercussionOnsetDetector.html#a349c528260622308f3850bcda8a448ab", null ], [ "reset", "classPercussionOnsetDetector.html#a9b1075e992cd9599764ef3881fb91d1a", null ], - [ "getInputDomain", "classPercussionOnsetDetector.html#a4f6954267696ee5bfa7dd1c4a6cfa92a", null ], - [ "getIdentifier", "classPercussionOnsetDetector.html#a267c83a7533146c127e2c3be310e0154", null ], - [ "getName", "classPercussionOnsetDetector.html#aa98f1ad061a11af98c054011a8844e6f", null ], - [ "getDescription", "classPercussionOnsetDetector.html#a9061d189705802a48973a7ccab6360db", null ], - [ "getMaker", "classPercussionOnsetDetector.html#a63d63f2cb7ea8d8b09d58cc13b541375", null ], - [ "getPluginVersion", "classPercussionOnsetDetector.html#ad6b818dbd81867ce7be71c99cae861be", null ], - [ "getCopyright", "classPercussionOnsetDetector.html#a1a22ece271330c94cc08798a77416351", null ], - [ "getPreferredStepSize", "classPercussionOnsetDetector.html#a733824891e11c306a7a678534b89b968", null ], - [ "getPreferredBlockSize", "classPercussionOnsetDetector.html#a410c0b47c6c849d7ed9b726b84402ad0", null ], - [ "getParameterDescriptors", "classPercussionOnsetDetector.html#abceae88cc9762b0ea310d7aad71de815", null ], - [ "getParameter", "classPercussionOnsetDetector.html#a9b28da8315fcde46ce7644d6592ba527", null ], + [ "getInputDomain", "classPercussionOnsetDetector.html#a8c980a67814934d57e0c5de3e58a4ca2", null ], + [ "getIdentifier", "classPercussionOnsetDetector.html#ac1bb968a3632083e55e4d236310b9cdb", null ], + [ "getName", "classPercussionOnsetDetector.html#a9b8532bfd1a6053682db3ce15b1890da", null ], + [ "getDescription", "classPercussionOnsetDetector.html#a4ea74f76e302c53ced7508bc8388487b", null ], + [ "getMaker", "classPercussionOnsetDetector.html#a1ef108aac025c3f2c3201fd9f43b6a6b", null ], + [ "getPluginVersion", "classPercussionOnsetDetector.html#ad4f4a732e9e0ae0cb0151e2e10862299", null ], + [ "getCopyright", "classPercussionOnsetDetector.html#acf9ac12b8f313aa6fad58ad2fed663da", null ], + [ "getPreferredStepSize", "classPercussionOnsetDetector.html#a0ad851545302fc87e8226104584667a0", null ], + [ "getPreferredBlockSize", "classPercussionOnsetDetector.html#abacdc27486aab9b37d1a51e35e6a9444", null ], + [ "getParameterDescriptors", "classPercussionOnsetDetector.html#ae1cc81d82aaac8db5cf8a1067494f3d8", null ], + [ "getParameter", "classPercussionOnsetDetector.html#accce70a87d6b30d4696d40a3e09b8f17", null ], [ "setParameter", "classPercussionOnsetDetector.html#aa097d72488e1211f05fc661ff5c6dc01", null ], - [ "getOutputDescriptors", "classPercussionOnsetDetector.html#aa4537aa0eb58a67d6e824d46924cf782", null ], + [ "getOutputDescriptors", "classPercussionOnsetDetector.html#a9518f60b3b0bf6c31c51c0aaffc599c9", null ], [ "process", "classPercussionOnsetDetector.html#adfd989812b3e0cb8f4b498f56a5a9614", null ], [ "getRemainingFeatures", "classPercussionOnsetDetector.html#ad3d6767ed137783e84f842b4d4732ffa", null ], - [ "getMinChannelCount", "classVamp_1_1Plugin.html#a267b42e866df3cf0d190893e8096f525", null ], - [ "getMaxChannelCount", "classVamp_1_1Plugin.html#a2c5ab12b6fa4847cb244bd1e9cb3ae5e", null ], - [ "getType", "classVamp_1_1Plugin.html#abe13b3997a69fbcc09e2213faa352f91", null ], - [ "getVampApiVersion", "classVamp_1_1PluginBase.html#a8fd2c48291c64b790f0efb8948508dcf", null ], - [ "getPrograms", "classVamp_1_1PluginBase.html#abb307c60bdb981d5f5af50c3c4ae84af", null ], - [ "getCurrentProgram", "classVamp_1_1PluginBase.html#a24e77eccf1bdfbbca3c79bb25e8799b3", null ], - [ "selectProgram", "classVamp_1_1PluginBase.html#aadd3a547ef140bae200473a9518e3353", null ], + [ "getMinChannelCount", "classPercussionOnsetDetector.html#ab74f7634c6ac6e3da115667808a79c30", null ], + [ "getMaxChannelCount", "classPercussionOnsetDetector.html#a0bff9464bc8c117470136c396b2405dd", null ], + [ "getType", "classPercussionOnsetDetector.html#a530123068767a8728c568ffccfe3e4e5", null ], + [ "getVampApiVersion", "classPercussionOnsetDetector.html#ab4aa9c3e6f6dd9addbc095463c9fb772", null ], + [ "getPrograms", "classPercussionOnsetDetector.html#aaf6febff0ab4daf4a5089c98a67f4df8", null ], + [ "getCurrentProgram", "classPercussionOnsetDetector.html#aac38c5dc6e87208616122897518ca3d5", null ], + [ "selectProgram", "classPercussionOnsetDetector.html#aadd3a547ef140bae200473a9518e3353", null ], [ "m_stepSize", "classPercussionOnsetDetector.html#aabac0cf7e961482b075777e5f0686e6c", null ], [ "m_blockSize", "classPercussionOnsetDetector.html#a920de543dbcf70a2edd80b5b31313285", null ], [ "m_threshold", "classPercussionOnsetDetector.html#ab04119adad56d87f2e633de289aab507", null ], @@ -39,5 +42,5 @@ [ "m_priorMagnitudes", "classPercussionOnsetDetector.html#a30daa717267251a9d49afe57c328e989", null ], [ "m_dfMinus1", "classPercussionOnsetDetector.html#acd80162c65212be7fa91251263fb9c3d", null ], [ "m_dfMinus2", "classPercussionOnsetDetector.html#a6ad7d8353cc681ff42a63b127cca5779", null ], - [ "m_inputSampleRate", "classVamp_1_1Plugin.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] + [ "m_inputSampleRate", "classPercussionOnsetDetector.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classPercussionOnsetDetector__inherit__graph.map --- a/code-docs/classPercussionOnsetDetector__inherit__graph.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classPercussionOnsetDetector__inherit__graph.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,4 +1,4 @@ - - - + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classPercussionOnsetDetector__inherit__graph.md5 --- a/code-docs/classPercussionOnsetDetector__inherit__graph.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classPercussionOnsetDetector__inherit__graph.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -65a7ed879a604f7c870b2fede02ff821 \ No newline at end of file +d26021f37be38c5026786f573a224f8c \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classPercussionOnsetDetector__inherit__graph.png Binary file code-docs/classPercussionOnsetDetector__inherit__graph.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classPowerSpectrum-members.html --- a/code-docs/classPowerSpectrum-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classPowerSpectrum-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,57 +63,57 @@
    PowerSpectrum Member List
    -This is the complete list of members for PowerSpectrum, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

    This is the complete list of members for PowerSpectrum, including all inherited members.

    +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() const PowerSpectrum [virtual]
    getCurrentProgram() const Vamp::PluginBase [inline, virtual]
    getDescription() const PowerSpectrum [virtual]
    getIdentifier() const PowerSpectrum [virtual]
    getInputDomain() const PowerSpectrum [inline, virtual]
    getMaker() const PowerSpectrum [virtual]
    getMaxChannelCount() const Vamp::Plugin [inline, virtual]
    getMinChannelCount() const Vamp::Plugin [inline, virtual]
    getName() const PowerSpectrum [virtual]
    getOutputDescriptors() const PowerSpectrum [virtual]
    getParameter(std::string) const Vamp::PluginBase [inline, virtual]
    getParameterDescriptors() const Vamp::PluginBase [inline, virtual]
    getPluginVersion() const PowerSpectrum [virtual]
    getPreferredBlockSize() const Vamp::Plugin [inline, virtual]
    getPreferredStepSize() const Vamp::Plugin [inline, virtual]
    getPrograms() const Vamp::PluginBase [inline, virtual]
    getRemainingFeatures()PowerSpectrum [virtual]
    getType() const Vamp::Plugin [inline, virtual]
    getVampApiVersion() const Vamp::PluginBase [inline, virtual]
    initialise(size_t channels, size_t stepSize, size_t blockSize)PowerSpectrum [virtual]
    InputDomain enum nameVamp::Plugin
    m_blockSizePowerSpectrum [protected]
    m_inputSampleRateVamp::Plugin [protected]
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugin [inline, protected]
    PowerSpectrum(float inputSampleRate)PowerSpectrum
    process(const float *const *inputBuffers, Vamp::RealTime timestamp)PowerSpectrum [virtual]
    ProgramList typedefVamp::PluginBase
    reset()PowerSpectrum [virtual]
    selectProgram(std::string)Vamp::PluginBase [inline, virtual]
    setParameter(std::string, float)Vamp::PluginBase [inline, virtual]
    TimeDomain enum valueVamp::Plugin
    ~Plugin()Vamp::Plugin [inline, virtual]
    ~PluginBase()Vamp::PluginBase [inline, virtual]
    ~PowerSpectrum()PowerSpectrum [virtual]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() constPowerSpectrumvirtual
    getCurrentProgram() constVamp::PluginBaseinlinevirtual
    getDescription() constPowerSpectrumvirtual
    getIdentifier() constPowerSpectrumvirtual
    getInputDomain() constPowerSpectruminlinevirtual
    getMaker() constPowerSpectrumvirtual
    getMaxChannelCount() constVamp::Plugininlinevirtual
    getMinChannelCount() constVamp::Plugininlinevirtual
    getName() constPowerSpectrumvirtual
    getOutputDescriptors() constPowerSpectrumvirtual
    getParameter(std::string) constVamp::PluginBaseinlinevirtual
    getParameterDescriptors() constVamp::PluginBaseinlinevirtual
    getPluginVersion() constPowerSpectrumvirtual
    getPreferredBlockSize() constVamp::Plugininlinevirtual
    getPreferredStepSize() constVamp::Plugininlinevirtual
    getPrograms() constVamp::PluginBaseinlinevirtual
    getRemainingFeatures()PowerSpectrumvirtual
    getType() constVamp::Plugininlinevirtual
    getVampApiVersion() constVamp::PluginBaseinlinevirtual
    initialise(size_t channels, size_t stepSize, size_t blockSize)PowerSpectrumvirtual
    InputDomain enum nameVamp::Plugin
    m_blockSizePowerSpectrumprotected
    m_inputSampleRateVamp::Pluginprotected
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugininlineprotected
    PowerSpectrum(float inputSampleRate)PowerSpectrum
    process(const float *const *inputBuffers, Vamp::RealTime timestamp)PowerSpectrumvirtual
    ProgramList typedefVamp::PluginBase
    reset()PowerSpectrumvirtual
    selectProgram(std::string)Vamp::PluginBaseinlinevirtual
    setParameter(std::string, float)Vamp::PluginBaseinlinevirtual
    TimeDomain enum valueVamp::Plugin
    ~Plugin()Vamp::Plugininlinevirtual
    ~PluginBase()Vamp::PluginBaseinlinevirtual
    ~PowerSpectrum()PowerSpectrumvirtual
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classPowerSpectrum.html --- a/code-docs/classPowerSpectrum.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classPowerSpectrum.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: PowerSpectrum Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -91,231 +78,329 @@
    Inheritance graph
    - + + +
    [legend]
    - -

    List of all members.

    - - + + + - - + + + + + - +

    +

    Public Types

    enum  InputDomain { TimeDomain, FrequencyDomain }
    typedef std::vector
    -< OutputDescriptor
    OutputList
     
    typedef std::vector< OutputDescriptorOutputList
     
    typedef std::vector< FeatureFeatureList
    typedef std::map< int,
    -FeatureList
    FeatureSet
    typedef std::vector
    -< ParameterDescriptor
    ParameterList
     
    typedef std::map< int, FeatureListFeatureSet
     
    typedef std::vector< ParameterDescriptorParameterList
     
    typedef std::vector< std::string > ProgramList

    +

     
    + + + - + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + - - + +

    Public Member Functions

     PowerSpectrum (float inputSampleRate)
     
    virtual ~PowerSpectrum ()
     
    bool initialise (size_t channels, size_t stepSize, size_t blockSize)
     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).
     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). More...
     
    void reset ()
     Reset the plugin after use, to prepare it for another clean run.
    InputDomain getInputDomain () const
     Get the plugin's required input domain.
    std::string getIdentifier () const
     Get the computer-usable name of the plugin.
    std::string getName () const
     Get a human-readable name or title of the plugin.
    std::string getDescription () const
     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".
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form.
    int getPluginVersion () const
     Get the version number of the plugin.
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin.
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin.
     Reset the plugin after use, to prepare it for another clean run. More...
     
    InputDomain getInputDomain () const
     Get the plugin's required input domain. More...
     
    std::string getIdentifier () const
     Get the computer-usable name of the plugin. More...
     
    std::string getName () const
     Get a human-readable name or title of the plugin. More...
     
    std::string getDescription () const
     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". More...
     
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form. More...
     
    int getPluginVersion () const
     Get the version number of the plugin. More...
     
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin. More...
     
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin. More...
     
    FeatureSet process (const float *const *inputBuffers, Vamp::RealTime timestamp)
     Process a single block of input data.
     Process a single block of input data. More...
     
    FeatureSet getRemainingFeatures ()
     After all blocks have been processed, calculate and return any remaining features derived from the complete input.
    virtual size_t getPreferredBlockSize () const
     Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).
    virtual size_t getPreferredStepSize () const
     Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.
    virtual size_t getMinChannelCount () const
     Get the minimum supported number of input channels.
    virtual size_t getMaxChannelCount () const
     Get the maximum supported number of input channels.
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.
    virtual unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin.
    virtual ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin.
    virtual float getParameter (std::string) const
     Get the value of a named parameter.
     After all blocks have been processed, calculate and return any remaining features derived from the complete input. More...
     
    virtual size_t getPreferredBlockSize () const
     Get the preferred block size (window size – the number of sample frames passed in each block to the process() function). More...
     
    virtual size_t getPreferredStepSize () const
     Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin. More...
     
    virtual size_t getMinChannelCount () const
     Get the minimum supported number of input channels. More...
     
    virtual size_t getMaxChannelCount () const
     Get the maximum supported number of input channels. More...
     
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase. More...
     
    virtual unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin. More...
     
    virtual ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin. More...
     
    virtual float getParameter (std::string) const
     Get the value of a named parameter. More...
     
    virtual void setParameter (std::string, float)
     Set a named parameter.
    virtual ProgramList getPrograms () const
     Get the program settings available in this plugin.
    virtual std::string getCurrentProgram () const
     Get the current program.
     Set a named parameter. More...
     
    virtual ProgramList getPrograms () const
     Get the program settings available in this plugin. More...
     
    virtual std::string getCurrentProgram () const
     Get the current program. More...
     
    virtual void selectProgram (std::string)
     Select a program.

    +

     Select a program. More...
     
    + + +

    Protected Attributes

    size_t m_blockSize
     
    float m_inputSampleRate
     
    -

    Detailed Description

    +

    Detailed Description

    Example plugin that returns a power spectrum calculated (trivially) from the frequency domain representation of each block of audio.

    This is one of the simplest possible Vamp plugins, included as an example of how to return the appropriate value structure for this sort of visualisation.

    -

    Definition at line 50 of file PowerSpectrum.h.

    -

    Member Typedef Documentation

    - +

    Definition at line 50 of file PowerSpectrum.h.

    +

    Member Typedef Documentation

    + +

    ◆ OutputList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList
    +
    +inherited
    +
    + +

    Definition at line 335 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ FeatureList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<Feature> Vamp::Plugin::FeatureList
    +
    +inherited
    +
    + +

    Definition at line 393 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ FeatureSet

    + +
    +
    + + + + + +
    + + + + +
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet
    +
    +inherited
    +
    + +

    Definition at line 395 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ ParameterList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList
    +
    +inherited
    +
    + +

    Definition at line 203 of file vamp-sdk/PluginBase.h.

    + +
    +
    + +

    ◆ ProgramList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList
    +
    +inherited
    +
    + +

    Definition at line 225 of file vamp-sdk/PluginBase.h.

    + +
    +
    +

    Member Enumeration Documentation

    + +

    ◆ InputDomain

    + +
    +
    + + + + + +
    + + + + +
    enum Vamp::Plugin::InputDomain
    +
    +inherited
    +
    + + + +
    Enumerator
    TimeDomain 
    FrequencyDomain 
    + +

    Definition at line 152 of file vamp-sdk/Plugin.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ PowerSpectrum()

    +
    - - -
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList [inherited]
    -
    -
    - -

    Definition at line 327 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<Feature> Vamp::Plugin::FeatureList [inherited]
    -
    -
    - -

    Definition at line 385 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet [inherited]
    -
    -
    - -

    Definition at line 387 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList [inherited]
    -
    -
    - -

    Definition at line 199 of file vamp-sdk/PluginBase.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList [inherited]
    -
    -
    - -

    Definition at line 221 of file vamp-sdk/PluginBase.h.

    - -
    -
    -

    Member Enumeration Documentation

    - -
    -
    - - - - -
    enum Vamp::Plugin::InputDomain [inherited]
    -
    -
    -
    Enumerator:
    - - -
    TimeDomain  -
    FrequencyDomain  -
    -
    -
    - -

    Definition at line 152 of file vamp-sdk/Plugin.h.

    - -
    -
    -

    Constructor & Destructor Documentation

    - -
    -
    - - - +
    PowerSpectrum::PowerSpectrum PowerSpectrum::PowerSpectrum ( float  inputSampleRate)
    -
    -
    +
    -

    Definition at line 45 of file PowerSpectrum.cpp.

    +

    Definition at line 45 of file PowerSpectrum.cpp.

    - + +

    ◆ ~PowerSpectrum()

    +
    + + + + + +
    - + - +
    PowerSpectrum::~PowerSpectrum PowerSpectrum::~PowerSpectrum ( ) [virtual]
    - -
    +
    +virtual
    +
    -

    Definition at line 51 of file PowerSpectrum.cpp.

    +

    Definition at line 51 of file PowerSpectrum.cpp.

    -

    Member Function Documentation

    - +

    Member Function Documentation

    + +

    ◆ initialise()

    +
    + + + + + +
    - + @@ -335,11 +420,15 @@ - +
    bool PowerSpectrum::initialise bool PowerSpectrum::initialise ( size_t  inputChannels,
    ) [virtual]
    - -
    +
    +virtual
    +

    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).

    The input sample rate should have been already specified at construction time.

    @@ -347,74 +436,101 @@

    Implements Vamp::Plugin.

    -

    Definition at line 92 of file PowerSpectrum.cpp.

    +

    Definition at line 92 of file PowerSpectrum.cpp.

    -

    References Vamp::Plugin::getMaxChannelCount(), Vamp::Plugin::getMinChannelCount(), and m_blockSize.

    +

    References Vamp::Plugin::getMaxChannelCount(), Vamp::Plugin::getMinChannelCount(), and m_blockSize.

    - + +

    ◆ reset()

    +
    + + + + + +
    - + - +
    void PowerSpectrum::reset void PowerSpectrum::reset ( ) [virtual]
    - -
    +
    +virtual
    +

    Reset the plugin after use, to prepare it for another clean run.

    Not called for the first initialisation (i.e. initialise must also do a reset).

    Implements Vamp::Plugin.

    -

    Definition at line 103 of file PowerSpectrum.cpp.

    +

    Definition at line 103 of file PowerSpectrum.cpp.

    - + +

    ◆ getInputDomain()

    +
    + + + + + +
    - + - +
    InputDomain PowerSpectrum::getInputDomain InputDomain PowerSpectrum::getInputDomain ( ) const [inline, virtual] const
    - -
    +
    +inlinevirtual
    +

    Get the plugin's required input domain.

    -

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    -

    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 process(). 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.

    +

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    +

    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 process(). 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.

    Implements Vamp::Plugin.

    -

    Definition at line 59 of file PowerSpectrum.h.

    +

    Definition at line 59 of file PowerSpectrum.h.

    -

    References Vamp::Plugin::FrequencyDomain.

    +

    References Vamp::Plugin::FrequencyDomain, getCopyright(), getDescription(), getIdentifier(), getMaker(), getName(), getOutputDescriptors(), getPluginVersion(), getRemainingFeatures(), and process().

    - + +

    ◆ getIdentifier()

    +
    + + + + + +
    - + - +
    string PowerSpectrum::getIdentifier string PowerSpectrum::getIdentifier ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the computer-usable name of the plugin.

    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.

    @@ -423,23 +539,34 @@

    Implements Vamp::PluginBase.

    -

    Definition at line 56 of file PowerSpectrum.cpp.

    +

    Definition at line 56 of file PowerSpectrum.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getName()

    +
    + + + + + +
    - + - +
    string PowerSpectrum::getName string PowerSpectrum::getName ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get a human-readable name or title of the plugin.

    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").

    @@ -447,23 +574,34 @@

    Implements Vamp::PluginBase.

    -

    Definition at line 62 of file PowerSpectrum.cpp.

    +

    Definition at line 62 of file PowerSpectrum.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getDescription()

    +
    + + + + + +
    - + - +
    string PowerSpectrum::getDescription string PowerSpectrum::getDescription ( ) const [virtual] const
    - -
    +
    +virtual
    +

    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".

    May be empty if the name has said it all already.

    @@ -471,109 +609,160 @@

    Implements Vamp::PluginBase.

    -

    Definition at line 68 of file PowerSpectrum.cpp.

    +

    Definition at line 68 of file PowerSpectrum.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getMaker()

    +
    + + + + + +
    - + - +
    string PowerSpectrum::getMaker string PowerSpectrum::getMaker ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the name of the author or vendor of the plugin in human-readable form.

    This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar.

    Implements Vamp::PluginBase.

    -

    Definition at line 74 of file PowerSpectrum.cpp.

    +

    Definition at line 74 of file PowerSpectrum.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getPluginVersion()

    +
    + + + + + +
    - + - +
    int PowerSpectrum::getPluginVersion int PowerSpectrum::getPluginVersion ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the version number of the plugin.

    Implements Vamp::PluginBase.

    -

    Definition at line 80 of file PowerSpectrum.cpp.

    +

    Definition at line 80 of file PowerSpectrum.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getCopyright()

    +
    + + + + + +
    - + - +
    string PowerSpectrum::getCopyright string PowerSpectrum::getCopyright ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the copyright statement or licensing summary for the plugin.

    This can be an informative text, without the same presentation constraints as mentioned for getMaker above.

    Implements Vamp::PluginBase.

    -

    Definition at line 86 of file PowerSpectrum.cpp.

    +

    Definition at line 86 of file PowerSpectrum.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getOutputDescriptors()

    +
    + + + + + +
    - + - +
    PowerSpectrum::OutputList PowerSpectrum::getOutputDescriptors PowerSpectrum::OutputList PowerSpectrum::getOutputDescriptors ( ) const [virtual] const
    - -
    +
    +virtual
    +
    - + +

    ◆ process()

    +
    + + + + + +
    - + @@ -587,11 +776,15 @@ - +
    PowerSpectrum::FeatureSet PowerSpectrum::process PowerSpectrum::FeatureSet PowerSpectrum::process ( const float *const *  inputBuffers,
    ) [virtual]
    - -
    +
    +virtual
    +

    Process a single block of input data.

    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.

    @@ -600,235 +793,325 @@

    Implements Vamp::Plugin.

    -

    Definition at line 136 of file PowerSpectrum.cpp.

    +

    Definition at line 136 of file PowerSpectrum.cpp.

    -

    References Vamp::Plugin::Feature::hasTimestamp, m_blockSize, and Vamp::Plugin::Feature::values.

    +

    References Vamp::Plugin::Feature::hasTimestamp, m_blockSize, and Vamp::Plugin::Feature::values.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getRemainingFeatures()

    +
    + + + + + +
    - + - +
    PowerSpectrum::FeatureSet PowerSpectrum::getRemainingFeatures PowerSpectrum::FeatureSet PowerSpectrum::getRemainingFeatures ( ) [virtual]
    - -
    +
    +virtual
    +

    After all blocks have been processed, calculate and return any remaining features derived from the complete input.

    Implements Vamp::Plugin.

    -

    Definition at line 166 of file PowerSpectrum.cpp.

    +

    Definition at line 166 of file PowerSpectrum.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getPreferredBlockSize()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getPreferredBlockSize virtual size_t Vamp::Plugin::getPreferredBlockSize ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).

    -

    This should be called before initialise().

    -

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    +

    Get the preferred block size (window size – the number of sample frames passed in each block to the process() function).

    +

    This should be called before initialise().

    +

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 179 of file vamp-sdk/Plugin.h.

    +

    Definition at line 179 of file vamp-sdk/Plugin.h.

    -

    Referenced by enumeratePlugins(), and runPlugin().

    +

    Referenced by enumeratePlugins(), and runPlugin().

    - + +

    ◆ getPreferredStepSize()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getPreferredStepSize virtual size_t Vamp::Plugin::getPreferredStepSize ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    -

    This should be called before initialise().

    -

    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 initialise() call.

    +

    Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    +

    This should be called before initialise().

    +

    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 initialise() call.

    -

    Reimplemented in Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 194 of file vamp-sdk/Plugin.h.

    +

    Definition at line 194 of file vamp-sdk/Plugin.h.

    -

    Referenced by enumeratePlugins(), and runPlugin().

    +

    Referenced by enumeratePlugins(), and runPlugin().

    - + +

    ◆ getMinChannelCount()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getMinChannelCount virtual size_t Vamp::Plugin::getMinChannelCount ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    - + +

    ◆ getMaxChannelCount()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getMaxChannelCount virtual size_t Vamp::Plugin::getMaxChannelCount ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    - + +

    ◆ getType()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::Plugin::getType virtual std::string Vamp::Plugin::getType ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    Do not reimplement this function in your subclass.

    Implements Vamp::PluginBase.

    -

    Definition at line 430 of file vamp-sdk/Plugin.h.

    +

    Definition at line 438 of file vamp-sdk/Plugin.h.

    - + +

    ◆ getVampApiVersion()

    +
    + + + + + +
    - + - +
    virtual unsigned int Vamp::PluginBase::getVampApiVersion virtual unsigned int Vamp::PluginBase::getVampApiVersion ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the Vamp API compatibility level of the plugin.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 68 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 68 of file vamp-sdk/PluginBase.h.

    -

    Referenced by enumeratePlugins().

    +

    Referenced by enumeratePlugins().

    - + +

    ◆ getParameterDescriptors()

    +
    + + + + + +
    - + - +
    virtual ParameterList Vamp::PluginBase::getParameterDescriptors virtual ParameterList Vamp::PluginBase::getParameterDescriptors ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the controllable parameters of this plugin.

    -

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 204 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 208 of file vamp-sdk/PluginBase.h.

    -

    Referenced by enumeratePlugins().

    +

    Referenced by enumeratePlugins().

    - + +

    ◆ getParameter()

    +
    + + + + + +
    - + - +
    virtual float Vamp::PluginBase::getParameter virtual float Vamp::PluginBase::getParameter ( std::string  ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the value of a named parameter.

    The argument is the identifier field from that parameter's descriptor.

    -

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 212 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 216 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ setParameter()

    +
    + + + + + +
    - + @@ -842,123 +1125,174 @@ - +
    virtual void Vamp::PluginBase::setParameter virtual void Vamp::PluginBase::setParameter ( std::string  ,
    ) [inline, virtual, inherited]
    - -
    +
    +inlinevirtualinherited
    +

    Set a named parameter.

    The first argument is the identifier field from that parameter's descriptor.

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 218 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 222 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ getPrograms()

    +
    + + + + + +
    - + - +
    virtual ProgramList Vamp::PluginBase::getPrograms virtual ProgramList Vamp::PluginBase::getPrograms ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the program settings available in this plugin.

    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.

    The programs must have unique names.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 233 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 237 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ getCurrentProgram()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getCurrentProgram virtual std::string Vamp::PluginBase::getCurrentProgram ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the current program.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 238 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 242 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ selectProgram()

    +
    + + + + + +
    - + - +
    virtual void Vamp::PluginBase::selectProgram virtual void Vamp::PluginBase::selectProgram ( std::string  ) [inline, virtual, inherited]
    - -
    +
    +inlinevirtualinherited
    +

    Select a program.

    (If the given program name is not one of the available programs, do nothing.)

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 244 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 248 of file vamp-sdk/PluginBase.h.

    + +

    References _VAMP_SDK_PLUGSPACE_END.

    -

    Member Data Documentation

    - +

    Member Data Documentation

    + +

    ◆ m_blockSize

    +
    + + + + + +
    - +
    size_t PowerSpectrum::m_blockSize [protected]size_t PowerSpectrum::m_blockSize
    - -
    +
    +protected
    +
    -

    Definition at line 76 of file PowerSpectrum.h.

    +

    Definition at line 76 of file PowerSpectrum.h.

    -

    Referenced by getOutputDescriptors(), initialise(), and process().

    +

    Referenced by getOutputDescriptors(), initialise(), and process().

    - + +

    ◆ m_inputSampleRate

    + @@ -967,17 +1301,15 @@
  • PowerSpectrum.cpp
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classPowerSpectrum.js --- a/code-docs/classPowerSpectrum.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classPowerSpectrum.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,37 +1,40 @@ var classPowerSpectrum = [ - [ "OutputList", "classVamp_1_1Plugin.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], - [ "FeatureList", "classVamp_1_1Plugin.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], - [ "FeatureSet", "classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], - [ "ParameterList", "classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], - [ "ProgramList", "classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20", null ], - [ "InputDomain", "classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc", null ], + [ "OutputList", "classPowerSpectrum.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], + [ "FeatureList", "classPowerSpectrum.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], + [ "FeatureSet", "classPowerSpectrum.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], + [ "ParameterList", "classPowerSpectrum.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], + [ "ProgramList", "classPowerSpectrum.html#a7f66f00437b21e5f694fe02356b12f20", null ], + [ "InputDomain", "classPowerSpectrum.html#a39cb7649d6dcc20e4cb1640cd55907bc", [ + [ "TimeDomain", "classPowerSpectrum.html#a39cb7649d6dcc20e4cb1640cd55907bcad4a9f31b958a43a9757af7893aa2e7ff", null ], + [ "FrequencyDomain", "classPowerSpectrum.html#a39cb7649d6dcc20e4cb1640cd55907bcaa30e7877ab33f76acbdca28607e6ab53", null ] + ] ], [ "PowerSpectrum", "classPowerSpectrum.html#aa2550486513a4abcf7b52869002947e7", null ], [ "~PowerSpectrum", "classPowerSpectrum.html#ae7081e159ad1da5da1721b3048075306", null ], [ "initialise", "classPowerSpectrum.html#ae2d046334c4bede5be72a0d97e4dfb29", null ], [ "reset", "classPowerSpectrum.html#a091ba21e1697ea4208f42e8295c389d9", null ], - [ "getInputDomain", "classPowerSpectrum.html#ae04e0e34847a93f3444d04c802ee56ef", null ], - [ "getIdentifier", "classPowerSpectrum.html#a9e9d8349461cbb88d7565a5e8c51b64e", null ], - [ "getName", "classPowerSpectrum.html#ac9214f9cafeeed3fca549c90aef57623", null ], - [ "getDescription", "classPowerSpectrum.html#a7b48d56dc954f3af344f7e4dcd8993e5", null ], - [ "getMaker", "classPowerSpectrum.html#a9f3e3f759e2b67c771a41f1c276984b2", null ], - [ "getPluginVersion", "classPowerSpectrum.html#ad23d27e4e82f10404a37b933f6a72c33", null ], - [ "getCopyright", "classPowerSpectrum.html#a708b4d335c57643d5ef2b2e1caf43bd9", null ], - [ "getOutputDescriptors", "classPowerSpectrum.html#a6aac5f93e3a8c033026d739fed427242", null ], + [ "getInputDomain", "classPowerSpectrum.html#a6550205cd5c1bb45eca69b8ddbd0cb4f", null ], + [ "getIdentifier", "classPowerSpectrum.html#a885e87df9fbb4e6cb2fff69116122326", null ], + [ "getName", "classPowerSpectrum.html#a8f3d7d654e6aad23f307ef46dd9e70cb", null ], + [ "getDescription", "classPowerSpectrum.html#a0740aaee10568b4e21903ccd5a764e2a", null ], + [ "getMaker", "classPowerSpectrum.html#a55764eb41af953c36339c4cade238be2", null ], + [ "getPluginVersion", "classPowerSpectrum.html#acd30237d5e3516b3171ffddbfafd4271", null ], + [ "getCopyright", "classPowerSpectrum.html#ab0e73795d0d94f1162bde9d024785147", null ], + [ "getOutputDescriptors", "classPowerSpectrum.html#a75a374270a4f22c8104db3e815ff6d7b", null ], [ "process", "classPowerSpectrum.html#aa5664ffc2b37a16db471fae791c1f55f", null ], [ "getRemainingFeatures", "classPowerSpectrum.html#ac8a9661a785d38f4c5ce8ca2d53e69f9", null ], - [ "getPreferredBlockSize", "classVamp_1_1Plugin.html#aa529adf83f87a603954eb31407602aac", null ], - [ "getPreferredStepSize", "classVamp_1_1Plugin.html#a514c716c22f81c055f19b56c3f882567", null ], - [ "getMinChannelCount", "classVamp_1_1Plugin.html#a267b42e866df3cf0d190893e8096f525", null ], - [ "getMaxChannelCount", "classVamp_1_1Plugin.html#a2c5ab12b6fa4847cb244bd1e9cb3ae5e", null ], - [ "getType", "classVamp_1_1Plugin.html#abe13b3997a69fbcc09e2213faa352f91", null ], - [ "getVampApiVersion", "classVamp_1_1PluginBase.html#a8fd2c48291c64b790f0efb8948508dcf", null ], - [ "getParameterDescriptors", "classVamp_1_1PluginBase.html#aac3e49b3b66cacfbb768dfdf07444f21", null ], - [ "getParameter", "classVamp_1_1PluginBase.html#a97ababcd45348ceec998d0f8e0f38bf7", null ], - [ "setParameter", "classVamp_1_1PluginBase.html#a6c718ce822f7b73b98940d59dcaa9366", null ], - [ "getPrograms", "classVamp_1_1PluginBase.html#abb307c60bdb981d5f5af50c3c4ae84af", null ], - [ "getCurrentProgram", "classVamp_1_1PluginBase.html#a24e77eccf1bdfbbca3c79bb25e8799b3", null ], - [ "selectProgram", "classVamp_1_1PluginBase.html#aadd3a547ef140bae200473a9518e3353", null ], + [ "getPreferredBlockSize", "classPowerSpectrum.html#ae3b9c32b12796ece152388babad7cc7d", null ], + [ "getPreferredStepSize", "classPowerSpectrum.html#a33eaf9a265bc3a055e156452112456c2", null ], + [ "getMinChannelCount", "classPowerSpectrum.html#ab74f7634c6ac6e3da115667808a79c30", null ], + [ "getMaxChannelCount", "classPowerSpectrum.html#a0bff9464bc8c117470136c396b2405dd", null ], + [ "getType", "classPowerSpectrum.html#a530123068767a8728c568ffccfe3e4e5", null ], + [ "getVampApiVersion", "classPowerSpectrum.html#ab4aa9c3e6f6dd9addbc095463c9fb772", null ], + [ "getParameterDescriptors", "classPowerSpectrum.html#a0c24ff6a43c681198dc9497287a26e3a", null ], + [ "getParameter", "classPowerSpectrum.html#aa813d61077080ec95487d2a0227cc51b", null ], + [ "setParameter", "classPowerSpectrum.html#a6c718ce822f7b73b98940d59dcaa9366", null ], + [ "getPrograms", "classPowerSpectrum.html#aaf6febff0ab4daf4a5089c98a67f4df8", null ], + [ "getCurrentProgram", "classPowerSpectrum.html#aac38c5dc6e87208616122897518ca3d5", null ], + [ "selectProgram", "classPowerSpectrum.html#aadd3a547ef140bae200473a9518e3353", null ], [ "m_blockSize", "classPowerSpectrum.html#a399e997c033f26b07edb7cc83cd5a6d8", null ], - [ "m_inputSampleRate", "classVamp_1_1Plugin.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] + [ "m_inputSampleRate", "classPowerSpectrum.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classPowerSpectrum__inherit__graph.map --- a/code-docs/classPowerSpectrum__inherit__graph.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classPowerSpectrum__inherit__graph.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,4 +1,4 @@ - - - + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classPowerSpectrum__inherit__graph.md5 --- a/code-docs/classPowerSpectrum__inherit__graph.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classPowerSpectrum__inherit__graph.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -c9f07b131caa51e199fa4d4ebafc8ea7 \ No newline at end of file +d26131cdaec514845bcde39dffb2e39b \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classPowerSpectrum__inherit__graph.png Binary file code-docs/classPowerSpectrum__inherit__graph.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classSpectralCentroid-members.html --- a/code-docs/classSpectralCentroid-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classSpectralCentroid-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,58 +63,58 @@
    SpectralCentroid Member List
    -This is the complete list of members for SpectralCentroid, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

    This is the complete list of members for SpectralCentroid, including all inherited members.

    +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() const SpectralCentroid [virtual]
    getCurrentProgram() const Vamp::PluginBase [inline, virtual]
    getDescription() const SpectralCentroid [virtual]
    getIdentifier() const SpectralCentroid [virtual]
    getInputDomain() const SpectralCentroid [inline, virtual]
    getMaker() const SpectralCentroid [virtual]
    getMaxChannelCount() const Vamp::Plugin [inline, virtual]
    getMinChannelCount() const Vamp::Plugin [inline, virtual]
    getName() const SpectralCentroid [virtual]
    getOutputDescriptors() const SpectralCentroid [virtual]
    getParameter(std::string) const Vamp::PluginBase [inline, virtual]
    getParameterDescriptors() const Vamp::PluginBase [inline, virtual]
    getPluginVersion() const SpectralCentroid [virtual]
    getPreferredBlockSize() const Vamp::Plugin [inline, virtual]
    getPreferredStepSize() const Vamp::Plugin [inline, virtual]
    getPrograms() const Vamp::PluginBase [inline, virtual]
    getRemainingFeatures()SpectralCentroid [virtual]
    getType() const Vamp::Plugin [inline, virtual]
    getVampApiVersion() const Vamp::PluginBase [inline, virtual]
    initialise(size_t channels, size_t stepSize, size_t blockSize)SpectralCentroid [virtual]
    InputDomain enum nameVamp::Plugin
    m_blockSizeSpectralCentroid [protected]
    m_inputSampleRateVamp::Plugin [protected]
    m_stepSizeSpectralCentroid [protected]
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugin [inline, protected]
    process(const float *const *inputBuffers, Vamp::RealTime timestamp)SpectralCentroid [virtual]
    ProgramList typedefVamp::PluginBase
    reset()SpectralCentroid [virtual]
    selectProgram(std::string)Vamp::PluginBase [inline, virtual]
    setParameter(std::string, float)Vamp::PluginBase [inline, virtual]
    SpectralCentroid(float inputSampleRate)SpectralCentroid
    TimeDomain enum valueVamp::Plugin
    ~Plugin()Vamp::Plugin [inline, virtual]
    ~PluginBase()Vamp::PluginBase [inline, virtual]
    ~SpectralCentroid()SpectralCentroid [virtual]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() constSpectralCentroidvirtual
    getCurrentProgram() constVamp::PluginBaseinlinevirtual
    getDescription() constSpectralCentroidvirtual
    getIdentifier() constSpectralCentroidvirtual
    getInputDomain() constSpectralCentroidinlinevirtual
    getMaker() constSpectralCentroidvirtual
    getMaxChannelCount() constVamp::Plugininlinevirtual
    getMinChannelCount() constVamp::Plugininlinevirtual
    getName() constSpectralCentroidvirtual
    getOutputDescriptors() constSpectralCentroidvirtual
    getParameter(std::string) constVamp::PluginBaseinlinevirtual
    getParameterDescriptors() constVamp::PluginBaseinlinevirtual
    getPluginVersion() constSpectralCentroidvirtual
    getPreferredBlockSize() constVamp::Plugininlinevirtual
    getPreferredStepSize() constVamp::Plugininlinevirtual
    getPrograms() constVamp::PluginBaseinlinevirtual
    getRemainingFeatures()SpectralCentroidvirtual
    getType() constVamp::Plugininlinevirtual
    getVampApiVersion() constVamp::PluginBaseinlinevirtual
    initialise(size_t channels, size_t stepSize, size_t blockSize)SpectralCentroidvirtual
    InputDomain enum nameVamp::Plugin
    m_blockSizeSpectralCentroidprotected
    m_inputSampleRateVamp::Pluginprotected
    m_stepSizeSpectralCentroidprotected
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugininlineprotected
    process(const float *const *inputBuffers, Vamp::RealTime timestamp)SpectralCentroidvirtual
    ProgramList typedefVamp::PluginBase
    reset()SpectralCentroidvirtual
    selectProgram(std::string)Vamp::PluginBaseinlinevirtual
    setParameter(std::string, float)Vamp::PluginBaseinlinevirtual
    SpectralCentroid(float inputSampleRate)SpectralCentroid
    TimeDomain enum valueVamp::Plugin
    ~Plugin()Vamp::Plugininlinevirtual
    ~PluginBase()Vamp::PluginBaseinlinevirtual
    ~SpectralCentroid()SpectralCentroidvirtual
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classSpectralCentroid.html --- a/code-docs/classSpectralCentroid.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classSpectralCentroid.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: SpectralCentroid Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -91,231 +78,330 @@
    Inheritance graph
    - + + +
    [legend]
    - -

    List of all members.

    - - + + + - - + + + + + - +

    +

    Public Types

    enum  InputDomain { TimeDomain, FrequencyDomain }
    typedef std::vector
    -< OutputDescriptor
    OutputList
     
    typedef std::vector< OutputDescriptorOutputList
     
    typedef std::vector< FeatureFeatureList
    typedef std::map< int,
    -FeatureList
    FeatureSet
    typedef std::vector
    -< ParameterDescriptor
    ParameterList
     
    typedef std::map< int, FeatureListFeatureSet
     
    typedef std::vector< ParameterDescriptorParameterList
     
    typedef std::vector< std::string > ProgramList

    +

     
    + + + - + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + - - + +

    Public Member Functions

     SpectralCentroid (float inputSampleRate)
     
    virtual ~SpectralCentroid ()
     
    bool initialise (size_t channels, size_t stepSize, size_t blockSize)
     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).
     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). More...
     
    void reset ()
     Reset the plugin after use, to prepare it for another clean run.
    InputDomain getInputDomain () const
     Get the plugin's required input domain.
    std::string getIdentifier () const
     Get the computer-usable name of the plugin.
    std::string getName () const
     Get a human-readable name or title of the plugin.
    std::string getDescription () const
     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".
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form.
    int getPluginVersion () const
     Get the version number of the plugin.
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin.
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin.
     Reset the plugin after use, to prepare it for another clean run. More...
     
    InputDomain getInputDomain () const
     Get the plugin's required input domain. More...
     
    std::string getIdentifier () const
     Get the computer-usable name of the plugin. More...
     
    std::string getName () const
     Get a human-readable name or title of the plugin. More...
     
    std::string getDescription () const
     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". More...
     
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form. More...
     
    int getPluginVersion () const
     Get the version number of the plugin. More...
     
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin. More...
     
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin. More...
     
    FeatureSet process (const float *const *inputBuffers, Vamp::RealTime timestamp)
     Process a single block of input data.
     Process a single block of input data. More...
     
    FeatureSet getRemainingFeatures ()
     After all blocks have been processed, calculate and return any remaining features derived from the complete input.
    virtual size_t getPreferredBlockSize () const
     Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).
    virtual size_t getPreferredStepSize () const
     Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.
    virtual size_t getMinChannelCount () const
     Get the minimum supported number of input channels.
    virtual size_t getMaxChannelCount () const
     Get the maximum supported number of input channels.
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.
    virtual unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin.
    virtual ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin.
    virtual float getParameter (std::string) const
     Get the value of a named parameter.
     After all blocks have been processed, calculate and return any remaining features derived from the complete input. More...
     
    virtual size_t getPreferredBlockSize () const
     Get the preferred block size (window size – the number of sample frames passed in each block to the process() function). More...
     
    virtual size_t getPreferredStepSize () const
     Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin. More...
     
    virtual size_t getMinChannelCount () const
     Get the minimum supported number of input channels. More...
     
    virtual size_t getMaxChannelCount () const
     Get the maximum supported number of input channels. More...
     
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase. More...
     
    virtual unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin. More...
     
    virtual ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin. More...
     
    virtual float getParameter (std::string) const
     Get the value of a named parameter. More...
     
    virtual void setParameter (std::string, float)
     Set a named parameter.
    virtual ProgramList getPrograms () const
     Get the program settings available in this plugin.
    virtual std::string getCurrentProgram () const
     Get the current program.
     Set a named parameter. More...
     
    virtual ProgramList getPrograms () const
     Get the program settings available in this plugin. More...
     
    virtual std::string getCurrentProgram () const
     Get the current program. More...
     
    virtual void selectProgram (std::string)
     Select a program.

    +

     Select a program. More...
     
    + + + +

    Protected Attributes

    size_t m_stepSize
     
    size_t m_blockSize
     
    float m_inputSampleRate
     
    -

    Detailed Description

    +

    Detailed Description

    Example plugin that calculates the centre of gravity of the frequency domain representation of each block of audio.

    -

    Definition at line 47 of file SpectralCentroid.h.

    -

    Member Typedef Documentation

    - +

    Definition at line 47 of file SpectralCentroid.h.

    +

    Member Typedef Documentation

    + +

    ◆ OutputList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList
    +
    +inherited
    +
    + +

    Definition at line 335 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ FeatureList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<Feature> Vamp::Plugin::FeatureList
    +
    +inherited
    +
    + +

    Definition at line 393 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ FeatureSet

    + +
    +
    + + + + + +
    + + + + +
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet
    +
    +inherited
    +
    + +

    Definition at line 395 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ ParameterList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList
    +
    +inherited
    +
    + +

    Definition at line 203 of file vamp-sdk/PluginBase.h.

    + +
    +
    + +

    ◆ ProgramList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList
    +
    +inherited
    +
    + +

    Definition at line 225 of file vamp-sdk/PluginBase.h.

    + +
    +
    +

    Member Enumeration Documentation

    + +

    ◆ InputDomain

    + +
    +
    + + + + + +
    + + + + +
    enum Vamp::Plugin::InputDomain
    +
    +inherited
    +
    + + + +
    Enumerator
    TimeDomain 
    FrequencyDomain 
    + +

    Definition at line 152 of file vamp-sdk/Plugin.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ SpectralCentroid()

    +
    - - -
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList [inherited]
    -
    -
    - -

    Definition at line 327 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<Feature> Vamp::Plugin::FeatureList [inherited]
    -
    -
    - -

    Definition at line 385 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet [inherited]
    -
    -
    - -

    Definition at line 387 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList [inherited]
    -
    -
    - -

    Definition at line 199 of file vamp-sdk/PluginBase.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList [inherited]
    -
    -
    - -

    Definition at line 221 of file vamp-sdk/PluginBase.h.

    - -
    -
    -

    Member Enumeration Documentation

    - -
    -
    - - - - -
    enum Vamp::Plugin::InputDomain [inherited]
    -
    -
    -
    Enumerator:
    - - -
    TimeDomain  -
    FrequencyDomain  -
    -
    -
    - -

    Definition at line 152 of file vamp-sdk/Plugin.h.

    - -
    -
    -

    Constructor & Destructor Documentation

    - -
    -
    - - - +
    SpectralCentroid::SpectralCentroid SpectralCentroid::SpectralCentroid ( float  inputSampleRate)
    -
    -
    +
    -

    Definition at line 56 of file SpectralCentroid.cpp.

    +

    Definition at line 56 of file SpectralCentroid.cpp.

    - + +

    ◆ ~SpectralCentroid()

    +
    + + + + + +
    - + - +
    SpectralCentroid::~SpectralCentroid SpectralCentroid::~SpectralCentroid ( ) [virtual]
    - -
    +
    +virtual
    +
    -

    Definition at line 63 of file SpectralCentroid.cpp.

    +

    Definition at line 63 of file SpectralCentroid.cpp.

    -

    Member Function Documentation

    - +

    Member Function Documentation

    + +

    ◆ initialise()

    +
    + + + + + +
    - + @@ -335,11 +421,15 @@ - +
    bool SpectralCentroid::initialise bool SpectralCentroid::initialise ( size_t  inputChannels,
    ) [virtual]
    - -
    +
    +virtual
    +

    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).

    The input sample rate should have been already specified at construction time.

    @@ -347,74 +437,101 @@

    Implements Vamp::Plugin.

    -

    Definition at line 104 of file SpectralCentroid.cpp.

    +

    Definition at line 104 of file SpectralCentroid.cpp.

    -

    References Vamp::Plugin::getMaxChannelCount(), Vamp::Plugin::getMinChannelCount(), m_blockSize, and m_stepSize.

    +

    References Vamp::Plugin::getMaxChannelCount(), Vamp::Plugin::getMinChannelCount(), m_blockSize, and m_stepSize.

    - + +

    ◆ reset()

    +
    + + + + + +
    - + - +
    void SpectralCentroid::reset void SpectralCentroid::reset ( ) [virtual]
    - -
    +
    +virtual
    +

    Reset the plugin after use, to prepare it for another clean run.

    Not called for the first initialisation (i.e. initialise must also do a reset).

    Implements Vamp::Plugin.

    -

    Definition at line 116 of file SpectralCentroid.cpp.

    +

    Definition at line 116 of file SpectralCentroid.cpp.

    - + +

    ◆ getInputDomain()

    +
    + + + + + +
    - + - +
    InputDomain SpectralCentroid::getInputDomain InputDomain SpectralCentroid::getInputDomain ( ) const [inline, virtual] const
    - -
    +
    +inlinevirtual
    +

    Get the plugin's required input domain.

    -

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    -

    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 process(). 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.

    +

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    +

    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 process(). 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.

    Implements Vamp::Plugin.

    -

    Definition at line 56 of file SpectralCentroid.h.

    +

    Definition at line 56 of file SpectralCentroid.h.

    -

    References Vamp::Plugin::FrequencyDomain.

    +

    References Vamp::Plugin::FrequencyDomain, getCopyright(), getDescription(), getIdentifier(), getMaker(), getName(), getOutputDescriptors(), getPluginVersion(), getRemainingFeatures(), and process().

    - + +

    ◆ getIdentifier()

    +
    + + + + + +
    - + - +
    string SpectralCentroid::getIdentifier string SpectralCentroid::getIdentifier ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the computer-usable name of the plugin.

    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.

    @@ -423,23 +540,34 @@

    Implements Vamp::PluginBase.

    -

    Definition at line 68 of file SpectralCentroid.cpp.

    +

    Definition at line 68 of file SpectralCentroid.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getName()

    +
    + + + + + +
    - + - +
    string SpectralCentroid::getName string SpectralCentroid::getName ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get a human-readable name or title of the plugin.

    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").

    @@ -447,23 +575,34 @@

    Implements Vamp::PluginBase.

    -

    Definition at line 74 of file SpectralCentroid.cpp.

    +

    Definition at line 74 of file SpectralCentroid.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getDescription()

    +
    + + + + + +
    - + - +
    string SpectralCentroid::getDescription string SpectralCentroid::getDescription ( ) const [virtual] const
    - -
    +
    +virtual
    +

    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".

    May be empty if the name has said it all already.

    @@ -471,109 +610,160 @@

    Implements Vamp::PluginBase.

    -

    Definition at line 80 of file SpectralCentroid.cpp.

    +

    Definition at line 80 of file SpectralCentroid.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getMaker()

    +
    + + + + + +
    - + - +
    string SpectralCentroid::getMaker string SpectralCentroid::getMaker ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the name of the author or vendor of the plugin in human-readable form.

    This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar.

    Implements Vamp::PluginBase.

    -

    Definition at line 86 of file SpectralCentroid.cpp.

    +

    Definition at line 86 of file SpectralCentroid.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getPluginVersion()

    +
    + + + + + +
    - + - +
    int SpectralCentroid::getPluginVersion int SpectralCentroid::getPluginVersion ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the version number of the plugin.

    Implements Vamp::PluginBase.

    -

    Definition at line 92 of file SpectralCentroid.cpp.

    +

    Definition at line 92 of file SpectralCentroid.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getCopyright()

    +
    + + + + + +
    - + - +
    string SpectralCentroid::getCopyright string SpectralCentroid::getCopyright ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the copyright statement or licensing summary for the plugin.

    This can be an informative text, without the same presentation constraints as mentioned for getMaker above.

    Implements Vamp::PluginBase.

    -

    Definition at line 98 of file SpectralCentroid.cpp.

    +

    Definition at line 98 of file SpectralCentroid.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getOutputDescriptors()

    +
    + + + + + +
    - + - +
    SpectralCentroid::OutputList SpectralCentroid::getOutputDescriptors SpectralCentroid::OutputList SpectralCentroid::getOutputDescriptors ( ) const [virtual] const
    - -
    +
    +virtual
    +
    - + +

    ◆ process()

    +
    + + + + + +
    - + @@ -587,11 +777,15 @@ - +
    SpectralCentroid::FeatureSet SpectralCentroid::process SpectralCentroid::FeatureSet SpectralCentroid::process ( const float *const *  inputBuffers,
    ) [virtual]
    - -
    +
    +virtual
    +

    Process a single block of input data.

    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.

    @@ -600,235 +794,325 @@

    Implements Vamp::Plugin.

    -

    Definition at line 146 of file SpectralCentroid.cpp.

    +

    Definition at line 146 of file SpectralCentroid.cpp.

    -

    References Vamp::Plugin::Feature::hasTimestamp, m_blockSize, Vamp::Plugin::m_inputSampleRate, m_stepSize, and Vamp::Plugin::Feature::values.

    +

    References Vamp::Plugin::Feature::hasTimestamp, m_blockSize, Vamp::Plugin::m_inputSampleRate, m_stepSize, and Vamp::Plugin::Feature::values.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getRemainingFeatures()

    +
    + + + + + +
    - + - +
    SpectralCentroid::FeatureSet SpectralCentroid::getRemainingFeatures SpectralCentroid::FeatureSet SpectralCentroid::getRemainingFeatures ( ) [virtual]
    - -
    +
    +virtual
    +

    After all blocks have been processed, calculate and return any remaining features derived from the complete input.

    Implements Vamp::Plugin.

    -

    Definition at line 192 of file SpectralCentroid.cpp.

    +

    Definition at line 192 of file SpectralCentroid.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getPreferredBlockSize()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getPreferredBlockSize virtual size_t Vamp::Plugin::getPreferredBlockSize ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).

    -

    This should be called before initialise().

    -

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    +

    Get the preferred block size (window size – the number of sample frames passed in each block to the process() function).

    +

    This should be called before initialise().

    +

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 179 of file vamp-sdk/Plugin.h.

    +

    Definition at line 179 of file vamp-sdk/Plugin.h.

    -

    Referenced by enumeratePlugins(), and runPlugin().

    +

    Referenced by enumeratePlugins(), and runPlugin().

    - + +

    ◆ getPreferredStepSize()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getPreferredStepSize virtual size_t Vamp::Plugin::getPreferredStepSize ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    -

    This should be called before initialise().

    -

    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 initialise() call.

    +

    Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    +

    This should be called before initialise().

    +

    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 initialise() call.

    -

    Reimplemented in Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 194 of file vamp-sdk/Plugin.h.

    +

    Definition at line 194 of file vamp-sdk/Plugin.h.

    -

    Referenced by enumeratePlugins(), and runPlugin().

    +

    Referenced by enumeratePlugins(), and runPlugin().

    - + +

    ◆ getMinChannelCount()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getMinChannelCount virtual size_t Vamp::Plugin::getMinChannelCount ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    - + +

    ◆ getMaxChannelCount()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getMaxChannelCount virtual size_t Vamp::Plugin::getMaxChannelCount ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    - + +

    ◆ getType()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::Plugin::getType virtual std::string Vamp::Plugin::getType ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    Do not reimplement this function in your subclass.

    Implements Vamp::PluginBase.

    -

    Definition at line 430 of file vamp-sdk/Plugin.h.

    +

    Definition at line 438 of file vamp-sdk/Plugin.h.

    - + +

    ◆ getVampApiVersion()

    +
    + + + + + +
    - + - +
    virtual unsigned int Vamp::PluginBase::getVampApiVersion virtual unsigned int Vamp::PluginBase::getVampApiVersion ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the Vamp API compatibility level of the plugin.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 68 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 68 of file vamp-sdk/PluginBase.h.

    -

    Referenced by enumeratePlugins().

    +

    Referenced by enumeratePlugins().

    - + +

    ◆ getParameterDescriptors()

    +
    + + + + + +
    - + - +
    virtual ParameterList Vamp::PluginBase::getParameterDescriptors virtual ParameterList Vamp::PluginBase::getParameterDescriptors ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the controllable parameters of this plugin.

    -

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 204 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 208 of file vamp-sdk/PluginBase.h.

    -

    Referenced by enumeratePlugins().

    +

    Referenced by enumeratePlugins().

    - + +

    ◆ getParameter()

    +
    + + + + + +
    - + - +
    virtual float Vamp::PluginBase::getParameter virtual float Vamp::PluginBase::getParameter ( std::string  ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the value of a named parameter.

    The argument is the identifier field from that parameter's descriptor.

    -

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 212 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 216 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ setParameter()

    +
    + + + + + +
    - + @@ -842,140 +1126,200 @@ - +
    virtual void Vamp::PluginBase::setParameter virtual void Vamp::PluginBase::setParameter ( std::string  ,
    ) [inline, virtual, inherited]
    - -
    +
    +inlinevirtualinherited
    +

    Set a named parameter.

    The first argument is the identifier field from that parameter's descriptor.

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 218 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 222 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ getPrograms()

    +
    + + + + + +
    - + - +
    virtual ProgramList Vamp::PluginBase::getPrograms virtual ProgramList Vamp::PluginBase::getPrograms ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the program settings available in this plugin.

    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.

    The programs must have unique names.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 233 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 237 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ getCurrentProgram()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getCurrentProgram virtual std::string Vamp::PluginBase::getCurrentProgram ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the current program.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 238 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 242 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ selectProgram()

    +
    + + + + + +
    - + - +
    virtual void Vamp::PluginBase::selectProgram virtual void Vamp::PluginBase::selectProgram ( std::string  ) [inline, virtual, inherited]
    - -
    +
    +inlinevirtualinherited
    +

    Select a program.

    (If the given program name is not one of the available programs, do nothing.)

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 244 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 248 of file vamp-sdk/PluginBase.h.

    + +

    References _VAMP_SDK_PLUGSPACE_END.

    -

    Member Data Documentation

    - +

    Member Data Documentation

    + +

    ◆ m_stepSize

    +
    + + + + + +
    - +
    size_t SpectralCentroid::m_stepSize [protected]size_t SpectralCentroid::m_stepSize
    - -
    +
    +protected
    +
    -

    Definition at line 73 of file SpectralCentroid.h.

    +

    Definition at line 73 of file SpectralCentroid.h.

    -

    Referenced by initialise(), and process().

    +

    Referenced by initialise(), and process().

    - + +

    ◆ m_blockSize

    +
    + + + + + +
    - +
    size_t SpectralCentroid::m_blockSize [protected]size_t SpectralCentroid::m_blockSize
    - -
    +
    +protected
    +
    -

    Definition at line 74 of file SpectralCentroid.h.

    +

    Definition at line 74 of file SpectralCentroid.h.

    -

    Referenced by initialise(), and process().

    +

    Referenced by initialise(), and process().

    - + +

    ◆ m_inputSampleRate

    + @@ -984,17 +1328,15 @@
  • SpectralCentroid.cpp
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classSpectralCentroid.js --- a/code-docs/classSpectralCentroid.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classSpectralCentroid.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,38 +1,41 @@ var classSpectralCentroid = [ - [ "OutputList", "classVamp_1_1Plugin.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], - [ "FeatureList", "classVamp_1_1Plugin.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], - [ "FeatureSet", "classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], - [ "ParameterList", "classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], - [ "ProgramList", "classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20", null ], - [ "InputDomain", "classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc", null ], + [ "OutputList", "classSpectralCentroid.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], + [ "FeatureList", "classSpectralCentroid.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], + [ "FeatureSet", "classSpectralCentroid.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], + [ "ParameterList", "classSpectralCentroid.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], + [ "ProgramList", "classSpectralCentroid.html#a7f66f00437b21e5f694fe02356b12f20", null ], + [ "InputDomain", "classSpectralCentroid.html#a39cb7649d6dcc20e4cb1640cd55907bc", [ + [ "TimeDomain", "classSpectralCentroid.html#a39cb7649d6dcc20e4cb1640cd55907bcad4a9f31b958a43a9757af7893aa2e7ff", null ], + [ "FrequencyDomain", "classSpectralCentroid.html#a39cb7649d6dcc20e4cb1640cd55907bcaa30e7877ab33f76acbdca28607e6ab53", null ] + ] ], [ "SpectralCentroid", "classSpectralCentroid.html#a2cd801ad72f262eceb95ab0d22e7dbcd", null ], [ "~SpectralCentroid", "classSpectralCentroid.html#a483e0d6757bc3dcf61e8066f764f45c6", null ], [ "initialise", "classSpectralCentroid.html#aab1ae16f5c68e2b319668f447908cedb", null ], [ "reset", "classSpectralCentroid.html#a9b5f5581691ff8f46bb7674d8d74395c", null ], - [ "getInputDomain", "classSpectralCentroid.html#a0ec2cb74c1c5f6e57d0bd9dcf7c8f469", null ], - [ "getIdentifier", "classSpectralCentroid.html#a1b2c4c8440c024c4c635fcef5697949f", null ], - [ "getName", "classSpectralCentroid.html#ab7e6a620fea568af431be3cfd9dd5a41", null ], - [ "getDescription", "classSpectralCentroid.html#a8fbb74a46283057d9a0b0e4718ee943c", null ], - [ "getMaker", "classSpectralCentroid.html#ac01ff858bf67e2e93ad5d24a6ba8c8c8", null ], - [ "getPluginVersion", "classSpectralCentroid.html#af64622e66bf678ac2b0b58aa832ca2b3", null ], - [ "getCopyright", "classSpectralCentroid.html#a925747d513d598e0fa21ed0ed6520980", null ], - [ "getOutputDescriptors", "classSpectralCentroid.html#a894ca9740927102bb80b56b5e9e95877", null ], + [ "getInputDomain", "classSpectralCentroid.html#a4c75fd6c00f79f8074f84644b4929052", null ], + [ "getIdentifier", "classSpectralCentroid.html#a4992d03772a228015ee2f8174f1bf06e", null ], + [ "getName", "classSpectralCentroid.html#aa6236ae7400468b8d23d57f8bbb917a9", null ], + [ "getDescription", "classSpectralCentroid.html#ac4a840f9b3c92e0acbcc7d262e841b59", null ], + [ "getMaker", "classSpectralCentroid.html#a9bab5a013a818e286eb4894f9874fee1", null ], + [ "getPluginVersion", "classSpectralCentroid.html#a0056cd5e0615ce8766d52c0b7a92280e", null ], + [ "getCopyright", "classSpectralCentroid.html#afbf8f44c5724cfc7b2b12102389f10b5", null ], + [ "getOutputDescriptors", "classSpectralCentroid.html#af77b30128e071e99d0dd374a3b2fe928", null ], [ "process", "classSpectralCentroid.html#aca96c70e7e75c9e4a7db38485018914c", null ], [ "getRemainingFeatures", "classSpectralCentroid.html#a83ba39f0870a2f86837605a958dfab1a", null ], - [ "getPreferredBlockSize", "classVamp_1_1Plugin.html#aa529adf83f87a603954eb31407602aac", null ], - [ "getPreferredStepSize", "classVamp_1_1Plugin.html#a514c716c22f81c055f19b56c3f882567", null ], - [ "getMinChannelCount", "classVamp_1_1Plugin.html#a267b42e866df3cf0d190893e8096f525", null ], - [ "getMaxChannelCount", "classVamp_1_1Plugin.html#a2c5ab12b6fa4847cb244bd1e9cb3ae5e", null ], - [ "getType", "classVamp_1_1Plugin.html#abe13b3997a69fbcc09e2213faa352f91", null ], - [ "getVampApiVersion", "classVamp_1_1PluginBase.html#a8fd2c48291c64b790f0efb8948508dcf", null ], - [ "getParameterDescriptors", "classVamp_1_1PluginBase.html#aac3e49b3b66cacfbb768dfdf07444f21", null ], - [ "getParameter", "classVamp_1_1PluginBase.html#a97ababcd45348ceec998d0f8e0f38bf7", null ], - [ "setParameter", "classVamp_1_1PluginBase.html#a6c718ce822f7b73b98940d59dcaa9366", null ], - [ "getPrograms", "classVamp_1_1PluginBase.html#abb307c60bdb981d5f5af50c3c4ae84af", null ], - [ "getCurrentProgram", "classVamp_1_1PluginBase.html#a24e77eccf1bdfbbca3c79bb25e8799b3", null ], - [ "selectProgram", "classVamp_1_1PluginBase.html#aadd3a547ef140bae200473a9518e3353", null ], + [ "getPreferredBlockSize", "classSpectralCentroid.html#ae3b9c32b12796ece152388babad7cc7d", null ], + [ "getPreferredStepSize", "classSpectralCentroid.html#a33eaf9a265bc3a055e156452112456c2", null ], + [ "getMinChannelCount", "classSpectralCentroid.html#ab74f7634c6ac6e3da115667808a79c30", null ], + [ "getMaxChannelCount", "classSpectralCentroid.html#a0bff9464bc8c117470136c396b2405dd", null ], + [ "getType", "classSpectralCentroid.html#a530123068767a8728c568ffccfe3e4e5", null ], + [ "getVampApiVersion", "classSpectralCentroid.html#ab4aa9c3e6f6dd9addbc095463c9fb772", null ], + [ "getParameterDescriptors", "classSpectralCentroid.html#a0c24ff6a43c681198dc9497287a26e3a", null ], + [ "getParameter", "classSpectralCentroid.html#aa813d61077080ec95487d2a0227cc51b", null ], + [ "setParameter", "classSpectralCentroid.html#a6c718ce822f7b73b98940d59dcaa9366", null ], + [ "getPrograms", "classSpectralCentroid.html#aaf6febff0ab4daf4a5089c98a67f4df8", null ], + [ "getCurrentProgram", "classSpectralCentroid.html#aac38c5dc6e87208616122897518ca3d5", null ], + [ "selectProgram", "classSpectralCentroid.html#aadd3a547ef140bae200473a9518e3353", null ], [ "m_stepSize", "classSpectralCentroid.html#a49805a090ba58477da4adbefea4392a7", null ], [ "m_blockSize", "classSpectralCentroid.html#a262f583d71b442bb2d80023e7c85aa4e", null ], - [ "m_inputSampleRate", "classVamp_1_1Plugin.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] + [ "m_inputSampleRate", "classSpectralCentroid.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classSpectralCentroid__inherit__graph.map --- a/code-docs/classSpectralCentroid__inherit__graph.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classSpectralCentroid__inherit__graph.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,4 +1,4 @@ - - - + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classSpectralCentroid__inherit__graph.md5 --- a/code-docs/classSpectralCentroid__inherit__graph.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classSpectralCentroid__inherit__graph.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -7e73ddf67ea78e976dc767617b467cc0 \ No newline at end of file +b01ab2eea159b50f341a27b0f439dec8 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classSpectralCentroid__inherit__graph.png Binary file code-docs/classSpectralCentroid__inherit__graph.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1FFT-members.html --- a/code-docs/classVamp_1_1FFT-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1FFT-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,20 +63,20 @@
    Vamp::FFT Member List
    -This is the complete list of members for Vamp::FFT, including all inherited members. - - + +

    This is the complete list of members for Vamp::FFT, including all inherited members.

    +
    forward(unsigned int n, const double *ri, const double *ii, double *ro, double *io)Vamp::FFT [static]
    inverse(unsigned int n, const double *ri, const double *ii, double *ro, double *io)Vamp::FFT [static]
    + +
    forward(unsigned int n, const double *ri, const double *ii, double *ro, double *io)Vamp::FFTstatic
    inverse(unsigned int n, const double *ri, const double *ii, double *ro, double *io)Vamp::FFTstatic
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1FFT.html --- a/code-docs/classVamp_1_1FFT.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1FFT.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Vamp::FFT Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    -

    A simple FFT implementation provided for convenience of plugin authors. +

    A simple FFT implementation provided for convenience of plugin authors. More...

    #include <FFT.h>

    - -

    List of all members.

    - - + + - + +

    +

    Static Public Member Functions

    static void forward (unsigned int n, const double *ri, const double *ii, double *ro, double *io)
     Calculate a forward transform of size n.
     Calculate a one-shot forward transform of size n. More...
     
    static void inverse (unsigned int n, const double *ri, const double *ii, double *ro, double *io)
     Calculate an inverse transform of size n.
     Calculate a one-shot inverse transform of size n. More...
     
    -

    Detailed Description

    -

    A simple FFT implementation provided for convenience of plugin authors.

    -

    This class provides double-precision FFTs in power-of-two sizes only. It is slower than more sophisticated library implementations. If these requirements aren't suitable, make other arrangements.

    -

    The inverse transform is scaled by 1/n.

    -

    The implementation is from Don Cross's public domain FFT code.

    +

    Detailed Description

    +

    A simple FFT implementation provided for convenience of plugin authors.

    +

    This class provides one-shot (i.e. fixed table state is recalculated every time) double-precision complex-complex transforms. For repeated transforms from real time-domain data, use an FFTComplex or FFTReal object instead.

    +

    Note: If the SDK has been compiled with the SINGLE_PRECISION_FFT flag, then all FFTs will use single precision internally. The default is double precision. The API uses doubles in either case.

    +

    The forward transform is unscaled; the inverse transform is scaled by 1/n.

    -

    Definition at line 58 of file FFT.h.

    -

    Member Function Documentation

    - +

    Definition at line 59 of file FFT.h.

    +

    Member Function Documentation

    + +

    ◆ forward()

    +
    + + + + + +
    - + @@ -139,25 +131,35 @@ - +
    static void Vamp::FFT::forward static void Vamp::FFT::forward ( unsigned int  n,
    ) [static]
    - -
    +
    +static
    +
    -

    Calculate a forward transform of size n.

    +

    Calculate a one-shot forward transform of size n.

    +

    n must be a multiple of 2.

    ri and ii must point to the real and imaginary component arrays of the input. For real input, ii may be NULL.

    ro and io must point to enough space to receive the real and imaginary component arrays of the output.

    All input and output arrays are of size n.

    - + +

    ◆ inverse()

    +
    + + + + + +
    - + @@ -189,13 +191,18 @@ - +
    static void Vamp::FFT::inverse static void Vamp::FFT::inverse ( unsigned int  n,
    ) [static]
    - -
    +
    +static
    +
    -

    Calculate an inverse transform of size n.

    +

    Calculate a one-shot inverse transform of size n.

    +

    n must be a power of 2, greater than 1.

    ri and ii must point to the real and imaginary component arrays of the input. For real input, ii may be NULL.

    ro and io must point to enough space to receive the real and imaginary component arrays of the output. The output is scaled by 1/n. The output pointers may not be NULL, even if the output is expected to be real.

    All input and output arrays are of size n.

    @@ -206,18 +213,15 @@
  • FFT.h
  • +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1FFTComplex-members.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/classVamp_1_1FFTComplex-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,85 @@ + + + + + + + +VampPluginSDK: Member List + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Vamp::FFTComplex Member List
    +
    +
    + +

    This is the complete list of members for Vamp::FFTComplex, including all inherited members.

    + + + + + + +
    FFTComplex(unsigned int n)Vamp::FFTComplex
    forward(const double *ci, double *co)Vamp::FFTComplex
    inverse(const double *ci, double *co)Vamp::FFTComplex
    m_dVamp::FFTComplexprivate
    ~FFTComplex()Vamp::FFTComplex
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1FFTComplex.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/classVamp_1_1FFTComplex.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,246 @@ + + + + + + + +VampPluginSDK: Vamp::FFTComplex Class Reference + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    Vamp::FFTComplex Class Reference
    +
    +
    + +

    A simple FFT implementation provided for convenience of plugin authors. + More...

    + +

    #include <FFT.h>

    + + + + + + + + + + + + + +

    +Public Member Functions

     FFTComplex (unsigned int n)
     Prepare to calculate transforms of size n. More...
     
     ~FFTComplex ()
     
    void forward (const double *ci, double *co)
     Calculate a forward transform of size n. More...
     
    void inverse (const double *ci, double *co)
     Calculate an inverse transform of size n. More...
     
    + + + +

    +Private Attributes

    D * m_d
     
    +

    Detailed Description

    +

    A simple FFT implementation provided for convenience of plugin authors.

    +

    This class provides double-precision complex-complex transforms.

    +

    Note: If the SDK has been compiled with the SINGLE_PRECISION_FFT flag, then all FFTs will use single precision internally. The default is double precision. The API uses doubles in either case.

    +

    The forward transform is unscaled; the inverse transform is scaled by 1/n.

    + +

    Definition at line 109 of file FFT.h.

    +

    Constructor & Destructor Documentation

    + +

    ◆ FFTComplex()

    + +
    +
    + + + + + + + + +
    Vamp::FFTComplex::FFTComplex (unsigned int n)
    +
    + +

    Prepare to calculate transforms of size n.

    +

    n must be a multiple of 2.

    + +
    +
    + +

    ◆ ~FFTComplex()

    + +
    +
    + + + + + + + +
    Vamp::FFTComplex::~FFTComplex ()
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ forward()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void Vamp::FFTComplex::forward (const double * ci,
    double * co 
    )
    +
    + +

    Calculate a forward transform of size n.

    +

    ci must point to the interleaved complex input data of size n (that is, 2n doubles in total).

    +

    co must point to enough space to receive an interleaved complex output array of size n (that is, 2n doubles in total).

    + +
    +
    + +

    ◆ inverse()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void Vamp::FFTComplex::inverse (const double * ci,
    double * co 
    )
    +
    + +

    Calculate an inverse transform of size n.

    +

    ci must point to an interleaved complex input array of size n (that is, 2n doubles in total).

    +

    co must point to enough space to receive the interleaved complex output data of size n (that is, 2n doubles in total). The output is scaled by 1/n.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ m_d

    + +
    +
    + + + + + +
    + + + + +
    D* Vamp::FFTComplex::m_d
    +
    +private
    +
    + +

    Definition at line 144 of file FFT.h.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1FFTComplex.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/classVamp_1_1FFTComplex.js Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,8 @@ +var classVamp_1_1FFTComplex = +[ + [ "FFTComplex", "classVamp_1_1FFTComplex.html#ab73b793c7d1bf5ed175ff4aa0cec5190", null ], + [ "~FFTComplex", "classVamp_1_1FFTComplex.html#a5b108c655e5c73ee3ba6881ddd7c40a6", null ], + [ "forward", "classVamp_1_1FFTComplex.html#ab09f93ce626fe41513f33dd9ab54518d", null ], + [ "inverse", "classVamp_1_1FFTComplex.html#aa392c6a7dbcc2cc6a1edeac6da4c435b", null ], + [ "m_d", "classVamp_1_1FFTComplex.html#aa521eef4194d91d2c48d07ed5f6d7f5f", null ] +]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1FFTReal-members.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/classVamp_1_1FFTReal-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,85 @@ + + + + + + + +VampPluginSDK: Member List + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Vamp::FFTReal Member List
    +
    +
    + +

    This is the complete list of members for Vamp::FFTReal, including all inherited members.

    + + + + + + +
    FFTReal(unsigned int n)Vamp::FFTReal
    forward(const double *ri, double *co)Vamp::FFTReal
    inverse(const double *ci, double *ro)Vamp::FFTReal
    m_dVamp::FFTRealprivate
    ~FFTReal()Vamp::FFTReal
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1FFTReal.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/classVamp_1_1FFTReal.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,246 @@ + + + + + + + +VampPluginSDK: Vamp::FFTReal Class Reference + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    Vamp::FFTReal Class Reference
    +
    +
    + +

    A simple FFT implementation provided for convenience of plugin authors. + More...

    + +

    #include <FFT.h>

    + + + + + + + + + + + + + +

    +Public Member Functions

     FFTReal (unsigned int n)
     Prepare to calculate transforms of size n. More...
     
     ~FFTReal ()
     
    void forward (const double *ri, double *co)
     Calculate a forward transform of size n. More...
     
    void inverse (const double *ci, double *ro)
     Calculate an inverse transform of size n. More...
     
    + + + +

    +Private Attributes

    D * m_d
     
    +

    Detailed Description

    +

    A simple FFT implementation provided for convenience of plugin authors.

    +

    This class provides transforms between double-precision real time-domain and double-precision complex frequency-domain data.

    +

    Note: If the SDK has been compiled with the SINGLE_PRECISION_FFT flag, then all FFTs will use single precision internally. The default is double precision. The API uses doubles in either case.

    +

    The forward transform is unscaled; the inverse transform is scaled by 1/n.

    + +

    Definition at line 161 of file FFT.h.

    +

    Constructor & Destructor Documentation

    + +

    ◆ FFTReal()

    + +
    +
    + + + + + + + + +
    Vamp::FFTReal::FFTReal (unsigned int n)
    +
    + +

    Prepare to calculate transforms of size n.

    +

    n must be a multiple of 2.

    + +
    +
    + +

    ◆ ~FFTReal()

    + +
    +
    + + + + + + + +
    Vamp::FFTReal::~FFTReal ()
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ forward()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void Vamp::FFTReal::forward (const double * ri,
    double * co 
    )
    +
    + +

    Calculate a forward transform of size n.

    +

    ri must point to the real input data of size n.

    +

    co must point to enough space to receive an interleaved complex output array of size n/2+1 (that is, n+2 doubles in total).

    + +
    +
    + +

    ◆ inverse()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void Vamp::FFTReal::inverse (const double * ci,
    double * ro 
    )
    +
    + +

    Calculate an inverse transform of size n.

    +

    ci must point to an interleaved complex input array of size n/2+1 (that is, n+2 doubles in total).

    +

    ro must point to enough space to receive the real output data of size n. The output is scaled by 1/n and only the real part is returned.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ m_d

    + +
    +
    + + + + + +
    + + + + +
    D* Vamp::FFTReal::m_d
    +
    +private
    +
    + +

    Definition at line 195 of file FFT.h.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1FFTReal.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/classVamp_1_1FFTReal.js Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,8 @@ +var classVamp_1_1FFTReal = +[ + [ "FFTReal", "classVamp_1_1FFTReal.html#a322be62b02d4dce71271d1b6af69310d", null ], + [ "~FFTReal", "classVamp_1_1FFTReal.html#ade37f8ce309792f154b6e3b20cc23ad1", null ], + [ "forward", "classVamp_1_1FFTReal.html#a25dfbb5bf24bdc4da8409ffdc3d827da", null ], + [ "inverse", "classVamp_1_1FFTReal.html#a95921330e3be266b59a4eb94c5879fbe", null ], + [ "m_d", "classVamp_1_1FFTReal.html#a7161d0e61886644b362392fa7df03104", null ] +]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter-members.html --- a/code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,66 +63,66 @@
    Vamp::HostExt::PluginBufferingAdapter Member List
    -This is the complete list of members for Vamp::HostExt::PluginBufferingAdapter, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

    This is the complete list of members for Vamp::HostExt::PluginBufferingAdapter, including all inherited members.

    +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getActualStepAndBlockSizes(size_t &stepSize, size_t &blockSize)Vamp::HostExt::PluginBufferingAdapter
    getCopyright() const Vamp::HostExt::PluginWrapper [virtual]
    getCurrentProgram() const Vamp::HostExt::PluginWrapper [virtual]
    getDescription() const Vamp::HostExt::PluginWrapper [virtual]
    getIdentifier() const Vamp::HostExt::PluginWrapper [virtual]
    getInputDomain() const Vamp::HostExt::PluginWrapper [virtual]
    getMaker() const Vamp::HostExt::PluginWrapper [virtual]
    getMaxChannelCount() const Vamp::HostExt::PluginWrapper [virtual]
    getMinChannelCount() const Vamp::HostExt::PluginWrapper [virtual]
    getName() const Vamp::HostExt::PluginWrapper [virtual]
    getOutputDescriptors() const Vamp::HostExt::PluginBufferingAdapter [virtual]
    getParameter(std::string) const Vamp::HostExt::PluginWrapper [virtual]
    getParameterDescriptors() const Vamp::HostExt::PluginWrapper [virtual]
    getPluginPreferredBlockSize() const Vamp::HostExt::PluginBufferingAdapter
    getPluginPreferredStepSize() const Vamp::HostExt::PluginBufferingAdapter
    getPluginVersion() const Vamp::HostExt::PluginWrapper [virtual]
    getPreferredBlockSize() const Vamp::HostExt::PluginBufferingAdapter [virtual]
    getPreferredStepSize() const Vamp::HostExt::PluginBufferingAdapter [virtual]
    getPrograms() const Vamp::HostExt::PluginWrapper [virtual]
    getRemainingFeatures()Vamp::HostExt::PluginBufferingAdapter [virtual]
    getType() const Vamp::Plugin [inline, virtual]
    getVampApiVersion() const Vamp::HostExt::PluginWrapper [virtual]
    getWrapper()Vamp::HostExt::PluginWrapper [inline]
    initialise(size_t channels, size_t stepSize, size_t blockSize)Vamp::HostExt::PluginBufferingAdapter [virtual]
    InputDomain enum nameVamp::Plugin
    m_implVamp::HostExt::PluginBufferingAdapter [protected]
    m_inputSampleRateVamp::Plugin [protected]
    m_pluginVamp::HostExt::PluginWrapper [protected]
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugin [inline, protected]
    PluginBufferingAdapter(Plugin *plugin)Vamp::HostExt::PluginBufferingAdapter
    PluginWrapper(Plugin *plugin)Vamp::HostExt::PluginWrapper [protected]
    process(const float *const *inputBuffers, RealTime timestamp)Vamp::HostExt::PluginBufferingAdapter [virtual]
    ProgramList typedefVamp::PluginBase
    reset()Vamp::HostExt::PluginBufferingAdapter [virtual]
    selectProgram(std::string)Vamp::HostExt::PluginBufferingAdapter [virtual]
    setParameter(std::string, float)Vamp::HostExt::PluginBufferingAdapter [virtual]
    setPluginBlockSize(size_t blockSize)Vamp::HostExt::PluginBufferingAdapter
    setPluginStepSize(size_t stepSize)Vamp::HostExt::PluginBufferingAdapter
    TimeDomain enum valueVamp::Plugin
    ~Plugin()Vamp::Plugin [inline, virtual]
    ~PluginBase()Vamp::PluginBase [inline, virtual]
    ~PluginBufferingAdapter()Vamp::HostExt::PluginBufferingAdapter [virtual]
    ~PluginWrapper()Vamp::HostExt::PluginWrapper [virtual]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getActualStepAndBlockSizes(size_t &stepSize, size_t &blockSize)Vamp::HostExt::PluginBufferingAdapter
    getCopyright() constVamp::HostExt::PluginWrappervirtual
    getCurrentProgram() constVamp::HostExt::PluginWrappervirtual
    getDescription() constVamp::HostExt::PluginWrappervirtual
    getIdentifier() constVamp::HostExt::PluginWrappervirtual
    getInputDomain() constVamp::HostExt::PluginWrappervirtual
    getMaker() constVamp::HostExt::PluginWrappervirtual
    getMaxChannelCount() constVamp::HostExt::PluginWrappervirtual
    getMinChannelCount() constVamp::HostExt::PluginWrappervirtual
    getName() constVamp::HostExt::PluginWrappervirtual
    getOutputDescriptors() constVamp::HostExt::PluginBufferingAdaptervirtual
    getParameter(std::string) constVamp::HostExt::PluginWrappervirtual
    getParameterDescriptors() constVamp::HostExt::PluginWrappervirtual
    getPluginPreferredBlockSize() constVamp::HostExt::PluginBufferingAdapter
    getPluginPreferredStepSize() constVamp::HostExt::PluginBufferingAdapter
    getPluginVersion() constVamp::HostExt::PluginWrappervirtual
    getPreferredBlockSize() constVamp::HostExt::PluginBufferingAdaptervirtual
    getPreferredStepSize() constVamp::HostExt::PluginBufferingAdaptervirtual
    getPrograms() constVamp::HostExt::PluginWrappervirtual
    getRemainingFeatures()Vamp::HostExt::PluginBufferingAdaptervirtual
    getType() constVamp::Plugininlinevirtual
    getVampApiVersion() constVamp::HostExt::PluginWrappervirtual
    getWrapper()Vamp::HostExt::PluginWrapperinline
    initialise(size_t channels, size_t stepSize, size_t blockSize)Vamp::HostExt::PluginBufferingAdaptervirtual
    InputDomain enum nameVamp::Plugin
    m_implVamp::HostExt::PluginBufferingAdapterprotected
    m_inputSampleRateVamp::Pluginprotected
    m_pluginVamp::HostExt::PluginWrapperprotected
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugininlineprotected
    PluginBufferingAdapter(Plugin *plugin)Vamp::HostExt::PluginBufferingAdapter
    PluginWrapper(Plugin *plugin)Vamp::HostExt::PluginWrapperprotected
    process(const float *const *inputBuffers, RealTime timestamp)Vamp::HostExt::PluginBufferingAdaptervirtual
    ProgramList typedefVamp::PluginBase
    reset()Vamp::HostExt::PluginBufferingAdaptervirtual
    selectProgram(std::string)Vamp::HostExt::PluginBufferingAdaptervirtual
    setParameter(std::string, float)Vamp::HostExt::PluginBufferingAdaptervirtual
    setPluginBlockSize(size_t blockSize)Vamp::HostExt::PluginBufferingAdapter
    setPluginStepSize(size_t stepSize)Vamp::HostExt::PluginBufferingAdapter
    TimeDomain enum valueVamp::Plugin
    ~Plugin()Vamp::Plugininlinevirtual
    ~PluginBase()Vamp::PluginBaseinlinevirtual
    ~PluginBufferingAdapter()Vamp::HostExt::PluginBufferingAdaptervirtual
    ~PluginWrapper()Vamp::HostExt::PluginWrappervirtual
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter.html --- a/code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Vamp::HostExt::PluginBufferingAdapter Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    Vamp::HostExt::PluginBufferingAdapter Class Reference
    @@ -91,290 +78,414 @@
    Inheritance graph
    - + + + +
    [legend]
    - -

    List of all members.

    - - + + + - - + + + + + - +

    +

    Public Types

    enum  InputDomain { TimeDomain, FrequencyDomain }
    typedef std::vector
    -< OutputDescriptor
    OutputList
     
    typedef std::vector< OutputDescriptorOutputList
     
    typedef std::vector< FeatureFeatureList
    typedef std::map< int,
    -FeatureList
    FeatureSet
    typedef std::vector
    -< ParameterDescriptor
    ParameterList
     
    typedef std::map< int, FeatureListFeatureSet
     
    typedef std::vector< ParameterDescriptorParameterList
     
    typedef std::vector< std::string > ProgramList

    +

     
    + - + + - - - - + + + + + + + - - - - - + + + + + + + + - + + - + + - + + - + + - - - + + + + + - + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + +

    Public Member Functions

     PluginBufferingAdapter (Plugin *plugin)
     Construct a PluginBufferingAdapter wrapping the given plugin.
     Construct a PluginBufferingAdapter wrapping the given plugin. More...
     
    virtual ~PluginBufferingAdapter ()
    size_t getPreferredStepSize () const
     Return the preferred step size for this adapter.
    size_t getPreferredBlockSize () const
     Return the preferred block size for this adapter.
     
    size_t getPreferredStepSize () const
     Return the preferred step size for this adapter. More...
     
    size_t getPreferredBlockSize () const
     Return the preferred block size for this adapter. More...
     
    bool initialise (size_t channels, size_t stepSize, size_t blockSize)
     Initialise the adapter (and therefore the plugin) for the given number of channels.
    size_t getPluginPreferredStepSize () const
     Return the preferred step size of the plugin wrapped by this adapter.
    size_t getPluginPreferredBlockSize () const
     Return the preferred block size of the plugin wrapped by this adapter.
     Initialise the adapter (and therefore the plugin) for the given number of channels. More...
     
    size_t getPluginPreferredStepSize () const
     Return the preferred step size of the plugin wrapped by this adapter. More...
     
    size_t getPluginPreferredBlockSize () const
     Return the preferred block size of the plugin wrapped by this adapter. More...
     
    void setPluginStepSize (size_t stepSize)
     Set the step size that will be used for the underlying plugin when initialise() is called.
     Set the step size that will be used for the underlying plugin when initialise() is called. More...
     
    void setPluginBlockSize (size_t blockSize)
     Set the block size that will be used for the underlying plugin when initialise() is called.
     Set the block size that will be used for the underlying plugin when initialise() is called. More...
     
    void getActualStepAndBlockSizes (size_t &stepSize, size_t &blockSize)
     Return the step and block sizes that were actually used when initialising the underlying plugin.
     Return the step and block sizes that were actually used when initialising the underlying plugin. More...
     
    void setParameter (std::string, float)
     Set a named parameter.
     Set a named parameter. More...
     
    void selectProgram (std::string)
     Select a program.
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin.
     Select a program. More...
     
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin. More...
     
    void reset ()
     Reset the plugin after use, to prepare it for another clean run.
     Reset the plugin after use, to prepare it for another clean run. More...
     
    FeatureSet process (const float *const *inputBuffers, RealTime timestamp)
     Process a single block of input data.
     Process a single block of input data. More...
     
    FeatureSet getRemainingFeatures ()
     After all blocks have been processed, calculate and return any remaining features derived from the complete input.
    InputDomain getInputDomain () const
     Get the plugin's required input domain.
    unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin.
    std::string getIdentifier () const
     Get the computer-usable name of the plugin.
    std::string getName () const
     Get a human-readable name or title of the plugin.
    std::string getDescription () const
     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".
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form.
    int getPluginVersion () const
     Get the version number of the plugin.
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin.
    ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin.
    float getParameter (std::string) const
     Get the value of a named parameter.
    ProgramList getPrograms () const
     Get the program settings available in this plugin.
    std::string getCurrentProgram () const
     Get the current program.
    size_t getMinChannelCount () const
     Get the minimum supported number of input channels.
    size_t getMaxChannelCount () const
     Get the maximum supported number of input channels.
     After all blocks have been processed, calculate and return any remaining features derived from the complete input. More...
     
    InputDomain getInputDomain () const
     Get the plugin's required input domain. More...
     
    unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin. More...
     
    std::string getIdentifier () const
     Get the computer-usable name of the plugin. More...
     
    std::string getName () const
     Get a human-readable name or title of the plugin. More...
     
    std::string getDescription () const
     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". More...
     
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form. More...
     
    int getPluginVersion () const
     Get the version number of the plugin. More...
     
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin. More...
     
    ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin. More...
     
    float getParameter (std::string) const
     Get the value of a named parameter. More...
     
    ProgramList getPrograms () const
     Get the program settings available in this plugin. More...
     
    std::string getCurrentProgram () const
     Get the current program. More...
     
    size_t getMinChannelCount () const
     Get the minimum supported number of input channels. More...
     
    size_t getMaxChannelCount () const
     Get the maximum supported number of input channels. More...
     
    template<typename WrapperType >
    WrapperType * getWrapper ()
     Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present.
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

     Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present. More...
     
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase. More...
     
    + + + +

    Protected Attributes

    Impl * m_impl
     
    Pluginm_plugin
     
    float m_inputSampleRate
     
    -

    Detailed Description

    +

    Detailed Description

    PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by a host supplying an audio stream in non-overlapping buffers of arbitrary size.

    A host using PluginBufferingAdapter may ignore the preferred step and block size reported by the plugin, and still expect the plugin to run. The value of blockSize and stepSize passed to initialise should be the size of the buffer which the host will supply; the stepSize should be equal to the blockSize.

    If the internal step size used for the plugin differs from that supplied by the host, the adapter will modify the sample type and rate specifications for the plugin outputs appropriately, and set timestamps on the output features for outputs that formerly used a different sample rate specification. This is necessary in order to obtain correct time stamping.

    In other respects, the PluginBufferingAdapter behaves identically to the plugin that it wraps. The wrapped plugin will be deleted when the wrapper is deleted.

    -

    Definition at line 75 of file PluginBufferingAdapter.h.

    -

    Member Typedef Documentation

    - +

    Definition at line 75 of file PluginBufferingAdapter.h.

    +

    Member Typedef Documentation

    + +

    ◆ OutputList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList
    +
    +inherited
    +
    + +

    Definition at line 335 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ FeatureList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<Feature> Vamp::Plugin::FeatureList
    +
    +inherited
    +
    + +

    Definition at line 393 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ FeatureSet

    + +
    +
    + + + + + +
    + + + + +
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet
    +
    +inherited
    +
    + +

    Definition at line 395 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ ParameterList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList
    +
    +inherited
    +
    + +

    Definition at line 203 of file vamp-sdk/PluginBase.h.

    + +
    +
    + +

    ◆ ProgramList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList
    +
    +inherited
    +
    + +

    Definition at line 225 of file vamp-sdk/PluginBase.h.

    + +
    +
    +

    Member Enumeration Documentation

    + +

    ◆ InputDomain

    + +
    +
    + + + + + +
    + + + + +
    enum Vamp::Plugin::InputDomain
    +
    +inherited
    +
    + + + +
    Enumerator
    TimeDomain 
    FrequencyDomain 
    + +

    Definition at line 152 of file vamp-sdk/Plugin.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ PluginBufferingAdapter()

    +
    - - -
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList [inherited]
    -
    -
    - -

    Definition at line 327 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<Feature> Vamp::Plugin::FeatureList [inherited]
    -
    -
    - -

    Definition at line 385 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet [inherited]
    -
    -
    - -

    Definition at line 387 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList [inherited]
    -
    -
    - -

    Definition at line 199 of file vamp-sdk/PluginBase.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList [inherited]
    -
    -
    - -

    Definition at line 221 of file vamp-sdk/PluginBase.h.

    - -
    -
    -

    Member Enumeration Documentation

    - -
    -
    - - - - -
    enum Vamp::Plugin::InputDomain [inherited]
    -
    -
    -
    Enumerator:
    - - -
    TimeDomain  -
    FrequencyDomain  -
    -
    -
    - -

    Definition at line 152 of file vamp-sdk/Plugin.h.

    - -
    -
    -

    Constructor & Destructor Documentation

    - -
    -
    - - - +
    Vamp::HostExt::PluginBufferingAdapter::PluginBufferingAdapter Vamp::HostExt::PluginBufferingAdapter::PluginBufferingAdapter ( Plugin plugin)
    -
    -
    +

    Construct a PluginBufferingAdapter wrapping the given plugin.

    The adapter takes ownership of the plugin, which will be deleted when the adapter is deleted.

    - + +

    ◆ ~PluginBufferingAdapter()

    +
    + + + + + +
    - + - +
    virtual Vamp::HostExt::PluginBufferingAdapter::~PluginBufferingAdapter virtual Vamp::HostExt::PluginBufferingAdapter::~PluginBufferingAdapter ( ) [virtual]
    - -
    +
    +virtual
    +
    -

    Member Function Documentation

    - +

    Member Function Documentation

    + +

    ◆ getPreferredStepSize()

    +
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginBufferingAdapter::getPreferredStepSize size_t Vamp::HostExt::PluginBufferingAdapter::getPreferredStepSize ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Return the preferred step size for this adapter.

    -

    Because of the way this adapter works, its preferred step size will always be the same as its preferred block size. This may or may not be the same as the preferred step size of the underlying plugin, which may be obtained by calling getPluginPreferredStepSize().

    +

    Because of the way this adapter works, its preferred step size will always be the same as its preferred block size. This may or may not be the same as the preferred step size of the underlying plugin, which may be obtained by calling getPluginPreferredStepSize().

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getPreferredBlockSize()

    +
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginBufferingAdapter::getPreferredBlockSize size_t Vamp::HostExt::PluginBufferingAdapter::getPreferredBlockSize ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Return the preferred block size for this adapter.

    -

    This may or may not be the same as the preferred block size of the underlying plugin, which may be obtained by calling getPluginPreferredBlockSize().

    +

    This may or may not be the same as the preferred block size of the underlying plugin, which may be obtained by calling getPluginPreferredBlockSize().

    Note that this adapter may be initialised with any block size, not just its supposedly preferred one.

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ initialise()

    +
    + + + + + +
    - + @@ -394,104 +505,114 @@ - +
    bool Vamp::HostExt::PluginBufferingAdapter::initialise bool Vamp::HostExt::PluginBufferingAdapter::initialise ( size_t  channels,
    ) [virtual]
    - -
    +
    +virtual
    +

    Initialise the adapter (and therefore the plugin) for the given number of channels.

    Initialise the adapter for the given step and block size, which must be equal.

    The step and block size used for the underlying plugin will depend on its preferences, or any values previously passed to setPluginStepSize and setPluginBlockSize.

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Implements Vamp::Plugin.

    - + +

    ◆ getPluginPreferredStepSize()

    +
    - +
    size_t Vamp::HostExt::PluginBufferingAdapter::getPluginPreferredStepSize size_t Vamp::HostExt::PluginBufferingAdapter::getPluginPreferredStepSize ( ) const
    -
    -
    +

    Return the preferred step size of the plugin wrapped by this adapter.

    This is included mainly for informational purposes. This value is not likely to be a valid step size for the adapter itself, and it is not usually of any use in interpreting the results (because the adapter re-writes OneSamplePerStep outputs to FixedSampleRate so that the hop size no longer needs to be known beforehand in order to interpret them).

    - + +

    ◆ getPluginPreferredBlockSize()

    +
    - +
    size_t Vamp::HostExt::PluginBufferingAdapter::getPluginPreferredBlockSize size_t Vamp::HostExt::PluginBufferingAdapter::getPluginPreferredBlockSize ( ) const
    -
    -
    +

    Return the preferred block size of the plugin wrapped by this adapter.

    This is included mainly for informational purposes.

    - + +

    ◆ setPluginStepSize()

    +
    - +
    void Vamp::HostExt::PluginBufferingAdapter::setPluginStepSize void Vamp::HostExt::PluginBufferingAdapter::setPluginStepSize ( size_t  stepSize)
    -
    -
    +
    -

    Set the step size that will be used for the underlying plugin when initialise() is called.

    -

    If this is not set, the plugin's own preferred step size will be used. You will not usually need to call this function. If you do call it, it must be before the first call to initialise().

    +

    Set the step size that will be used for the underlying plugin when initialise() is called.

    +

    If this is not set, the plugin's own preferred step size will be used. You will not usually need to call this function. If you do call it, it must be before the first call to initialise().

    - + +

    ◆ setPluginBlockSize()

    +
    - +
    void Vamp::HostExt::PluginBufferingAdapter::setPluginBlockSize void Vamp::HostExt::PluginBufferingAdapter::setPluginBlockSize ( size_t  blockSize)
    -
    -
    +
    -

    Set the block size that will be used for the underlying plugin when initialise() is called.

    -

    If this is not set, the plugin's own preferred block size will be used. You will not usually need to call this function. If you do call it, it must be before the first call to initialise().

    +

    Set the block size that will be used for the underlying plugin when initialise() is called.

    +

    If this is not set, the plugin's own preferred block size will be used. You will not usually need to call this function. If you do call it, it must be before the first call to initialise().

    - + +

    ◆ getActualStepAndBlockSizes()

    +
    - + @@ -508,20 +629,24 @@
    void Vamp::HostExt::PluginBufferingAdapter::getActualStepAndBlockSizes void Vamp::HostExt::PluginBufferingAdapter::getActualStepAndBlockSizes ( size_t &  stepSize,
    -
    -
    +

    Return the step and block sizes that were actually used when initialising the underlying plugin.

    -

    This is included mainly for informational purposes. You will not usually need to call this function. If this is called before initialise(), it will return 0 for both values. If it is called after a failed call to initialise(), it will return the values that were used in the failed call to the plugin's initialise() function.

    +

    This is included mainly for informational purposes. You will not usually need to call this function. If this is called before initialise(), it will return 0 for both values. If it is called after a failed call to initialise(), it will return the values that were used in the failed call to the plugin's initialise() function.

    - + +

    ◆ setParameter()

    +
    + + + + + +
    - + @@ -535,89 +660,125 @@ - +
    void Vamp::HostExt::PluginBufferingAdapter::setParameter void Vamp::HostExt::PluginBufferingAdapter::setParameter ( std::string  ,
    ) [virtual]
    - -
    +
    +virtual
    +

    Set a named parameter.

    The first argument is the identifier field from that parameter's descriptor.

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ selectProgram()

    +
    + + + + + +
    - + - +
    void Vamp::HostExt::PluginBufferingAdapter::selectProgram void Vamp::HostExt::PluginBufferingAdapter::selectProgram ( std::string  ) [virtual]
    - -
    +
    +virtual
    +

    Select a program.

    (If the given program name is not one of the available programs, do nothing.)

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getOutputDescriptors()

    +
    + + + + + +
    - + - +
    OutputList Vamp::HostExt::PluginBufferingAdapter::getOutputDescriptors OutputList Vamp::HostExt::PluginBufferingAdapter::getOutputDescriptors ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the outputs of this plugin.

    -

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    +

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Implements Vamp::Plugin.

    - + +

    ◆ reset()

    +
    + + + + + +
    - + - +
    void Vamp::HostExt::PluginBufferingAdapter::reset void Vamp::HostExt::PluginBufferingAdapter::reset ( ) [virtual]
    - -
    +
    +virtual
    +

    Reset the plugin after use, to prepare it for another clean run.

    Not called for the first initialisation (i.e. initialise must also do a reset).

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Implements Vamp::Plugin.

    - + +

    ◆ process()

    +
    + + + + + +
    - + @@ -631,98 +792,136 @@ - +
    FeatureSet Vamp::HostExt::PluginBufferingAdapter::process FeatureSet Vamp::HostExt::PluginBufferingAdapter::process ( const float *const *  inputBuffers,
    ) [virtual]
    - -
    +
    +virtual
    +

    Process a single block of input data.

    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.

    -

    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).

    +

    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).

    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.)

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Implements Vamp::Plugin.

    - + +

    ◆ getRemainingFeatures()

    +
    + + + + + +
    - + - +
    FeatureSet Vamp::HostExt::PluginBufferingAdapter::getRemainingFeatures FeatureSet Vamp::HostExt::PluginBufferingAdapter::getRemainingFeatures ( ) [virtual]
    - -
    +
    +virtual
    +

    After all blocks have been processed, calculate and return any remaining features derived from the complete input.

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Implements Vamp::Plugin.

    - + +

    ◆ getInputDomain()

    +
    + + + + + +
    - + - +
    InputDomain Vamp::HostExt::PluginWrapper::getInputDomain InputDomain Vamp::HostExt::PluginWrapper::getInputDomain ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the plugin's required input domain.

    -

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    -

    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 process(). 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.

    +

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    +

    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 process(). 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.

    Implements Vamp::Plugin.

    -

    Reimplemented in Vamp::HostExt::PluginInputDomainAdapter.

    +
    +
    + +

    ◆ getVampApiVersion()

    -
    -
    -
    + + + + + +
    - + - +
    unsigned int Vamp::HostExt::PluginWrapper::getVampApiVersion unsigned int Vamp::HostExt::PluginWrapper::getVampApiVersion ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the Vamp API compatibility level of the plugin.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getIdentifier()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getIdentifier std::string Vamp::HostExt::PluginWrapper::getIdentifier ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the computer-usable name of the plugin.

    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.

    @@ -733,19 +932,28 @@
    - + +

    ◆ getName()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getName std::string Vamp::HostExt::PluginWrapper::getName ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get a human-readable name or title of the plugin.

    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").

    @@ -755,19 +963,28 @@
    - + +

    ◆ getDescription()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getDescription std::string Vamp::HostExt::PluginWrapper::getDescription ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    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".

    May be empty if the name has said it all already.

    @@ -777,19 +994,28 @@
    - + +

    ◆ getMaker()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getMaker std::string Vamp::HostExt::PluginWrapper::getMaker ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the name of the author or vendor of the plugin in human-readable form.

    This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar.

    @@ -798,19 +1024,28 @@
    - + +

    ◆ getPluginVersion()

    +
    + + + + + +
    - + - +
    int Vamp::HostExt::PluginWrapper::getPluginVersion int Vamp::HostExt::PluginWrapper::getPluginVersion ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the version number of the plugin.

    @@ -818,19 +1053,28 @@
    - + +

    ◆ getCopyright()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getCopyright std::string Vamp::HostExt::PluginWrapper::getCopyright ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the copyright statement or licensing summary for the plugin.

    This can be an informative text, without the same presentation constraints as mentioned for getMaker above.

    @@ -839,225 +1083,324 @@
    - + +

    ◆ getParameterDescriptors()

    +
    + + + + + +
    - + - +
    ParameterList Vamp::HostExt::PluginWrapper::getParameterDescriptors ParameterList Vamp::HostExt::PluginWrapper::getParameterDescriptors ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the controllable parameters of this plugin.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getParameter()

    +
    + + + + + +
    - + - +
    float Vamp::HostExt::PluginWrapper::getParameter float Vamp::HostExt::PluginWrapper::getParameter ( std::string  ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the value of a named parameter.

    The argument is the identifier field from that parameter's descriptor.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getPrograms()

    +
    + + + + + +
    - + - +
    ProgramList Vamp::HostExt::PluginWrapper::getPrograms ProgramList Vamp::HostExt::PluginWrapper::getPrograms ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the program settings available in this plugin.

    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.

    The programs must have unique names.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getCurrentProgram()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getCurrentProgram std::string Vamp::HostExt::PluginWrapper::getCurrentProgram ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the current program.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getMinChannelCount()

    +
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginWrapper::getMinChannelCount size_t Vamp::HostExt::PluginWrapper::getMinChannelCount ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the minimum supported number of input channels.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getMaxChannelCount()

    +
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginWrapper::getMaxChannelCount size_t Vamp::HostExt::PluginWrapper::getMaxChannelCount ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the maximum supported number of input channels.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getWrapper()

    +
    template<typename WrapperType >
    + + + + + +
    - + - +
    WrapperType* Vamp::HostExt::PluginWrapper::getWrapper WrapperType* Vamp::HostExt::PluginWrapper::getWrapper ( ) [inline, inherited]
    - -
    +
    +inlineinherited
    +

    Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present.

    -

    This is useful in situations where a plugin is wrapped by multiple different wrappers (one inside another) and the host wants to call some wrapper-specific function on one of the layers without having to care about the order in which they are wrapped. For example, the plugin returned by PluginLoader::loadPlugin may have more than one wrapper; if the host wanted to query or fine-tune some property of one of them, it would be hard to do so without knowing the order of the wrappers. This function therefore gives direct access to the wrapper of a particular type.

    +

    This is useful in situations where a plugin is wrapped by multiple different wrappers (one inside another) and the host wants to call some wrapper-specific function on one of the layers without having to care about the order in which they are wrapped. For example, the plugin returned by PluginLoader::loadPlugin may have more than one wrapper; if the host wanted to query or fine-tune some property of one of them, it would be hard to do so without knowing the order of the wrappers. This function therefore gives direct access to the wrapper of a particular type.

    -

    Definition at line 116 of file PluginWrapper.h.

    +

    Definition at line 116 of file PluginWrapper.h.

    -

    References Vamp::HostExt::PluginWrapper::getWrapper().

    +

    References Vamp::HostExt::PluginWrapper::getWrapper().

    -

    Referenced by Vamp::HostExt::PluginWrapper::getWrapper(), and runPlugin().

    +

    Referenced by Vamp::HostExt::PluginWrapper::getWrapper(), and runPlugin().

    - + +

    ◆ getType()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::Plugin::getType virtual std::string Vamp::Plugin::getType ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    Do not reimplement this function in your subclass.

    Implements Vamp::PluginBase.

    -

    Definition at line 430 of file vamp-sdk/Plugin.h.

    +

    Definition at line 438 of file vamp-sdk/Plugin.h.

    -

    Member Data Documentation

    - +

    Member Data Documentation

    + +

    ◆ m_impl

    +
    + + + + + +
    - +
    Impl* Vamp::HostExt::PluginBufferingAdapter::m_impl [protected]Impl* Vamp::HostExt::PluginBufferingAdapter::m_impl
    - -
    +
    +protected
    +
    -

    Definition at line 184 of file PluginBufferingAdapter.h.

    +

    Definition at line 184 of file PluginBufferingAdapter.h.

    - + +

    ◆ m_plugin

    +
    + + + + + +
    - +
    Plugin* Vamp::HostExt::PluginWrapper::m_plugin [protected, inherited]Plugin* Vamp::HostExt::PluginWrapper::m_plugin
    - -
    +
    +protectedinherited
    +
    -

    Definition at line 126 of file PluginWrapper.h.

    +

    Definition at line 126 of file PluginWrapper.h.

    - + +

    ◆ m_inputSampleRate

    + @@ -1065,19 +1408,15 @@
  • PluginBufferingAdapter.h
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter.js --- a/code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,44 +1,47 @@ var classVamp_1_1HostExt_1_1PluginBufferingAdapter = [ - [ "OutputList", "classVamp_1_1Plugin.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], - [ "FeatureList", "classVamp_1_1Plugin.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], - [ "FeatureSet", "classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], - [ "ParameterList", "classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], - [ "ProgramList", "classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20", null ], - [ "InputDomain", "classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc", null ], + [ "OutputList", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], + [ "FeatureList", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], + [ "FeatureSet", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], + [ "ParameterList", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], + [ "ProgramList", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a7f66f00437b21e5f694fe02356b12f20", null ], + [ "InputDomain", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a39cb7649d6dcc20e4cb1640cd55907bc", [ + [ "TimeDomain", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a39cb7649d6dcc20e4cb1640cd55907bcad4a9f31b958a43a9757af7893aa2e7ff", null ], + [ "FrequencyDomain", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a39cb7649d6dcc20e4cb1640cd55907bcaa30e7877ab33f76acbdca28607e6ab53", null ] + ] ], [ "PluginBufferingAdapter", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a1276bcfcbe1414b33eeefbd7b2b702fe", null ], [ "~PluginBufferingAdapter", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a96263f7b0910a10eeae86f20db007e55", null ], - [ "getPreferredStepSize", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a2e66d009df69c951001e5d2786973d60", null ], - [ "getPreferredBlockSize", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a21e45180b19873f9ab69fe7a4e184a03", null ], + [ "getPreferredStepSize", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#acb6b82c61ebac4610a8b92f94cd50682", null ], + [ "getPreferredBlockSize", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a39dd1770dd0a737ff295d70082d86fd3", null ], [ "initialise", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a9e7798ba4d7870db46502ab541ab37a8", null ], - [ "getPluginPreferredStepSize", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#ad7fad500331808b5cdf90f5a45019b02", null ], - [ "getPluginPreferredBlockSize", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a7045be875de9dd226d2e2a222e957de0", null ], + [ "getPluginPreferredStepSize", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#aa9a614ee2900ce22039af9ca43c11b81", null ], + [ "getPluginPreferredBlockSize", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#ad8506e594c7aeb275ccfbbf21c4c3c40", null ], [ "setPluginStepSize", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#ac99898d78a01a7fad4def4d6c5fd3a7e", null ], [ "setPluginBlockSize", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#aa80ae1bff6f95e805811df2c3770a98c", null ], [ "getActualStepAndBlockSizes", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#aa065985fd864f6869d1bc7fea6fa2ece", null ], [ "setParameter", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a7a979b20c169d37adbd7b7d8b8a077b3", null ], [ "selectProgram", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a3cc7000e0aff525950e0a286b87f8927", null ], - [ "getOutputDescriptors", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#af8cc914897a284433de220f1153f3845", null ], + [ "getOutputDescriptors", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#ac17520cdd29a57d320ca65066ec2636c", null ], [ "reset", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a131fd9fe8a1795d7370d8a721176868a", null ], [ "process", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a55058a20c1f8bffc0dc927350df778a0", null ], [ "getRemainingFeatures", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a28423951b2eda1a1fc371485434f417b", null ], - [ "getInputDomain", "classVamp_1_1HostExt_1_1PluginWrapper.html#ae203faf8384c9e1fddc381409aa8a214", null ], - [ "getVampApiVersion", "classVamp_1_1HostExt_1_1PluginWrapper.html#a74147fda6b44ff2169bd4a1eea0d46ff", null ], - [ "getIdentifier", "classVamp_1_1HostExt_1_1PluginWrapper.html#a4baa9e48f717c2b3e7f92496aa39d904", null ], - [ "getName", "classVamp_1_1HostExt_1_1PluginWrapper.html#ac70a3265bb25aeb03f6dd8f8a0442088", null ], - [ "getDescription", "classVamp_1_1HostExt_1_1PluginWrapper.html#ac334f699c0996055942785410d8a065c", null ], - [ "getMaker", "classVamp_1_1HostExt_1_1PluginWrapper.html#a59d5a2298951b317995675e664b1c7bb", null ], - [ "getPluginVersion", "classVamp_1_1HostExt_1_1PluginWrapper.html#a47e1acf1696813008324a915c9ba59c5", null ], - [ "getCopyright", "classVamp_1_1HostExt_1_1PluginWrapper.html#ae14f6ecb78be909c4cd5f0cdaed3c566", null ], - [ "getParameterDescriptors", "classVamp_1_1HostExt_1_1PluginWrapper.html#a9be71561265c2e6e43b7feaddaa91f36", null ], - [ "getParameter", "classVamp_1_1HostExt_1_1PluginWrapper.html#a034920f56c8d7609a85447c42556048c", null ], - [ "getPrograms", "classVamp_1_1HostExt_1_1PluginWrapper.html#a131fbe1df81215020b9aa8cecef4c802", null ], - [ "getCurrentProgram", "classVamp_1_1HostExt_1_1PluginWrapper.html#a7a312dd42d161064b70afd7ff24c0651", null ], - [ "getMinChannelCount", "classVamp_1_1HostExt_1_1PluginWrapper.html#a2b28f1cf37d46a514f1e1411a6037bf8", null ], - [ "getMaxChannelCount", "classVamp_1_1HostExt_1_1PluginWrapper.html#a985eb21f1827bfbc3950d6871b107a58", null ], - [ "getWrapper", "classVamp_1_1HostExt_1_1PluginWrapper.html#a653d0308e8e34881a8749b7631d00f05", null ], - [ "getType", "classVamp_1_1Plugin.html#abe13b3997a69fbcc09e2213faa352f91", null ], + [ "getInputDomain", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a8838facfe9d88cf36b13c1b42165fc6d", null ], + [ "getVampApiVersion", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#afa79272f991fb720ddd09784be1b3cb8", null ], + [ "getIdentifier", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#ad9312a38c199004c7bad0c42f590393f", null ], + [ "getName", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#aa2b40de6e240d872997a63dd4a301ff3", null ], + [ "getDescription", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#ad6e453c30b265a2daf243f953b35c815", null ], + [ "getMaker", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#af9b2f01063828ef0745dc2623fc8dd42", null ], + [ "getPluginVersion", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a9537de27c826a1441b2d3643df4880bb", null ], + [ "getCopyright", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#aea9c238f86de65d3380fa887bb9e47e6", null ], + [ "getParameterDescriptors", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#ab2b67205d86e921cb0a9bd1f819d2cf9", null ], + [ "getParameter", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a5c0a4d72a25fded51829de21771de521", null ], + [ "getPrograms", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#aa0b72ea17766266d20539f293ccae7c8", null ], + [ "getCurrentProgram", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a3936fe2c4b3c960dd244849a7c3320ad", null ], + [ "getMinChannelCount", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#abc0a4e6ce0ae9de39c40725de1f30d2f", null ], + [ "getMaxChannelCount", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#acfed040cd91e797ee89d077db22b4a97", null ], + [ "getWrapper", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a653d0308e8e34881a8749b7631d00f05", null ], + [ "getType", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a530123068767a8728c568ffccfe3e4e5", null ], [ "m_impl", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a51e10c9c63c0349fd74c6d604de5554e", null ], - [ "m_plugin", "classVamp_1_1HostExt_1_1PluginWrapper.html#ab4e40ecd98b445e1a2aa9e7baa280ea2", null ], - [ "m_inputSampleRate", "classVamp_1_1Plugin.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] + [ "m_plugin", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#ab4e40ecd98b445e1a2aa9e7baa280ea2", null ], + [ "m_inputSampleRate", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.map --- a/code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,5 +1,5 @@ - - - - + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.md5 --- a/code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -b3be1bdefae501d137e8a9fd93bcd450 \ No newline at end of file +1fa5c130393bef124ff6d39907bb2ba9 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.png Binary file code-docs/classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter-members.html --- a/code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,62 +63,62 @@
    Vamp::HostExt::PluginChannelAdapter Member List
    -This is the complete list of members for Vamp::HostExt::PluginChannelAdapter, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

    This is the complete list of members for Vamp::HostExt::PluginChannelAdapter, including all inherited members.

    +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() const Vamp::HostExt::PluginWrapper [virtual]
    getCurrentProgram() const Vamp::HostExt::PluginWrapper [virtual]
    getDescription() const Vamp::HostExt::PluginWrapper [virtual]
    getIdentifier() const Vamp::HostExt::PluginWrapper [virtual]
    getInputDomain() const Vamp::HostExt::PluginWrapper [virtual]
    getMaker() const Vamp::HostExt::PluginWrapper [virtual]
    getMaxChannelCount() const Vamp::HostExt::PluginWrapper [virtual]
    getMinChannelCount() const Vamp::HostExt::PluginWrapper [virtual]
    getName() const Vamp::HostExt::PluginWrapper [virtual]
    getOutputDescriptors() const Vamp::HostExt::PluginWrapper [virtual]
    getParameter(std::string) const Vamp::HostExt::PluginWrapper [virtual]
    getParameterDescriptors() const Vamp::HostExt::PluginWrapper [virtual]
    getPluginVersion() const Vamp::HostExt::PluginWrapper [virtual]
    getPreferredBlockSize() const Vamp::HostExt::PluginWrapper [virtual]
    getPreferredStepSize() const Vamp::HostExt::PluginWrapper [virtual]
    getPrograms() const Vamp::HostExt::PluginWrapper [virtual]
    getRemainingFeatures()Vamp::HostExt::PluginWrapper [virtual]
    getType() const Vamp::Plugin [inline, virtual]
    getVampApiVersion() const Vamp::HostExt::PluginWrapper [virtual]
    getWrapper()Vamp::HostExt::PluginWrapper [inline]
    initialise(size_t channels, size_t stepSize, size_t blockSize)Vamp::HostExt::PluginChannelAdapter [virtual]
    InputDomain enum nameVamp::Plugin
    m_implVamp::HostExt::PluginChannelAdapter [protected]
    m_inputSampleRateVamp::Plugin [protected]
    m_pluginVamp::HostExt::PluginWrapper [protected]
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugin [inline, protected]
    PluginChannelAdapter(Plugin *plugin)Vamp::HostExt::PluginChannelAdapter
    PluginWrapper(Plugin *plugin)Vamp::HostExt::PluginWrapper [protected]
    process(const float *const *inputBuffers, RealTime timestamp)Vamp::HostExt::PluginChannelAdapter [virtual]
    processInterleaved(const float *inputBuffer, RealTime timestamp)Vamp::HostExt::PluginChannelAdapter
    ProgramList typedefVamp::PluginBase
    reset()Vamp::HostExt::PluginWrapper [virtual]
    selectProgram(std::string)Vamp::HostExt::PluginWrapper [virtual]
    setParameter(std::string, float)Vamp::HostExt::PluginWrapper [virtual]
    TimeDomain enum valueVamp::Plugin
    ~Plugin()Vamp::Plugin [inline, virtual]
    ~PluginBase()Vamp::PluginBase [inline, virtual]
    ~PluginChannelAdapter()Vamp::HostExt::PluginChannelAdapter [virtual]
    ~PluginWrapper()Vamp::HostExt::PluginWrapper [virtual]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() constVamp::HostExt::PluginWrappervirtual
    getCurrentProgram() constVamp::HostExt::PluginWrappervirtual
    getDescription() constVamp::HostExt::PluginWrappervirtual
    getIdentifier() constVamp::HostExt::PluginWrappervirtual
    getInputDomain() constVamp::HostExt::PluginWrappervirtual
    getMaker() constVamp::HostExt::PluginWrappervirtual
    getMaxChannelCount() constVamp::HostExt::PluginWrappervirtual
    getMinChannelCount() constVamp::HostExt::PluginWrappervirtual
    getName() constVamp::HostExt::PluginWrappervirtual
    getOutputDescriptors() constVamp::HostExt::PluginWrappervirtual
    getParameter(std::string) constVamp::HostExt::PluginWrappervirtual
    getParameterDescriptors() constVamp::HostExt::PluginWrappervirtual
    getPluginVersion() constVamp::HostExt::PluginWrappervirtual
    getPreferredBlockSize() constVamp::HostExt::PluginWrappervirtual
    getPreferredStepSize() constVamp::HostExt::PluginWrappervirtual
    getPrograms() constVamp::HostExt::PluginWrappervirtual
    getRemainingFeatures()Vamp::HostExt::PluginWrappervirtual
    getType() constVamp::Plugininlinevirtual
    getVampApiVersion() constVamp::HostExt::PluginWrappervirtual
    getWrapper()Vamp::HostExt::PluginWrapperinline
    initialise(size_t channels, size_t stepSize, size_t blockSize)Vamp::HostExt::PluginChannelAdaptervirtual
    InputDomain enum nameVamp::Plugin
    m_implVamp::HostExt::PluginChannelAdapterprotected
    m_inputSampleRateVamp::Pluginprotected
    m_pluginVamp::HostExt::PluginWrapperprotected
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugininlineprotected
    PluginChannelAdapter(Plugin *plugin)Vamp::HostExt::PluginChannelAdapter
    PluginWrapper(Plugin *plugin)Vamp::HostExt::PluginWrapperprotected
    process(const float *const *inputBuffers, RealTime timestamp)Vamp::HostExt::PluginChannelAdaptervirtual
    processInterleaved(const float *inputBuffer, RealTime timestamp)Vamp::HostExt::PluginChannelAdapter
    ProgramList typedefVamp::PluginBase
    reset()Vamp::HostExt::PluginWrappervirtual
    selectProgram(std::string)Vamp::HostExt::PluginWrappervirtual
    setParameter(std::string, float)Vamp::HostExt::PluginWrappervirtual
    TimeDomain enum valueVamp::Plugin
    ~Plugin()Vamp::Plugininlinevirtual
    ~PluginBase()Vamp::PluginBaseinlinevirtual
    ~PluginChannelAdapter()Vamp::HostExt::PluginChannelAdaptervirtual
    ~PluginWrapper()Vamp::HostExt::PluginWrappervirtual
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter.html --- a/code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Vamp::HostExt::PluginChannelAdapter Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    Vamp::HostExt::PluginChannelAdapter Class Reference
    @@ -91,259 +78,355 @@
    Inheritance graph
    - + + + +
    [legend]
    - -

    List of all members.

    - - + + + - - + + + + + - +

    +

    Public Types

    enum  InputDomain { TimeDomain, FrequencyDomain }
    typedef std::vector
    -< OutputDescriptor
    OutputList
     
    typedef std::vector< OutputDescriptorOutputList
     
    typedef std::vector< FeatureFeatureList
    typedef std::map< int,
    -FeatureList
    FeatureSet
    typedef std::vector
    -< ParameterDescriptor
    ParameterList
     
    typedef std::map< int, FeatureListFeatureSet
     
    typedef std::vector< ParameterDescriptorParameterList
     
    typedef std::vector< std::string > ProgramList

    +

     
    + - + + + - + + - + + - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + + - - - - + + + + +

    Public Member Functions

     PluginChannelAdapter (Plugin *plugin)
     Construct a PluginChannelAdapter wrapping the given plugin.
     Construct a PluginChannelAdapter wrapping the given plugin. More...
     
    virtual ~PluginChannelAdapter ()
     
    bool initialise (size_t channels, size_t stepSize, size_t blockSize)
     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).
     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). More...
     
    FeatureSet process (const float *const *inputBuffers, RealTime timestamp)
     Process a single block of input data.
     Process a single block of input data. More...
     
    FeatureSet processInterleaved (const float *inputBuffer, RealTime timestamp)
     Call process(), providing interleaved audio data with the number of channels passed to initialise().
     Call process(), providing interleaved audio data with the number of channels passed to initialise(). More...
     
    void reset ()
     Reset the plugin after use, to prepare it for another clean run.
    InputDomain getInputDomain () const
     Get the plugin's required input domain.
    unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin.
    std::string getIdentifier () const
     Get the computer-usable name of the plugin.
    std::string getName () const
     Get a human-readable name or title of the plugin.
    std::string getDescription () const
     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".
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form.
    int getPluginVersion () const
     Get the version number of the plugin.
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin.
    ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin.
    float getParameter (std::string) const
     Get the value of a named parameter.
     Reset the plugin after use, to prepare it for another clean run. More...
     
    InputDomain getInputDomain () const
     Get the plugin's required input domain. More...
     
    unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin. More...
     
    std::string getIdentifier () const
     Get the computer-usable name of the plugin. More...
     
    std::string getName () const
     Get a human-readable name or title of the plugin. More...
     
    std::string getDescription () const
     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". More...
     
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form. More...
     
    int getPluginVersion () const
     Get the version number of the plugin. More...
     
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin. More...
     
    ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin. More...
     
    float getParameter (std::string) const
     Get the value of a named parameter. More...
     
    void setParameter (std::string, float)
     Set a named parameter.
    ProgramList getPrograms () const
     Get the program settings available in this plugin.
    std::string getCurrentProgram () const
     Get the current program.
     Set a named parameter. More...
     
    ProgramList getPrograms () const
     Get the program settings available in this plugin. More...
     
    std::string getCurrentProgram () const
     Get the current program. More...
     
    void selectProgram (std::string)
     Select a program.
    size_t getPreferredStepSize () const
     Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.
    size_t getPreferredBlockSize () const
     Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).
    size_t getMinChannelCount () const
     Get the minimum supported number of input channels.
    size_t getMaxChannelCount () const
     Get the maximum supported number of input channels.
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin.
     Select a program. More...
     
    size_t getPreferredStepSize () const
     Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin. More...
     
    size_t getPreferredBlockSize () const
     Get the preferred block size (window size – the number of sample frames passed in each block to the process() function). More...
     
    size_t getMinChannelCount () const
     Get the minimum supported number of input channels. More...
     
    size_t getMaxChannelCount () const
     Get the maximum supported number of input channels. More...
     
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin. More...
     
    FeatureSet getRemainingFeatures ()
     After all blocks have been processed, calculate and return any remaining features derived from the complete input.
     After all blocks have been processed, calculate and return any remaining features derived from the complete input. More...
     
    template<typename WrapperType >
    WrapperType * getWrapper ()
     Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present.
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

     Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present. More...
     
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase. More...
     
    + + + +

    Protected Attributes

    Impl * m_impl
     
    Pluginm_plugin
     
    float m_inputSampleRate
     
    -

    Detailed Description

    +

    Detailed Description

    PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management of plugins that expect a different number of input channels from the number actually available in the source audio data.

    A host using PluginChannelAdapter may ignore the getMinChannelCount and getMaxChannelCount reported by the plugin, and still expect the plugin to run.

    PluginChannelAdapter implements the following policy:

    • If the plugin supports the provided number of channels directly, PluginChannelAdapter will just run the plugin as normal.
    • -
    -
    • If the plugin only supports exactly one channel but more than one channel is provided, PluginChannelAdapter will use the mean of the channels. This ensures that the resulting values remain within the same magnitude range as expected for mono data.
    • -
    -
    • If the plugin requires more than one channel but exactly one is provided, the provided channel will be duplicated across all the plugin input channels.

    If none of the above apply:

    • If the plugin requires more channels than are provided, the minimum acceptable number of channels will be produced by adding empty (zero valued) channels to those provided.
    • -
    -
    • If the plugin requires fewer channels than are provided, the maximum acceptable number of channels will be produced by discarding the excess channels.

    Hosts requiring a different channel policy from the above will need to implement it themselves, instead of using PluginChannelAdapter.

    Note that PluginChannelAdapter does not override the minimum and maximum channel counts returned by the wrapped plugin. The host will need to be aware that it is using a PluginChannelAdapter, and be prepared to ignore these counts as necessary. (This contrasts with the approach used in PluginInputDomainAdapter, which aims to make the host completely unaware of which underlying input domain is in fact in use.)

    (The rationale for this is that a host may wish to use the PluginChannelAdapter but still discriminate in some way on the basis of the number of channels actually supported. For example, a simple stereo audio host may prefer to reject plugins that require more than two channels on the grounds that doesn't actually understand what they are for, rather than allow the channel adapter to make a potentially meaningless channel conversion for them.)

    In every respect other than its management of channels, the PluginChannelAdapter behaves identically to the plugin that it wraps. The wrapped plugin will be deleted when the wrapper is deleted.

    -
    Note:
    This class was introduced in version 1.1 of the Vamp plugin SDK.
    +
    Note
    This class was introduced in version 1.1 of the Vamp plugin SDK.
    -

    Definition at line 112 of file PluginChannelAdapter.h.

    -

    Member Typedef Documentation

    - +

    Definition at line 112 of file PluginChannelAdapter.h.

    +

    Member Typedef Documentation

    + +

    ◆ OutputList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList
    +
    +inherited
    +
    + +

    Definition at line 335 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ FeatureList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<Feature> Vamp::Plugin::FeatureList
    +
    +inherited
    +
    + +

    Definition at line 393 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ FeatureSet

    + +
    +
    + + + + + +
    + + + + +
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet
    +
    +inherited
    +
    + +

    Definition at line 395 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ ParameterList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList
    +
    +inherited
    +
    + +

    Definition at line 203 of file vamp-sdk/PluginBase.h.

    + +
    +
    + +

    ◆ ProgramList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList
    +
    +inherited
    +
    + +

    Definition at line 225 of file vamp-sdk/PluginBase.h.

    + +
    +
    +

    Member Enumeration Documentation

    + +

    ◆ InputDomain

    + +
    +
    + + + + + +
    + + + + +
    enum Vamp::Plugin::InputDomain
    +
    +inherited
    +
    + + + +
    Enumerator
    TimeDomain 
    FrequencyDomain 
    + +

    Definition at line 152 of file vamp-sdk/Plugin.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ PluginChannelAdapter()

    +
    - - -
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList [inherited]
    -
    -
    - -

    Definition at line 327 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<Feature> Vamp::Plugin::FeatureList [inherited]
    -
    -
    - -

    Definition at line 385 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet [inherited]
    -
    -
    - -

    Definition at line 387 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList [inherited]
    -
    -
    - -

    Definition at line 199 of file vamp-sdk/PluginBase.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList [inherited]
    -
    -
    - -

    Definition at line 221 of file vamp-sdk/PluginBase.h.

    - -
    -
    -

    Member Enumeration Documentation

    - -
    -
    - - - - -
    enum Vamp::Plugin::InputDomain [inherited]
    -
    -
    -
    Enumerator:
    - - -
    TimeDomain  -
    FrequencyDomain  -
    -
    -
    - -

    Definition at line 152 of file vamp-sdk/Plugin.h.

    - -
    -
    -

    Constructor & Destructor Documentation

    - -
    -
    - - - +
    Vamp::HostExt::PluginChannelAdapter::PluginChannelAdapter Vamp::HostExt::PluginChannelAdapter::PluginChannelAdapter ( Plugin plugin)
    -
    -
    +

    Construct a PluginChannelAdapter wrapping the given plugin.

    The adapter takes ownership of the plugin, which will be deleted when the adapter is deleted.

    - + +

    ◆ ~PluginChannelAdapter()

    +
    + + + + + +
    - + - +
    virtual Vamp::HostExt::PluginChannelAdapter::~PluginChannelAdapter virtual Vamp::HostExt::PluginChannelAdapter::~PluginChannelAdapter ( ) [virtual]
    - -
    +
    +virtual
    +
    -

    Member Function Documentation

    - +

    Member Function Documentation

    + +

    ◆ initialise()

    +
    + + + + + +
    - + @@ -363,26 +446,35 @@ - +
    bool Vamp::HostExt::PluginChannelAdapter::initialise bool Vamp::HostExt::PluginChannelAdapter::initialise ( size_t  inputChannels,
    ) [virtual]
    - -
    +
    +virtual
    +

    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).

    The input sample rate should have been already specified at construction time.

    Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported.

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Implements Vamp::Plugin.

    - + +

    ◆ process()

    +
    + + + + + +
    - + @@ -396,27 +488,33 @@ - +
    FeatureSet Vamp::HostExt::PluginChannelAdapter::process FeatureSet Vamp::HostExt::PluginChannelAdapter::process ( const float *const *  inputBuffers,
    ) [virtual]
    - -
    +
    +virtual
    +

    Process a single block of input data.

    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.

    -

    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).

    +

    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).

    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.)

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Implements Vamp::Plugin.

    - + +

    ◆ processInterleaved()

    +
    - + @@ -433,95 +531,126 @@
    FeatureSet Vamp::HostExt::PluginChannelAdapter::processInterleaved FeatureSet Vamp::HostExt::PluginChannelAdapter::processInterleaved ( const float *  inputBuffer,
    -
    -
    +
    -

    Call process(), providing interleaved audio data with the number of channels passed to initialise().

    -

    The adapter will de-interleave into temporary buffers as appropriate before calling process().

    -
    Note:
    This function was introduced in version 1.4 of the Vamp plugin SDK.
    +

    Call process(), providing interleaved audio data with the number of channels passed to initialise().

    +

    The adapter will de-interleave into temporary buffers as appropriate before calling process().

    +
    Note
    This function was introduced in version 1.4 of the Vamp plugin SDK.
    - + +

    ◆ reset()

    +
    + + + + + +
    - + - +
    void Vamp::HostExt::PluginWrapper::reset void Vamp::HostExt::PluginWrapper::reset ( ) [virtual, inherited]
    - -
    +
    +virtualinherited
    +

    Reset the plugin after use, to prepare it for another clean run.

    Not called for the first initialisation (i.e. initialise must also do a reset).

    Implements Vamp::Plugin.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginInputDomainAdapter, and Vamp::HostExt::PluginSummarisingAdapter.

    +
    +
    + +

    ◆ getInputDomain()

    - - -
    + + + + + +
    - + - +
    InputDomain Vamp::HostExt::PluginWrapper::getInputDomain InputDomain Vamp::HostExt::PluginWrapper::getInputDomain ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the plugin's required input domain.

    -

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    -

    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 process(). 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.

    +

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    +

    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 process(). 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.

    Implements Vamp::Plugin.

    -

    Reimplemented in Vamp::HostExt::PluginInputDomainAdapter.

    +
    +
    + +

    ◆ getVampApiVersion()

    - - -
    + + + + + +
    - + - +
    unsigned int Vamp::HostExt::PluginWrapper::getVampApiVersion unsigned int Vamp::HostExt::PluginWrapper::getVampApiVersion ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the Vamp API compatibility level of the plugin.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getIdentifier()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getIdentifier std::string Vamp::HostExt::PluginWrapper::getIdentifier ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the computer-usable name of the plugin.

    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.

    @@ -532,19 +661,28 @@
    - + +

    ◆ getName()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getName std::string Vamp::HostExt::PluginWrapper::getName ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get a human-readable name or title of the plugin.

    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").

    @@ -554,19 +692,28 @@
    - + +

    ◆ getDescription()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getDescription std::string Vamp::HostExt::PluginWrapper::getDescription ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    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".

    May be empty if the name has said it all already.

    @@ -576,19 +723,28 @@
    - + +

    ◆ getMaker()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getMaker std::string Vamp::HostExt::PluginWrapper::getMaker ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the name of the author or vendor of the plugin in human-readable form.

    This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar.

    @@ -597,19 +753,28 @@
    - + +

    ◆ getPluginVersion()

    +
    + + + + + +
    - + - +
    int Vamp::HostExt::PluginWrapper::getPluginVersion int Vamp::HostExt::PluginWrapper::getPluginVersion ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the version number of the plugin.

    @@ -617,19 +782,28 @@
    - + +

    ◆ getCopyright()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getCopyright std::string Vamp::HostExt::PluginWrapper::getCopyright ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the copyright statement or licensing summary for the plugin.

    This can be an informative text, without the same presentation constraints as mentioned for getMaker above.

    @@ -638,54 +812,77 @@
    - + +

    ◆ getParameterDescriptors()

    +
    + + + + + +
    - + - +
    ParameterList Vamp::HostExt::PluginWrapper::getParameterDescriptors ParameterList Vamp::HostExt::PluginWrapper::getParameterDescriptors ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the controllable parameters of this plugin.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getParameter()

    +
    + + + + + +
    - + - +
    float Vamp::HostExt::PluginWrapper::getParameter float Vamp::HostExt::PluginWrapper::getParameter ( std::string  ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the value of a named parameter.

    The argument is the identifier field from that parameter's descriptor.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ setParameter()

    +
    + + + + + +
    - + @@ -699,315 +896,433 @@ - +
    void Vamp::HostExt::PluginWrapper::setParameter void Vamp::HostExt::PluginWrapper::setParameter ( std::string  ,
    ) [virtual, inherited]
    - -
    +
    +virtualinherited
    +

    Set a named parameter.

    The first argument is the identifier field from that parameter's descriptor.

    Reimplemented from Vamp::PluginBase.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter.

    +
    +
    + +

    ◆ getPrograms()

    - - -
    + + + + + +
    - + - +
    ProgramList Vamp::HostExt::PluginWrapper::getPrograms ProgramList Vamp::HostExt::PluginWrapper::getPrograms ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the program settings available in this plugin.

    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.

    The programs must have unique names.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getCurrentProgram()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getCurrentProgram std::string Vamp::HostExt::PluginWrapper::getCurrentProgram ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the current program.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ selectProgram()

    +
    + + + + + +
    - + - +
    void Vamp::HostExt::PluginWrapper::selectProgram void Vamp::HostExt::PluginWrapper::selectProgram ( std::string  ) [virtual, inherited]
    - -
    +
    +virtualinherited
    +

    Select a program.

    (If the given program name is not one of the available programs, do nothing.)

    Reimplemented from Vamp::PluginBase.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter.

    +
    +
    + +

    ◆ getPreferredStepSize()

    + +
    +
    + + + + + +
    + + + + + + + +
    size_t Vamp::HostExt::PluginWrapper::getPreferredStepSize () const
    +
    +virtualinherited
    +
    + +

    Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    +

    This should be called before initialise().

    +

    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 initialise() call.

    + +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getPreferredBlockSize()

    +
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginWrapper::getPreferredStepSize size_t Vamp::HostExt::PluginWrapper::getPreferredBlockSize ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +
    -

    Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    -

    This should be called before initialise().

    -

    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 initialise() call.

    +

    Get the preferred block size (window size – the number of sample frames passed in each block to the process() function).

    +

    This should be called before initialise().

    +

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    -

    Reimplemented from Vamp::Plugin.

    - -

    Reimplemented in Vamp::HostExt::PluginInputDomainAdapter, and Vamp::HostExt::PluginBufferingAdapter.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getMinChannelCount()

    +
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginWrapper::getPreferredBlockSize size_t Vamp::HostExt::PluginWrapper::getMinChannelCount ( ) const [virtual, inherited] const
    - -
    - -

    Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).

    -

    This should be called before initialise().

    -

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    - -

    Reimplemented from Vamp::Plugin.

    - -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, and Vamp::HostExt::PluginInputDomainAdapter.

    - -
    - - -
    -
    - - - - - - - -
    size_t Vamp::HostExt::PluginWrapper::getMinChannelCount () const [virtual, inherited]
    -
    -
    +
    +virtualinherited
    +

    Get the minimum supported number of input channels.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getMaxChannelCount()

    +
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginWrapper::getMaxChannelCount size_t Vamp::HostExt::PluginWrapper::getMaxChannelCount ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the maximum supported number of input channels.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getOutputDescriptors()

    +
    + + + + + +
    - + - +
    OutputList Vamp::HostExt::PluginWrapper::getOutputDescriptors OutputList Vamp::HostExt::PluginWrapper::getOutputDescriptors ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the outputs of this plugin.

    -

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    +

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    Implements Vamp::Plugin.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter.

    +
    +
    + +

    ◆ getRemainingFeatures()

    - - -
    + + + + + +
    - + - +
    FeatureSet Vamp::HostExt::PluginWrapper::getRemainingFeatures FeatureSet Vamp::HostExt::PluginWrapper::getRemainingFeatures ( ) [virtual, inherited]
    - -
    +
    +virtualinherited
    +

    After all blocks have been processed, calculate and return any remaining features derived from the complete input.

    Implements Vamp::Plugin.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, and Vamp::HostExt::PluginSummarisingAdapter.

    +
    +
    + +

    ◆ getWrapper()

    - - -
    template<typename WrapperType >
    + + + + + +
    - + - +
    WrapperType* Vamp::HostExt::PluginWrapper::getWrapper WrapperType* Vamp::HostExt::PluginWrapper::getWrapper ( ) [inline, inherited]
    - -
    +
    +inlineinherited
    +

    Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present.

    -

    This is useful in situations where a plugin is wrapped by multiple different wrappers (one inside another) and the host wants to call some wrapper-specific function on one of the layers without having to care about the order in which they are wrapped. For example, the plugin returned by PluginLoader::loadPlugin may have more than one wrapper; if the host wanted to query or fine-tune some property of one of them, it would be hard to do so without knowing the order of the wrappers. This function therefore gives direct access to the wrapper of a particular type.

    +

    This is useful in situations where a plugin is wrapped by multiple different wrappers (one inside another) and the host wants to call some wrapper-specific function on one of the layers without having to care about the order in which they are wrapped. For example, the plugin returned by PluginLoader::loadPlugin may have more than one wrapper; if the host wanted to query or fine-tune some property of one of them, it would be hard to do so without knowing the order of the wrappers. This function therefore gives direct access to the wrapper of a particular type.

    -

    Definition at line 116 of file PluginWrapper.h.

    +

    Definition at line 116 of file PluginWrapper.h.

    -

    References Vamp::HostExt::PluginWrapper::getWrapper().

    +

    References Vamp::HostExt::PluginWrapper::getWrapper().

    -

    Referenced by Vamp::HostExt::PluginWrapper::getWrapper(), and runPlugin().

    +

    Referenced by Vamp::HostExt::PluginWrapper::getWrapper(), and runPlugin().

    - + +

    ◆ getType()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::Plugin::getType virtual std::string Vamp::Plugin::getType ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    Do not reimplement this function in your subclass.

    Implements Vamp::PluginBase.

    -

    Definition at line 430 of file vamp-sdk/Plugin.h.

    +

    Definition at line 438 of file vamp-sdk/Plugin.h.

    -

    Member Data Documentation

    - +

    Member Data Documentation

    + +

    ◆ m_impl

    +
    + + + + + +
    - +
    Impl* Vamp::HostExt::PluginChannelAdapter::m_impl [protected]Impl* Vamp::HostExt::PluginChannelAdapter::m_impl
    - -
    +
    +protected
    +
    -

    Definition at line 139 of file PluginChannelAdapter.h.

    +

    Definition at line 139 of file PluginChannelAdapter.h.

    - + +

    ◆ m_plugin

    +
    + + + + + +
    - +
    Plugin* Vamp::HostExt::PluginWrapper::m_plugin [protected, inherited]Plugin* Vamp::HostExt::PluginWrapper::m_plugin
    - -
    +
    +protectedinherited
    +
    -

    Definition at line 126 of file PluginWrapper.h.

    +

    Definition at line 126 of file PluginWrapper.h.

    - + +

    ◆ m_inputSampleRate

    + @@ -1015,19 +1330,15 @@
  • PluginChannelAdapter.h
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter.js --- a/code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,40 +1,43 @@ var classVamp_1_1HostExt_1_1PluginChannelAdapter = [ - [ "OutputList", "classVamp_1_1Plugin.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], - [ "FeatureList", "classVamp_1_1Plugin.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], - [ "FeatureSet", "classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], - [ "ParameterList", "classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], - [ "ProgramList", "classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20", null ], - [ "InputDomain", "classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc", null ], + [ "OutputList", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], + [ "FeatureList", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], + [ "FeatureSet", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], + [ "ParameterList", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], + [ "ProgramList", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a7f66f00437b21e5f694fe02356b12f20", null ], + [ "InputDomain", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a39cb7649d6dcc20e4cb1640cd55907bc", [ + [ "TimeDomain", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a39cb7649d6dcc20e4cb1640cd55907bcad4a9f31b958a43a9757af7893aa2e7ff", null ], + [ "FrequencyDomain", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a39cb7649d6dcc20e4cb1640cd55907bcaa30e7877ab33f76acbdca28607e6ab53", null ] + ] ], [ "PluginChannelAdapter", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a2cda2b672708264f9a33c43bad3acdd8", null ], [ "~PluginChannelAdapter", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#acb9a20fefd130e323b1eb2ced43e521c", null ], [ "initialise", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#ade0473c8fc54636431967cbf41649c1c", null ], [ "process", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a6ff37bf754ff8711dbcb2f020fa3902c", null ], [ "processInterleaved", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a5c94c3eb1dbc8899fe58527bbb7bb61f", null ], - [ "reset", "classVamp_1_1HostExt_1_1PluginWrapper.html#ad19cc0614ba41cdc26ef3394c5146fe6", null ], - [ "getInputDomain", "classVamp_1_1HostExt_1_1PluginWrapper.html#ae203faf8384c9e1fddc381409aa8a214", null ], - [ "getVampApiVersion", "classVamp_1_1HostExt_1_1PluginWrapper.html#a74147fda6b44ff2169bd4a1eea0d46ff", null ], - [ "getIdentifier", "classVamp_1_1HostExt_1_1PluginWrapper.html#a4baa9e48f717c2b3e7f92496aa39d904", null ], - [ "getName", "classVamp_1_1HostExt_1_1PluginWrapper.html#ac70a3265bb25aeb03f6dd8f8a0442088", null ], - [ "getDescription", "classVamp_1_1HostExt_1_1PluginWrapper.html#ac334f699c0996055942785410d8a065c", null ], - [ "getMaker", "classVamp_1_1HostExt_1_1PluginWrapper.html#a59d5a2298951b317995675e664b1c7bb", null ], - [ "getPluginVersion", "classVamp_1_1HostExt_1_1PluginWrapper.html#a47e1acf1696813008324a915c9ba59c5", null ], - [ "getCopyright", "classVamp_1_1HostExt_1_1PluginWrapper.html#ae14f6ecb78be909c4cd5f0cdaed3c566", null ], - [ "getParameterDescriptors", "classVamp_1_1HostExt_1_1PluginWrapper.html#a9be71561265c2e6e43b7feaddaa91f36", null ], - [ "getParameter", "classVamp_1_1HostExt_1_1PluginWrapper.html#a034920f56c8d7609a85447c42556048c", null ], - [ "setParameter", "classVamp_1_1HostExt_1_1PluginWrapper.html#a651b15a5dc4c27942ac0c87c6092bfe5", null ], - [ "getPrograms", "classVamp_1_1HostExt_1_1PluginWrapper.html#a131fbe1df81215020b9aa8cecef4c802", null ], - [ "getCurrentProgram", "classVamp_1_1HostExt_1_1PluginWrapper.html#a7a312dd42d161064b70afd7ff24c0651", null ], - [ "selectProgram", "classVamp_1_1HostExt_1_1PluginWrapper.html#a074978333a74fdcf336a8a1d8ea20abf", null ], - [ "getPreferredStepSize", "classVamp_1_1HostExt_1_1PluginWrapper.html#a0137d93d7019bacc31104836fb4d352e", null ], - [ "getPreferredBlockSize", "classVamp_1_1HostExt_1_1PluginWrapper.html#a2c62a656313a819650656643a867ad01", null ], - [ "getMinChannelCount", "classVamp_1_1HostExt_1_1PluginWrapper.html#a2b28f1cf37d46a514f1e1411a6037bf8", null ], - [ "getMaxChannelCount", "classVamp_1_1HostExt_1_1PluginWrapper.html#a985eb21f1827bfbc3950d6871b107a58", null ], - [ "getOutputDescriptors", "classVamp_1_1HostExt_1_1PluginWrapper.html#a5a9411305f713b4c9827844b89acd270", null ], - [ "getRemainingFeatures", "classVamp_1_1HostExt_1_1PluginWrapper.html#a2bc8c0992e64f06991fb7cf89f99857e", null ], - [ "getWrapper", "classVamp_1_1HostExt_1_1PluginWrapper.html#a653d0308e8e34881a8749b7631d00f05", null ], - [ "getType", "classVamp_1_1Plugin.html#abe13b3997a69fbcc09e2213faa352f91", null ], + [ "reset", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#ad19cc0614ba41cdc26ef3394c5146fe6", null ], + [ "getInputDomain", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a8838facfe9d88cf36b13c1b42165fc6d", null ], + [ "getVampApiVersion", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#afa79272f991fb720ddd09784be1b3cb8", null ], + [ "getIdentifier", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#ad9312a38c199004c7bad0c42f590393f", null ], + [ "getName", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#aa2b40de6e240d872997a63dd4a301ff3", null ], + [ "getDescription", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#ad6e453c30b265a2daf243f953b35c815", null ], + [ "getMaker", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#af9b2f01063828ef0745dc2623fc8dd42", null ], + [ "getPluginVersion", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a9537de27c826a1441b2d3643df4880bb", null ], + [ "getCopyright", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#aea9c238f86de65d3380fa887bb9e47e6", null ], + [ "getParameterDescriptors", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#ab2b67205d86e921cb0a9bd1f819d2cf9", null ], + [ "getParameter", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a5c0a4d72a25fded51829de21771de521", null ], + [ "setParameter", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a651b15a5dc4c27942ac0c87c6092bfe5", null ], + [ "getPrograms", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#aa0b72ea17766266d20539f293ccae7c8", null ], + [ "getCurrentProgram", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a3936fe2c4b3c960dd244849a7c3320ad", null ], + [ "selectProgram", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a074978333a74fdcf336a8a1d8ea20abf", null ], + [ "getPreferredStepSize", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#adf2ea98d6eeb0435c0c8d7cdc29fed7c", null ], + [ "getPreferredBlockSize", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a94f855a2cf674ccc2e7315484f706d68", null ], + [ "getMinChannelCount", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#abc0a4e6ce0ae9de39c40725de1f30d2f", null ], + [ "getMaxChannelCount", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#acfed040cd91e797ee89d077db22b4a97", null ], + [ "getOutputDescriptors", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#af67a6cd3afa18895393ec8d4bdec3b4c", null ], + [ "getRemainingFeatures", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a2bc8c0992e64f06991fb7cf89f99857e", null ], + [ "getWrapper", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a653d0308e8e34881a8749b7631d00f05", null ], + [ "getType", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a530123068767a8728c568ffccfe3e4e5", null ], [ "m_impl", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#ae3a74a2e6c4cd33dce9f4248e73c6701", null ], - [ "m_plugin", "classVamp_1_1HostExt_1_1PluginWrapper.html#ab4e40ecd98b445e1a2aa9e7baa280ea2", null ], - [ "m_inputSampleRate", "classVamp_1_1Plugin.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] + [ "m_plugin", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#ab4e40ecd98b445e1a2aa9e7baa280ea2", null ], + [ "m_inputSampleRate", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.map --- a/code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,5 +1,5 @@ - - - - + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.md5 --- a/code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -3448b64532b61eb89ef1b984342e8530 \ No newline at end of file +be891667a1406f490c076d89c27f02b4 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.png Binary file code-docs/classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter-members.html --- a/code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,80 +63,80 @@
    Vamp::HostExt::PluginInputDomainAdapter Member List
    -This is the complete list of members for Vamp::HostExt::PluginInputDomainAdapter, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

    This is the complete list of members for Vamp::HostExt::PluginInputDomainAdapter, including all inherited members.

    +
    BartlettWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    BlackmanHarrisWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    BlackmanWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() const Vamp::HostExt::PluginWrapper [virtual]
    getCurrentProgram() const Vamp::HostExt::PluginWrapper [virtual]
    getDescription() const Vamp::HostExt::PluginWrapper [virtual]
    getIdentifier() const Vamp::HostExt::PluginWrapper [virtual]
    getInputDomain() const Vamp::HostExt::PluginInputDomainAdapter [virtual]
    getMaker() const Vamp::HostExt::PluginWrapper [virtual]
    getMaxChannelCount() const Vamp::HostExt::PluginWrapper [virtual]
    getMinChannelCount() const Vamp::HostExt::PluginWrapper [virtual]
    getName() const Vamp::HostExt::PluginWrapper [virtual]
    getOutputDescriptors() const Vamp::HostExt::PluginWrapper [virtual]
    getParameter(std::string) const Vamp::HostExt::PluginWrapper [virtual]
    getParameterDescriptors() const Vamp::HostExt::PluginWrapper [virtual]
    getPluginVersion() const Vamp::HostExt::PluginWrapper [virtual]
    getPreferredBlockSize() const Vamp::HostExt::PluginInputDomainAdapter [virtual]
    getPreferredStepSize() const Vamp::HostExt::PluginInputDomainAdapter [virtual]
    getProcessTimestampMethod() const Vamp::HostExt::PluginInputDomainAdapter
    getPrograms() const Vamp::HostExt::PluginWrapper [virtual]
    getRemainingFeatures()Vamp::HostExt::PluginWrapper [virtual]
    getTimestampAdjustment() const Vamp::HostExt::PluginInputDomainAdapter
    getType() const Vamp::Plugin [inline, virtual]
    getVampApiVersion() const Vamp::HostExt::PluginWrapper [virtual]
    getWindowType() const Vamp::HostExt::PluginInputDomainAdapter
    getWrapper()Vamp::HostExt::PluginWrapper [inline]
    HammingWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    HanningWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    HannWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    initialise(size_t channels, size_t stepSize, size_t blockSize)Vamp::HostExt::PluginInputDomainAdapter [virtual]
    InputDomain enum nameVamp::Plugin
    m_implVamp::HostExt::PluginInputDomainAdapter [protected]
    m_inputSampleRateVamp::Plugin [protected]
    m_pluginVamp::HostExt::PluginWrapper [protected]
    NoShift enum valueVamp::HostExt::PluginInputDomainAdapter
    NuttallWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugin [inline, protected]
    PluginInputDomainAdapter(Plugin *plugin)Vamp::HostExt::PluginInputDomainAdapter
    PluginWrapper(Plugin *plugin)Vamp::HostExt::PluginWrapper [protected]
    process(const float *const *inputBuffers, RealTime timestamp)Vamp::HostExt::PluginInputDomainAdapter [virtual]
    ProcessTimestampMethod enum nameVamp::HostExt::PluginInputDomainAdapter
    ProgramList typedefVamp::PluginBase
    RectangularWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    reset()Vamp::HostExt::PluginInputDomainAdapter [virtual]
    selectProgram(std::string)Vamp::HostExt::PluginWrapper [virtual]
    setParameter(std::string, float)Vamp::HostExt::PluginWrapper [virtual]
    setProcessTimestampMethod(ProcessTimestampMethod)Vamp::HostExt::PluginInputDomainAdapter
    setWindowType(WindowType type)Vamp::HostExt::PluginInputDomainAdapter
    ShiftData enum valueVamp::HostExt::PluginInputDomainAdapter
    ShiftTimestamp enum valueVamp::HostExt::PluginInputDomainAdapter
    TimeDomain enum valueVamp::Plugin
    TriangularWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    WindowType enum nameVamp::HostExt::PluginInputDomainAdapter
    ~Plugin()Vamp::Plugin [inline, virtual]
    ~PluginBase()Vamp::PluginBase [inline, virtual]
    ~PluginInputDomainAdapter()Vamp::HostExt::PluginInputDomainAdapter [virtual]
    ~PluginWrapper()Vamp::HostExt::PluginWrapper [virtual]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    BartlettWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    BlackmanHarrisWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    BlackmanWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() constVamp::HostExt::PluginWrappervirtual
    getCurrentProgram() constVamp::HostExt::PluginWrappervirtual
    getDescription() constVamp::HostExt::PluginWrappervirtual
    getIdentifier() constVamp::HostExt::PluginWrappervirtual
    getInputDomain() constVamp::HostExt::PluginInputDomainAdaptervirtual
    getMaker() constVamp::HostExt::PluginWrappervirtual
    getMaxChannelCount() constVamp::HostExt::PluginWrappervirtual
    getMinChannelCount() constVamp::HostExt::PluginWrappervirtual
    getName() constVamp::HostExt::PluginWrappervirtual
    getOutputDescriptors() constVamp::HostExt::PluginWrappervirtual
    getParameter(std::string) constVamp::HostExt::PluginWrappervirtual
    getParameterDescriptors() constVamp::HostExt::PluginWrappervirtual
    getPluginVersion() constVamp::HostExt::PluginWrappervirtual
    getPreferredBlockSize() constVamp::HostExt::PluginInputDomainAdaptervirtual
    getPreferredStepSize() constVamp::HostExt::PluginInputDomainAdaptervirtual
    getProcessTimestampMethod() constVamp::HostExt::PluginInputDomainAdapter
    getPrograms() constVamp::HostExt::PluginWrappervirtual
    getRemainingFeatures()Vamp::HostExt::PluginWrappervirtual
    getTimestampAdjustment() constVamp::HostExt::PluginInputDomainAdapter
    getType() constVamp::Plugininlinevirtual
    getVampApiVersion() constVamp::HostExt::PluginWrappervirtual
    getWindowType() constVamp::HostExt::PluginInputDomainAdapter
    getWrapper()Vamp::HostExt::PluginWrapperinline
    HammingWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    HanningWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    HannWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    initialise(size_t channels, size_t stepSize, size_t blockSize)Vamp::HostExt::PluginInputDomainAdaptervirtual
    InputDomain enum nameVamp::Plugin
    m_implVamp::HostExt::PluginInputDomainAdapterprotected
    m_inputSampleRateVamp::Pluginprotected
    m_pluginVamp::HostExt::PluginWrapperprotected
    NoShift enum valueVamp::HostExt::PluginInputDomainAdapter
    NuttallWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugininlineprotected
    PluginInputDomainAdapter(Plugin *plugin)Vamp::HostExt::PluginInputDomainAdapter
    PluginWrapper(Plugin *plugin)Vamp::HostExt::PluginWrapperprotected
    process(const float *const *inputBuffers, RealTime timestamp)Vamp::HostExt::PluginInputDomainAdaptervirtual
    ProcessTimestampMethod enum nameVamp::HostExt::PluginInputDomainAdapter
    ProgramList typedefVamp::PluginBase
    RectangularWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    reset()Vamp::HostExt::PluginInputDomainAdaptervirtual
    selectProgram(std::string)Vamp::HostExt::PluginWrappervirtual
    setParameter(std::string, float)Vamp::HostExt::PluginWrappervirtual
    setProcessTimestampMethod(ProcessTimestampMethod)Vamp::HostExt::PluginInputDomainAdapter
    setWindowType(WindowType type)Vamp::HostExt::PluginInputDomainAdapter
    ShiftData enum valueVamp::HostExt::PluginInputDomainAdapter
    ShiftTimestamp enum valueVamp::HostExt::PluginInputDomainAdapter
    TimeDomain enum valueVamp::Plugin
    TriangularWindow enum valueVamp::HostExt::PluginInputDomainAdapter
    WindowType enum nameVamp::HostExt::PluginInputDomainAdapter
    ~Plugin()Vamp::Plugininlinevirtual
    ~PluginBase()Vamp::PluginBaseinlinevirtual
    ~PluginInputDomainAdapter()Vamp::HostExt::PluginInputDomainAdaptervirtual
    ~PluginWrapper()Vamp::HostExt::PluginWrappervirtual
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html --- a/code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Vamp::HostExt::PluginInputDomainAdapter Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    Vamp::HostExt::PluginInputDomainAdapter Class Reference
    @@ -91,205 +78,295 @@
    Inheritance graph
    - + + + +
    [legend]
    - -

    List of all members.

    - - - - + } + + + + + - + + + - - + + + + + - +

    +

    Public Types

    enum  ProcessTimestampMethod { ShiftTimestamp, ShiftData, NoShift - }
     ProcessTimestampMethod determines how the PluginInputDomainAdapter handles timestamps for the data passed to the process() function of the plugin it wraps, in the case where the plugin is expecting frequency-domain data. More...
    enum  WindowType {
    -  RectangularWindow = 0, -BartlettWindow = 1, -TriangularWindow = 1, -HammingWindow = 2, -
    -  HanningWindow = 3, -HannWindow = 3, -BlackmanWindow = 4, -NuttallWindow = 7, -
    -  BlackmanHarrisWindow = 8 -
    - }
     The set of supported window shapes. More...
     ProcessTimestampMethod determines how the PluginInputDomainAdapter handles timestamps for the data passed to the process() function of the plugin it wraps, in the case where the plugin is expecting frequency-domain data. More...
     
    enum  WindowType {
    +  RectangularWindow = 0, +BartlettWindow = 1, +TriangularWindow = 1, +HammingWindow = 2, +
    +  HanningWindow = 3, +HannWindow = 3, +BlackmanWindow = 4, +NuttallWindow = 7, +
    +  BlackmanHarrisWindow = 8 +
    + }
     The set of supported window shapes. More...
     
    enum  InputDomain { TimeDomain, FrequencyDomain }
    typedef std::vector
    -< OutputDescriptor
    OutputList
     
    typedef std::vector< OutputDescriptorOutputList
     
    typedef std::vector< FeatureFeatureList
    typedef std::map< int,
    -FeatureList
    FeatureSet
    typedef std::vector
    -< ParameterDescriptor
    ParameterList
     
    typedef std::map< int, FeatureListFeatureSet
     
    typedef std::vector< ParameterDescriptorParameterList
     
    typedef std::vector< std::string > ProgramList

    +

     
    + - + + + - + + - - - - - - - + + + + + + + + + + + - + + - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + - - - - - - - + + + + + + + + + + + - + + - - - - + + + + +

    Public Member Functions

     PluginInputDomainAdapter (Plugin *plugin)
     Construct a PluginInputDomainAdapter wrapping the given plugin.
     Construct a PluginInputDomainAdapter wrapping the given plugin. More...
     
    virtual ~PluginInputDomainAdapter ()
     
    bool initialise (size_t channels, size_t stepSize, size_t blockSize)
     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).
     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). More...
     
    void reset ()
     Reset the plugin after use, to prepare it for another clean run.
    InputDomain getInputDomain () const
     Get the plugin's required input domain.
    size_t getPreferredStepSize () const
     Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.
    size_t getPreferredBlockSize () const
     Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).
     Reset the plugin after use, to prepare it for another clean run. More...
     
    InputDomain getInputDomain () const
     Get the plugin's required input domain. More...
     
    size_t getPreferredStepSize () const
     Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin. More...
     
    size_t getPreferredBlockSize () const
     Get the preferred block size (window size – the number of sample frames passed in each block to the process() function). More...
     
    FeatureSet process (const float *const *inputBuffers, RealTime timestamp)
     Process a single block of input data.
     Process a single block of input data. More...
     
    void setProcessTimestampMethod (ProcessTimestampMethod)
     Set the method used for timestamp adjustment in plugins taking frequency-domain input.
    ProcessTimestampMethod getProcessTimestampMethod () const
     Retrieve the method used for timestamp adjustment in plugins taking frequency-domain input.
    RealTime getTimestampAdjustment () const
     Return the amount by which the timestamps supplied to process() are being incremented when they are passed to the plugin's own process() implementation.
    WindowType getWindowType () const
     Return the current window shape.
     Set the method used for timestamp adjustment in plugins taking frequency-domain input. More...
     
    ProcessTimestampMethod getProcessTimestampMethod () const
     Retrieve the method used for timestamp adjustment in plugins taking frequency-domain input. More...
     
    RealTime getTimestampAdjustment () const
     Return the amount by which the timestamps supplied to process() are being incremented when they are passed to the plugin's own process() implementation. More...
     
    WindowType getWindowType () const
     Return the current window shape. More...
     
    void setWindowType (WindowType type)
     Set the current window shape.
    unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin.
    std::string getIdentifier () const
     Get the computer-usable name of the plugin.
    std::string getName () const
     Get a human-readable name or title of the plugin.
    std::string getDescription () const
     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".
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form.
    int getPluginVersion () const
     Get the version number of the plugin.
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin.
    ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin.
    float getParameter (std::string) const
     Get the value of a named parameter.
     Set the current window shape. More...
     
    unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin. More...
     
    std::string getIdentifier () const
     Get the computer-usable name of the plugin. More...
     
    std::string getName () const
     Get a human-readable name or title of the plugin. More...
     
    std::string getDescription () const
     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". More...
     
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form. More...
     
    int getPluginVersion () const
     Get the version number of the plugin. More...
     
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin. More...
     
    ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin. More...
     
    float getParameter (std::string) const
     Get the value of a named parameter. More...
     
    void setParameter (std::string, float)
     Set a named parameter.
    ProgramList getPrograms () const
     Get the program settings available in this plugin.
    std::string getCurrentProgram () const
     Get the current program.
     Set a named parameter. More...
     
    ProgramList getPrograms () const
     Get the program settings available in this plugin. More...
     
    std::string getCurrentProgram () const
     Get the current program. More...
     
    void selectProgram (std::string)
     Select a program.
    size_t getMinChannelCount () const
     Get the minimum supported number of input channels.
    size_t getMaxChannelCount () const
     Get the maximum supported number of input channels.
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin.
     Select a program. More...
     
    size_t getMinChannelCount () const
     Get the minimum supported number of input channels. More...
     
    size_t getMaxChannelCount () const
     Get the maximum supported number of input channels. More...
     
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin. More...
     
    FeatureSet getRemainingFeatures ()
     After all blocks have been processed, calculate and return any remaining features derived from the complete input.
     After all blocks have been processed, calculate and return any remaining features derived from the complete input. More...
     
    template<typename WrapperType >
    WrapperType * getWrapper ()
     Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present.
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

     Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present. More...
     
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase. More...
     
    + + + +

    Protected Attributes

    Impl * m_impl
     
    Pluginm_plugin
     
    float m_inputSampleRate
     
    -

    Detailed Description

    +

    Detailed Description

    PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input into frequency-domain input for plugins that need it.

    This permits a host to use time- and frequency-domain plugins interchangeably without needing to handle the conversion itself.

    -

    This adapter uses a basic windowed FFT (using Hann window by default) that supports power-of-two block sizes only. If a frequency domain plugin requests a non-power-of-two blocksize, the adapter will adjust it to a nearby power of two instead. Thus, getPreferredBlockSize() will always return a power of two if the wrapped plugin is a frequency domain one. If the plugin doesn't accept the adjusted power of two block size, initialise() will fail.

    +

    This adapter uses a basic windowed FFT (using Hann window by default) that supports power-of-two block sizes only. If a frequency domain plugin requests a non-power-of-two blocksize, the adapter will adjust it to a nearby power of two instead. Thus, getPreferredBlockSize() will always return a power of two if the wrapped plugin is a frequency domain one. If the plugin doesn't accept the adjusted power of two block size, initialise() will fail.

    The adapter provides no way for the host to discover whether the underlying plugin is actually a time or frequency domain plugin (except that if the preferred block size is not a power of two, it must be a time domain plugin).

    -

    The FFT implementation is simple and self-contained, but unlikely to be the fastest available: a host can usually do better if it cares enough.

    -

    The window shape for the FFT frame can be set using setWindowType and the current shape retrieved using getWindowType. (This was added in v2.3 of the SDK.)

    +

    The FFT implementation is simple and self-contained, but unlikely to be the fastest available: a host can usually do better if it cares enough.

    +

    The window shape for the FFT frame can be set using setWindowType and the current shape retrieved using getWindowType. (This was added in v2.3 of the SDK.)

    In every respect other than its input domain handling, the PluginInputDomainAdapter behaves identically to the plugin that it wraps. The wrapped plugin will be deleted when the wrapper is deleted.

    -
    Note:
    This class was introduced in version 1.1 of the Vamp plugin SDK.
    +
    Note
    This class was introduced in version 1.1 of the Vamp plugin SDK.
    -

    Definition at line 87 of file PluginInputDomainAdapter.h.

    -

    Member Typedef Documentation

    - +

    Definition at line 87 of file PluginInputDomainAdapter.h.

    +

    Member Typedef Documentation

    + +

    ◆ OutputList

    +
    + + + + + +
    - +
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList [inherited]typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList
    - -
    +
    +inherited
    +
    -

    Definition at line 327 of file vamp-sdk/Plugin.h.

    +

    Definition at line 335 of file vamp-sdk/Plugin.h.

    - + +

    ◆ FeatureList

    +
    + + + + + +
    - +
    typedef std::vector<Feature> Vamp::Plugin::FeatureList [inherited]typedef std::vector<Feature> Vamp::Plugin::FeatureList
    - -
    +
    +inherited
    +
    -

    Definition at line 385 of file vamp-sdk/Plugin.h.

    +

    Definition at line 393 of file vamp-sdk/Plugin.h.

    - + +

    ◆ FeatureSet

    +
    + + + + + +
    - +
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet [inherited]typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet
    - -
    +
    +inherited
    +
    -

    Definition at line 387 of file vamp-sdk/Plugin.h.

    +

    Definition at line 395 of file vamp-sdk/Plugin.h.

    - + +

    ◆ ParameterList

    +
    + + + + + +
    - +
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList [inherited]typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList
    - -
    +
    +inherited
    +
    -

    Definition at line 199 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 203 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ ProgramList

    +
    + + + + + +
    - +
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList [inherited]typedef std::vector<std::string> Vamp::PluginBase::ProgramList
    - -
    +
    +inherited
    +
    -

    Definition at line 221 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 225 of file vamp-sdk/PluginBase.h.

    -

    Member Enumeration Documentation

    - +

    Member Enumeration Documentation

    + +

    ◆ ProcessTimestampMethod

    +
    -
    +
    -

    ProcessTimestampMethod determines how the PluginInputDomainAdapter handles timestamps for the data passed to the process() function of the plugin it wraps, in the case where the plugin is expecting frequency-domain data.

    +

    ProcessTimestampMethod determines how the PluginInputDomainAdapter handles timestamps for the data passed to the process() function of the plugin it wraps, in the case where the plugin is expecting frequency-domain data.

    The Vamp specification requires that the timestamp passed to the plugin for frequency-domain input should be that of the centre of the processing block, rather than the start as is the case for time-domain input.

    Since PluginInputDomainAdapter aims to be transparent in use, it needs to handle this timestamp adjustment itself. However, some control is available over the method used for adjustment, by means of the ProcessTimestampMethod setting.

    If ProcessTimestampMethod is set to ShiftTimestamp (the default), then the data passed to the wrapped plugin will be calculated from the same input data block as passed to the wrapper, but the timestamp passed to the plugin will be advanced by half of the window size.

    If ProcessTimestampMethod is set to ShiftData, then the timestamp passed to the wrapped plugin will be the same as that passed to the process call of the wrapper, but the data block used to calculate the input will be shifted back (earlier) by half of the window size, with half a block of zero padding at the start of the first process call. This has the advantage of preserving the first half block of audio without any deterioration from window shaping.

    If ProcessTimestampMethod is set to NoShift, then no adjustment will be made and the timestamps will be incorrect.

    -
    Enumerator:
    - - - +
    ShiftTimestamp  -
    ShiftData  -
    NoShift  -
    + + +
    Enumerator
    ShiftTimestamp 
    ShiftData 
    NoShift 
    -
    -
    -

    Definition at line 142 of file PluginInputDomainAdapter.h.

    +

    Definition at line 142 of file PluginInputDomainAdapter.h.

    - + +

    ◆ WindowType

    +
    -
    +

    The set of supported window shapes.

    -
    Enumerator:
    -","
    RectangularWindow  + + + + - - + - - - - - - + +
    Enumerator
    RectangularWindow 
    BartlettWindow 
    TriangularWindow 

    synonym for RectangularWindow

    BartlettWindow  +
    HammingWindow 

    synonym for BartlettWindow

    TriangularWindow  -

    synonym for RectangularWindow

    +
    HanningWindow 
    HannWindow 

    synonym for HannWindow

    HammingWindow  -

    synonym for BartlettWindow

    +
    BlackmanWindow 

    synonym for HanningWindow

    HanningWindow  -
    HannWindow  -

    synonym for HannWindow

    -
    BlackmanWindow  -

    synonym for HanningWindow

    -
    NuttallWindow  -
    BlackmanHarrisWindow  -
    NuttallWindow 
    BlackmanHarrisWindow 
    - - -

    Definition at line 195 of file PluginInputDomainAdapter.h.

    +

    Definition at line 195 of file PluginInputDomainAdapter.h.

    - + +

    ◆ InputDomain

    + +
    +
    + + + + + +
    + + + + +
    enum Vamp::Plugin::InputDomain
    +
    +inherited
    +
    + + + +
    Enumerator
    TimeDomain 
    FrequencyDomain 
    + +

    Definition at line 152 of file vamp-sdk/Plugin.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ PluginInputDomainAdapter()

    +
    - - -
    enum Vamp::Plugin::InputDomain [inherited]
    -
    -
    -
    Enumerator:
    - - -
    TimeDomain  -
    FrequencyDomain  -
    -
    -
    - -

    Definition at line 152 of file vamp-sdk/Plugin.h.

    - -
    -
    -

    Constructor & Destructor Documentation

    - -
    -
    - - - +
    Vamp::HostExt::PluginInputDomainAdapter::PluginInputDomainAdapter Vamp::HostExt::PluginInputDomainAdapter::PluginInputDomainAdapter ( Plugin plugin)
    -
    -
    +

    Construct a PluginInputDomainAdapter wrapping the given plugin.

    The adapter takes ownership of the plugin, which will be deleted when the adapter is deleted.

    - + +

    ◆ ~PluginInputDomainAdapter()

    +
    + + + + + +
    - + - +
    virtual Vamp::HostExt::PluginInputDomainAdapter::~PluginInputDomainAdapter virtual Vamp::HostExt::PluginInputDomainAdapter::~PluginInputDomainAdapter ( ) [virtual]
    - -
    +
    +virtual
    +
    -

    Member Function Documentation

    - +

    Member Function Documentation

    + +

    ◆ initialise()

    +
    + + + + + +
    - + @@ -450,113 +531,158 @@ - +
    bool Vamp::HostExt::PluginInputDomainAdapter::initialise bool Vamp::HostExt::PluginInputDomainAdapter::initialise ( size_t  inputChannels,
    ) [virtual]
    - -
    +
    +virtual
    +

    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).

    The input sample rate should have been already specified at construction time.

    Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported.

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Implements Vamp::Plugin.

    - + +

    ◆ reset()

    +
    + + + + + +
    - + - +
    void Vamp::HostExt::PluginInputDomainAdapter::reset void Vamp::HostExt::PluginInputDomainAdapter::reset ( ) [virtual]
    - -
    +
    +virtual
    +

    Reset the plugin after use, to prepare it for another clean run.

    Not called for the first initialisation (i.e. initialise must also do a reset).

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Implements Vamp::Plugin.

    - + +

    ◆ getInputDomain()

    +
    + + + + + +
    - + - +
    InputDomain Vamp::HostExt::PluginInputDomainAdapter::getInputDomain InputDomain Vamp::HostExt::PluginInputDomainAdapter::getInputDomain ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the plugin's required input domain.

    -

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    -

    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 process(). 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.

    +

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    +

    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 process(). 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.

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Implements Vamp::Plugin.

    - + +

    ◆ getPreferredStepSize()

    +
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginInputDomainAdapter::getPreferredStepSize size_t Vamp::HostExt::PluginInputDomainAdapter::getPreferredStepSize ( ) const [virtual] const
    - -
    +
    +virtual
    +
    -

    Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    -

    This should be called before initialise().

    -

    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 initialise() call.

    +

    Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    +

    This should be called before initialise().

    +

    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 initialise() call.

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getPreferredBlockSize()

    +
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginInputDomainAdapter::getPreferredBlockSize size_t Vamp::HostExt::PluginInputDomainAdapter::getPreferredBlockSize ( ) const [virtual] const
    - -
    +
    +virtual
    +
    -

    Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).

    -

    This should be called before initialise().

    -

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    +

    Get the preferred block size (window size – the number of sample frames passed in each block to the process() function).

    +

    This should be called before initialise().

    +

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ process()

    +
    + + + + + +
    - + @@ -570,156 +696,183 @@ - +
    FeatureSet Vamp::HostExt::PluginInputDomainAdapter::process FeatureSet Vamp::HostExt::PluginInputDomainAdapter::process ( const float *const *  inputBuffers,
    ) [virtual]
    - -
    +
    +virtual
    +

    Process a single block of input data.

    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.

    -

    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).

    +

    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).

    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.)

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Implements Vamp::Plugin.

    - + +

    ◆ setProcessTimestampMethod()

    +
    - +
    void Vamp::HostExt::PluginInputDomainAdapter::setProcessTimestampMethod void Vamp::HostExt::PluginInputDomainAdapter::setProcessTimestampMethod ( ProcessTimestampMethod  )
    -
    -
    +

    Set the method used for timestamp adjustment in plugins taking frequency-domain input.

    See the ProcessTimestampMethod documentation for details.

    -

    This function must be called before the first call to process().

    +

    This function must be called before the first call to process().

    - + +

    ◆ getProcessTimestampMethod()

    +
    - +
    ProcessTimestampMethod Vamp::HostExt::PluginInputDomainAdapter::getProcessTimestampMethod ProcessTimestampMethod Vamp::HostExt::PluginInputDomainAdapter::getProcessTimestampMethod ( ) const
    -
    -
    +

    Retrieve the method used for timestamp adjustment in plugins taking frequency-domain input.

    See the ProcessTimestampMethod documentation for details.

    - + +

    ◆ getTimestampAdjustment()

    +
    - +
    RealTime Vamp::HostExt::PluginInputDomainAdapter::getTimestampAdjustment RealTime Vamp::HostExt::PluginInputDomainAdapter::getTimestampAdjustment ( ) const
    -
    -
    +
    -

    Return the amount by which the timestamps supplied to process() are being incremented when they are passed to the plugin's own process() implementation.

    +

    Return the amount by which the timestamps supplied to process() are being incremented when they are passed to the plugin's own process() implementation.

    The Vamp API mandates that the timestamp passed to the plugin for time-domain input should be the time of the first sample in the block, but the timestamp passed for frequency-domain input should be the timestamp of the centre of the block.

    The PluginInputDomainAdapter adjusts its timestamps properly so that the plugin receives correct times, but in some circumstances (such as for establishing the correct timing of implicitly-timed features, i.e. features without their own timestamps) the host may need to be aware that this adjustment is taking place.

    If the plugin requires time-domain input or the PluginInputDomainAdapter is configured with its ProcessTimestampMethod set to ShiftData instead of ShiftTimestamp, then this function will return zero.

    -

    The result of calling this function before initialise() has been called is undefined.

    +

    The result of calling this function before initialise() has been called is undefined.

    -

    Referenced by runPlugin().

    +

    Referenced by runPlugin().

    - + +

    ◆ getWindowType()

    +
    - +
    WindowType Vamp::HostExt::PluginInputDomainAdapter::getWindowType WindowType Vamp::HostExt::PluginInputDomainAdapter::getWindowType ( ) const
    -
    -
    +

    Return the current window shape.

    The default is HanningWindow.

    - + +

    ◆ setWindowType()

    +
    - +
    void Vamp::HostExt::PluginInputDomainAdapter::setWindowType void Vamp::HostExt::PluginInputDomainAdapter::setWindowType ( WindowType  type)
    -
    -
    +

    Set the current window shape.

    - + +

    ◆ getVampApiVersion()

    +
    + + + + + +
    - + - +
    unsigned int Vamp::HostExt::PluginWrapper::getVampApiVersion unsigned int Vamp::HostExt::PluginWrapper::getVampApiVersion ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the Vamp API compatibility level of the plugin.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getIdentifier()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getIdentifier std::string Vamp::HostExt::PluginWrapper::getIdentifier ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the computer-usable name of the plugin.

    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.

    @@ -730,19 +883,28 @@
    - + +

    ◆ getName()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getName std::string Vamp::HostExt::PluginWrapper::getName ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get a human-readable name or title of the plugin.

    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").

    @@ -752,19 +914,28 @@
    - + +

    ◆ getDescription()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getDescription std::string Vamp::HostExt::PluginWrapper::getDescription ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    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".

    May be empty if the name has said it all already.

    @@ -774,19 +945,28 @@
    - + +

    ◆ getMaker()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getMaker std::string Vamp::HostExt::PluginWrapper::getMaker ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the name of the author or vendor of the plugin in human-readable form.

    This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar.

    @@ -795,19 +975,28 @@
    - + +

    ◆ getPluginVersion()

    +
    + + + + + +
    - + - +
    int Vamp::HostExt::PluginWrapper::getPluginVersion int Vamp::HostExt::PluginWrapper::getPluginVersion ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the version number of the plugin.

    @@ -815,19 +1004,28 @@
    - + +

    ◆ getCopyright()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getCopyright std::string Vamp::HostExt::PluginWrapper::getCopyright ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the copyright statement or licensing summary for the plugin.

    This can be an informative text, without the same presentation constraints as mentioned for getMaker above.

    @@ -836,54 +1034,77 @@
    - + +

    ◆ getParameterDescriptors()

    +
    + + + + + +
    - + - +
    ParameterList Vamp::HostExt::PluginWrapper::getParameterDescriptors ParameterList Vamp::HostExt::PluginWrapper::getParameterDescriptors ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the controllable parameters of this plugin.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getParameter()

    +
    + + + + + +
    - + - +
    float Vamp::HostExt::PluginWrapper::getParameter float Vamp::HostExt::PluginWrapper::getParameter ( std::string  ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the value of a named parameter.

    The argument is the identifier field from that parameter's descriptor.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ setParameter()

    +
    + + + + + +
    - + @@ -897,267 +1118,371 @@ - +
    void Vamp::HostExt::PluginWrapper::setParameter void Vamp::HostExt::PluginWrapper::setParameter ( std::string  ,
    ) [virtual, inherited]
    - -
    +
    +virtualinherited
    +

    Set a named parameter.

    The first argument is the identifier field from that parameter's descriptor.

    Reimplemented from Vamp::PluginBase.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter.

    +
    +
    + +

    ◆ getPrograms()

    - - -
    + + + + + +
    - + - +
    ProgramList Vamp::HostExt::PluginWrapper::getPrograms ProgramList Vamp::HostExt::PluginWrapper::getPrograms ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the program settings available in this plugin.

    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.

    The programs must have unique names.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getCurrentProgram()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getCurrentProgram std::string Vamp::HostExt::PluginWrapper::getCurrentProgram ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the current program.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ selectProgram()

    +
    + + + + + +
    - + - +
    void Vamp::HostExt::PluginWrapper::selectProgram void Vamp::HostExt::PluginWrapper::selectProgram ( std::string  ) [virtual, inherited]
    - -
    +
    +virtualinherited
    +

    Select a program.

    (If the given program name is not one of the available programs, do nothing.)

    Reimplemented from Vamp::PluginBase.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter.

    +
    +
    + +

    ◆ getMinChannelCount()

    - - -
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginWrapper::getMinChannelCount size_t Vamp::HostExt::PluginWrapper::getMinChannelCount ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the minimum supported number of input channels.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getMaxChannelCount()

    +
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginWrapper::getMaxChannelCount size_t Vamp::HostExt::PluginWrapper::getMaxChannelCount ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the maximum supported number of input channels.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getOutputDescriptors()

    +
    + + + + + +
    - + - +
    OutputList Vamp::HostExt::PluginWrapper::getOutputDescriptors OutputList Vamp::HostExt::PluginWrapper::getOutputDescriptors ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the outputs of this plugin.

    -

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    +

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    Implements Vamp::Plugin.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter.

    +
    +
    + +

    ◆ getRemainingFeatures()

    - - -
    + + + + + +
    - + - +
    FeatureSet Vamp::HostExt::PluginWrapper::getRemainingFeatures FeatureSet Vamp::HostExt::PluginWrapper::getRemainingFeatures ( ) [virtual, inherited]
    - -
    +
    +virtualinherited
    +

    After all blocks have been processed, calculate and return any remaining features derived from the complete input.

    Implements Vamp::Plugin.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, and Vamp::HostExt::PluginSummarisingAdapter.

    +
    +
    + +

    ◆ getWrapper()

    - - -
    template<typename WrapperType >
    + + + + + +
    - + - +
    WrapperType* Vamp::HostExt::PluginWrapper::getWrapper WrapperType* Vamp::HostExt::PluginWrapper::getWrapper ( ) [inline, inherited]
    - -
    +
    +inlineinherited
    +

    Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present.

    -

    This is useful in situations where a plugin is wrapped by multiple different wrappers (one inside another) and the host wants to call some wrapper-specific function on one of the layers without having to care about the order in which they are wrapped. For example, the plugin returned by PluginLoader::loadPlugin may have more than one wrapper; if the host wanted to query or fine-tune some property of one of them, it would be hard to do so without knowing the order of the wrappers. This function therefore gives direct access to the wrapper of a particular type.

    +

    This is useful in situations where a plugin is wrapped by multiple different wrappers (one inside another) and the host wants to call some wrapper-specific function on one of the layers without having to care about the order in which they are wrapped. For example, the plugin returned by PluginLoader::loadPlugin may have more than one wrapper; if the host wanted to query or fine-tune some property of one of them, it would be hard to do so without knowing the order of the wrappers. This function therefore gives direct access to the wrapper of a particular type.

    -

    Definition at line 116 of file PluginWrapper.h.

    +

    Definition at line 116 of file PluginWrapper.h.

    -

    References Vamp::HostExt::PluginWrapper::getWrapper().

    +

    References Vamp::HostExt::PluginWrapper::getWrapper().

    -

    Referenced by Vamp::HostExt::PluginWrapper::getWrapper(), and runPlugin().

    +

    Referenced by Vamp::HostExt::PluginWrapper::getWrapper(), and runPlugin().

    - + +

    ◆ getType()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::Plugin::getType virtual std::string Vamp::Plugin::getType ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    Do not reimplement this function in your subclass.

    Implements Vamp::PluginBase.

    -

    Definition at line 430 of file vamp-sdk/Plugin.h.

    +

    Definition at line 438 of file vamp-sdk/Plugin.h.

    -

    Member Data Documentation

    - +

    Member Data Documentation

    + +

    ◆ m_impl

    +
    + + + + + +
    - +
    Impl* Vamp::HostExt::PluginInputDomainAdapter::m_impl [protected]Impl* Vamp::HostExt::PluginInputDomainAdapter::m_impl
    - -
    +
    +protected
    +
    -

    Definition at line 226 of file PluginInputDomainAdapter.h.

    +

    Definition at line 226 of file PluginInputDomainAdapter.h.

    - + +

    ◆ m_plugin

    +
    + + + + + +
    - +
    Plugin* Vamp::HostExt::PluginWrapper::m_plugin [protected, inherited]Plugin* Vamp::HostExt::PluginWrapper::m_plugin
    - -
    +
    +protectedinherited
    +
    -

    Definition at line 126 of file PluginWrapper.h.

    +

    Definition at line 126 of file PluginWrapper.h.

    - + +

    ◆ m_inputSampleRate

    + @@ -1165,19 +1490,15 @@
  • PluginInputDomainAdapter.h
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter.js --- a/code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,46 +1,63 @@ var classVamp_1_1HostExt_1_1PluginInputDomainAdapter = [ - [ "OutputList", "classVamp_1_1Plugin.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], - [ "FeatureList", "classVamp_1_1Plugin.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], - [ "FeatureSet", "classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], - [ "ParameterList", "classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], - [ "ProgramList", "classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20", null ], - [ "ProcessTimestampMethod", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a2518e4922d77bc4e514d84cec9a0b577", null ], - [ "WindowType", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a27e6a7c3f93f1618836792b588b767dc", null ], - [ "InputDomain", "classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc", null ], + [ "OutputList", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], + [ "FeatureList", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], + [ "FeatureSet", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], + [ "ParameterList", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], + [ "ProgramList", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a7f66f00437b21e5f694fe02356b12f20", null ], + [ "ProcessTimestampMethod", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a2518e4922d77bc4e514d84cec9a0b577", [ + [ "ShiftTimestamp", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a2518e4922d77bc4e514d84cec9a0b577afcf39fe57ba29a908d4877c21de145dd", null ], + [ "ShiftData", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a2518e4922d77bc4e514d84cec9a0b577a0838ff456d829e9096b5d968e6c55152", null ], + [ "NoShift", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a2518e4922d77bc4e514d84cec9a0b577ab06e8c6824802978d0be4074a556b297", null ] + ] ], + [ "WindowType", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a27e6a7c3f93f1618836792b588b767dc", [ + [ "RectangularWindow", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a27e6a7c3f93f1618836792b588b767dca99b08cf7a7f4a1b52a09044ea12c6324", null ], + [ "BartlettWindow", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a27e6a7c3f93f1618836792b588b767dca77fd88a7d94fcd9c6c4aef30b86f077d", null ], + [ "TriangularWindow", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a27e6a7c3f93f1618836792b588b767dcaae5133bd639336a5c31378f4c2939d42", null ], + [ "HammingWindow", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a27e6a7c3f93f1618836792b588b767dca9d522bff8d5884a8ba57d5a8c7e113c8", null ], + [ "HanningWindow", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a27e6a7c3f93f1618836792b588b767dcacad78947b6c8db20feb5ddf208ac1108", null ], + [ "HannWindow", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a27e6a7c3f93f1618836792b588b767dcadc87b20cfb5f1ddd23ebc281e3e47916", null ], + [ "BlackmanWindow", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a27e6a7c3f93f1618836792b588b767dca2e298b1bee28272721953b2921891da6", null ], + [ "NuttallWindow", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a27e6a7c3f93f1618836792b588b767dcaa6a2f46966a46cc7abdf2df74270999e", null ], + [ "BlackmanHarrisWindow", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a27e6a7c3f93f1618836792b588b767dca7cbf5d8c58f33bcfa28e3a5863d6ac94", null ] + ] ], + [ "InputDomain", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a39cb7649d6dcc20e4cb1640cd55907bc", [ + [ "TimeDomain", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a39cb7649d6dcc20e4cb1640cd55907bcad4a9f31b958a43a9757af7893aa2e7ff", null ], + [ "FrequencyDomain", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a39cb7649d6dcc20e4cb1640cd55907bcaa30e7877ab33f76acbdca28607e6ab53", null ] + ] ], [ "PluginInputDomainAdapter", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a878e7275acdb77efc7a802944305039d", null ], [ "~PluginInputDomainAdapter", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#aba2cbfa650d8a7c9181dbdb49b10aad0", null ], [ "initialise", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a72d201eca10ec73bf16e07984f58f94c", null ], [ "reset", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a984a12b5b4cb0be1e2f7a0aa84106c4c", null ], - [ "getInputDomain", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a47ff1ed72889f323da63f8abc9ea581a", null ], - [ "getPreferredStepSize", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ad979af9f1cbf2eeb16f4eaedb4a4f565", null ], - [ "getPreferredBlockSize", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a4cf40d09d02022b1962ff17bb0324ea5", null ], + [ "getInputDomain", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a27f740e3b5eb7aa4ac14f368e27222dd", null ], + [ "getPreferredStepSize", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ac7b43a08f1b1f42ed871fd6962c570f4", null ], + [ "getPreferredBlockSize", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a030b94dc3af4228a518f860952148bdd", null ], [ "process", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ab36a81ac9a0ded8d83c6b855263c0231", null ], [ "setProcessTimestampMethod", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a1d7366f8cab39abc01ebfc7bf7ca8089", null ], - [ "getProcessTimestampMethod", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#acfc7a9121f678fd085448f68f15c9eae", null ], - [ "getTimestampAdjustment", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ac1ab6af0fcda0a4c3f050c54b2db4769", null ], - [ "getWindowType", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ab143065e1a65f1d860cb26b32d5a9c1e", null ], + [ "getProcessTimestampMethod", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a78f8124d7eedb1b95073b9fca06583ce", null ], + [ "getTimestampAdjustment", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ac8413a5fa888d78ac260f66b6381f6d5", null ], + [ "getWindowType", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a5cfac10593542d3d7f9c5002c9204295", null ], [ "setWindowType", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a652bf9f25352a4fa89dd80ff816558d4", null ], - [ "getVampApiVersion", "classVamp_1_1HostExt_1_1PluginWrapper.html#a74147fda6b44ff2169bd4a1eea0d46ff", null ], - [ "getIdentifier", "classVamp_1_1HostExt_1_1PluginWrapper.html#a4baa9e48f717c2b3e7f92496aa39d904", null ], - [ "getName", "classVamp_1_1HostExt_1_1PluginWrapper.html#ac70a3265bb25aeb03f6dd8f8a0442088", null ], - [ "getDescription", "classVamp_1_1HostExt_1_1PluginWrapper.html#ac334f699c0996055942785410d8a065c", null ], - [ "getMaker", "classVamp_1_1HostExt_1_1PluginWrapper.html#a59d5a2298951b317995675e664b1c7bb", null ], - [ "getPluginVersion", "classVamp_1_1HostExt_1_1PluginWrapper.html#a47e1acf1696813008324a915c9ba59c5", null ], - [ "getCopyright", "classVamp_1_1HostExt_1_1PluginWrapper.html#ae14f6ecb78be909c4cd5f0cdaed3c566", null ], - [ "getParameterDescriptors", "classVamp_1_1HostExt_1_1PluginWrapper.html#a9be71561265c2e6e43b7feaddaa91f36", null ], - [ "getParameter", "classVamp_1_1HostExt_1_1PluginWrapper.html#a034920f56c8d7609a85447c42556048c", null ], - [ "setParameter", "classVamp_1_1HostExt_1_1PluginWrapper.html#a651b15a5dc4c27942ac0c87c6092bfe5", null ], - [ "getPrograms", "classVamp_1_1HostExt_1_1PluginWrapper.html#a131fbe1df81215020b9aa8cecef4c802", null ], - [ "getCurrentProgram", "classVamp_1_1HostExt_1_1PluginWrapper.html#a7a312dd42d161064b70afd7ff24c0651", null ], - [ "selectProgram", "classVamp_1_1HostExt_1_1PluginWrapper.html#a074978333a74fdcf336a8a1d8ea20abf", null ], - [ "getMinChannelCount", "classVamp_1_1HostExt_1_1PluginWrapper.html#a2b28f1cf37d46a514f1e1411a6037bf8", null ], - [ "getMaxChannelCount", "classVamp_1_1HostExt_1_1PluginWrapper.html#a985eb21f1827bfbc3950d6871b107a58", null ], - [ "getOutputDescriptors", "classVamp_1_1HostExt_1_1PluginWrapper.html#a5a9411305f713b4c9827844b89acd270", null ], - [ "getRemainingFeatures", "classVamp_1_1HostExt_1_1PluginWrapper.html#a2bc8c0992e64f06991fb7cf89f99857e", null ], - [ "getWrapper", "classVamp_1_1HostExt_1_1PluginWrapper.html#a653d0308e8e34881a8749b7631d00f05", null ], - [ "getType", "classVamp_1_1Plugin.html#abe13b3997a69fbcc09e2213faa352f91", null ], + [ "getVampApiVersion", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#afa79272f991fb720ddd09784be1b3cb8", null ], + [ "getIdentifier", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ad9312a38c199004c7bad0c42f590393f", null ], + [ "getName", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#aa2b40de6e240d872997a63dd4a301ff3", null ], + [ "getDescription", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ad6e453c30b265a2daf243f953b35c815", null ], + [ "getMaker", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#af9b2f01063828ef0745dc2623fc8dd42", null ], + [ "getPluginVersion", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a9537de27c826a1441b2d3643df4880bb", null ], + [ "getCopyright", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#aea9c238f86de65d3380fa887bb9e47e6", null ], + [ "getParameterDescriptors", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ab2b67205d86e921cb0a9bd1f819d2cf9", null ], + [ "getParameter", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a5c0a4d72a25fded51829de21771de521", null ], + [ "setParameter", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a651b15a5dc4c27942ac0c87c6092bfe5", null ], + [ "getPrograms", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#aa0b72ea17766266d20539f293ccae7c8", null ], + [ "getCurrentProgram", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a3936fe2c4b3c960dd244849a7c3320ad", null ], + [ "selectProgram", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a074978333a74fdcf336a8a1d8ea20abf", null ], + [ "getMinChannelCount", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#abc0a4e6ce0ae9de39c40725de1f30d2f", null ], + [ "getMaxChannelCount", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#acfed040cd91e797ee89d077db22b4a97", null ], + [ "getOutputDescriptors", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#af67a6cd3afa18895393ec8d4bdec3b4c", null ], + [ "getRemainingFeatures", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a2bc8c0992e64f06991fb7cf89f99857e", null ], + [ "getWrapper", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a653d0308e8e34881a8749b7631d00f05", null ], + [ "getType", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a530123068767a8728c568ffccfe3e4e5", null ], [ "m_impl", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a9fa8a6b8a4e41b6e3f2fabc0d23678cc", null ], - [ "m_plugin", "classVamp_1_1HostExt_1_1PluginWrapper.html#ab4e40ecd98b445e1a2aa9e7baa280ea2", null ], - [ "m_inputSampleRate", "classVamp_1_1Plugin.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] + [ "m_plugin", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ab4e40ecd98b445e1a2aa9e7baa280ea2", null ], + [ "m_inputSampleRate", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.map --- a/code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,5 +1,5 @@ - - - - + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.md5 --- a/code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -bb2695c4dab223710ed0b6904102564c \ No newline at end of file +534fe3925f2f360697c047f9f3754943 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.png Binary file code-docs/classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginLoader-members.html --- a/code-docs/classVamp_1_1HostExt_1_1PluginLoader-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginLoader-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,37 +63,39 @@
    Vamp::HostExt::PluginLoader Member List
    -This is the complete list of members for Vamp::HostExt::PluginLoader, including all inherited members. - - - - - - - - - - - - - - - - - - - + +

    This is the complete list of members for Vamp::HostExt::PluginLoader, including all inherited members.

    +
    ADAPT_ALL enum valueVamp::HostExt::PluginLoader
    ADAPT_ALL_SAFE enum valueVamp::HostExt::PluginLoader
    ADAPT_BUFFER_SIZE enum valueVamp::HostExt::PluginLoader
    ADAPT_CHANNEL_COUNT enum valueVamp::HostExt::PluginLoader
    ADAPT_INPUT_DOMAIN enum valueVamp::HostExt::PluginLoader
    AdapterFlags enum nameVamp::HostExt::PluginLoader
    composePluginKey(std::string libraryName, std::string identifier)Vamp::HostExt::PluginLoader
    getInstance()Vamp::HostExt::PluginLoader [static]
    getLibraryPathForPlugin(PluginKey plugin)Vamp::HostExt::PluginLoader
    getPluginCategory(PluginKey plugin)Vamp::HostExt::PluginLoader
    listPlugins()Vamp::HostExt::PluginLoader
    loadPlugin(PluginKey key, float inputSampleRate, int adapterFlags=0)Vamp::HostExt::PluginLoader
    m_implVamp::HostExt::PluginLoader [protected]
    m_instanceVamp::HostExt::PluginLoader [protected, static]
    PluginCategoryHierarchy typedefVamp::HostExt::PluginLoader
    PluginKey typedefVamp::HostExt::PluginLoader
    PluginKeyList typedefVamp::HostExt::PluginLoader
    PluginLoader()Vamp::HostExt::PluginLoader [protected]
    ~PluginLoader()Vamp::HostExt::PluginLoader [protected, virtual]
    + + + + + + + + + + + + + + + + + + + + +
    ADAPT_ALL enum valueVamp::HostExt::PluginLoader
    ADAPT_ALL_SAFE enum valueVamp::HostExt::PluginLoader
    ADAPT_BUFFER_SIZE enum valueVamp::HostExt::PluginLoader
    ADAPT_CHANNEL_COUNT enum valueVamp::HostExt::PluginLoader
    ADAPT_INPUT_DOMAIN enum valueVamp::HostExt::PluginLoader
    AdapterFlags enum nameVamp::HostExt::PluginLoader
    composePluginKey(std::string libraryName, std::string identifier)Vamp::HostExt::PluginLoader
    getInstance()Vamp::HostExt::PluginLoaderstatic
    getLibraryPathForPlugin(PluginKey plugin)Vamp::HostExt::PluginLoader
    getPluginCategory(PluginKey plugin)Vamp::HostExt::PluginLoader
    listPlugins()Vamp::HostExt::PluginLoader
    listPluginsIn(std::vector< std::string > libraryNames)Vamp::HostExt::PluginLoader
    listPluginsNotIn(std::vector< std::string > libraryNames)Vamp::HostExt::PluginLoader
    loadPlugin(PluginKey key, float inputSampleRate, int adapterFlags=0)Vamp::HostExt::PluginLoader
    m_implVamp::HostExt::PluginLoaderprotected
    m_instanceVamp::HostExt::PluginLoaderprotectedstatic
    PluginCategoryHierarchy typedefVamp::HostExt::PluginLoader
    PluginKey typedefVamp::HostExt::PluginLoader
    PluginKeyList typedefVamp::HostExt::PluginLoader
    PluginLoader()Vamp::HostExt::PluginLoaderprotected
    ~PluginLoader()Vamp::HostExt::PluginLoaderprotectedvirtual
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginLoader.html --- a/code-docs/classVamp_1_1HostExt_1_1PluginLoader.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginLoader.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Vamp::HostExt::PluginLoader Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    Vamp::HostExt::PluginLoader Class Reference
    @@ -89,63 +76,89 @@ More...

    #include <vamp-hostsdk/PluginLoader.h>

    - -

    List of all members.

    - - - + + + - + + - + + - - + +

    +

    Public Types

    enum  AdapterFlags {
    -  ADAPT_INPUT_DOMAIN = 0x01, -ADAPT_CHANNEL_COUNT = 0x02, -ADAPT_BUFFER_SIZE = 0x04, -ADAPT_ALL_SAFE = 0x03, -
    -  ADAPT_ALL = 0xff -
    - }
     AdapterFlags contains a set of values that may be OR'd together to indicate in which circumstances PluginLoader should use a plugin adapter to make a plugin easier to use for a host that does not want to cater for complex features. More...
    enum  AdapterFlags {
    +  ADAPT_INPUT_DOMAIN = 0x01, +ADAPT_CHANNEL_COUNT = 0x02, +ADAPT_BUFFER_SIZE = 0x04, +ADAPT_ALL_SAFE = 0x03, +
    +  ADAPT_ALL = 0xff +
    + }
     AdapterFlags contains a set of values that may be OR'd together to indicate in which circumstances PluginLoader should use a plugin adapter to make a plugin easier to use for a host that does not want to cater for complex features. More...
     
    typedef std::string PluginKey
     PluginKey is a string type that is used to identify a plugin uniquely within the scope of "the current system".
     PluginKey is a string type that is used to identify a plugin uniquely within the scope of "the current system". More...
     
    typedef std::vector< PluginKeyPluginKeyList
     PluginKeyList is a sequence of plugin keys, such as returned by listPlugins().
     PluginKeyList is a sequence of plugin keys, such as returned by listPlugins(). More...
     
    typedef std::vector< std::string > PluginCategoryHierarchy
     PluginCategoryHierarchy is a sequence of general->specific category names, as may be associated with a single plugin.

    +

     PluginCategoryHierarchy is a sequence of general->specific category names, as may be associated with a single plugin. More...
     
    + - + + + + + + + + - + + - + + - + + - - + +

    Public Member Functions

    PluginKeyList listPlugins ()
     Search for all available Vamp plugins, and return a list of them in the order in which they were found.
     Search for all available Vamp plugins, and return a list of them in the order in which they were found. More...
     
    PluginKeyList listPluginsIn (std::vector< std::string > libraryNames)
     Search for available Vamp plugins in libraries with the given library names, and return a list of them in the order in which they were found. More...
     
    PluginKeyList listPluginsNotIn (std::vector< std::string > libraryNames)
     Search for available Vamp plugins in libraries other than those with the given library names, and return a list of them in the order in which they were found. More...
     
    PluginloadPlugin (PluginKey key, float inputSampleRate, int adapterFlags=0)
     Load a Vamp plugin, given its identifying key.
     Load a Vamp plugin, given its identifying key. More...
     
    PluginKey composePluginKey (std::string libraryName, std::string identifier)
     Given a Vamp plugin library name and plugin identifier, return the corresponding plugin key in a form suitable for passing in to loadPlugin().
     Given a Vamp plugin library name and plugin identifier, return the corresponding plugin key in a form suitable for passing in to loadPlugin(). More...
     
    PluginCategoryHierarchy getPluginCategory (PluginKey plugin)
     Return the category hierarchy for a Vamp plugin, given its identifying key.
     Return the category hierarchy for a Vamp plugin, given its identifying key. More...
     
    std::string getLibraryPathForPlugin (PluginKey plugin)
     Return the file path of the dynamic library from which the given plugin will be loaded (if available).

    +

     Return the file path of the dynamic library from which the given plugin will be loaded (if available). More...
     
    + - - + +

    Static Public Member Functions

    static PluginLoadergetInstance ()
     Obtain a pointer to the singleton instance of PluginLoader.

    +

     Obtain a pointer to the singleton instance of PluginLoader. More...
     
    + + - +

    Protected Member Functions

     PluginLoader ()
     
    virtual ~PluginLoader ()

    +

     
    + - +

    Protected Attributes

    Impl * m_impl

    +

     
    + +

    Static Protected Attributes

    static PluginLoaderm_instance
     
    -

    Detailed Description

    +

    Detailed Description

    Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp plugins using the typical plugin-path, library naming, and categorisation conventions described in the Vamp SDK documentation.

    This class is intended to greatly simplify the task of becoming a Vamp plugin host for any C++ application.

    Hosts are not required by the Vamp specification to use the same plugin search path and naming conventions as implemented by this class, and are certainly not required to use this actual class. But we do strongly recommend it.

    -
    Note:
    This class was introduced in version 1.1 of the Vamp plugin SDK.
    +

    This class is not thread-safe; use it from a single application thread, or guard access to it with a mutex.

    +
    Note
    This class was introduced in version 1.1 of the Vamp plugin SDK.
    -

    Definition at line 72 of file PluginLoader.h.

    -

    Member Typedef Documentation

    - +

    Definition at line 75 of file PluginLoader.h.

    +

    Member Typedef Documentation

    + +

    ◆ PluginKey

    +
    @@ -153,19 +166,20 @@
    typedef std::string Vamp::HostExt::PluginLoader::PluginKey
    -
    -
    +

    PluginKey is a string type that is used to identify a plugin uniquely within the scope of "the current system".

    It consists of the lower-cased base name of the plugin library, a colon separator, and the identifier string for the plugin. It is only meaningful in the context of a given plugin path (the one returned by PluginHostAdapter::getPluginPath()).

    Use composePluginKey() to construct a plugin key from a known plugin library name and identifier.

    Note: the fact that the library component of the key is lower-cased implies that library names are matched case-insensitively by the PluginLoader class, regardless of the case sensitivity of the underlying filesystem. (Plugin identifiers are case sensitive, however.) Also, it is not possible to portably extract a working library name from a plugin key, as the result may fail on case-sensitive filesystems. Use getLibraryPathForPlugin() instead.

    -

    Definition at line 101 of file PluginLoader.h.

    +

    Definition at line 104 of file PluginLoader.h.

    - + +

    ◆ PluginKeyList

    +
    @@ -173,16 +187,17 @@
    typedef std::vector<PluginKey> Vamp::HostExt::PluginLoader::PluginKeyList
    -
    -
    +

    PluginKeyList is a sequence of plugin keys, such as returned by listPlugins().

    -

    Definition at line 107 of file PluginLoader.h.

    +

    Definition at line 110 of file PluginLoader.h.

    - + +

    ◆ PluginCategoryHierarchy

    +
    @@ -190,19 +205,20 @@
    typedef std::vector<std::string> Vamp::HostExt::PluginLoader::PluginCategoryHierarchy
    -
    -
    +

    PluginCategoryHierarchy is a sequence of general->specific category names, as may be associated with a single plugin.

    This sequence describes the location of a plugin within a category forest, containing the human-readable names of the plugin's category tree root, followed by each of the nodes down to the leaf containing the plugin.

    -
    See also:
    getPluginCategory()
    +
    See also
    getPluginCategory()
    -

    Definition at line 119 of file PluginLoader.h.

    +

    Definition at line 122 of file PluginLoader.h.

    -

    Member Enumeration Documentation

    - +

    Member Enumeration Documentation

    + +

    ◆ AdapterFlags

    +
    @@ -210,8 +226,7 @@
    enum Vamp::HostExt::PluginLoader::AdapterFlags
    -
    -
    +

    AdapterFlags contains a set of values that may be OR'd together to indicate in which circumstances PluginLoader should use a plugin adapter to make a plugin easier to use for a host that does not want to cater for complex features.

    The available flags are:

    @@ -221,104 +236,171 @@

    ADAPT_ALL_SAFE - Perform all available adaptations that are meaningful for the plugin and "safe". Currently this means to ADAPT_INPUT_DOMAIN if the plugin wants FrequencyDomain input; ADAPT_CHANNEL_COUNT always; and ADAPT_BUFFER_SIZE never.

    ADAPT_ALL - Perform all available adaptations that are meaningful for the plugin.

    See PluginInputDomainAdapter, PluginChannelAdapter and PluginBufferingAdapter for more details of the classes that the loader may use if these flags are set.

    -
    Enumerator:
    - - - - - +
    ADAPT_INPUT_DOMAIN  -
    ADAPT_CHANNEL_COUNT  -
    ADAPT_BUFFER_SIZE  -
    ADAPT_ALL_SAFE  -
    ADAPT_ALL  -
    + + + + +
    Enumerator
    ADAPT_INPUT_DOMAIN 
    ADAPT_CHANNEL_COUNT 
    ADAPT_BUFFER_SIZE 
    ADAPT_ALL_SAFE 
    ADAPT_ALL 
    -
    -
    -

    Definition at line 169 of file PluginLoader.h.

    +

    Definition at line 200 of file PluginLoader.h.

    -

    Constructor & Destructor Documentation

    - +

    Constructor & Destructor Documentation

    + +

    ◆ PluginLoader()

    +
    + + + + + +
    - + - +
    Vamp::HostExt::PluginLoader::PluginLoader Vamp::HostExt::PluginLoader::PluginLoader ( ) [protected]
    - -
    +
    +protected
    +
    - + +

    ◆ ~PluginLoader()

    +
    + + + + + +
    - + - +
    virtual Vamp::HostExt::PluginLoader::~PluginLoader virtual Vamp::HostExt::PluginLoader::~PluginLoader ( ) [protected, virtual]
    - -
    +
    +protectedvirtual
    +
    -

    Member Function Documentation

    - +

    Member Function Documentation

    + +

    ◆ getInstance()

    +
    + + + + + +
    - + - +
    static PluginLoader* Vamp::HostExt::PluginLoader::getInstance static PluginLoader* Vamp::HostExt::PluginLoader::getInstance ( ) [static]
    - -
    +
    +static
    +

    Obtain a pointer to the singleton instance of PluginLoader.

    Use this to obtain your loader object.

    - + +

    ◆ listPlugins()

    +
    - +
    PluginKeyList Vamp::HostExt::PluginLoader::listPlugins PluginKeyList Vamp::HostExt::PluginLoader::listPlugins ( )
    -
    -
    +

    Search for all available Vamp plugins, and return a list of them in the order in which they were found.

    -

    Referenced by enumeratePlugins(), and printPluginCategoryList().

    +

    Referenced by enumeratePlugins(), and printPluginCategoryList().

    - + +

    ◆ listPluginsIn()

    +
    - + + + + + + +
    Plugin* Vamp::HostExt::PluginLoader::loadPlugin PluginKeyList Vamp::HostExt::PluginLoader::listPluginsIn (std::vector< std::string > libraryNames)
    +
    + +

    Search for available Vamp plugins in libraries with the given library names, and return a list of them in the order in which they were found.

    +

    Do not attempt to load any plugin libraries other than those named.

    +

    The library names should be supplied without path or suffix. For example, use "vamp-example-plugins" to find plugins in /install/path/of/vamp-example-plugins.dll (or .so etc). This is the same concept of "library name" as appears in the plugin key:

    See also
    composePluginKey().
    + +
    +
    + +

    ◆ listPluginsNotIn()

    + +
    +
    + + + + + + + + +
    PluginKeyList Vamp::HostExt::PluginLoader::listPluginsNotIn (std::vector< std::string > libraryNames)
    +
    + +

    Search for available Vamp plugins in libraries other than those with the given library names, and return a list of them in the order in which they were found.

    +

    Do not attempt to load any of the libraries named.

    +

    The library names should be supplied without path or suffix. For example, use "vamp-example-plugins" to find plugins not appearing in /install/path/of/vamp-example-plugins.dll (or .so etc). This is the same concept of "library name" as appears in the plugin key:

    See also
    composePluginKey().
    + +
    +
    + +

    ◆ loadPlugin()

    + +
    +
    + + + @@ -341,30 +423,31 @@
    Plugin* Vamp::HostExt::PluginLoader::loadPlugin ( PluginKey  key,
    -
    -
    +

    Load a Vamp plugin, given its identifying key.

    If the plugin could not be loaded, returns 0.

    The returned plugin should be deleted (using the standard C++ delete keyword) after use.

    -
    Parameters:
    +
    Parameters
    adapterFlagsa bitwise OR of the values in the AdapterFlags enumeration, indicating under which circumstances an adapter should be used to wrap the original plugin. If adapterFlags is 0, no optional adapters will be used. Otherwise, the returned plugin may be of an adapter class type which will behave identically to the original plugin, apart from any particular features implemented by the adapter itself.
    -
    See also:
    AdapterFlags, PluginInputDomainAdapter, PluginChannelAdapter
    +
    See also
    AdapterFlags, PluginInputDomainAdapter, PluginChannelAdapter
    -

    Referenced by enumeratePlugins(), printPluginCategoryList(), and runPlugin().

    +

    Referenced by enumeratePlugins(), printPluginCategoryList(), and runPlugin().

    - + +

    ◆ composePluginKey()

    +
    - + @@ -381,87 +464,106 @@
    PluginKey Vamp::HostExt::PluginLoader::composePluginKey PluginKey Vamp::HostExt::PluginLoader::composePluginKey ( std::string  libraryName,
    -
    -
    +
    -

    Given a Vamp plugin library name and plugin identifier, return the corresponding plugin key in a form suitable for passing in to loadPlugin().

    +

    Given a Vamp plugin library name and plugin identifier, return the corresponding plugin key in a form suitable for passing in to loadPlugin().

    -

    Referenced by runPlugin().

    +

    Referenced by runPlugin().

    - + +

    ◆ getPluginCategory()

    +
    - +
    PluginCategoryHierarchy Vamp::HostExt::PluginLoader::getPluginCategory PluginCategoryHierarchy Vamp::HostExt::PluginLoader::getPluginCategory ( PluginKey  plugin)
    -
    -
    +

    Return the category hierarchy for a Vamp plugin, given its identifying key.

    If the plugin has no category information, return an empty hierarchy.

    -
    See also:
    PluginCategoryHierarchy
    +
    See also
    PluginCategoryHierarchy
    -

    Referenced by enumeratePlugins(), and printPluginCategoryList().

    +

    Referenced by enumeratePlugins(), and printPluginCategoryList().

    - + +

    ◆ getLibraryPathForPlugin()

    +
    - +
    std::string Vamp::HostExt::PluginLoader::getLibraryPathForPlugin std::string Vamp::HostExt::PluginLoader::getLibraryPathForPlugin ( PluginKey  plugin)
    -
    -
    +

    Return the file path of the dynamic library from which the given plugin will be loaded (if available).

    -

    Referenced by enumeratePlugins().

    +

    Referenced by enumeratePlugins().

    -

    Member Data Documentation

    - +

    Member Data Documentation

    + +

    ◆ m_impl

    +
    + + + + + +
    - +
    Impl* Vamp::HostExt::PluginLoader::m_impl [protected]Impl* Vamp::HostExt::PluginLoader::m_impl
    - -
    +
    +protected
    +
    -

    Definition at line 230 of file PluginLoader.h.

    +

    Definition at line 261 of file PluginLoader.h.

    - + +

    ◆ m_instance

    +
    + + + + + +
    - +
    PluginLoader* Vamp::HostExt::PluginLoader::m_instance [static, protected]PluginLoader* Vamp::HostExt::PluginLoader::m_instance
    - -
    +
    +staticprotected
    +
    -

    Definition at line 233 of file PluginLoader.h.

    +

    Definition at line 264 of file PluginLoader.h.

    @@ -469,19 +571,15 @@
  • PluginLoader.h
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginLoader.js --- a/code-docs/classVamp_1_1HostExt_1_1PluginLoader.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginLoader.js Fri Feb 24 16:44:47 2017 +0000 @@ -3,11 +3,19 @@ [ "PluginKey", "classVamp_1_1HostExt_1_1PluginLoader.html#a473645bbb3ac5c1a0da2f0f482947c4d", null ], [ "PluginKeyList", "classVamp_1_1HostExt_1_1PluginLoader.html#a0d48b76e4f995110f53e0feeb23f733a", null ], [ "PluginCategoryHierarchy", "classVamp_1_1HostExt_1_1PluginLoader.html#ad6a39aa0c79d8d9209eb0b8dfe9d1364", null ], - [ "AdapterFlags", "classVamp_1_1HostExt_1_1PluginLoader.html#aff3ee11692ce25e0dfb904324cbe3494", null ], + [ "AdapterFlags", "classVamp_1_1HostExt_1_1PluginLoader.html#aff3ee11692ce25e0dfb904324cbe3494", [ + [ "ADAPT_INPUT_DOMAIN", "classVamp_1_1HostExt_1_1PluginLoader.html#aff3ee11692ce25e0dfb904324cbe3494a763a9a0caf512d9671b90c05c2808a09", null ], + [ "ADAPT_CHANNEL_COUNT", "classVamp_1_1HostExt_1_1PluginLoader.html#aff3ee11692ce25e0dfb904324cbe3494a54c43b85382d78e8ea8da192bce3a139", null ], + [ "ADAPT_BUFFER_SIZE", "classVamp_1_1HostExt_1_1PluginLoader.html#aff3ee11692ce25e0dfb904324cbe3494a5c0c389797922630a6b54ffd1eed21f1", null ], + [ "ADAPT_ALL_SAFE", "classVamp_1_1HostExt_1_1PluginLoader.html#aff3ee11692ce25e0dfb904324cbe3494a8220529e851ae30d37f413c40a389e08", null ], + [ "ADAPT_ALL", "classVamp_1_1HostExt_1_1PluginLoader.html#aff3ee11692ce25e0dfb904324cbe3494a3b1e08415c0cbc96f7900eac955ad6d0", null ] + ] ], [ "PluginLoader", "classVamp_1_1HostExt_1_1PluginLoader.html#a5ab9e0281244bef7976c6c0ce1a55c24", null ], [ "~PluginLoader", "classVamp_1_1HostExt_1_1PluginLoader.html#ad74ab52bc6aa2514b3a6b3f679fc492c", null ], [ "getInstance", "classVamp_1_1HostExt_1_1PluginLoader.html#a1d77fa1d58ee4fee2985b5af02380326", null ], [ "listPlugins", "classVamp_1_1HostExt_1_1PluginLoader.html#aff51b52bb68aa2934ccf26ad1d284f28", null ], + [ "listPluginsIn", "classVamp_1_1HostExt_1_1PluginLoader.html#a04c207e7c936710d70f31dba36f1773c", null ], + [ "listPluginsNotIn", "classVamp_1_1HostExt_1_1PluginLoader.html#a0bd7c1f000b6e5411cffd908bd77f931", null ], [ "loadPlugin", "classVamp_1_1HostExt_1_1PluginLoader.html#a964689eb9688cd7e58e8c82ebb0d305f", null ], [ "composePluginKey", "classVamp_1_1HostExt_1_1PluginLoader.html#acc6865d27825c100d7b6f9ed6ecf5207", null ], [ "getPluginCategory", "classVamp_1_1HostExt_1_1PluginLoader.html#a52746ea66339ad981b868a031a3b382d", null ], diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter-members.html --- a/code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,79 +63,79 @@
    Vamp::HostExt::PluginSummarisingAdapter Member List
    -This is the complete list of members for Vamp::HostExt::PluginSummarisingAdapter, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

    This is the complete list of members for Vamp::HostExt::PluginSummarisingAdapter, including all inherited members.

    +
    AveragingMethod enum nameVamp::HostExt::PluginSummarisingAdapter
    ContinuousTimeAverage enum valueVamp::HostExt::PluginSummarisingAdapter
    Count enum valueVamp::HostExt::PluginSummarisingAdapter
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() const Vamp::HostExt::PluginWrapper [virtual]
    getCurrentProgram() const Vamp::HostExt::PluginWrapper [virtual]
    getDescription() const Vamp::HostExt::PluginWrapper [virtual]
    getIdentifier() const Vamp::HostExt::PluginWrapper [virtual]
    getInputDomain() const Vamp::HostExt::PluginWrapper [virtual]
    getMaker() const Vamp::HostExt::PluginWrapper [virtual]
    getMaxChannelCount() const Vamp::HostExt::PluginWrapper [virtual]
    getMinChannelCount() const Vamp::HostExt::PluginWrapper [virtual]
    getName() const Vamp::HostExt::PluginWrapper [virtual]
    getOutputDescriptors() const Vamp::HostExt::PluginWrapper [virtual]
    getParameter(std::string) const Vamp::HostExt::PluginWrapper [virtual]
    getParameterDescriptors() const Vamp::HostExt::PluginWrapper [virtual]
    getPluginVersion() const Vamp::HostExt::PluginWrapper [virtual]
    getPreferredBlockSize() const Vamp::HostExt::PluginWrapper [virtual]
    getPreferredStepSize() const Vamp::HostExt::PluginWrapper [virtual]
    getPrograms() const Vamp::HostExt::PluginWrapper [virtual]
    getRemainingFeatures()Vamp::HostExt::PluginSummarisingAdapter [virtual]
    getSummaryForAllOutputs(SummaryType type, AveragingMethod method=SampleAverage)Vamp::HostExt::PluginSummarisingAdapter
    getSummaryForOutput(int output, SummaryType type, AveragingMethod method=SampleAverage)Vamp::HostExt::PluginSummarisingAdapter
    getType() const Vamp::Plugin [inline, virtual]
    getVampApiVersion() const Vamp::HostExt::PluginWrapper [virtual]
    getWrapper()Vamp::HostExt::PluginWrapper [inline]
    initialise(size_t channels, size_t stepSize, size_t blockSize)Vamp::HostExt::PluginSummarisingAdapter [virtual]
    InputDomain enum nameVamp::Plugin
    m_implVamp::HostExt::PluginSummarisingAdapter [protected]
    m_inputSampleRateVamp::Plugin [protected]
    m_pluginVamp::HostExt::PluginWrapper [protected]
    Maximum enum valueVamp::HostExt::PluginSummarisingAdapter
    Mean enum valueVamp::HostExt::PluginSummarisingAdapter
    Median enum valueVamp::HostExt::PluginSummarisingAdapter
    Minimum enum valueVamp::HostExt::PluginSummarisingAdapter
    Mode enum valueVamp::HostExt::PluginSummarisingAdapter
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugin [inline, protected]
    PluginSummarisingAdapter(Plugin *plugin)Vamp::HostExt::PluginSummarisingAdapter
    PluginWrapper(Plugin *plugin)Vamp::HostExt::PluginWrapper [protected]
    process(const float *const *inputBuffers, RealTime timestamp)Vamp::HostExt::PluginSummarisingAdapter [virtual]
    ProgramList typedefVamp::PluginBase
    reset()Vamp::HostExt::PluginSummarisingAdapter [virtual]
    SampleAverage enum valueVamp::HostExt::PluginSummarisingAdapter
    SegmentBoundaries typedefVamp::HostExt::PluginSummarisingAdapter
    selectProgram(std::string)Vamp::HostExt::PluginWrapper [virtual]
    setParameter(std::string, float)Vamp::HostExt::PluginWrapper [virtual]
    setSummarySegmentBoundaries(const SegmentBoundaries &)Vamp::HostExt::PluginSummarisingAdapter
    StandardDeviation enum valueVamp::HostExt::PluginSummarisingAdapter
    Sum enum valueVamp::HostExt::PluginSummarisingAdapter
    SummaryType enum nameVamp::HostExt::PluginSummarisingAdapter
    TimeDomain enum valueVamp::Plugin
    UnknownSummaryType enum valueVamp::HostExt::PluginSummarisingAdapter
    Variance enum valueVamp::HostExt::PluginSummarisingAdapter
    ~Plugin()Vamp::Plugin [inline, virtual]
    ~PluginBase()Vamp::PluginBase [inline, virtual]
    ~PluginSummarisingAdapter()Vamp::HostExt::PluginSummarisingAdapter [virtual]
    ~PluginWrapper()Vamp::HostExt::PluginWrapper [virtual]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AveragingMethod enum nameVamp::HostExt::PluginSummarisingAdapter
    ContinuousTimeAverage enum valueVamp::HostExt::PluginSummarisingAdapter
    Count enum valueVamp::HostExt::PluginSummarisingAdapter
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() constVamp::HostExt::PluginWrappervirtual
    getCurrentProgram() constVamp::HostExt::PluginWrappervirtual
    getDescription() constVamp::HostExt::PluginWrappervirtual
    getIdentifier() constVamp::HostExt::PluginWrappervirtual
    getInputDomain() constVamp::HostExt::PluginWrappervirtual
    getMaker() constVamp::HostExt::PluginWrappervirtual
    getMaxChannelCount() constVamp::HostExt::PluginWrappervirtual
    getMinChannelCount() constVamp::HostExt::PluginWrappervirtual
    getName() constVamp::HostExt::PluginWrappervirtual
    getOutputDescriptors() constVamp::HostExt::PluginWrappervirtual
    getParameter(std::string) constVamp::HostExt::PluginWrappervirtual
    getParameterDescriptors() constVamp::HostExt::PluginWrappervirtual
    getPluginVersion() constVamp::HostExt::PluginWrappervirtual
    getPreferredBlockSize() constVamp::HostExt::PluginWrappervirtual
    getPreferredStepSize() constVamp::HostExt::PluginWrappervirtual
    getPrograms() constVamp::HostExt::PluginWrappervirtual
    getRemainingFeatures()Vamp::HostExt::PluginSummarisingAdaptervirtual
    getSummaryForAllOutputs(SummaryType type, AveragingMethod method=SampleAverage)Vamp::HostExt::PluginSummarisingAdapter
    getSummaryForOutput(int output, SummaryType type, AveragingMethod method=SampleAverage)Vamp::HostExt::PluginSummarisingAdapter
    getType() constVamp::Plugininlinevirtual
    getVampApiVersion() constVamp::HostExt::PluginWrappervirtual
    getWrapper()Vamp::HostExt::PluginWrapperinline
    initialise(size_t channels, size_t stepSize, size_t blockSize)Vamp::HostExt::PluginSummarisingAdaptervirtual
    InputDomain enum nameVamp::Plugin
    m_implVamp::HostExt::PluginSummarisingAdapterprotected
    m_inputSampleRateVamp::Pluginprotected
    m_pluginVamp::HostExt::PluginWrapperprotected
    Maximum enum valueVamp::HostExt::PluginSummarisingAdapter
    Mean enum valueVamp::HostExt::PluginSummarisingAdapter
    Median enum valueVamp::HostExt::PluginSummarisingAdapter
    Minimum enum valueVamp::HostExt::PluginSummarisingAdapter
    Mode enum valueVamp::HostExt::PluginSummarisingAdapter
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugininlineprotected
    PluginSummarisingAdapter(Plugin *plugin)Vamp::HostExt::PluginSummarisingAdapter
    PluginWrapper(Plugin *plugin)Vamp::HostExt::PluginWrapperprotected
    process(const float *const *inputBuffers, RealTime timestamp)Vamp::HostExt::PluginSummarisingAdaptervirtual
    ProgramList typedefVamp::PluginBase
    reset()Vamp::HostExt::PluginSummarisingAdaptervirtual
    SampleAverage enum valueVamp::HostExt::PluginSummarisingAdapter
    SegmentBoundaries typedefVamp::HostExt::PluginSummarisingAdapter
    selectProgram(std::string)Vamp::HostExt::PluginWrappervirtual
    setParameter(std::string, float)Vamp::HostExt::PluginWrappervirtual
    setSummarySegmentBoundaries(const SegmentBoundaries &)Vamp::HostExt::PluginSummarisingAdapter
    StandardDeviation enum valueVamp::HostExt::PluginSummarisingAdapter
    Sum enum valueVamp::HostExt::PluginSummarisingAdapter
    SummaryType enum nameVamp::HostExt::PluginSummarisingAdapter
    TimeDomain enum valueVamp::Plugin
    UnknownSummaryType enum valueVamp::HostExt::PluginSummarisingAdapter
    Variance enum valueVamp::HostExt::PluginSummarisingAdapter
    ~Plugin()Vamp::Plugininlinevirtual
    ~PluginBase()Vamp::PluginBaseinlinevirtual
    ~PluginSummarisingAdapter()Vamp::HostExt::PluginSummarisingAdaptervirtual
    ~PluginWrapper()Vamp::HostExt::PluginWrappervirtual
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html --- a/code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Vamp::HostExt::PluginSummarisingAdapter Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    Vamp::HostExt::PluginSummarisingAdapter Class Reference
    @@ -91,122 +78,166 @@
    Inheritance graph
    - + + + +
    [legend]
    - -

    List of all members.

    - - - - + + + + + - + + + - - + + + + + - +

    +

    Public Types

    enum  SummaryType {
    -  Minimum = 0, -Maximum = 1, -Mean = 2, -Median = 3, -
    -  Mode = 4, -Sum = 5, -Variance = 6, -StandardDeviation = 7, -
    -  Count = 8, -UnknownSummaryType = 999 -
    +
    enum  SummaryType {
    +  Minimum = 0, +Maximum = 1, +Mean = 2, +Median = 3, +
    +  Mode = 4, +Sum = 5, +Variance = 6, +StandardDeviation = 7, +
    +  Count = 8, +UnknownSummaryType = 999 +
    }
    enum  AveragingMethod { SampleAverage = 0, -ContinuousTimeAverage = 1 - }
     AveragingMethod indicates how the adapter should handle average-based summaries of features whose results are not equally spaced in time. More...
     
    enum  AveragingMethod { SampleAverage = 0, +ContinuousTimeAverage = 1 + }
     AveragingMethod indicates how the adapter should handle average-based summaries of features whose results are not equally spaced in time. More...
     
    typedef std::set< RealTimeSegmentBoundaries
     
    enum  InputDomain { TimeDomain, FrequencyDomain }
    typedef std::vector
    -< OutputDescriptor
    OutputList
     
    typedef std::vector< OutputDescriptorOutputList
     
    typedef std::vector< FeatureFeatureList
    typedef std::map< int,
    -FeatureList
    FeatureSet
    typedef std::vector
    -< ParameterDescriptor
    ParameterList
     
    typedef std::map< int, FeatureListFeatureSet
     
    typedef std::vector< ParameterDescriptorParameterList
     
    typedef std::vector< std::string > ProgramList

    +

     
    + - + + + - + + - + + - + + - + + - + + - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - + + + + +

    Public Member Functions

     PluginSummarisingAdapter (Plugin *plugin)
     Construct a PluginSummarisingAdapter wrapping the given plugin.
     Construct a PluginSummarisingAdapter wrapping the given plugin. More...
     
    virtual ~PluginSummarisingAdapter ()
     
    bool initialise (size_t channels, size_t stepSize, size_t blockSize)
     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).
     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). More...
     
    void reset ()
     Reset the plugin after use, to prepare it for another clean run.
     Reset the plugin after use, to prepare it for another clean run. More...
     
    FeatureSet process (const float *const *inputBuffers, RealTime timestamp)
     Process a single block of input data.
     Process a single block of input data. More...
     
    FeatureSet getRemainingFeatures ()
     After all blocks have been processed, calculate and return any remaining features derived from the complete input.
     After all blocks have been processed, calculate and return any remaining features derived from the complete input. More...
     
    void setSummarySegmentBoundaries (const SegmentBoundaries &)
     Specify a series of segment boundaries, such that one summary will be returned for each of the contiguous intra-boundary segments.
     Specify a series of segment boundaries, such that one summary will be returned for each of the contiguous intra-boundary segments. More...
     
    FeatureList getSummaryForOutput (int output, SummaryType type, AveragingMethod method=SampleAverage)
     Return summaries of the features that were returned on the given output, using the given SummaryType and AveragingMethod.
     Return summaries of the features that were returned on the given output, using the given SummaryType and AveragingMethod. More...
     
    FeatureSet getSummaryForAllOutputs (SummaryType type, AveragingMethod method=SampleAverage)
     Return summaries of the features that were returned on all of the plugin's outputs, using the given SummaryType and AveragingMethod.
    InputDomain getInputDomain () const
     Get the plugin's required input domain.
    unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin.
    std::string getIdentifier () const
     Get the computer-usable name of the plugin.
    std::string getName () const
     Get a human-readable name or title of the plugin.
    std::string getDescription () const
     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".
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form.
    int getPluginVersion () const
     Get the version number of the plugin.
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin.
    ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin.
    float getParameter (std::string) const
     Get the value of a named parameter.
     Return summaries of the features that were returned on all of the plugin's outputs, using the given SummaryType and AveragingMethod. More...
     
    InputDomain getInputDomain () const
     Get the plugin's required input domain. More...
     
    unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin. More...
     
    std::string getIdentifier () const
     Get the computer-usable name of the plugin. More...
     
    std::string getName () const
     Get a human-readable name or title of the plugin. More...
     
    std::string getDescription () const
     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". More...
     
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form. More...
     
    int getPluginVersion () const
     Get the version number of the plugin. More...
     
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin. More...
     
    ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin. More...
     
    float getParameter (std::string) const
     Get the value of a named parameter. More...
     
    void setParameter (std::string, float)
     Set a named parameter.
    ProgramList getPrograms () const
     Get the program settings available in this plugin.
    std::string getCurrentProgram () const
     Get the current program.
     Set a named parameter. More...
     
    ProgramList getPrograms () const
     Get the program settings available in this plugin. More...
     
    std::string getCurrentProgram () const
     Get the current program. More...
     
    void selectProgram (std::string)
     Select a program.
    size_t getPreferredStepSize () const
     Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.
    size_t getPreferredBlockSize () const
     Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).
    size_t getMinChannelCount () const
     Get the minimum supported number of input channels.
    size_t getMaxChannelCount () const
     Get the maximum supported number of input channels.
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin.
     Select a program. More...
     
    size_t getPreferredStepSize () const
     Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin. More...
     
    size_t getPreferredBlockSize () const
     Get the preferred block size (window size – the number of sample frames passed in each block to the process() function). More...
     
    size_t getMinChannelCount () const
     Get the minimum supported number of input channels. More...
     
    size_t getMaxChannelCount () const
     Get the maximum supported number of input channels. More...
     
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin. More...
     
    template<typename WrapperType >
    WrapperType * getWrapper ()
     Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present.
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

     Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present. More...
     
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase. More...
     
    + + + +

    Protected Attributes

    Impl * m_impl
     
    Pluginm_plugin
     
    float m_inputSampleRate
     
    -

    Detailed Description

    +

    Detailed Description

    PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods such as mean and median averages of output features, for use in any context where an available plugin produces individual values but the result that is actually needed is some sort of aggregate.

    To make use of PluginSummarisingAdapter, the host should configure, initialise and run the plugin through the adapter interface just as normal. Then, after the process and getRemainingFeatures methods have been properly called and processing is complete, the host may call getSummaryForOutput or getSummaryForAllOutputs to obtain summarised features: averages, maximum values, etc, depending on the SummaryType passed to the function.

    By default PluginSummarisingAdapter calculates a single summary of each output's feature across the whole duration of processed audio. A host needing summaries of sub-segments of the whole audio may call setSummarySegmentBoundaries before retrieving the summaries, providing a list of times such that one summary will be provided for each segment between two consecutive times.

    PluginSummarisingAdapter is straightforward rather than fast. It calculates all of the summary types for all outputs always, and then returns only the ones that are requested. It is designed on the basis that, for most features, summarising and storing summarised results is far cheaper than calculating the results in the first place. If this is not true for your particular feature, PluginSummarisingAdapter may not be the best approach for you.

    -
    Note:
    This class was introduced in version 2.0 of the Vamp plugin SDK.
    +
    Note
    This class was introduced in version 2.0 of the Vamp plugin SDK.
    -

    Definition at line 86 of file PluginSummarisingAdapter.h.

    -

    Member Typedef Documentation

    - +

    Definition at line 86 of file PluginSummarisingAdapter.h.

    +

    Member Typedef Documentation

    + +

    ◆ SegmentBoundaries

    +
    @@ -214,90 +245,136 @@
    typedef std::set<RealTime> Vamp::HostExt::PluginSummarisingAdapter::SegmentBoundaries
    -
    -
    +
    -

    Definition at line 104 of file PluginSummarisingAdapter.h.

    +

    Definition at line 104 of file PluginSummarisingAdapter.h.

    - + +

    ◆ OutputList

    +
    + + + + + +
    - +
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList [inherited]typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList
    - -
    +
    +inherited
    +
    -

    Definition at line 327 of file vamp-sdk/Plugin.h.

    +

    Definition at line 335 of file vamp-sdk/Plugin.h.

    - + +

    ◆ FeatureList

    +
    + + + + + +
    - +
    typedef std::vector<Feature> Vamp::Plugin::FeatureList [inherited]typedef std::vector<Feature> Vamp::Plugin::FeatureList
    - -
    +
    +inherited
    +
    -

    Definition at line 385 of file vamp-sdk/Plugin.h.

    +

    Definition at line 393 of file vamp-sdk/Plugin.h.

    - + +

    ◆ FeatureSet

    +
    + + + + + +
    - +
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet [inherited]typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet
    - -
    +
    +inherited
    +
    -

    Definition at line 387 of file vamp-sdk/Plugin.h.

    +

    Definition at line 395 of file vamp-sdk/Plugin.h.

    - + +

    ◆ ParameterList

    +
    + + + + + +
    - +
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList [inherited]typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList
    - -
    +
    +inherited
    +
    -

    Definition at line 199 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 203 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ ProgramList

    +
    + + + + + +
    - +
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList [inherited]typedef std::vector<std::string> Vamp::PluginBase::ProgramList
    - -
    +
    +inherited
    +
    -

    Definition at line 221 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 225 of file vamp-sdk/PluginBase.h.

    -

    Member Enumeration Documentation

    - +

    Member Enumeration Documentation

    + +

    ◆ SummaryType

    +
    -
    -
    Enumerator:
    - - - - - - - - - - +
    +
    Minimum  -
    Maximum  -
    Mean  -
    Median  -
    Mode  -
    Sum  -
    Variance  -
    StandardDeviation  -
    Count  -
    UnknownSummaryType  -
    + + + + + + + + + +
    Enumerator
    Minimum 
    Maximum 
    Mean 
    Median 
    Mode 
    Sum 
    Variance 
    StandardDeviation 
    Count 
    UnknownSummaryType 
    -
    -
    -

    Definition at line 121 of file PluginSummarisingAdapter.h.

    +

    Definition at line 121 of file PluginSummarisingAdapter.h.

    - + +

    ◆ AveragingMethod

    +
    -
    +

    AveragingMethod indicates how the adapter should handle average-based summaries of features whose results are not equally spaced in time.

    If SampleAverage is specified, summary types based on averages will be calculated by treating each result individually without regard to its time: for example, the mean will be the sum of all values divided by the number of values.

    If ContinuousTimeAverage is specified, each feature will be considered to have a duration, either as specified in the feature's duration field, or until the following feature: thus, for example, the mean will be the sum of the products of values and durations, divided by the total duration.

    Although SampleAverage is useful for many types of feature, ContinuousTimeAverage is essential for some situations, for example finding the result that spans the largest proportion of the input given a feature that emits a new result only when the value changes (the modal value integrated over time).

    -
    Enumerator:
    - - +
    SampleAverage  -
    ContinuousTimeAverage  -
    + +
    Enumerator
    SampleAverage 
    ContinuousTimeAverage 
    -
    -
    -

    Definition at line 157 of file PluginSummarisingAdapter.h.

    +

    Definition at line 157 of file PluginSummarisingAdapter.h.

    - + +

    ◆ InputDomain

    + +
    +
    + + + + + +
    + + + + +
    enum Vamp::Plugin::InputDomain
    +
    +inherited
    +
    + + + +
    Enumerator
    TimeDomain 
    FrequencyDomain 
    + +

    Definition at line 152 of file vamp-sdk/Plugin.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ PluginSummarisingAdapter()

    +
    - - -
    enum Vamp::Plugin::InputDomain [inherited]
    -
    -
    -
    Enumerator:
    - - -
    TimeDomain  -
    FrequencyDomain  -
    -
    -
    - -

    Definition at line 152 of file vamp-sdk/Plugin.h.

    - -
    -
    -

    Constructor & Destructor Documentation

    - -
    -
    - - - +
    Vamp::HostExt::PluginSummarisingAdapter::PluginSummarisingAdapter Vamp::HostExt::PluginSummarisingAdapter::PluginSummarisingAdapter ( Plugin plugin)
    -
    -
    +

    Construct a PluginSummarisingAdapter wrapping the given plugin.

    The adapter takes ownership of the plugin, which will be deleted when the adapter is deleted.

    - + +

    ◆ ~PluginSummarisingAdapter()

    +
    + + + + + +
    - + - +
    virtual Vamp::HostExt::PluginSummarisingAdapter::~PluginSummarisingAdapter virtual Vamp::HostExt::PluginSummarisingAdapter::~PluginSummarisingAdapter ( ) [virtual]
    - -
    +
    +virtual
    +
    -

    Member Function Documentation

    - +

    Member Function Documentation

    + +

    ◆ initialise()

    +
    + + + + + +
    - + @@ -450,47 +531,65 @@ - +
    bool Vamp::HostExt::PluginSummarisingAdapter::initialise bool Vamp::HostExt::PluginSummarisingAdapter::initialise ( size_t  inputChannels,
    ) [virtual]
    - -
    +
    +virtual
    +

    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).

    The input sample rate should have been already specified at construction time.

    Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported.

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Implements Vamp::Plugin.

    - + +

    ◆ reset()

    +
    + + + + + +
    - + - +
    void Vamp::HostExt::PluginSummarisingAdapter::reset void Vamp::HostExt::PluginSummarisingAdapter::reset ( ) [virtual]
    - -
    +
    +virtual
    +

    Reset the plugin after use, to prepare it for another clean run.

    Not called for the first initialisation (i.e. initialise must also do a reset).

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Implements Vamp::Plugin.

    - + +

    ◆ process()

    +
    + + + + + +
    - + @@ -504,55 +603,69 @@ - +
    FeatureSet Vamp::HostExt::PluginSummarisingAdapter::process FeatureSet Vamp::HostExt::PluginSummarisingAdapter::process ( const float *const *  inputBuffers,
    ) [virtual]
    - -
    +
    +virtual
    +

    Process a single block of input data.

    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.

    -

    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).

    +

    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).

    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.)

    -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    +

    Implements Vamp::Plugin.

    - + +

    ◆ getRemainingFeatures()

    + +
    +
    + + + + + +
    + + + + + + + +
    FeatureSet Vamp::HostExt::PluginSummarisingAdapter::getRemainingFeatures ()
    +
    +virtual
    +
    + +

    After all blocks have been processed, calculate and return any remaining features derived from the complete input.

    + +

    Implements Vamp::Plugin.

    + +
    +
    + +

    ◆ setSummarySegmentBoundaries()

    +
    -
    - -

    After all blocks have been processed, calculate and return any remaining features derived from the complete input.

    - -

    Reimplemented from Vamp::HostExt::PluginWrapper.

    - -
    -
    - -
    -
    - - - +
    void Vamp::HostExt::PluginSummarisingAdapter::setSummarySegmentBoundaries void Vamp::HostExt::PluginSummarisingAdapter::setSummarySegmentBoundaries ( const SegmentBoundaries )
    -
    -
    +

    Specify a series of segment boundaries, such that one summary will be returned for each of the contiguous intra-boundary segments.

    This function must be called before getSummaryForOutput or getSummaryForAllOutputs.

    @@ -560,12 +673,14 @@
    - + +

    ◆ getSummaryForOutput()

    +
    - + @@ -588,20 +703,21 @@
    FeatureList Vamp::HostExt::PluginSummarisingAdapter::getSummaryForOutput FeatureList Vamp::HostExt::PluginSummarisingAdapter::getSummaryForOutput ( int  output,
    -
    -
    +

    Return summaries of the features that were returned on the given output, using the given SummaryType and AveragingMethod.

    -

    The plugin must have been fully run (process() and getRemainingFeatures() calls all made as appropriate) before this function is called.

    +

    The plugin must have been fully run (process() and getRemainingFeatures() calls all made as appropriate) before this function is called.

    - + +

    ◆ getSummaryForAllOutputs()

    +
    - + @@ -618,71 +734,95 @@
    FeatureSet Vamp::HostExt::PluginSummarisingAdapter::getSummaryForAllOutputs FeatureSet Vamp::HostExt::PluginSummarisingAdapter::getSummaryForAllOutputs ( SummaryType  type,
    -
    -
    +

    Return summaries of the features that were returned on all of the plugin's outputs, using the given SummaryType and AveragingMethod.

    -

    The plugin must have been fully run (process() and getRemainingFeatures() calls all made as appropriate) before this function is called.

    +

    The plugin must have been fully run (process() and getRemainingFeatures() calls all made as appropriate) before this function is called.

    - + +

    ◆ getInputDomain()

    +
    + + + + + +
    - + - +
    InputDomain Vamp::HostExt::PluginWrapper::getInputDomain InputDomain Vamp::HostExt::PluginWrapper::getInputDomain ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the plugin's required input domain.

    -

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    -

    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 process(). 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.

    +

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    +

    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 process(). 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.

    Implements Vamp::Plugin.

    -

    Reimplemented in Vamp::HostExt::PluginInputDomainAdapter.

    +
    +
    + +

    ◆ getVampApiVersion()

    - - -
    + + + + + +
    - + - +
    unsigned int Vamp::HostExt::PluginWrapper::getVampApiVersion unsigned int Vamp::HostExt::PluginWrapper::getVampApiVersion ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the Vamp API compatibility level of the plugin.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getIdentifier()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getIdentifier std::string Vamp::HostExt::PluginWrapper::getIdentifier ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the computer-usable name of the plugin.

    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.

    @@ -693,19 +833,28 @@
    - + +

    ◆ getName()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getName std::string Vamp::HostExt::PluginWrapper::getName ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get a human-readable name or title of the plugin.

    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").

    @@ -715,19 +864,28 @@
    - + +

    ◆ getDescription()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getDescription std::string Vamp::HostExt::PluginWrapper::getDescription ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    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".

    May be empty if the name has said it all already.

    @@ -737,19 +895,28 @@
    - + +

    ◆ getMaker()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getMaker std::string Vamp::HostExt::PluginWrapper::getMaker ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the name of the author or vendor of the plugin in human-readable form.

    This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar.

    @@ -758,19 +925,28 @@
    - + +

    ◆ getPluginVersion()

    +
    + + + + + +
    - + - +
    int Vamp::HostExt::PluginWrapper::getPluginVersion int Vamp::HostExt::PluginWrapper::getPluginVersion ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the version number of the plugin.

    @@ -778,19 +954,28 @@
    - + +

    ◆ getCopyright()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getCopyright std::string Vamp::HostExt::PluginWrapper::getCopyright ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the copyright statement or licensing summary for the plugin.

    This can be an informative text, without the same presentation constraints as mentioned for getMaker above.

    @@ -799,54 +984,77 @@
    - + +

    ◆ getParameterDescriptors()

    +
    + + + + + +
    - + - +
    ParameterList Vamp::HostExt::PluginWrapper::getParameterDescriptors ParameterList Vamp::HostExt::PluginWrapper::getParameterDescriptors ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the controllable parameters of this plugin.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getParameter()

    +
    + + + + + +
    - + - +
    float Vamp::HostExt::PluginWrapper::getParameter float Vamp::HostExt::PluginWrapper::getParameter ( std::string  ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the value of a named parameter.

    The argument is the identifier field from that parameter's descriptor.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ setParameter()

    +
    + + + + + +
    - + @@ -860,293 +1068,404 @@ - +
    void Vamp::HostExt::PluginWrapper::setParameter void Vamp::HostExt::PluginWrapper::setParameter ( std::string  ,
    ) [virtual, inherited]
    - -
    +
    +virtualinherited
    +

    Set a named parameter.

    The first argument is the identifier field from that parameter's descriptor.

    Reimplemented from Vamp::PluginBase.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter.

    +
    +
    + +

    ◆ getPrograms()

    - - -
    + + + + + +
    - + - +
    ProgramList Vamp::HostExt::PluginWrapper::getPrograms ProgramList Vamp::HostExt::PluginWrapper::getPrograms ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the program settings available in this plugin.

    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.

    The programs must have unique names.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getCurrentProgram()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getCurrentProgram std::string Vamp::HostExt::PluginWrapper::getCurrentProgram ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the current program.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ selectProgram()

    +
    + + + + + +
    - + - +
    void Vamp::HostExt::PluginWrapper::selectProgram void Vamp::HostExt::PluginWrapper::selectProgram ( std::string  ) [virtual, inherited]
    - -
    +
    +virtualinherited
    +

    Select a program.

    (If the given program name is not one of the available programs, do nothing.)

    Reimplemented from Vamp::PluginBase.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter.

    +
    +
    + +

    ◆ getPreferredStepSize()

    + +
    +
    + + + + + +
    + + + + + + + +
    size_t Vamp::HostExt::PluginWrapper::getPreferredStepSize () const
    +
    +virtualinherited
    +
    + +

    Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    +

    This should be called before initialise().

    +

    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 initialise() call.

    + +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getPreferredBlockSize()

    +
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginWrapper::getPreferredStepSize size_t Vamp::HostExt::PluginWrapper::getPreferredBlockSize ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +
    -

    Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    -

    This should be called before initialise().

    -

    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 initialise() call.

    +

    Get the preferred block size (window size – the number of sample frames passed in each block to the process() function).

    +

    This should be called before initialise().

    +

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    -

    Reimplemented from Vamp::Plugin.

    - -

    Reimplemented in Vamp::HostExt::PluginInputDomainAdapter, and Vamp::HostExt::PluginBufferingAdapter.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getMinChannelCount()

    +
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginWrapper::getPreferredBlockSize size_t Vamp::HostExt::PluginWrapper::getMinChannelCount ( ) const [virtual, inherited] const
    - -
    - -

    Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).

    -

    This should be called before initialise().

    -

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    - -

    Reimplemented from Vamp::Plugin.

    - -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, and Vamp::HostExt::PluginInputDomainAdapter.

    - -
    - - -
    -
    - - - - - - - -
    size_t Vamp::HostExt::PluginWrapper::getMinChannelCount () const [virtual, inherited]
    -
    -
    +
    +virtualinherited
    +

    Get the minimum supported number of input channels.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getMaxChannelCount()

    +
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginWrapper::getMaxChannelCount size_t Vamp::HostExt::PluginWrapper::getMaxChannelCount ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the maximum supported number of input channels.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getOutputDescriptors()

    +
    + + + + + +
    - + - +
    OutputList Vamp::HostExt::PluginWrapper::getOutputDescriptors OutputList Vamp::HostExt::PluginWrapper::getOutputDescriptors ( ) const [virtual, inherited] const
    - -
    +
    +virtualinherited
    +

    Get the outputs of this plugin.

    -

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    +

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    Implements Vamp::Plugin.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter.

    +
    +
    + +

    ◆ getWrapper()

    - - -
    template<typename WrapperType >
    + + + + + +
    - + - +
    WrapperType* Vamp::HostExt::PluginWrapper::getWrapper WrapperType* Vamp::HostExt::PluginWrapper::getWrapper ( ) [inline, inherited]
    - -
    +
    +inlineinherited
    +

    Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present.

    -

    This is useful in situations where a plugin is wrapped by multiple different wrappers (one inside another) and the host wants to call some wrapper-specific function on one of the layers without having to care about the order in which they are wrapped. For example, the plugin returned by PluginLoader::loadPlugin may have more than one wrapper; if the host wanted to query or fine-tune some property of one of them, it would be hard to do so without knowing the order of the wrappers. This function therefore gives direct access to the wrapper of a particular type.

    +

    This is useful in situations where a plugin is wrapped by multiple different wrappers (one inside another) and the host wants to call some wrapper-specific function on one of the layers without having to care about the order in which they are wrapped. For example, the plugin returned by PluginLoader::loadPlugin may have more than one wrapper; if the host wanted to query or fine-tune some property of one of them, it would be hard to do so without knowing the order of the wrappers. This function therefore gives direct access to the wrapper of a particular type.

    -

    Definition at line 116 of file PluginWrapper.h.

    +

    Definition at line 116 of file PluginWrapper.h.

    -

    References Vamp::HostExt::PluginWrapper::getWrapper().

    +

    References Vamp::HostExt::PluginWrapper::getWrapper().

    -

    Referenced by Vamp::HostExt::PluginWrapper::getWrapper(), and runPlugin().

    +

    Referenced by Vamp::HostExt::PluginWrapper::getWrapper(), and runPlugin().

    - + +

    ◆ getType()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::Plugin::getType virtual std::string Vamp::Plugin::getType ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    Do not reimplement this function in your subclass.

    Implements Vamp::PluginBase.

    -

    Definition at line 430 of file vamp-sdk/Plugin.h.

    +

    Definition at line 438 of file vamp-sdk/Plugin.h.

    -

    Member Data Documentation

    - +

    Member Data Documentation

    + +

    ◆ m_impl

    +
    + + + + + +
    - +
    Impl* Vamp::HostExt::PluginSummarisingAdapter::m_impl [protected]Impl* Vamp::HostExt::PluginSummarisingAdapter::m_impl
    - -
    +
    +protected
    +
    -

    Definition at line 187 of file PluginSummarisingAdapter.h.

    +

    Definition at line 187 of file PluginSummarisingAdapter.h.

    - + +

    ◆ m_plugin

    +
    + + + + + +
    - +
    Plugin* Vamp::HostExt::PluginWrapper::m_plugin [protected, inherited]Plugin* Vamp::HostExt::PluginWrapper::m_plugin
    - -
    +
    +protectedinherited
    +
    -

    Definition at line 126 of file PluginWrapper.h.

    +

    Definition at line 126 of file PluginWrapper.h.

    - + +

    ◆ m_inputSampleRate

    + @@ -1154,19 +1473,15 @@
  • PluginSummarisingAdapter.h
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter.js --- a/code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,14 +1,31 @@ var classVamp_1_1HostExt_1_1PluginSummarisingAdapter = [ [ "SegmentBoundaries", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a74e7f93c745802a2409185b63922466b", null ], - [ "OutputList", "classVamp_1_1Plugin.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], - [ "FeatureList", "classVamp_1_1Plugin.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], - [ "FeatureSet", "classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], - [ "ParameterList", "classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], - [ "ProgramList", "classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20", null ], - [ "SummaryType", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#af504f810448961fc489e9b6572471705", null ], - [ "AveragingMethod", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a294e9eed9c541dcedbaa4f2dfda1ac76", null ], - [ "InputDomain", "classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc", null ], + [ "OutputList", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], + [ "FeatureList", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], + [ "FeatureSet", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], + [ "ParameterList", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], + [ "ProgramList", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a7f66f00437b21e5f694fe02356b12f20", null ], + [ "SummaryType", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#af504f810448961fc489e9b6572471705", [ + [ "Minimum", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#af504f810448961fc489e9b6572471705a320b8a4cd0c3d492aeb17f7fc4ed930c", null ], + [ "Maximum", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#af504f810448961fc489e9b6572471705adefff4e5073aa298a96d99b92025b7f9", null ], + [ "Mean", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#af504f810448961fc489e9b6572471705ae8a03f013397d08c85734e47524f5a75", null ], + [ "Median", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#af504f810448961fc489e9b6572471705aadde1f9a5a6557f25223279433699195", null ], + [ "Mode", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#af504f810448961fc489e9b6572471705a1688d03811a2268daa062220f5be0614", null ], + [ "Sum", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#af504f810448961fc489e9b6572471705a9496664a605b3aa706f909070d73060b", null ], + [ "Variance", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#af504f810448961fc489e9b6572471705ae965a9e5381745e6e3a75342d7c8e075", null ], + [ "StandardDeviation", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#af504f810448961fc489e9b6572471705a9342cd2209e20b93843cd389d9511ec7", null ], + [ "Count", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#af504f810448961fc489e9b6572471705a2395772fa2e74b3f617e20c76d579ad6", null ], + [ "UnknownSummaryType", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#af504f810448961fc489e9b6572471705aeed3a16d665eb789053b82fdd386ee7c", null ] + ] ], + [ "AveragingMethod", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a294e9eed9c541dcedbaa4f2dfda1ac76", [ + [ "SampleAverage", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a294e9eed9c541dcedbaa4f2dfda1ac76ae8833d866dec593d29f1f4e3cd1e6e36", null ], + [ "ContinuousTimeAverage", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a294e9eed9c541dcedbaa4f2dfda1ac76a6af6316c12e29bdbdff90c5fec764baa", null ] + ] ], + [ "InputDomain", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a39cb7649d6dcc20e4cb1640cd55907bc", [ + [ "TimeDomain", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a39cb7649d6dcc20e4cb1640cd55907bcad4a9f31b958a43a9757af7893aa2e7ff", null ], + [ "FrequencyDomain", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a39cb7649d6dcc20e4cb1640cd55907bcaa30e7877ab33f76acbdca28607e6ab53", null ] + ] ], [ "PluginSummarisingAdapter", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a31b41f54560a2ae6c3ec1a945f3f1d68", null ], [ "~PluginSummarisingAdapter", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a47846e7cc0ef4a29335e08b9645316d0", null ], [ "initialise", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a1e994576d43efe103bf8f83b69716745", null ], @@ -18,28 +35,28 @@ [ "setSummarySegmentBoundaries", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a1a659500ca1290a228c0b9b91f6ac0b7", null ], [ "getSummaryForOutput", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#abe13faa68d3244b962dbd362671e23f9", null ], [ "getSummaryForAllOutputs", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#ac3f93d9ca2d25c9fdc80d0ba10eaaa6b", null ], - [ "getInputDomain", "classVamp_1_1HostExt_1_1PluginWrapper.html#ae203faf8384c9e1fddc381409aa8a214", null ], - [ "getVampApiVersion", "classVamp_1_1HostExt_1_1PluginWrapper.html#a74147fda6b44ff2169bd4a1eea0d46ff", null ], - [ "getIdentifier", "classVamp_1_1HostExt_1_1PluginWrapper.html#a4baa9e48f717c2b3e7f92496aa39d904", null ], - [ "getName", "classVamp_1_1HostExt_1_1PluginWrapper.html#ac70a3265bb25aeb03f6dd8f8a0442088", null ], - [ "getDescription", "classVamp_1_1HostExt_1_1PluginWrapper.html#ac334f699c0996055942785410d8a065c", null ], - [ "getMaker", "classVamp_1_1HostExt_1_1PluginWrapper.html#a59d5a2298951b317995675e664b1c7bb", null ], - [ "getPluginVersion", "classVamp_1_1HostExt_1_1PluginWrapper.html#a47e1acf1696813008324a915c9ba59c5", null ], - [ "getCopyright", "classVamp_1_1HostExt_1_1PluginWrapper.html#ae14f6ecb78be909c4cd5f0cdaed3c566", null ], - [ "getParameterDescriptors", "classVamp_1_1HostExt_1_1PluginWrapper.html#a9be71561265c2e6e43b7feaddaa91f36", null ], - [ "getParameter", "classVamp_1_1HostExt_1_1PluginWrapper.html#a034920f56c8d7609a85447c42556048c", null ], - [ "setParameter", "classVamp_1_1HostExt_1_1PluginWrapper.html#a651b15a5dc4c27942ac0c87c6092bfe5", null ], - [ "getPrograms", "classVamp_1_1HostExt_1_1PluginWrapper.html#a131fbe1df81215020b9aa8cecef4c802", null ], - [ "getCurrentProgram", "classVamp_1_1HostExt_1_1PluginWrapper.html#a7a312dd42d161064b70afd7ff24c0651", null ], - [ "selectProgram", "classVamp_1_1HostExt_1_1PluginWrapper.html#a074978333a74fdcf336a8a1d8ea20abf", null ], - [ "getPreferredStepSize", "classVamp_1_1HostExt_1_1PluginWrapper.html#a0137d93d7019bacc31104836fb4d352e", null ], - [ "getPreferredBlockSize", "classVamp_1_1HostExt_1_1PluginWrapper.html#a2c62a656313a819650656643a867ad01", null ], - [ "getMinChannelCount", "classVamp_1_1HostExt_1_1PluginWrapper.html#a2b28f1cf37d46a514f1e1411a6037bf8", null ], - [ "getMaxChannelCount", "classVamp_1_1HostExt_1_1PluginWrapper.html#a985eb21f1827bfbc3950d6871b107a58", null ], - [ "getOutputDescriptors", "classVamp_1_1HostExt_1_1PluginWrapper.html#a5a9411305f713b4c9827844b89acd270", null ], - [ "getWrapper", "classVamp_1_1HostExt_1_1PluginWrapper.html#a653d0308e8e34881a8749b7631d00f05", null ], - [ "getType", "classVamp_1_1Plugin.html#abe13b3997a69fbcc09e2213faa352f91", null ], + [ "getInputDomain", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a8838facfe9d88cf36b13c1b42165fc6d", null ], + [ "getVampApiVersion", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#afa79272f991fb720ddd09784be1b3cb8", null ], + [ "getIdentifier", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#ad9312a38c199004c7bad0c42f590393f", null ], + [ "getName", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#aa2b40de6e240d872997a63dd4a301ff3", null ], + [ "getDescription", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#ad6e453c30b265a2daf243f953b35c815", null ], + [ "getMaker", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#af9b2f01063828ef0745dc2623fc8dd42", null ], + [ "getPluginVersion", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a9537de27c826a1441b2d3643df4880bb", null ], + [ "getCopyright", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#aea9c238f86de65d3380fa887bb9e47e6", null ], + [ "getParameterDescriptors", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#ab2b67205d86e921cb0a9bd1f819d2cf9", null ], + [ "getParameter", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a5c0a4d72a25fded51829de21771de521", null ], + [ "setParameter", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a651b15a5dc4c27942ac0c87c6092bfe5", null ], + [ "getPrograms", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#aa0b72ea17766266d20539f293ccae7c8", null ], + [ "getCurrentProgram", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a3936fe2c4b3c960dd244849a7c3320ad", null ], + [ "selectProgram", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a074978333a74fdcf336a8a1d8ea20abf", null ], + [ "getPreferredStepSize", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#adf2ea98d6eeb0435c0c8d7cdc29fed7c", null ], + [ "getPreferredBlockSize", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a94f855a2cf674ccc2e7315484f706d68", null ], + [ "getMinChannelCount", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#abc0a4e6ce0ae9de39c40725de1f30d2f", null ], + [ "getMaxChannelCount", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#acfed040cd91e797ee89d077db22b4a97", null ], + [ "getOutputDescriptors", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#af67a6cd3afa18895393ec8d4bdec3b4c", null ], + [ "getWrapper", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a653d0308e8e34881a8749b7631d00f05", null ], + [ "getType", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a530123068767a8728c568ffccfe3e4e5", null ], [ "m_impl", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#af131140817d9f131650af98b6b8d7a94", null ], - [ "m_plugin", "classVamp_1_1HostExt_1_1PluginWrapper.html#ab4e40ecd98b445e1a2aa9e7baa280ea2", null ], - [ "m_inputSampleRate", "classVamp_1_1Plugin.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] + [ "m_plugin", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#ab4e40ecd98b445e1a2aa9e7baa280ea2", null ], + [ "m_inputSampleRate", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__graph.map --- a/code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__graph.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__graph.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,5 +1,5 @@ - - - - + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__graph.md5 --- a/code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__graph.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__graph.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -77bad68c7ea4516223818bad8bc14f95 \ No newline at end of file +fe804e0bb21203e80ff7d7339aa1c2ca \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__graph.png Binary file code-docs/classVamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__graph.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginWrapper-members.html --- a/code-docs/classVamp_1_1HostExt_1_1PluginWrapper-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginWrapper-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,58 +63,58 @@
    Vamp::HostExt::PluginWrapper Member List
    -This is the complete list of members for Vamp::HostExt::PluginWrapper, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

    This is the complete list of members for Vamp::HostExt::PluginWrapper, including all inherited members.

    +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() const Vamp::HostExt::PluginWrapper [virtual]
    getCurrentProgram() const Vamp::HostExt::PluginWrapper [virtual]
    getDescription() const Vamp::HostExt::PluginWrapper [virtual]
    getIdentifier() const Vamp::HostExt::PluginWrapper [virtual]
    getInputDomain() const Vamp::HostExt::PluginWrapper [virtual]
    getMaker() const Vamp::HostExt::PluginWrapper [virtual]
    getMaxChannelCount() const Vamp::HostExt::PluginWrapper [virtual]
    getMinChannelCount() const Vamp::HostExt::PluginWrapper [virtual]
    getName() const Vamp::HostExt::PluginWrapper [virtual]
    getOutputDescriptors() const Vamp::HostExt::PluginWrapper [virtual]
    getParameter(std::string) const Vamp::HostExt::PluginWrapper [virtual]
    getParameterDescriptors() const Vamp::HostExt::PluginWrapper [virtual]
    getPluginVersion() const Vamp::HostExt::PluginWrapper [virtual]
    getPreferredBlockSize() const Vamp::HostExt::PluginWrapper [virtual]
    getPreferredStepSize() const Vamp::HostExt::PluginWrapper [virtual]
    getPrograms() const Vamp::HostExt::PluginWrapper [virtual]
    getRemainingFeatures()Vamp::HostExt::PluginWrapper [virtual]
    getType() const Vamp::Plugin [inline, virtual]
    getVampApiVersion() const Vamp::HostExt::PluginWrapper [virtual]
    getWrapper()Vamp::HostExt::PluginWrapper [inline]
    initialise(size_t channels, size_t stepSize, size_t blockSize)Vamp::HostExt::PluginWrapper [virtual]
    InputDomain enum nameVamp::Plugin
    m_inputSampleRateVamp::Plugin [protected]
    m_pluginVamp::HostExt::PluginWrapper [protected]
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugin [inline, protected]
    PluginWrapper(Plugin *plugin)Vamp::HostExt::PluginWrapper [protected]
    process(const float *const *inputBuffers, RealTime timestamp)Vamp::HostExt::PluginWrapper [virtual]
    ProgramList typedefVamp::PluginBase
    reset()Vamp::HostExt::PluginWrapper [virtual]
    selectProgram(std::string)Vamp::HostExt::PluginWrapper [virtual]
    setParameter(std::string, float)Vamp::HostExt::PluginWrapper [virtual]
    TimeDomain enum valueVamp::Plugin
    ~Plugin()Vamp::Plugin [inline, virtual]
    ~PluginBase()Vamp::PluginBase [inline, virtual]
    ~PluginWrapper()Vamp::HostExt::PluginWrapper [virtual]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() constVamp::HostExt::PluginWrappervirtual
    getCurrentProgram() constVamp::HostExt::PluginWrappervirtual
    getDescription() constVamp::HostExt::PluginWrappervirtual
    getIdentifier() constVamp::HostExt::PluginWrappervirtual
    getInputDomain() constVamp::HostExt::PluginWrappervirtual
    getMaker() constVamp::HostExt::PluginWrappervirtual
    getMaxChannelCount() constVamp::HostExt::PluginWrappervirtual
    getMinChannelCount() constVamp::HostExt::PluginWrappervirtual
    getName() constVamp::HostExt::PluginWrappervirtual
    getOutputDescriptors() constVamp::HostExt::PluginWrappervirtual
    getParameter(std::string) constVamp::HostExt::PluginWrappervirtual
    getParameterDescriptors() constVamp::HostExt::PluginWrappervirtual
    getPluginVersion() constVamp::HostExt::PluginWrappervirtual
    getPreferredBlockSize() constVamp::HostExt::PluginWrappervirtual
    getPreferredStepSize() constVamp::HostExt::PluginWrappervirtual
    getPrograms() constVamp::HostExt::PluginWrappervirtual
    getRemainingFeatures()Vamp::HostExt::PluginWrappervirtual
    getType() constVamp::Plugininlinevirtual
    getVampApiVersion() constVamp::HostExt::PluginWrappervirtual
    getWrapper()Vamp::HostExt::PluginWrapperinline
    initialise(size_t channels, size_t stepSize, size_t blockSize)Vamp::HostExt::PluginWrappervirtual
    InputDomain enum nameVamp::Plugin
    m_inputSampleRateVamp::Pluginprotected
    m_pluginVamp::HostExt::PluginWrapperprotected
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugininlineprotected
    PluginWrapper(Plugin *plugin)Vamp::HostExt::PluginWrapperprotected
    process(const float *const *inputBuffers, RealTime timestamp)Vamp::HostExt::PluginWrappervirtual
    ProgramList typedefVamp::PluginBase
    reset()Vamp::HostExt::PluginWrappervirtual
    selectProgram(std::string)Vamp::HostExt::PluginWrappervirtual
    setParameter(std::string, float)Vamp::HostExt::PluginWrappervirtual
    TimeDomain enum valueVamp::Plugin
    ~Plugin()Vamp::Plugininlinevirtual
    ~PluginBase()Vamp::PluginBaseinlinevirtual
    ~PluginWrapper()Vamp::HostExt::PluginWrappervirtual
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginWrapper.html --- a/code-docs/classVamp_1_1HostExt_1_1PluginWrapper.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginWrapper.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Vamp::HostExt::PluginWrapper Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    Vamp::HostExt::PluginWrapper Class Reference
    -

    PluginWrapper is a simple base class for adapter plugins. +

    PluginWrapper is a simple base class for adapter plugins. More...

    #include <vamp-hostsdk/PluginWrapper.h>

    @@ -92,233 +79,345 @@
    Inheritance graph
    - + + + + + + +
    [legend]
    - -

    List of all members.

    - - + + + - - + + + + + - +

    +

    Public Types

    enum  InputDomain { TimeDomain, FrequencyDomain }
    typedef std::vector
    -< OutputDescriptor
    OutputList
     
    typedef std::vector< OutputDescriptorOutputList
     
    typedef std::vector< FeatureFeatureList
    typedef std::map< int,
    -FeatureList
    FeatureSet
    typedef std::vector
    -< ParameterDescriptor
    ParameterList
     
    typedef std::map< int, FeatureListFeatureSet
     
    typedef std::vector< ParameterDescriptorParameterList
     
    typedef std::vector< std::string > ProgramList

    +

     
    + + - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + + - + + - - - - + + + + +

    Public Member Functions

    virtual ~PluginWrapper ()
     
    bool initialise (size_t channels, size_t stepSize, size_t blockSize)
     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).
     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). More...
     
    void reset ()
     Reset the plugin after use, to prepare it for another clean run.
    InputDomain getInputDomain () const
     Get the plugin's required input domain.
    unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin.
    std::string getIdentifier () const
     Get the computer-usable name of the plugin.
    std::string getName () const
     Get a human-readable name or title of the plugin.
    std::string getDescription () const
     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".
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form.
    int getPluginVersion () const
     Get the version number of the plugin.
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin.
    ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin.
    float getParameter (std::string) const
     Get the value of a named parameter.
     Reset the plugin after use, to prepare it for another clean run. More...
     
    InputDomain getInputDomain () const
     Get the plugin's required input domain. More...
     
    unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin. More...
     
    std::string getIdentifier () const
     Get the computer-usable name of the plugin. More...
     
    std::string getName () const
     Get a human-readable name or title of the plugin. More...
     
    std::string getDescription () const
     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". More...
     
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form. More...
     
    int getPluginVersion () const
     Get the version number of the plugin. More...
     
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin. More...
     
    ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin. More...
     
    float getParameter (std::string) const
     Get the value of a named parameter. More...
     
    void setParameter (std::string, float)
     Set a named parameter.
    ProgramList getPrograms () const
     Get the program settings available in this plugin.
    std::string getCurrentProgram () const
     Get the current program.
     Set a named parameter. More...
     
    ProgramList getPrograms () const
     Get the program settings available in this plugin. More...
     
    std::string getCurrentProgram () const
     Get the current program. More...
     
    void selectProgram (std::string)
     Select a program.
    size_t getPreferredStepSize () const
     Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.
    size_t getPreferredBlockSize () const
     Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).
    size_t getMinChannelCount () const
     Get the minimum supported number of input channels.
    size_t getMaxChannelCount () const
     Get the maximum supported number of input channels.
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin.
     Select a program. More...
     
    size_t getPreferredStepSize () const
     Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin. More...
     
    size_t getPreferredBlockSize () const
     Get the preferred block size (window size – the number of sample frames passed in each block to the process() function). More...
     
    size_t getMinChannelCount () const
     Get the minimum supported number of input channels. More...
     
    size_t getMaxChannelCount () const
     Get the maximum supported number of input channels. More...
     
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin. More...
     
    FeatureSet process (const float *const *inputBuffers, RealTime timestamp)
     Process a single block of input data.
     Process a single block of input data. More...
     
    FeatureSet getRemainingFeatures ()
     After all blocks have been processed, calculate and return any remaining features derived from the complete input.
     After all blocks have been processed, calculate and return any remaining features derived from the complete input. More...
     
    template<typename WrapperType >
    WrapperType * getWrapper ()
     Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present.
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

     Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present. More...
     
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase. More...
     
    + - +

    Protected Member Functions

     PluginWrapper (Plugin *plugin)

    +

     
    + + +

    Protected Attributes

    Pluginm_plugin
     
    float m_inputSampleRate
     
    -

    Detailed Description

    -

    PluginWrapper is a simple base class for adapter plugins.

    +

    Detailed Description

    +

    PluginWrapper is a simple base class for adapter plugins.

    It takes a pointer to a "to be wrapped" Vamp plugin on construction, and provides implementations of all the Vamp plugin methods that simply delegate through to the wrapped plugin. A subclass can therefore override only the methods that are meaningful for the particular adapter.

    -
    Note:
    This class was introduced in version 1.1 of the Vamp plugin SDK.
    +
    Note
    This class was introduced in version 1.1 of the Vamp plugin SDK.
    -

    Definition at line 62 of file PluginWrapper.h.

    -

    Member Typedef Documentation

    - +

    Definition at line 62 of file PluginWrapper.h.

    +

    Member Typedef Documentation

    + +

    ◆ OutputList

    +
    + + + + + +
    - +
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList [inherited]typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList
    - -
    +
    +inherited
    +
    -

    Definition at line 327 of file vamp-sdk/Plugin.h.

    +

    Definition at line 335 of file vamp-sdk/Plugin.h.

    - + +

    ◆ FeatureList

    +
    + + + + + +
    - +
    typedef std::vector<Feature> Vamp::Plugin::FeatureList [inherited]typedef std::vector<Feature> Vamp::Plugin::FeatureList
    - -
    +
    +inherited
    +
    -

    Definition at line 385 of file vamp-sdk/Plugin.h.

    +

    Definition at line 393 of file vamp-sdk/Plugin.h.

    - + +

    ◆ FeatureSet

    +
    + + + + + +
    - +
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet [inherited]typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet
    - -
    +
    +inherited
    +
    -

    Definition at line 387 of file vamp-sdk/Plugin.h.

    +

    Definition at line 395 of file vamp-sdk/Plugin.h.

    - + +

    ◆ ParameterList

    +
    + + + + + +
    - +
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList [inherited]typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList
    - -
    +
    +inherited
    +
    -

    Definition at line 199 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 203 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ ProgramList

    +
    + + + + + +
    - +
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList [inherited]typedef std::vector<std::string> Vamp::PluginBase::ProgramList
    - -
    +
    +inherited
    +
    -

    Definition at line 221 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 225 of file vamp-sdk/PluginBase.h.

    -

    Member Enumeration Documentation

    - +

    Member Enumeration Documentation

    + +

    ◆ InputDomain

    +
    + + + ","
    - +
    enum Vamp::Plugin::InputDomain [inherited]enum Vamp::Plugin::InputDomain
    - -
    -
    Enumerator:
    - - + + +
    TimeDomain  -
    FrequencyDomain  -
    +inherited
    -
    -
    +
    + + + +
    Enumerator
    TimeDomain 
    FrequencyDomain 
    -

    Definition at line 152 of file vamp-sdk/Plugin.h.

    +

    Definition at line 152 of file vamp-sdk/Plugin.h.

    -

    Constructor & Destructor Documentation

    - +

    Constructor & Destructor Documentation

    + +

    ◆ ~PluginWrapper()

    +
    + + + + + +
    - + - +
    virtual Vamp::HostExt::PluginWrapper::~PluginWrapper virtual Vamp::HostExt::PluginWrapper::~PluginWrapper ( ) [virtual]
    - -
    +
    +virtual
    +
    - + +

    ◆ PluginWrapper()

    +
    + + + + + +
    - + - +
    Vamp::HostExt::PluginWrapper::PluginWrapper Vamp::HostExt::PluginWrapper::PluginWrapper ( Plugin plugin) [protected]
    - -
    +
    +protected
    +
    -

    Member Function Documentation

    - +

    Member Function Documentation

    + +

    ◆ initialise()

    +
    + + + + + +
    - + @@ -338,11 +437,15 @@ - +
    bool Vamp::HostExt::PluginWrapper::initialise bool Vamp::HostExt::PluginWrapper::initialise ( size_t  inputChannels,
    ) [virtual]
    - -
    +
    +virtual
    +

    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).

    The input sample rate should have been already specified at construction time.

    @@ -350,90 +453,120 @@

    Implements Vamp::Plugin.

    -

    Reimplemented in Vamp::HostExt::PluginChannelAdapter, Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginInputDomainAdapter, and Vamp::HostExt::PluginSummarisingAdapter.

    +
    +
    + +

    ◆ reset()

    - - -
    + + + + + +
    - + - +
    void Vamp::HostExt::PluginWrapper::reset void Vamp::HostExt::PluginWrapper::reset ( ) [virtual]
    - -
    +
    +virtual
    +

    Reset the plugin after use, to prepare it for another clean run.

    Not called for the first initialisation (i.e. initialise must also do a reset).

    Implements Vamp::Plugin.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginInputDomainAdapter, and Vamp::HostExt::PluginSummarisingAdapter.

    +
    +
    + +

    ◆ getInputDomain()

    - - -
    + + + + + +
    - + - +
    InputDomain Vamp::HostExt::PluginWrapper::getInputDomain InputDomain Vamp::HostExt::PluginWrapper::getInputDomain ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the plugin's required input domain.

    -

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    -

    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 process(). 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.

    +

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    +

    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 process(). 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.

    Implements Vamp::Plugin.

    -

    Reimplemented in Vamp::HostExt::PluginInputDomainAdapter.

    +
    +
    + +

    ◆ getVampApiVersion()

    - - -
    + + + + + +
    - + - +
    unsigned int Vamp::HostExt::PluginWrapper::getVampApiVersion unsigned int Vamp::HostExt::PluginWrapper::getVampApiVersion ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the Vamp API compatibility level of the plugin.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getIdentifier()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getIdentifier std::string Vamp::HostExt::PluginWrapper::getIdentifier ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the computer-usable name of the plugin.

    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.

    @@ -444,19 +577,28 @@
    - + +

    ◆ getName()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getName std::string Vamp::HostExt::PluginWrapper::getName ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get a human-readable name or title of the plugin.

    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").

    @@ -466,19 +608,28 @@
    - + +

    ◆ getDescription()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getDescription std::string Vamp::HostExt::PluginWrapper::getDescription ( ) const [virtual] const
    - -
    +
    +virtual
    +

    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".

    May be empty if the name has said it all already.

    @@ -488,19 +639,28 @@
    - + +

    ◆ getMaker()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getMaker std::string Vamp::HostExt::PluginWrapper::getMaker ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the name of the author or vendor of the plugin in human-readable form.

    This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar.

    @@ -509,19 +669,28 @@
    - + +

    ◆ getPluginVersion()

    +
    + + + + + +
    - + - +
    int Vamp::HostExt::PluginWrapper::getPluginVersion int Vamp::HostExt::PluginWrapper::getPluginVersion ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the version number of the plugin.

    @@ -529,19 +698,28 @@
    - + +

    ◆ getCopyright()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getCopyright std::string Vamp::HostExt::PluginWrapper::getCopyright ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the copyright statement or licensing summary for the plugin.

    This can be an informative text, without the same presentation constraints as mentioned for getMaker above.

    @@ -550,54 +728,77 @@
    - + +

    ◆ getParameterDescriptors()

    +
    + + + + + +
    - + - +
    ParameterList Vamp::HostExt::PluginWrapper::getParameterDescriptors ParameterList Vamp::HostExt::PluginWrapper::getParameterDescriptors ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the controllable parameters of this plugin.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getParameter()

    +
    + + + + + +
    - + - +
    float Vamp::HostExt::PluginWrapper::getParameter float Vamp::HostExt::PluginWrapper::getParameter ( std::string  ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the value of a named parameter.

    The argument is the identifier field from that parameter's descriptor.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ setParameter()

    +
    + + + + + +
    - + @@ -611,204 +812,275 @@ - +
    void Vamp::HostExt::PluginWrapper::setParameter void Vamp::HostExt::PluginWrapper::setParameter ( std::string  ,
    ) [virtual]
    - -
    +
    +virtual
    +

    Set a named parameter.

    The first argument is the identifier field from that parameter's descriptor.

    Reimplemented from Vamp::PluginBase.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter.

    +
    +
    + +

    ◆ getPrograms()

    - - -
    + + + + + +
    - + - +
    ProgramList Vamp::HostExt::PluginWrapper::getPrograms ProgramList Vamp::HostExt::PluginWrapper::getPrograms ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the program settings available in this plugin.

    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.

    The programs must have unique names.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getCurrentProgram()

    +
    + + + + + +
    - + - +
    std::string Vamp::HostExt::PluginWrapper::getCurrentProgram std::string Vamp::HostExt::PluginWrapper::getCurrentProgram ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the current program.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ selectProgram()

    +
    + + + + + +
    - + - +
    void Vamp::HostExt::PluginWrapper::selectProgram void Vamp::HostExt::PluginWrapper::selectProgram ( std::string  ) [virtual]
    - -
    +
    +virtual
    +

    Select a program.

    (If the given program name is not one of the available programs, do nothing.)

    Reimplemented from Vamp::PluginBase.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter.

    +
    +
    + +

    ◆ getPreferredStepSize()

    + +
    +
    + + + + + +
    + + + + + + + +
    size_t Vamp::HostExt::PluginWrapper::getPreferredStepSize () const
    +
    +virtual
    +
    + +

    Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    +

    This should be called before initialise().

    +

    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 initialise() call.

    + +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getPreferredBlockSize()

    +
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginWrapper::getPreferredStepSize size_t Vamp::HostExt::PluginWrapper::getPreferredBlockSize ( ) const [virtual] const
    - -
    +
    +virtual
    +
    -

    Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    -

    This should be called before initialise().

    -

    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 initialise() call.

    +

    Get the preferred block size (window size – the number of sample frames passed in each block to the process() function).

    +

    This should be called before initialise().

    +

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    -

    Reimplemented from Vamp::Plugin.

    - -

    Reimplemented in Vamp::HostExt::PluginInputDomainAdapter, and Vamp::HostExt::PluginBufferingAdapter.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getMinChannelCount()

    +
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginWrapper::getPreferredBlockSize size_t Vamp::HostExt::PluginWrapper::getMinChannelCount ( ) const [virtual] const
    - -
    - -

    Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).

    -

    This should be called before initialise().

    -

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    - -

    Reimplemented from Vamp::Plugin.

    - -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, and Vamp::HostExt::PluginInputDomainAdapter.

    - -
    - - -
    -
    - - - - - - - -
    size_t Vamp::HostExt::PluginWrapper::getMinChannelCount () const [virtual]
    -
    -
    +
    +virtual
    +

    Get the minimum supported number of input channels.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getMaxChannelCount()

    +
    + + + + + +
    - + - +
    size_t Vamp::HostExt::PluginWrapper::getMaxChannelCount size_t Vamp::HostExt::PluginWrapper::getMaxChannelCount ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the maximum supported number of input channels.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getOutputDescriptors()

    +
    + + + + + +
    - + - +
    OutputList Vamp::HostExt::PluginWrapper::getOutputDescriptors OutputList Vamp::HostExt::PluginWrapper::getOutputDescriptors ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the outputs of this plugin.

    -

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    +

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    Implements Vamp::Plugin.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter.

    +
    +
    + +

    ◆ process()

    - - -
    + + + + + +
    - + @@ -822,125 +1094,170 @@ - +
    FeatureSet Vamp::HostExt::PluginWrapper::process FeatureSet Vamp::HostExt::PluginWrapper::process ( const float *const *  inputBuffers,
    ) [virtual]
    - -
    +
    +virtual
    +

    Process a single block of input data.

    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.

    -

    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).

    +

    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).

    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.)

    Implements Vamp::Plugin.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginChannelAdapter, Vamp::HostExt::PluginInputDomainAdapter, and Vamp::HostExt::PluginSummarisingAdapter.

    +
    +
    + +

    ◆ getRemainingFeatures()

    - - -
    + + + + + +
    - + - +
    FeatureSet Vamp::HostExt::PluginWrapper::getRemainingFeatures FeatureSet Vamp::HostExt::PluginWrapper::getRemainingFeatures ( ) [virtual]
    - -
    +
    +virtual
    +

    After all blocks have been processed, calculate and return any remaining features derived from the complete input.

    Implements Vamp::Plugin.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, and Vamp::HostExt::PluginSummarisingAdapter.

    +
    +
    + +

    ◆ getWrapper()

    - - -
    template<typename WrapperType >
    + + + + + +
    - + - +
    WrapperType* Vamp::HostExt::PluginWrapper::getWrapper WrapperType* Vamp::HostExt::PluginWrapper::getWrapper ( ) [inline]
    - -
    +
    +inline
    +

    Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present.

    -

    This is useful in situations where a plugin is wrapped by multiple different wrappers (one inside another) and the host wants to call some wrapper-specific function on one of the layers without having to care about the order in which they are wrapped. For example, the plugin returned by PluginLoader::loadPlugin may have more than one wrapper; if the host wanted to query or fine-tune some property of one of them, it would be hard to do so without knowing the order of the wrappers. This function therefore gives direct access to the wrapper of a particular type.

    +

    This is useful in situations where a plugin is wrapped by multiple different wrappers (one inside another) and the host wants to call some wrapper-specific function on one of the layers without having to care about the order in which they are wrapped. For example, the plugin returned by PluginLoader::loadPlugin may have more than one wrapper; if the host wanted to query or fine-tune some property of one of them, it would be hard to do so without knowing the order of the wrappers. This function therefore gives direct access to the wrapper of a particular type.

    -

    Definition at line 116 of file PluginWrapper.h.

    +

    Definition at line 116 of file PluginWrapper.h.

    -

    References getWrapper().

    +

    References getWrapper().

    -

    Referenced by getWrapper(), and runPlugin().

    +

    Referenced by getWrapper(), and runPlugin().

    - + +

    ◆ getType()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::Plugin::getType virtual std::string Vamp::Plugin::getType ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    Do not reimplement this function in your subclass.

    Implements Vamp::PluginBase.

    -

    Definition at line 430 of file vamp-sdk/Plugin.h.

    +

    Definition at line 438 of file vamp-sdk/Plugin.h.

    -

    Member Data Documentation

    - +

    Member Data Documentation

    + +

    ◆ m_plugin

    +
    + + + + + +
    - +
    Plugin* Vamp::HostExt::PluginWrapper::m_plugin [protected]Plugin* Vamp::HostExt::PluginWrapper::m_plugin
    - -
    +
    +protected
    +
    -

    Definition at line 126 of file PluginWrapper.h.

    +

    Definition at line 126 of file PluginWrapper.h.

    - + +

    ◆ m_inputSampleRate

    + @@ -948,19 +1265,15 @@
  • PluginWrapper.h
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginWrapper.js --- a/code-docs/classVamp_1_1HostExt_1_1PluginWrapper.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginWrapper.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,38 +1,41 @@ var classVamp_1_1HostExt_1_1PluginWrapper = [ - [ "OutputList", "classVamp_1_1Plugin.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], - [ "FeatureList", "classVamp_1_1Plugin.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], - [ "FeatureSet", "classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], - [ "ParameterList", "classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], - [ "ProgramList", "classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20", null ], - [ "InputDomain", "classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc", null ], + [ "OutputList", "classVamp_1_1HostExt_1_1PluginWrapper.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], + [ "FeatureList", "classVamp_1_1HostExt_1_1PluginWrapper.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], + [ "FeatureSet", "classVamp_1_1HostExt_1_1PluginWrapper.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], + [ "ParameterList", "classVamp_1_1HostExt_1_1PluginWrapper.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], + [ "ProgramList", "classVamp_1_1HostExt_1_1PluginWrapper.html#a7f66f00437b21e5f694fe02356b12f20", null ], + [ "InputDomain", "classVamp_1_1HostExt_1_1PluginWrapper.html#a39cb7649d6dcc20e4cb1640cd55907bc", [ + [ "TimeDomain", "classVamp_1_1HostExt_1_1PluginWrapper.html#a39cb7649d6dcc20e4cb1640cd55907bcad4a9f31b958a43a9757af7893aa2e7ff", null ], + [ "FrequencyDomain", "classVamp_1_1HostExt_1_1PluginWrapper.html#a39cb7649d6dcc20e4cb1640cd55907bcaa30e7877ab33f76acbdca28607e6ab53", null ] + ] ], [ "~PluginWrapper", "classVamp_1_1HostExt_1_1PluginWrapper.html#ac4fb6cfd7c0d3b2c8576a4e9dc61f518", null ], [ "PluginWrapper", "classVamp_1_1HostExt_1_1PluginWrapper.html#a35cc2d42f8322f5022e89859a79c97be", null ], [ "initialise", "classVamp_1_1HostExt_1_1PluginWrapper.html#aa5a1f8290d8e9a315695584dcb3ad137", null ], [ "reset", "classVamp_1_1HostExt_1_1PluginWrapper.html#ad19cc0614ba41cdc26ef3394c5146fe6", null ], - [ "getInputDomain", "classVamp_1_1HostExt_1_1PluginWrapper.html#ae203faf8384c9e1fddc381409aa8a214", null ], - [ "getVampApiVersion", "classVamp_1_1HostExt_1_1PluginWrapper.html#a74147fda6b44ff2169bd4a1eea0d46ff", null ], - [ "getIdentifier", "classVamp_1_1HostExt_1_1PluginWrapper.html#a4baa9e48f717c2b3e7f92496aa39d904", null ], - [ "getName", "classVamp_1_1HostExt_1_1PluginWrapper.html#ac70a3265bb25aeb03f6dd8f8a0442088", null ], - [ "getDescription", "classVamp_1_1HostExt_1_1PluginWrapper.html#ac334f699c0996055942785410d8a065c", null ], - [ "getMaker", "classVamp_1_1HostExt_1_1PluginWrapper.html#a59d5a2298951b317995675e664b1c7bb", null ], - [ "getPluginVersion", "classVamp_1_1HostExt_1_1PluginWrapper.html#a47e1acf1696813008324a915c9ba59c5", null ], - [ "getCopyright", "classVamp_1_1HostExt_1_1PluginWrapper.html#ae14f6ecb78be909c4cd5f0cdaed3c566", null ], - [ "getParameterDescriptors", "classVamp_1_1HostExt_1_1PluginWrapper.html#a9be71561265c2e6e43b7feaddaa91f36", null ], - [ "getParameter", "classVamp_1_1HostExt_1_1PluginWrapper.html#a034920f56c8d7609a85447c42556048c", null ], + [ "getInputDomain", "classVamp_1_1HostExt_1_1PluginWrapper.html#a8838facfe9d88cf36b13c1b42165fc6d", null ], + [ "getVampApiVersion", "classVamp_1_1HostExt_1_1PluginWrapper.html#afa79272f991fb720ddd09784be1b3cb8", null ], + [ "getIdentifier", "classVamp_1_1HostExt_1_1PluginWrapper.html#ad9312a38c199004c7bad0c42f590393f", null ], + [ "getName", "classVamp_1_1HostExt_1_1PluginWrapper.html#aa2b40de6e240d872997a63dd4a301ff3", null ], + [ "getDescription", "classVamp_1_1HostExt_1_1PluginWrapper.html#ad6e453c30b265a2daf243f953b35c815", null ], + [ "getMaker", "classVamp_1_1HostExt_1_1PluginWrapper.html#af9b2f01063828ef0745dc2623fc8dd42", null ], + [ "getPluginVersion", "classVamp_1_1HostExt_1_1PluginWrapper.html#a9537de27c826a1441b2d3643df4880bb", null ], + [ "getCopyright", "classVamp_1_1HostExt_1_1PluginWrapper.html#aea9c238f86de65d3380fa887bb9e47e6", null ], + [ "getParameterDescriptors", "classVamp_1_1HostExt_1_1PluginWrapper.html#ab2b67205d86e921cb0a9bd1f819d2cf9", null ], + [ "getParameter", "classVamp_1_1HostExt_1_1PluginWrapper.html#a5c0a4d72a25fded51829de21771de521", null ], [ "setParameter", "classVamp_1_1HostExt_1_1PluginWrapper.html#a651b15a5dc4c27942ac0c87c6092bfe5", null ], - [ "getPrograms", "classVamp_1_1HostExt_1_1PluginWrapper.html#a131fbe1df81215020b9aa8cecef4c802", null ], - [ "getCurrentProgram", "classVamp_1_1HostExt_1_1PluginWrapper.html#a7a312dd42d161064b70afd7ff24c0651", null ], + [ "getPrograms", "classVamp_1_1HostExt_1_1PluginWrapper.html#aa0b72ea17766266d20539f293ccae7c8", null ], + [ "getCurrentProgram", "classVamp_1_1HostExt_1_1PluginWrapper.html#a3936fe2c4b3c960dd244849a7c3320ad", null ], [ "selectProgram", "classVamp_1_1HostExt_1_1PluginWrapper.html#a074978333a74fdcf336a8a1d8ea20abf", null ], - [ "getPreferredStepSize", "classVamp_1_1HostExt_1_1PluginWrapper.html#a0137d93d7019bacc31104836fb4d352e", null ], - [ "getPreferredBlockSize", "classVamp_1_1HostExt_1_1PluginWrapper.html#a2c62a656313a819650656643a867ad01", null ], - [ "getMinChannelCount", "classVamp_1_1HostExt_1_1PluginWrapper.html#a2b28f1cf37d46a514f1e1411a6037bf8", null ], - [ "getMaxChannelCount", "classVamp_1_1HostExt_1_1PluginWrapper.html#a985eb21f1827bfbc3950d6871b107a58", null ], - [ "getOutputDescriptors", "classVamp_1_1HostExt_1_1PluginWrapper.html#a5a9411305f713b4c9827844b89acd270", null ], + [ "getPreferredStepSize", "classVamp_1_1HostExt_1_1PluginWrapper.html#adf2ea98d6eeb0435c0c8d7cdc29fed7c", null ], + [ "getPreferredBlockSize", "classVamp_1_1HostExt_1_1PluginWrapper.html#a94f855a2cf674ccc2e7315484f706d68", null ], + [ "getMinChannelCount", "classVamp_1_1HostExt_1_1PluginWrapper.html#abc0a4e6ce0ae9de39c40725de1f30d2f", null ], + [ "getMaxChannelCount", "classVamp_1_1HostExt_1_1PluginWrapper.html#acfed040cd91e797ee89d077db22b4a97", null ], + [ "getOutputDescriptors", "classVamp_1_1HostExt_1_1PluginWrapper.html#af67a6cd3afa18895393ec8d4bdec3b4c", null ], [ "process", "classVamp_1_1HostExt_1_1PluginWrapper.html#a6bd72d6dfb3047524dbe8ae3294527cf", null ], [ "getRemainingFeatures", "classVamp_1_1HostExt_1_1PluginWrapper.html#a2bc8c0992e64f06991fb7cf89f99857e", null ], [ "getWrapper", "classVamp_1_1HostExt_1_1PluginWrapper.html#a653d0308e8e34881a8749b7631d00f05", null ], - [ "getType", "classVamp_1_1Plugin.html#abe13b3997a69fbcc09e2213faa352f91", null ], + [ "getType", "classVamp_1_1HostExt_1_1PluginWrapper.html#a530123068767a8728c568ffccfe3e4e5", null ], [ "m_plugin", "classVamp_1_1HostExt_1_1PluginWrapper.html#ab4e40ecd98b445e1a2aa9e7baa280ea2", null ], - [ "m_inputSampleRate", "classVamp_1_1Plugin.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] + [ "m_inputSampleRate", "classVamp_1_1HostExt_1_1PluginWrapper.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.map --- a/code-docs/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,8 +1,8 @@ - - - - - - - + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.md5 --- a/code-docs/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -1cc5f1cfbd60adf995c3a7dba367125f \ No newline at end of file +7259ef3218859d3fc801f73d9088339d \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.png Binary file code-docs/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1Plugin-members.html --- a/code-docs/classVamp_1_1Plugin-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1Plugin-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,54 +63,54 @@
    Vamp::Plugin Member List
    -This is the complete list of members for Vamp::Plugin, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

    This is the complete list of members for Vamp::Plugin, including all inherited members.

    +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() const =0Vamp::PluginBase [pure virtual]
    getCurrentProgram() const Vamp::PluginBase [inline, virtual]
    getDescription() const =0Vamp::PluginBase [pure virtual]
    getIdentifier() const =0Vamp::PluginBase [pure virtual]
    getInputDomain() const =0Vamp::Plugin [pure virtual]
    getMaker() const =0Vamp::PluginBase [pure virtual]
    getMaxChannelCount() const Vamp::Plugin [inline, virtual]
    getMinChannelCount() const Vamp::Plugin [inline, virtual]
    getName() const =0Vamp::PluginBase [pure virtual]
    getOutputDescriptors() const =0Vamp::Plugin [pure virtual]
    getParameter(std::string) const Vamp::PluginBase [inline, virtual]
    getParameterDescriptors() const Vamp::PluginBase [inline, virtual]
    getPluginVersion() const =0Vamp::PluginBase [pure virtual]
    getPreferredBlockSize() const Vamp::Plugin [inline, virtual]
    getPreferredStepSize() const Vamp::Plugin [inline, virtual]
    getPrograms() const Vamp::PluginBase [inline, virtual]
    getRemainingFeatures()=0Vamp::Plugin [pure virtual]
    getType() const Vamp::Plugin [inline, virtual]
    getVampApiVersion() const Vamp::PluginBase [inline, virtual]
    initialise(size_t inputChannels, size_t stepSize, size_t blockSize)=0Vamp::Plugin [pure virtual]
    InputDomain enum nameVamp::Plugin
    m_inputSampleRateVamp::Plugin [protected]
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugin [inline, protected]
    process(const float *const *inputBuffers, RealTime timestamp)=0Vamp::Plugin [pure virtual]
    ProgramList typedefVamp::PluginBase
    reset()=0Vamp::Plugin [pure virtual]
    selectProgram(std::string)Vamp::PluginBase [inline, virtual]
    setParameter(std::string, float)Vamp::PluginBase [inline, virtual]
    TimeDomain enum valueVamp::Plugin
    ~Plugin()Vamp::Plugin [inline, virtual]
    ~PluginBase()Vamp::PluginBase [inline, virtual]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() const =0Vamp::PluginBasepure virtual
    getCurrentProgram() constVamp::PluginBaseinlinevirtual
    getDescription() const =0Vamp::PluginBasepure virtual
    getIdentifier() const =0Vamp::PluginBasepure virtual
    getInputDomain() const =0Vamp::Pluginpure virtual
    getMaker() const =0Vamp::PluginBasepure virtual
    getMaxChannelCount() constVamp::Plugininlinevirtual
    getMinChannelCount() constVamp::Plugininlinevirtual
    getName() const =0Vamp::PluginBasepure virtual
    getOutputDescriptors() const =0Vamp::Pluginpure virtual
    getParameter(std::string) constVamp::PluginBaseinlinevirtual
    getParameterDescriptors() constVamp::PluginBaseinlinevirtual
    getPluginVersion() const =0Vamp::PluginBasepure virtual
    getPreferredBlockSize() constVamp::Plugininlinevirtual
    getPreferredStepSize() constVamp::Plugininlinevirtual
    getPrograms() constVamp::PluginBaseinlinevirtual
    getRemainingFeatures()=0Vamp::Pluginpure virtual
    getType() constVamp::Plugininlinevirtual
    getVampApiVersion() constVamp::PluginBaseinlinevirtual
    initialise(size_t inputChannels, size_t stepSize, size_t blockSize)=0Vamp::Pluginpure virtual
    InputDomain enum nameVamp::Plugin
    m_inputSampleRateVamp::Pluginprotected
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugininlineprotected
    process(const float *const *inputBuffers, RealTime timestamp)=0Vamp::Pluginpure virtual
    ProgramList typedefVamp::PluginBase
    reset()=0Vamp::Pluginpure virtual
    selectProgram(std::string)Vamp::PluginBaseinlinevirtual
    setParameter(std::string, float)Vamp::PluginBaseinlinevirtual
    TimeDomain enum valueVamp::Plugin
    ~Plugin()Vamp::Plugininlinevirtual
    ~PluginBase()Vamp::PluginBaseinlinevirtual
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1Plugin.html --- a/code-docs/classVamp_1_1Plugin.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1Plugin.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Vamp::Plugin Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    -
    Vamp::Plugin Class Reference
    +
    Vamp::Plugin Class Referenceabstract
    @@ -93,124 +80,157 @@
    Inheritance graph
    - + + + + + + + + + + + + + +
    [legend]
    - -

    List of all members.

    - + - +

    +

    Classes

    struct  Feature
     
    struct  OutputDescriptor

    +

     
    + - + + + - - + + + + + - +

    Public Types

    enum  InputDomain { TimeDomain, FrequencyDomain }
    typedef std::vector
    -< OutputDescriptor
    OutputList
     
    typedef std::vector< OutputDescriptorOutputList
     
    typedef std::vector< FeatureFeatureList
    typedef std::map< int,
    -FeatureList
    FeatureSet
    typedef std::vector
    -< ParameterDescriptor
    ParameterList
     
    typedef std::map< int, FeatureListFeatureSet
     
    typedef std::vector< ParameterDescriptorParameterList
     
    typedef std::vector< std::string > ProgramList

    +

     
    + + - + + - + + - - - - - - - - - + + + + + + + + + + + + + + - + + - + + - - - - - + + + + + + + + - + + - + + - + + - + + - + + - - - - - + + + + + + + + - - - - - + + + + + + + + - - + +

    Public Member Functions

    virtual ~Plugin ()
     
    virtual bool initialise (size_t inputChannels, size_t stepSize, size_t blockSize)=0
     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).
     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). More...
     
    virtual void reset ()=0
     Reset the plugin after use, to prepare it for another clean run.
     Reset the plugin after use, to prepare it for another clean run. More...
     
    virtual InputDomain getInputDomain () const =0
     Get the plugin's required input domain.
    virtual size_t getPreferredBlockSize () const
     Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).
    virtual size_t getPreferredStepSize () const
     Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.
    virtual size_t getMinChannelCount () const
     Get the minimum supported number of input channels.
    virtual size_t getMaxChannelCount () const
     Get the maximum supported number of input channels.
     Get the plugin's required input domain. More...
     
    virtual size_t getPreferredBlockSize () const
     Get the preferred block size (window size – the number of sample frames passed in each block to the process() function). More...
     
    virtual size_t getPreferredStepSize () const
     Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin. More...
     
    virtual size_t getMinChannelCount () const
     Get the minimum supported number of input channels. More...
     
    virtual size_t getMaxChannelCount () const
     Get the maximum supported number of input channels. More...
     
    virtual OutputList getOutputDescriptors () const =0
     Get the outputs of this plugin.
     Get the outputs of this plugin. More...
     
    virtual FeatureSet process (const float *const *inputBuffers, RealTime timestamp)=0
     Process a single block of input data.
     Process a single block of input data. More...
     
    virtual FeatureSet getRemainingFeatures ()=0
     After all blocks have been processed, calculate and return any remaining features derived from the complete input.
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.
    virtual unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin.
     After all blocks have been processed, calculate and return any remaining features derived from the complete input. More...
     
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase. More...
     
    virtual unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin. More...
     
    virtual std::string getIdentifier () const =0
     Get the computer-usable name of the plugin.
     Get the computer-usable name of the plugin. More...
     
    virtual std::string getName () const =0
     Get a human-readable name or title of the plugin.
     Get a human-readable name or title of the plugin. More...
     
    virtual std::string getDescription () const =0
     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".
     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". More...
     
    virtual std::string getMaker () const =0
     Get the name of the author or vendor of the plugin in human-readable form.
     Get the name of the author or vendor of the plugin in human-readable form. More...
     
    virtual std::string getCopyright () const =0
     Get the copyright statement or licensing summary for the plugin.
     Get the copyright statement or licensing summary for the plugin. More...
     
    virtual int getPluginVersion () const =0
     Get the version number of the plugin.
    virtual ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin.
    virtual float getParameter (std::string) const
     Get the value of a named parameter.
     Get the version number of the plugin. More...
     
    virtual ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin. More...
     
    virtual float getParameter (std::string) const
     Get the value of a named parameter. More...
     
    virtual void setParameter (std::string, float)
     Set a named parameter.
    virtual ProgramList getPrograms () const
     Get the program settings available in this plugin.
    virtual std::string getCurrentProgram () const
     Get the current program.
     Set a named parameter. More...
     
    virtual ProgramList getPrograms () const
     Get the program settings available in this plugin. More...
     
    virtual std::string getCurrentProgram () const
     Get the current program. More...
     
    virtual void selectProgram (std::string)
     Select a program.

    +

     Select a program. More...
     
    + - +

    Protected Member Functions

     Plugin (float inputSampleRate)

    +

     
    + +

    Protected Attributes

    float m_inputSampleRate
     
    -

    Detailed Description

    +

    Detailed Description

    Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio or related data.

    In most cases, the input will be audio and the output will be a stream of derived data at a lower sampling resolution than the input.

    -

    Note that this class inherits several abstract methods from PluginBase. These must be implemented by the subclass.

    +

    Note that this class inherits several abstract methods from PluginBase. These must be implemented by the subclass.

    PLUGIN LIFECYCLE

    Feature extraction plugins are managed differently from real-time plugins (such as VST effects). The main difference is that the parameters for a feature extraction plugin are configured before the plugin is used, and do not change during use.

      -
    1. Host constructs the plugin, passing it the input sample rate. The plugin may do basic initialisation, but should not do anything computationally expensive at this point. You must make sure your plugin is cheap to construct, otherwise you'll seriously affect the startup performance of almost all hosts. If you have serious initialisation to do, the proper place is in initialise() (step 5).
    2. -
    -
      +
    1. Host constructs the plugin, passing it the input sample rate. The plugin may do basic initialisation, but should not do anything computationally expensive at this point. You must make sure your plugin is cheap to construct, otherwise you'll seriously affect the startup performance of almost all hosts. If you have serious initialisation to do, the proper place is in initialise() (step 5).
    2. Host may query the plugin's available outputs.
    3. -
    -
    1. Host queries programs and parameter descriptors, and may set some or all of them. Parameters that are not explicitly set should take their default values as specified in the parameter descriptor. When a program is set, the parameter values may change and the host will re-query them to check.
    2. -
    -
    1. Host queries the preferred step size, block size and number of channels. These may all vary depending on the parameter values. (Note however that you cannot make the number of distinct outputs dependent on parameter values.)
    2. -
    -
    1. Plugin is properly initialised with a call to initialise. This fixes the step size, block size, and number of channels, as well as all of the parameter and program settings. If the values passed in to initialise do not match the plugin's advertised preferred values from step 4, the plugin may refuse to initialise and return false (although if possible it should accept the new values). Any computationally expensive setup code should take place here.
    2. -
    -
    1. Host finally checks the number of values, resolution, extents etc per output (which may vary depending on the number of channels, step size and block size as well as the parameter values).
    2. -
    -
    1. Host will repeatedly call the process method to pass in blocks of input data. This method may return features extracted from that data (if the plugin is causal).
    2. -
    -
    1. Host will call getRemainingFeatures exactly once, after all the input data has been processed. This may return any non-causal or leftover features.
    2. -
    -
    1. At any point after initialise was called, the host may optionally call the reset method and restart processing. (This does not mean it can change the parameters, which are fixed from initialise until destruction.)

    A plugin does not need to handle the case where setParameter or selectProgram is called after initialise has been called. It's the host's responsibility not to do that. Similarly, the plugin may safely assume that initialise is called no more than once.

    -

    Definition at line 124 of file vamp-sdk/Plugin.h.

    -

    Member Typedef Documentation

    - +

    Definition at line 124 of file vamp-sdk/Plugin.h.

    +

    Member Typedef Documentation

    + +

    ◆ OutputList

    +
    @@ -218,14 +238,15 @@
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList
    -
    -
    +
    -

    Definition at line 327 of file vamp-sdk/Plugin.h.

    +

    Definition at line 335 of file vamp-sdk/Plugin.h.

    - + +

    ◆ FeatureList

    +
    @@ -233,14 +254,15 @@
    typedef std::vector<Feature> Vamp::Plugin::FeatureList
    -
    -
    +
    -

    Definition at line 385 of file vamp-sdk/Plugin.h.

    +

    Definition at line 393 of file vamp-sdk/Plugin.h.

    - + +

    ◆ FeatureSet

    +
    @@ -248,45 +270,64 @@
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet
    -
    -
    +
    -

    Definition at line 387 of file vamp-sdk/Plugin.h.

    +

    Definition at line 395 of file vamp-sdk/Plugin.h.

    - + +

    ◆ ParameterList

    +
    + + + + + +
    - +
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList [inherited]typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList
    - -
    +
    +inherited
    +
    -

    Definition at line 199 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 203 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ ProgramList

    +
    + + + + + +
    - +
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList [inherited]typedef std::vector<std::string> Vamp::PluginBase::ProgramList
    - -
    +
    +inherited
    +
    -

    Definition at line 221 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 225 of file vamp-sdk/PluginBase.h.

    -

    Member Enumeration Documentation

    - +

    Member Enumeration Documentation

    + +

    ◆ InputDomain

    +
    @@ -294,66 +335,84 @@
    enum Vamp::Plugin::InputDomain
    -
    -
    -
    Enumerator:
    - - +
    +
    TimeDomain  -
    FrequencyDomain  -
    + +
    Enumerator
    TimeDomain 
    FrequencyDomain 
    -
    -
    -

    Definition at line 152 of file vamp-sdk/Plugin.h.

    +

    Definition at line 152 of file vamp-sdk/Plugin.h.

    -

    Constructor & Destructor Documentation

    - +

    Constructor & Destructor Documentation

    + +

    ◆ ~Plugin()

    +
    + + + + + +
    - + - +
    virtual Vamp::Plugin::~Plugin virtual Vamp::Plugin::~Plugin ( ) [inline, virtual]
    - -
    +
    +inlinevirtual
    +
    -

    Definition at line 127 of file vamp-sdk/Plugin.h.

    +

    Definition at line 127 of file vamp-sdk/Plugin.h.

    - + +

    ◆ Plugin()

    +
    + + + + + +
    - + - +
    Vamp::Plugin::Plugin Vamp::Plugin::Plugin ( float  inputSampleRate) [inline, protected]
    - -
    +
    +inlineprotected
    +
    -

    Definition at line 433 of file vamp-sdk/Plugin.h.

    +

    Definition at line 441 of file vamp-sdk/Plugin.h.

    -

    Member Function Documentation

    - +

    Member Function Documentation

    + +

    ◆ initialise()

    +
    + + + + + +
    - + @@ -373,11 +432,15 @@ - +
    virtual bool Vamp::Plugin::initialise virtual bool Vamp::Plugin::initialise ( size_t  inputChannels,
    ) [pure virtual]
    - -
    +
    +pure virtual
    +

    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).

    The input sample rate should have been already specified at construction time.

    @@ -385,23 +448,32 @@

    Implemented in Vamp::HostExt::PluginChannelAdapter, Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginInputDomainAdapter, Vamp::HostExt::PluginSummarisingAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Referenced by runPlugin().

    +

    Referenced by runPlugin().

    - + +

    ◆ reset()

    +
    + + + + + +
    - + - +
    virtual void Vamp::Plugin::reset virtual void Vamp::Plugin::reset ( ) [pure virtual]
    - -
    +
    +pure virtual
    +

    Reset the plugin after use, to prepare it for another clean run.

    Not called for the first initialisation (i.e. initialise must also do a reset).

    @@ -410,159 +482,218 @@
    - + +

    ◆ getInputDomain()

    +
    + + + + + +
    - + - +
    virtual InputDomain Vamp::Plugin::getInputDomain virtual InputDomain Vamp::Plugin::getInputDomain ( ) const [pure virtual] const
    - -
    +
    +pure virtual
    +

    Get the plugin's required input domain.

    -

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    -

    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 process(). 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.

    +

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    +

    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 process(). 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.

    -

    Implemented in Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Implemented in Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Referenced by enumeratePlugins(), and runPlugin().

    +

    Referenced by enumeratePlugins(), and runPlugin().

    - + +

    ◆ getPreferredBlockSize()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getPreferredBlockSize virtual size_t Vamp::Plugin::getPreferredBlockSize ( ) const [inline, virtual] const
    - -
    +
    +inlinevirtual
    +
    -

    Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).

    -

    This should be called before initialise().

    -

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    +

    Get the preferred block size (window size – the number of sample frames passed in each block to the process() function).

    +

    This should be called before initialise().

    +

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 179 of file vamp-sdk/Plugin.h.

    +

    Definition at line 179 of file vamp-sdk/Plugin.h.

    -

    Referenced by enumeratePlugins(), and runPlugin().

    +

    Referenced by enumeratePlugins(), and runPlugin().

    - + +

    ◆ getPreferredStepSize()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getPreferredStepSize virtual size_t Vamp::Plugin::getPreferredStepSize ( ) const [inline, virtual] const
    - -
    +
    +inlinevirtual
    +
    -

    Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    -

    This should be called before initialise().

    -

    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 initialise() call.

    +

    Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    +

    This should be called before initialise().

    +

    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 initialise() call.

    -

    Reimplemented in Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 194 of file vamp-sdk/Plugin.h.

    +

    Definition at line 194 of file vamp-sdk/Plugin.h.

    -

    Referenced by enumeratePlugins(), and runPlugin().

    +

    Referenced by enumeratePlugins(), and runPlugin().

    - + +

    ◆ getMinChannelCount()

    + - + +

    ◆ getMaxChannelCount()

    + - + +

    ◆ getOutputDescriptors()

    +
    + + + + + +
    - + - +
    virtual OutputList Vamp::Plugin::getOutputDescriptors virtual OutputList Vamp::Plugin::getOutputDescriptors ( ) const [pure virtual] const
    - -
    +
    +pure virtual
    +

    Get the outputs of this plugin.

    -

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    +

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    -

    Implemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, PercussionOnsetDetector, PowerSpectrum, AmplitudeFollower, SpectralCentroid, and ZeroCrossing.

    +

    Implemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, PercussionOnsetDetector, PowerSpectrum, AmplitudeFollower, SpectralCentroid, and ZeroCrossing.

    -

    Referenced by enumeratePlugins(), and runPlugin().

    +

    Referenced by enumeratePlugins(), and runPlugin().

    - + +

    ◆ process()

    +
    + + + + + +
    - + @@ -576,287 +707,395 @@ - +
    virtual FeatureSet Vamp::Plugin::process virtual FeatureSet Vamp::Plugin::process ( const float *const *  inputBuffers,
    ) [pure virtual]
    - -
    +
    +pure virtual
    +

    Process a single block of input data.

    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.

    -

    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).

    +

    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).

    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.)

    Implemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginChannelAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginInputDomainAdapter, Vamp::HostExt::PluginSummarisingAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, PercussionOnsetDetector, AmplitudeFollower, PowerSpectrum, SpectralCentroid, and ZeroCrossing.

    -

    Referenced by runPlugin().

    +

    Referenced by runPlugin().

    - + +

    ◆ getRemainingFeatures()

    +
    + + + + + +
    - + - +
    virtual FeatureSet Vamp::Plugin::getRemainingFeatures virtual FeatureSet Vamp::Plugin::getRemainingFeatures ( ) [pure virtual]
    - -
    +
    +pure virtual
    +

    After all blocks have been processed, calculate and return any remaining features derived from the complete input.

    Implemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginSummarisingAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, PercussionOnsetDetector, AmplitudeFollower, PowerSpectrum, SpectralCentroid, and ZeroCrossing.

    -

    Referenced by runPlugin().

    +

    Referenced by runPlugin().

    - + +

    ◆ getType()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::Plugin::getType virtual std::string Vamp::Plugin::getType ( ) const [inline, virtual] const
    - -
    +
    +inlinevirtual
    +
    -

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    Do not reimplement this function in your subclass.

    Implements Vamp::PluginBase.

    -

    Definition at line 430 of file vamp-sdk/Plugin.h.

    +

    Definition at line 438 of file vamp-sdk/Plugin.h.

    - + +

    ◆ getVampApiVersion()

    +
    + + + + + +
    - + - +
    virtual unsigned int Vamp::PluginBase::getVampApiVersion virtual unsigned int Vamp::PluginBase::getVampApiVersion ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the Vamp API compatibility level of the plugin.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 68 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 68 of file vamp-sdk/PluginBase.h.

    -

    Referenced by enumeratePlugins().

    +

    Referenced by enumeratePlugins().

    - + +

    ◆ getIdentifier()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getIdentifier virtual std::string Vamp::PluginBase::getIdentifier ( ) const [pure virtual, inherited] const
    - -
    +
    +pure virtualinherited
    +

    Get the computer-usable name of the plugin.

    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.

    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).

    Example: "zero_crossings"

    -

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Referenced by enumeratePlugins(), and runPlugin().

    +

    Referenced by enumeratePlugins(), and runPlugin().

    - + +

    ◆ getName()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getName virtual std::string Vamp::PluginBase::getName ( ) const [pure virtual, inherited] const
    - -
    +
    +pure virtualinherited
    +

    Get a human-readable name or title of the plugin.

    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").

    Example: "Zero Crossings"

    -

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Referenced by enumeratePlugins(), and printPluginCategoryList().

    +

    Referenced by enumeratePlugins(), and printPluginCategoryList().

    - + +

    ◆ getDescription()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getDescription virtual std::string Vamp::PluginBase::getDescription ( ) const [pure virtual, inherited] const
    - -
    +
    +pure virtualinherited
    +

    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".

    May be empty if the name has said it all already.

    Example: "Detect and count zero crossing points"

    -

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Referenced by enumeratePlugins(), and printPluginCategoryList().

    +

    Referenced by enumeratePlugins(), and printPluginCategoryList().

    - + +

    ◆ getMaker()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getMaker virtual std::string Vamp::PluginBase::getMaker ( ) const [pure virtual, inherited] const
    - -
    +
    +pure virtualinherited
    +

    Get the name of the author or vendor of the plugin in human-readable form.

    This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar.

    -

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Referenced by enumeratePlugins(), and printPluginCategoryList().

    +

    Referenced by enumeratePlugins(), and printPluginCategoryList().

    - + +

    ◆ getCopyright()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getCopyright virtual std::string Vamp::PluginBase::getCopyright ( ) const [pure virtual, inherited] const
    - -
    +
    +pure virtualinherited
    +

    Get the copyright statement or licensing summary for the plugin.

    This can be an informative text, without the same presentation constraints as mentioned for getMaker above.

    -

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Referenced by enumeratePlugins().

    +

    Referenced by enumeratePlugins().

    - + +

    ◆ getPluginVersion()

    +
    + + + + + +
    - + - +
    virtual int Vamp::PluginBase::getPluginVersion virtual int Vamp::PluginBase::getPluginVersion ( ) const [pure virtual, inherited] const
    - -
    +
    +pure virtualinherited
    +
    - + +

    ◆ getParameterDescriptors()

    +
    + + + + + +
    - + - +
    virtual ParameterList Vamp::PluginBase::getParameterDescriptors virtual ParameterList Vamp::PluginBase::getParameterDescriptors ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the controllable parameters of this plugin.

    -

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 204 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 208 of file vamp-sdk/PluginBase.h.

    -

    Referenced by enumeratePlugins().

    +

    Referenced by enumeratePlugins().

    - + +

    ◆ getParameter()

    +
    + + + + + +
    - + - +
    virtual float Vamp::PluginBase::getParameter virtual float Vamp::PluginBase::getParameter ( std::string  ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the value of a named parameter.

    The argument is the identifier field from that parameter's descriptor.

    -

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 212 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 216 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ setParameter()

    +
    + + + + + +
    - + @@ -870,106 +1109,148 @@ - +
    virtual void Vamp::PluginBase::setParameter virtual void Vamp::PluginBase::setParameter ( std::string  ,
    ) [inline, virtual, inherited]
    - -
    +
    +inlinevirtualinherited
    +

    Set a named parameter.

    The first argument is the identifier field from that parameter's descriptor.

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 218 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 222 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ getPrograms()

    +
    + + + + + +
    - + - +
    virtual ProgramList Vamp::PluginBase::getPrograms virtual ProgramList Vamp::PluginBase::getPrograms ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the program settings available in this plugin.

    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.

    The programs must have unique names.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 233 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 237 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ getCurrentProgram()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getCurrentProgram virtual std::string Vamp::PluginBase::getCurrentProgram ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the current program.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 238 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 242 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ selectProgram()

    +
    + + + + + +
    - + - +
    virtual void Vamp::PluginBase::selectProgram virtual void Vamp::PluginBase::selectProgram ( std::string  ) [inline, virtual, inherited]
    - -
    +
    +inlinevirtualinherited
    +

    Select a program.

    (If the given program name is not one of the available programs, do nothing.)

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 244 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 248 of file vamp-sdk/PluginBase.h.

    + +

    References _VAMP_SDK_PLUGSPACE_END.

    -

    Member Data Documentation

    - +

    Member Data Documentation

    + +

    ◆ m_inputSampleRate

    + @@ -977,18 +1258,15 @@
  • vamp-sdk/Plugin.h
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1Plugin.js --- a/code-docs/classVamp_1_1Plugin.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1Plugin.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,36 +1,41 @@ var classVamp_1_1Plugin = [ + [ "Feature", "structVamp_1_1Plugin_1_1Feature.html", "structVamp_1_1Plugin_1_1Feature" ], + [ "OutputDescriptor", "structVamp_1_1Plugin_1_1OutputDescriptor.html", "structVamp_1_1Plugin_1_1OutputDescriptor" ], [ "OutputList", "classVamp_1_1Plugin.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], [ "FeatureList", "classVamp_1_1Plugin.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], [ "FeatureSet", "classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], - [ "ParameterList", "classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], - [ "ProgramList", "classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20", null ], - [ "InputDomain", "classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc", null ], + [ "ParameterList", "classVamp_1_1Plugin.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], + [ "ProgramList", "classVamp_1_1Plugin.html#a7f66f00437b21e5f694fe02356b12f20", null ], + [ "InputDomain", "classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc", [ + [ "TimeDomain", "classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bcad4a9f31b958a43a9757af7893aa2e7ff", null ], + [ "FrequencyDomain", "classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bcaa30e7877ab33f76acbdca28607e6ab53", null ] + ] ], [ "~Plugin", "classVamp_1_1Plugin.html#a42d3096f9c1f58b1876024cd8d9ab80b", null ], [ "Plugin", "classVamp_1_1Plugin.html#a1b78c4f46c72ef345ed27f0b9bf20ac9", null ], [ "initialise", "classVamp_1_1Plugin.html#af26212cf5fc511b603a8b48034247822", null ], [ "reset", "classVamp_1_1Plugin.html#aad67dc9d0052417511070c4ebcfbf24f", null ], [ "getInputDomain", "classVamp_1_1Plugin.html#ae1d317a9702cbeda65ddf0ec500c1ff6", null ], - [ "getPreferredBlockSize", "classVamp_1_1Plugin.html#aa529adf83f87a603954eb31407602aac", null ], - [ "getPreferredStepSize", "classVamp_1_1Plugin.html#a514c716c22f81c055f19b56c3f882567", null ], - [ "getMinChannelCount", "classVamp_1_1Plugin.html#a267b42e866df3cf0d190893e8096f525", null ], - [ "getMaxChannelCount", "classVamp_1_1Plugin.html#a2c5ab12b6fa4847cb244bd1e9cb3ae5e", null ], + [ "getPreferredBlockSize", "classVamp_1_1Plugin.html#ae3b9c32b12796ece152388babad7cc7d", null ], + [ "getPreferredStepSize", "classVamp_1_1Plugin.html#a33eaf9a265bc3a055e156452112456c2", null ], + [ "getMinChannelCount", "classVamp_1_1Plugin.html#ab74f7634c6ac6e3da115667808a79c30", null ], + [ "getMaxChannelCount", "classVamp_1_1Plugin.html#a0bff9464bc8c117470136c396b2405dd", null ], [ "getOutputDescriptors", "classVamp_1_1Plugin.html#ad064d5d132b5c9bd7064f429c3309e35", null ], [ "process", "classVamp_1_1Plugin.html#ae4aed3bebfe80a2e2fccd3d37af26996", null ], [ "getRemainingFeatures", "classVamp_1_1Plugin.html#aeca2a26e658ba0314ba90d25dd2195d6", null ], - [ "getType", "classVamp_1_1Plugin.html#abe13b3997a69fbcc09e2213faa352f91", null ], - [ "getVampApiVersion", "classVamp_1_1PluginBase.html#a8fd2c48291c64b790f0efb8948508dcf", null ], - [ "getIdentifier", "classVamp_1_1PluginBase.html#ad1c6dfc77aa03d937a885b7f08258f4a", null ], - [ "getName", "classVamp_1_1PluginBase.html#a18619d5097e444ecefee0c359da53232", null ], - [ "getDescription", "classVamp_1_1PluginBase.html#a59153a02364f75fff46973b2072e9e5a", null ], - [ "getMaker", "classVamp_1_1PluginBase.html#a53d9918bf9ef4d12feedf66b2b26c637", null ], - [ "getCopyright", "classVamp_1_1PluginBase.html#ab7e9dedbe965f5ab9018b72920fe7661", null ], - [ "getPluginVersion", "classVamp_1_1PluginBase.html#a63f686d77bc3d6b807e7944cdde83151", null ], - [ "getParameterDescriptors", "classVamp_1_1PluginBase.html#aac3e49b3b66cacfbb768dfdf07444f21", null ], - [ "getParameter", "classVamp_1_1PluginBase.html#a97ababcd45348ceec998d0f8e0f38bf7", null ], - [ "setParameter", "classVamp_1_1PluginBase.html#a6c718ce822f7b73b98940d59dcaa9366", null ], - [ "getPrograms", "classVamp_1_1PluginBase.html#abb307c60bdb981d5f5af50c3c4ae84af", null ], - [ "getCurrentProgram", "classVamp_1_1PluginBase.html#a24e77eccf1bdfbbca3c79bb25e8799b3", null ], - [ "selectProgram", "classVamp_1_1PluginBase.html#aadd3a547ef140bae200473a9518e3353", null ], + [ "getType", "classVamp_1_1Plugin.html#a530123068767a8728c568ffccfe3e4e5", null ], + [ "getVampApiVersion", "classVamp_1_1Plugin.html#ab4aa9c3e6f6dd9addbc095463c9fb772", null ], + [ "getIdentifier", "classVamp_1_1Plugin.html#ad1c6dfc77aa03d937a885b7f08258f4a", null ], + [ "getName", "classVamp_1_1Plugin.html#a18619d5097e444ecefee0c359da53232", null ], + [ "getDescription", "classVamp_1_1Plugin.html#a59153a02364f75fff46973b2072e9e5a", null ], + [ "getMaker", "classVamp_1_1Plugin.html#a53d9918bf9ef4d12feedf66b2b26c637", null ], + [ "getCopyright", "classVamp_1_1Plugin.html#ab7e9dedbe965f5ab9018b72920fe7661", null ], + [ "getPluginVersion", "classVamp_1_1Plugin.html#a63f686d77bc3d6b807e7944cdde83151", null ], + [ "getParameterDescriptors", "classVamp_1_1Plugin.html#a0c24ff6a43c681198dc9497287a26e3a", null ], + [ "getParameter", "classVamp_1_1Plugin.html#aa813d61077080ec95487d2a0227cc51b", null ], + [ "setParameter", "classVamp_1_1Plugin.html#a6c718ce822f7b73b98940d59dcaa9366", null ], + [ "getPrograms", "classVamp_1_1Plugin.html#aaf6febff0ab4daf4a5089c98a67f4df8", null ], + [ "getCurrentProgram", "classVamp_1_1Plugin.html#aac38c5dc6e87208616122897518ca3d5", null ], + [ "selectProgram", "classVamp_1_1Plugin.html#aadd3a547ef140bae200473a9518e3353", null ], [ "m_inputSampleRate", "classVamp_1_1Plugin.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginAdapter-members.html --- a/code-docs/classVamp_1_1PluginAdapter-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginAdapter-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,25 +63,25 @@
    Vamp::PluginAdapter< P > Member List
    -This is the complete list of members for Vamp::PluginAdapter< P >, including all inherited members. - - - - - - - + +

    This is the complete list of members for Vamp::PluginAdapter< P >, including all inherited members.

    +
    createPlugin(float inputSampleRate)Vamp::PluginAdapter< P > [inline, protected, virtual]
    getDescriptor()Vamp::PluginAdapterBase
    m_implVamp::PluginAdapterBase [protected]
    PluginAdapter()Vamp::PluginAdapter< P > [inline]
    PluginAdapterBase()Vamp::PluginAdapterBase [protected]
    ~PluginAdapter()Vamp::PluginAdapter< P > [inline, virtual]
    ~PluginAdapterBase()Vamp::PluginAdapterBase [virtual]
    + + + + + + +
    createPlugin(float inputSampleRate)Vamp::PluginAdapter< P >inlineprotectedvirtual
    getDescriptor()Vamp::PluginAdapterBase
    m_implVamp::PluginAdapterBaseprotected
    PluginAdapter()Vamp::PluginAdapter< P >inline
    PluginAdapterBase()Vamp::PluginAdapterBaseprotected
    ~PluginAdapter()Vamp::PluginAdapter< P >inlinevirtual
    ~PluginAdapterBase()Vamp::PluginAdapterBasevirtual
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginAdapter.html --- a/code-docs/classVamp_1_1PluginAdapter.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginAdapter.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Vamp::PluginAdapter< P > Class Template Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -91,130 +78,183 @@
    Inheritance graph
    - + +
    [legend]
    - -

    List of all members.

    - + + - - + +

    +

    Public Member Functions

     PluginAdapter ()
     
    virtual ~PluginAdapter ()
     
    const VampPluginDescriptorgetDescriptor ()
     Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter.

    +

     Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter. More...
     
    + - +

    Protected Member Functions

    PlugincreatePlugin (float inputSampleRate)

    +

     
    + +

    Protected Attributes

    Impl * m_impl
     
    -

    Detailed Description

    -

    template<typename P>
    +

    Detailed Description

    +

    template<typename P>
    class Vamp::PluginAdapter< P >

    PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular plugin implementation.

    See PluginAdapterBase.

    -

    Definition at line 95 of file PluginAdapter.h.

    -

    Constructor & Destructor Documentation

    - +

    Definition at line 95 of file PluginAdapter.h.

    +

    Constructor & Destructor Documentation

    + +

    ◆ PluginAdapter()

    +
    template<typename P>
    + + + + + +
    - +
    Vamp::PluginAdapter< P >::PluginAdapter ( ) [inline]
    - -
    +
    +inline
    +
    -

    Definition at line 98 of file PluginAdapter.h.

    +

    Definition at line 98 of file PluginAdapter.h.

    - + +

    ◆ ~PluginAdapter()

    +
    template<typename P>
    + + + + + +
    - +
    virtual Vamp::PluginAdapter< P >::~PluginAdapter ( ) [inline, virtual]
    - -
    +
    +inlinevirtual
    +
    -

    Definition at line 99 of file PluginAdapter.h.

    +

    Definition at line 99 of file PluginAdapter.h.

    -

    Member Function Documentation

    - +

    Member Function Documentation

    + +

    ◆ createPlugin()

    +
    template<typename P>
    + + + + + +
    - + - +
    Plugin* Vamp::PluginAdapter< P >::createPlugin Plugin* Vamp::PluginAdapter< P >::createPlugin ( float  inputSampleRate) [inline, protected, virtual]
    - -
    +
    +inlineprotectedvirtual
    +

    Implements Vamp::PluginAdapterBase.

    -

    Definition at line 102 of file PluginAdapter.h.

    +

    Definition at line 102 of file PluginAdapter.h.

    + +

    References _VAMP_SDK_PLUGSPACE_END.

    - + +

    ◆ getDescriptor()

    +
    + + + + + +
    - + - +
    const VampPluginDescriptor* Vamp::PluginAdapterBase::getDescriptor const VampPluginDescriptor* Vamp::PluginAdapterBase::getDescriptor ( ) [inherited]
    - -
    +
    +inherited
    +

    Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter.

    -

    Referenced by vampGetPluginDescriptor().

    +

    Referenced by vampGetPluginDescriptor().

    -

    Member Data Documentation

    - +

    Member Data Documentation

    + +

    ◆ m_impl

    +
    + + + + + +
    - +
    Impl* Vamp::PluginAdapterBase::m_impl [protected, inherited]Impl* Vamp::PluginAdapterBase::m_impl
    - -
    +
    +protectedinherited
    +
    -

    Definition at line 81 of file PluginAdapter.h.

    +

    Definition at line 81 of file PluginAdapter.h.

    @@ -222,18 +262,15 @@
  • PluginAdapter.h
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginAdapter.js --- a/code-docs/classVamp_1_1PluginAdapter.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginAdapter.js Fri Feb 24 16:44:47 2017 +0000 @@ -3,6 +3,6 @@ [ "PluginAdapter", "classVamp_1_1PluginAdapter.html#a16312efd629b7063d7b6d67889a2c15a", null ], [ "~PluginAdapter", "classVamp_1_1PluginAdapter.html#a9612c9df7d4844959a36921d43d4bd50", null ], [ "createPlugin", "classVamp_1_1PluginAdapter.html#a3f387e7e37409e00d32477903b5b13d3", null ], - [ "getDescriptor", "classVamp_1_1PluginAdapterBase.html#ad24595002512f9f00e8e45216d6f5dfb", null ], - [ "m_impl", "classVamp_1_1PluginAdapterBase.html#a0e3594c54884efd5a7ef38030645745b", null ] + [ "getDescriptor", "classVamp_1_1PluginAdapter.html#ad24595002512f9f00e8e45216d6f5dfb", null ], + [ "m_impl", "classVamp_1_1PluginAdapter.html#a0e3594c54884efd5a7ef38030645745b", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginAdapterBase-members.html --- a/code-docs/classVamp_1_1PluginAdapterBase-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginAdapterBase-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,23 +63,23 @@
    Vamp::PluginAdapterBase Member List
    -This is the complete list of members for Vamp::PluginAdapterBase, including all inherited members. - - - - - + +

    This is the complete list of members for Vamp::PluginAdapterBase, including all inherited members.

    +
    createPlugin(float inputSampleRate)=0Vamp::PluginAdapterBase [protected, pure virtual]
    getDescriptor()Vamp::PluginAdapterBase
    m_implVamp::PluginAdapterBase [protected]
    PluginAdapterBase()Vamp::PluginAdapterBase [protected]
    ~PluginAdapterBase()Vamp::PluginAdapterBase [virtual]
    + + + + +
    createPlugin(float inputSampleRate)=0Vamp::PluginAdapterBaseprotectedpure virtual
    getDescriptor()Vamp::PluginAdapterBase
    m_implVamp::PluginAdapterBaseprotected
    PluginAdapterBase()Vamp::PluginAdapterBaseprotected
    ~PluginAdapterBase()Vamp::PluginAdapterBasevirtual
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginAdapterBase.html --- a/code-docs/classVamp_1_1PluginAdapterBase.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginAdapterBase.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Vamp::PluginAdapterBase Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    -
    Vamp::PluginAdapterBase Class Reference
    +
    Vamp::PluginAdapterBase Class Referenceabstract
    @@ -91,116 +78,158 @@
    Inheritance graph
    - + +
    [legend]
    - -

    List of all members.

    - + - - + +

    +

    Public Member Functions

    virtual ~PluginAdapterBase ()
     
    const VampPluginDescriptorgetDescriptor ()
     Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter.

    +

     Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter. More...
     
    + + - +

    Protected Member Functions

     PluginAdapterBase ()
     
    virtual PlugincreatePlugin (float inputSampleRate)=0

    +

     
    + +

    Protected Attributes

    Impl * m_impl
     
    -

    Detailed Description

    +

    Detailed Description

    PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library can use to make its C++ Vamp::Plugin objects available through the Vamp C API.

    -

    Almost all Vamp plugin libraries will want to make use of this. To do so, all they need to do is declare a PluginAdapter<T> for each plugin class T in their library. It's very simple, and you need to know absolutely nothing about how it works in order to use it. Just cut and paste from an existing plugin's discovery function.

    -
    See also:
    vampGetPluginDescriptor
    +

    Almost all Vamp plugin libraries will want to make use of this. To do so, all they need to do is declare a PluginAdapter<T> for each plugin class T in their library. It's very simple, and you need to know absolutely nothing about how it works in order to use it. Just cut and paste from an existing plugin's discovery function.

    See also
    vampGetPluginDescriptor
    -

    Definition at line 65 of file PluginAdapter.h.

    -

    Constructor & Destructor Documentation

    - +

    Definition at line 65 of file PluginAdapter.h.

    +

    Constructor & Destructor Documentation

    + +

    ◆ ~PluginAdapterBase()

    +
    + + + + + +
    - - - - - -
    virtual Vamp::PluginAdapterBase::~PluginAdapterBase () [virtual]
    - -
    - -
    - - -
    -
    - - - - - - - -
    Vamp::PluginAdapterBase::PluginAdapterBase () [protected]
    -
    -
    - -
    -
    -

    Member Function Documentation

    - -
    -
    - - - +
    const VampPluginDescriptor* Vamp::PluginAdapterBase::getDescriptor virtual Vamp::PluginAdapterBase::~PluginAdapterBase ( )
    -
    -
    - -

    Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter.

    - -

    Referenced by vampGetPluginDescriptor().

    +
    +virtual
    +
    - + +

    ◆ PluginAdapterBase()

    + +
    +
    + + + + + +
    + + + + + + + +
    Vamp::PluginAdapterBase::PluginAdapterBase ()
    +
    +protected
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ getDescriptor()

    +
    - + + + + + +
    virtual Plugin* Vamp::PluginAdapterBase::createPlugin const VampPluginDescriptor* Vamp::PluginAdapterBase::getDescriptor ()
    +
    + +

    Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter.

    + +

    Referenced by vampGetPluginDescriptor().

    + +
    +
    + +

    ◆ createPlugin()

    + +
    +
    + + + + + +
    + + + - +
    virtual Plugin* Vamp::PluginAdapterBase::createPlugin ( float  inputSampleRate) [protected, pure virtual]
    - -
    +
    +protectedpure virtual
    +

    Implemented in Vamp::PluginAdapter< P >.

    -

    Member Data Documentation

    - +

    Member Data Documentation

    + +

    ◆ m_impl

    +
    + + + + + +
    - +
    Impl* Vamp::PluginAdapterBase::m_impl [protected]Impl* Vamp::PluginAdapterBase::m_impl
    - -
    +
    +protected
    +
    -

    Definition at line 81 of file PluginAdapter.h.

    +

    Definition at line 81 of file PluginAdapter.h.

    @@ -208,18 +237,15 @@
  • PluginAdapter.h
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginAdapterBase__inherit__graph.map --- a/code-docs/classVamp_1_1PluginAdapterBase__inherit__graph.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginAdapterBase__inherit__graph.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,3 @@ - - + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginAdapterBase__inherit__graph.md5 --- a/code-docs/classVamp_1_1PluginAdapterBase__inherit__graph.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginAdapterBase__inherit__graph.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -4569c9c6c32b74fbfa74700a2924fb33 \ No newline at end of file +d68480a2505fc49557db6301d9b067a0 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginAdapterBase__inherit__graph.png Binary file code-docs/classVamp_1_1PluginAdapterBase__inherit__graph.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginAdapter__inherit__graph.map --- a/code-docs/classVamp_1_1PluginAdapter__inherit__graph.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginAdapter__inherit__graph.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,3 @@ - - + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginAdapter__inherit__graph.md5 --- a/code-docs/classVamp_1_1PluginAdapter__inherit__graph.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginAdapter__inherit__graph.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -f312ca787c956ac63a107eac4f63ee01 \ No newline at end of file +34aa973331e13f8dfca2258577ab47e3 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginAdapter__inherit__graph.png Binary file code-docs/classVamp_1_1PluginAdapter__inherit__graph.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginBase-members.html --- a/code-docs/classVamp_1_1PluginBase-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginBase-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,35 +63,35 @@
    Vamp::PluginBase Member List
    -This is the complete list of members for Vamp::PluginBase, including all inherited members. - - - - - - - - - - - - - - - - - + +

    This is the complete list of members for Vamp::PluginBase, including all inherited members.

    +
    getCopyright() const =0Vamp::PluginBase [pure virtual]
    getCurrentProgram() const Vamp::PluginBase [inline, virtual]
    getDescription() const =0Vamp::PluginBase [pure virtual]
    getIdentifier() const =0Vamp::PluginBase [pure virtual]
    getMaker() const =0Vamp::PluginBase [pure virtual]
    getName() const =0Vamp::PluginBase [pure virtual]
    getParameter(std::string) const Vamp::PluginBase [inline, virtual]
    getParameterDescriptors() const Vamp::PluginBase [inline, virtual]
    getPluginVersion() const =0Vamp::PluginBase [pure virtual]
    getPrograms() const Vamp::PluginBase [inline, virtual]
    getType() const =0Vamp::PluginBase [pure virtual]
    getVampApiVersion() const Vamp::PluginBase [inline, virtual]
    ParameterList typedefVamp::PluginBase
    ProgramList typedefVamp::PluginBase
    selectProgram(std::string)Vamp::PluginBase [inline, virtual]
    setParameter(std::string, float)Vamp::PluginBase [inline, virtual]
    ~PluginBase()Vamp::PluginBase [inline, virtual]
    + + + + + + + + + + + + + + + + +
    getCopyright() const =0Vamp::PluginBasepure virtual
    getCurrentProgram() constVamp::PluginBaseinlinevirtual
    getDescription() const =0Vamp::PluginBasepure virtual
    getIdentifier() const =0Vamp::PluginBasepure virtual
    getMaker() const =0Vamp::PluginBasepure virtual
    getName() const =0Vamp::PluginBasepure virtual
    getParameter(std::string) constVamp::PluginBaseinlinevirtual
    getParameterDescriptors() constVamp::PluginBaseinlinevirtual
    getPluginVersion() const =0Vamp::PluginBasepure virtual
    getPrograms() constVamp::PluginBaseinlinevirtual
    getType() const =0Vamp::PluginBasepure virtual
    getVampApiVersion() constVamp::PluginBaseinlinevirtual
    ParameterList typedefVamp::PluginBase
    ProgramList typedefVamp::PluginBase
    selectProgram(std::string)Vamp::PluginBaseinlinevirtual
    setParameter(std::string, float)Vamp::PluginBaseinlinevirtual
    ~PluginBase()Vamp::PluginBaseinlinevirtual
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginBase.html --- a/code-docs/classVamp_1_1PluginBase.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginBase.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Vamp::PluginBase Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    -
    Vamp::PluginBase Class Reference
    +
    Vamp::PluginBase Class Referenceabstract
    @@ -91,59 +78,91 @@
    Inheritance graph
    - + + + + + + + + + + + + + +
    [legend]
    - -

    List of all members.

    - - +

    +

    Classes

    struct  ParameterDescriptor

    +

     
    + - + + - +

    Public Types

    typedef std::vector
    -< ParameterDescriptor
    ParameterList
    typedef std::vector< ParameterDescriptorParameterList
     
    typedef std::vector< std::string > ProgramList

    +

     
    + - - + + + + - + + - + + - + + - + + - + + - - - - - + + + + + + + + - - - - - + + + + + + + + - + + - + +

    Public Member Functions

    virtual ~PluginBase ()
    virtual unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin.
     
    virtual unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin. More...
     
    virtual std::string getIdentifier () const =0
     Get the computer-usable name of the plugin.
     Get the computer-usable name of the plugin. More...
     
    virtual std::string getName () const =0
     Get a human-readable name or title of the plugin.
     Get a human-readable name or title of the plugin. More...
     
    virtual std::string getDescription () const =0
     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".
     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". More...
     
    virtual std::string getMaker () const =0
     Get the name of the author or vendor of the plugin in human-readable form.
     Get the name of the author or vendor of the plugin in human-readable form. More...
     
    virtual std::string getCopyright () const =0
     Get the copyright statement or licensing summary for the plugin.
     Get the copyright statement or licensing summary for the plugin. More...
     
    virtual int getPluginVersion () const =0
     Get the version number of the plugin.
    virtual ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin.
    virtual float getParameter (std::string) const
     Get the value of a named parameter.
     Get the version number of the plugin. More...
     
    virtual ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin. More...
     
    virtual float getParameter (std::string) const
     Get the value of a named parameter. More...
     
    virtual void setParameter (std::string, float)
     Set a named parameter.
    virtual ProgramList getPrograms () const
     Get the program settings available in this plugin.
    virtual std::string getCurrentProgram () const
     Get the current program.
     Set a named parameter. More...
     
    virtual ProgramList getPrograms () const
     Get the program settings available in this plugin. More...
     
    virtual std::string getCurrentProgram () const
     Get the current program. More...
     
    virtual void selectProgram (std::string)
     Select a program.
     Select a program. More...
     
    virtual std::string getType () const =0
     Get the type of plugin.
     Get the type of plugin. More...
     
    -

    Detailed Description

    +

    Detailed Description

    A base class for plugins with optional configurable parameters, programs, etc.

    The Vamp::Plugin is derived from this, and individual Vamp plugins should derive from that.

    This class does not provide the necessary interfaces to instantiate or run a plugin. It only specifies an interface for retrieving those controls that the host may wish to show to the user for editing. It could meaningfully be subclassed by real-time plugins or other sorts of plugin as well as Vamp plugins.

    -

    Definition at line 60 of file vamp-sdk/PluginBase.h.

    -

    Member Typedef Documentation

    - +

    Definition at line 60 of file vamp-sdk/PluginBase.h.

    +

    Member Typedef Documentation

    + +

    ◆ ParameterList

    +
    @@ -151,14 +170,15 @@
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList
    -
    -
    +
    -

    Definition at line 199 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 203 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ ProgramList

    +
    @@ -166,252 +186,346 @@
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList
    -
    -
    +
    -

    Definition at line 221 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 225 of file vamp-sdk/PluginBase.h.

    -

    Constructor & Destructor Documentation

    - +

    Constructor & Destructor Documentation

    + +

    ◆ ~PluginBase()

    +
    + + + + + +
    - + - +
    virtual Vamp::PluginBase::~PluginBase virtual Vamp::PluginBase::~PluginBase ( ) [inline, virtual]
    - -
    +
    +inlinevirtual
    +
    -

    Definition at line 63 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 63 of file vamp-sdk/PluginBase.h.

    -

    Member Function Documentation

    - +

    Member Function Documentation

    + +

    ◆ getVampApiVersion()

    +
    + + + + + +
    - + - +
    virtual unsigned int Vamp::PluginBase::getVampApiVersion virtual unsigned int Vamp::PluginBase::getVampApiVersion ( ) const [inline, virtual] const
    - -
    +
    +inlinevirtual
    +

    Get the Vamp API compatibility level of the plugin.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 68 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 68 of file vamp-sdk/PluginBase.h.

    -

    Referenced by enumeratePlugins().

    +

    Referenced by enumeratePlugins().

    - + +

    ◆ getIdentifier()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getIdentifier virtual std::string Vamp::PluginBase::getIdentifier ( ) const [pure virtual] const
    - -
    +
    +pure virtual
    +

    Get the computer-usable name of the plugin.

    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.

    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).

    Example: "zero_crossings"

    -

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Referenced by enumeratePlugins(), and runPlugin().

    +

    Referenced by enumeratePlugins(), and runPlugin().

    - + +

    ◆ getName()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getName virtual std::string Vamp::PluginBase::getName ( ) const [pure virtual] const
    - -
    +
    +pure virtual
    +

    Get a human-readable name or title of the plugin.

    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").

    Example: "Zero Crossings"

    -

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Referenced by enumeratePlugins(), and printPluginCategoryList().

    +

    Referenced by enumeratePlugins(), and printPluginCategoryList().

    - + +

    ◆ getDescription()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getDescription virtual std::string Vamp::PluginBase::getDescription ( ) const [pure virtual] const
    - -
    +
    +pure virtual
    +

    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".

    May be empty if the name has said it all already.

    Example: "Detect and count zero crossing points"

    -

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Referenced by enumeratePlugins(), and printPluginCategoryList().

    +

    Referenced by enumeratePlugins(), and printPluginCategoryList().

    - + +

    ◆ getMaker()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getMaker virtual std::string Vamp::PluginBase::getMaker ( ) const [pure virtual] const
    - -
    +
    +pure virtual
    +

    Get the name of the author or vendor of the plugin in human-readable form.

    This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar.

    -

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Referenced by enumeratePlugins(), and printPluginCategoryList().

    +

    Referenced by enumeratePlugins(), and printPluginCategoryList().

    - + +

    ◆ getCopyright()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getCopyright virtual std::string Vamp::PluginBase::getCopyright ( ) const [pure virtual] const
    - -
    +
    +pure virtual
    +

    Get the copyright statement or licensing summary for the plugin.

    This can be an informative text, without the same presentation constraints as mentioned for getMaker above.

    -

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Implemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, PowerSpectrum, AmplitudeFollower, SpectralCentroid, ZeroCrossing, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Referenced by enumeratePlugins().

    +

    Referenced by enumeratePlugins().

    - + +

    ◆ getPluginVersion()

    +
    + + + + + +
    - + - +
    virtual int Vamp::PluginBase::getPluginVersion virtual int Vamp::PluginBase::getPluginVersion ( ) const [pure virtual] const
    - -
    +
    +pure virtual
    +
    - + +

    ◆ getParameterDescriptors()

    +
    + + + + + +
    - + - +
    virtual ParameterList Vamp::PluginBase::getParameterDescriptors virtual ParameterList Vamp::PluginBase::getParameterDescriptors ( ) const [inline, virtual] const
    - -
    +
    +inlinevirtual
    +

    Get the controllable parameters of this plugin.

    -

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 204 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 208 of file vamp-sdk/PluginBase.h.

    -

    Referenced by enumeratePlugins().

    +

    Referenced by enumeratePlugins().

    - + +

    ◆ getParameter()

    +
    + + + + + +
    - + - +
    virtual float Vamp::PluginBase::getParameter virtual float Vamp::PluginBase::getParameter ( std::string  ) const [inline, virtual] const
    - -
    +
    +inlinevirtual
    +

    Get the value of a named parameter.

    The argument is the identifier field from that parameter's descriptor.

    -

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 212 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 216 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ setParameter()

    +
    + + + + + +
    - + @@ -425,109 +539,151 @@ - +
    virtual void Vamp::PluginBase::setParameter virtual void Vamp::PluginBase::setParameter ( std::string  ,
    ) [inline, virtual]
    - -
    +
    +inlinevirtual
    +

    Set a named parameter.

    The first argument is the identifier field from that parameter's descriptor.

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 218 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 222 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ getPrograms()

    +
    + + + + + +
    - + - +
    virtual ProgramList Vamp::PluginBase::getPrograms virtual ProgramList Vamp::PluginBase::getPrograms ( ) const [inline, virtual] const
    - -
    +
    +inlinevirtual
    +

    Get the program settings available in this plugin.

    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.

    The programs must have unique names.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 233 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 237 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ getCurrentProgram()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getCurrentProgram virtual std::string Vamp::PluginBase::getCurrentProgram ( ) const [inline, virtual] const
    - -
    +
    +inlinevirtual
    +

    Get the current program.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 238 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 242 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ selectProgram()

    +
    + + + + + +
    - + - +
    virtual void Vamp::PluginBase::selectProgram virtual void Vamp::PluginBase::selectProgram ( std::string  ) [inline, virtual]
    - -
    +
    +inlinevirtual
    +

    Select a program.

    (If the given program name is not one of the available programs, do nothing.)

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 244 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 248 of file vamp-sdk/PluginBase.h.

    + +

    References _VAMP_SDK_PLUGSPACE_END.

    - + +

    ◆ getType()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getType virtual std::string Vamp::PluginBase::getType ( ) const [pure virtual] const
    - -
    +
    +pure virtual
    +

    Get the type of plugin.

    This is to be implemented by the immediate subclass, not by actual plugins. Do not attempt to implement this in plugin code.

    -

    Implemented in Vamp::Plugin.

    +

    Implemented in Vamp::Plugin.

    @@ -535,18 +691,15 @@
  • vamp-sdk/PluginBase.h
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginBase.js --- a/code-docs/classVamp_1_1PluginBase.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginBase.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,20 +1,21 @@ var classVamp_1_1PluginBase = [ + [ "ParameterDescriptor", "structVamp_1_1PluginBase_1_1ParameterDescriptor.html", "structVamp_1_1PluginBase_1_1ParameterDescriptor" ], [ "ParameterList", "classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], [ "ProgramList", "classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20", null ], [ "~PluginBase", "classVamp_1_1PluginBase.html#a3773b37c658cf22d7f135c575a28f5c5", null ], - [ "getVampApiVersion", "classVamp_1_1PluginBase.html#a8fd2c48291c64b790f0efb8948508dcf", null ], + [ "getVampApiVersion", "classVamp_1_1PluginBase.html#ab4aa9c3e6f6dd9addbc095463c9fb772", null ], [ "getIdentifier", "classVamp_1_1PluginBase.html#ad1c6dfc77aa03d937a885b7f08258f4a", null ], [ "getName", "classVamp_1_1PluginBase.html#a18619d5097e444ecefee0c359da53232", null ], [ "getDescription", "classVamp_1_1PluginBase.html#a59153a02364f75fff46973b2072e9e5a", null ], [ "getMaker", "classVamp_1_1PluginBase.html#a53d9918bf9ef4d12feedf66b2b26c637", null ], [ "getCopyright", "classVamp_1_1PluginBase.html#ab7e9dedbe965f5ab9018b72920fe7661", null ], [ "getPluginVersion", "classVamp_1_1PluginBase.html#a63f686d77bc3d6b807e7944cdde83151", null ], - [ "getParameterDescriptors", "classVamp_1_1PluginBase.html#aac3e49b3b66cacfbb768dfdf07444f21", null ], - [ "getParameter", "classVamp_1_1PluginBase.html#a97ababcd45348ceec998d0f8e0f38bf7", null ], + [ "getParameterDescriptors", "classVamp_1_1PluginBase.html#a0c24ff6a43c681198dc9497287a26e3a", null ], + [ "getParameter", "classVamp_1_1PluginBase.html#aa813d61077080ec95487d2a0227cc51b", null ], [ "setParameter", "classVamp_1_1PluginBase.html#a6c718ce822f7b73b98940d59dcaa9366", null ], - [ "getPrograms", "classVamp_1_1PluginBase.html#abb307c60bdb981d5f5af50c3c4ae84af", null ], - [ "getCurrentProgram", "classVamp_1_1PluginBase.html#a24e77eccf1bdfbbca3c79bb25e8799b3", null ], + [ "getPrograms", "classVamp_1_1PluginBase.html#aaf6febff0ab4daf4a5089c98a67f4df8", null ], + [ "getCurrentProgram", "classVamp_1_1PluginBase.html#aac38c5dc6e87208616122897518ca3d5", null ], [ "selectProgram", "classVamp_1_1PluginBase.html#aadd3a547ef140bae200473a9518e3353", null ], [ "getType", "classVamp_1_1PluginBase.html#a2da03e9ced8dc7e4382205e6dc05dbff", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginBase__inherit__graph.map --- a/code-docs/classVamp_1_1PluginBase__inherit__graph.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginBase__inherit__graph.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,15 +1,15 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginBase__inherit__graph.md5 --- a/code-docs/classVamp_1_1PluginBase__inherit__graph.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginBase__inherit__graph.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -da9feec0bcf181e5e0ad0867eb4bd7fe \ No newline at end of file +15bc669b1e63a041c2b9a09919519997 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginBase__inherit__graph.png Binary file code-docs/classVamp_1_1PluginBase__inherit__graph.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginHostAdapter-members.html --- a/code-docs/classVamp_1_1PluginHostAdapter-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginHostAdapter-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,60 +63,60 @@
    Vamp::PluginHostAdapter Member List
    -This is the complete list of members for Vamp::PluginHostAdapter, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

    This is the complete list of members for Vamp::PluginHostAdapter, including all inherited members.

    +
    convertFeatures(VampFeatureList *, FeatureSet &)Vamp::PluginHostAdapter [protected]
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() const Vamp::PluginHostAdapter [virtual]
    getCurrentProgram() const Vamp::PluginHostAdapter [virtual]
    getDescription() const Vamp::PluginHostAdapter [virtual]
    getIdentifier() const Vamp::PluginHostAdapter [virtual]
    getInputDomain() const Vamp::PluginHostAdapter [virtual]
    getMaker() const Vamp::PluginHostAdapter [virtual]
    getMaxChannelCount() const Vamp::PluginHostAdapter [virtual]
    getMinChannelCount() const Vamp::PluginHostAdapter [virtual]
    getName() const Vamp::PluginHostAdapter [virtual]
    getOutputDescriptors() const Vamp::PluginHostAdapter [virtual]
    getParameter(std::string) const Vamp::PluginHostAdapter [virtual]
    getParameterDescriptors() const Vamp::PluginHostAdapter [virtual]
    getPluginPath()Vamp::PluginHostAdapter [static]
    getPluginVersion() const Vamp::PluginHostAdapter [virtual]
    getPreferredBlockSize() const Vamp::PluginHostAdapter [virtual]
    getPreferredStepSize() const Vamp::PluginHostAdapter [virtual]
    getPrograms() const Vamp::PluginHostAdapter [virtual]
    getRemainingFeatures()Vamp::PluginHostAdapter [virtual]
    getType() const Vamp::Plugin [inline, virtual]
    getVampApiVersion() const Vamp::PluginHostAdapter [virtual]
    initialise(size_t channels, size_t stepSize, size_t blockSize)Vamp::PluginHostAdapter [virtual]
    InputDomain enum nameVamp::Plugin
    m_descriptorVamp::PluginHostAdapter [protected]
    m_handleVamp::PluginHostAdapter [protected]
    m_inputSampleRateVamp::Plugin [protected]
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugin [inline, protected]
    PluginHostAdapter(const VampPluginDescriptor *descriptor, float inputSampleRate)Vamp::PluginHostAdapter
    process(const float *const *inputBuffers, RealTime timestamp)Vamp::PluginHostAdapter [virtual]
    ProgramList typedefVamp::PluginBase
    reset()Vamp::PluginHostAdapter [virtual]
    selectProgram(std::string)Vamp::PluginHostAdapter [virtual]
    setParameter(std::string, float)Vamp::PluginHostAdapter [virtual]
    TimeDomain enum valueVamp::Plugin
    ~Plugin()Vamp::Plugin [inline, virtual]
    ~PluginBase()Vamp::PluginBase [inline, virtual]
    ~PluginHostAdapter()Vamp::PluginHostAdapter [virtual]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    convertFeatures(VampFeatureList *, FeatureSet &)Vamp::PluginHostAdapterprotected
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() constVamp::PluginHostAdaptervirtual
    getCurrentProgram() constVamp::PluginHostAdaptervirtual
    getDescription() constVamp::PluginHostAdaptervirtual
    getIdentifier() constVamp::PluginHostAdaptervirtual
    getInputDomain() constVamp::PluginHostAdaptervirtual
    getMaker() constVamp::PluginHostAdaptervirtual
    getMaxChannelCount() constVamp::PluginHostAdaptervirtual
    getMinChannelCount() constVamp::PluginHostAdaptervirtual
    getName() constVamp::PluginHostAdaptervirtual
    getOutputDescriptors() constVamp::PluginHostAdaptervirtual
    getParameter(std::string) constVamp::PluginHostAdaptervirtual
    getParameterDescriptors() constVamp::PluginHostAdaptervirtual
    getPluginPath()Vamp::PluginHostAdapterstatic
    getPluginVersion() constVamp::PluginHostAdaptervirtual
    getPreferredBlockSize() constVamp::PluginHostAdaptervirtual
    getPreferredStepSize() constVamp::PluginHostAdaptervirtual
    getPrograms() constVamp::PluginHostAdaptervirtual
    getRemainingFeatures()Vamp::PluginHostAdaptervirtual
    getType() constVamp::Plugininlinevirtual
    getVampApiVersion() constVamp::PluginHostAdaptervirtual
    initialise(size_t channels, size_t stepSize, size_t blockSize)Vamp::PluginHostAdaptervirtual
    InputDomain enum nameVamp::Plugin
    m_descriptorVamp::PluginHostAdapterprotected
    m_handleVamp::PluginHostAdapterprotected
    m_inputSampleRateVamp::Pluginprotected
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugininlineprotected
    PluginHostAdapter(const VampPluginDescriptor *descriptor, float inputSampleRate)Vamp::PluginHostAdapter
    process(const float *const *inputBuffers, RealTime timestamp)Vamp::PluginHostAdaptervirtual
    ProgramList typedefVamp::PluginBase
    reset()Vamp::PluginHostAdaptervirtual
    selectProgram(std::string)Vamp::PluginHostAdaptervirtual
    setParameter(std::string, float)Vamp::PluginHostAdaptervirtual
    TimeDomain enum valueVamp::Plugin
    ~Plugin()Vamp::Plugininlinevirtual
    ~PluginBase()Vamp::PluginBaseinlinevirtual
    ~PluginHostAdapter()Vamp::PluginHostAdaptervirtual
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginHostAdapter.html --- a/code-docs/classVamp_1_1PluginHostAdapter.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginHostAdapter.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Vamp::PluginHostAdapter Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    Vamp::PluginHostAdapter Class Reference
    @@ -93,201 +80,291 @@
    Inheritance graph
    - + + +
    [legend]
    - -

    List of all members.

    - - + + + - - + + + + + - +

    +

    Public Types

    enum  InputDomain { TimeDomain, FrequencyDomain }
    typedef std::vector
    -< OutputDescriptor
    OutputList
     
    typedef std::vector< OutputDescriptorOutputList
     
    typedef std::vector< FeatureFeatureList
    typedef std::map< int,
    -FeatureList
    FeatureSet
    typedef std::vector
    -< ParameterDescriptor
    ParameterList
     
    typedef std::map< int, FeatureListFeatureSet
     
    typedef std::vector< ParameterDescriptorParameterList
     
    typedef std::vector< std::string > ProgramList

    +

     
    + + + - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + + - - - - + + + + +

    Public Member Functions

     PluginHostAdapter (const VampPluginDescriptor *descriptor, float inputSampleRate)
     
    virtual ~PluginHostAdapter ()
     
    bool initialise (size_t channels, size_t stepSize, size_t blockSize)
     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).
     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). More...
     
    void reset ()
     Reset the plugin after use, to prepare it for another clean run.
    InputDomain getInputDomain () const
     Get the plugin's required input domain.
    unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin.
    std::string getIdentifier () const
     Get the computer-usable name of the plugin.
    std::string getName () const
     Get a human-readable name or title of the plugin.
    std::string getDescription () const
     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".
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form.
    int getPluginVersion () const
     Get the version number of the plugin.
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin.
    ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin.
    float getParameter (std::string) const
     Get the value of a named parameter.
     Reset the plugin after use, to prepare it for another clean run. More...
     
    InputDomain getInputDomain () const
     Get the plugin's required input domain. More...
     
    unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin. More...
     
    std::string getIdentifier () const
     Get the computer-usable name of the plugin. More...
     
    std::string getName () const
     Get a human-readable name or title of the plugin. More...
     
    std::string getDescription () const
     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". More...
     
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form. More...
     
    int getPluginVersion () const
     Get the version number of the plugin. More...
     
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin. More...
     
    ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin. More...
     
    float getParameter (std::string) const
     Get the value of a named parameter. More...
     
    void setParameter (std::string, float)
     Set a named parameter.
    ProgramList getPrograms () const
     Get the program settings available in this plugin.
    std::string getCurrentProgram () const
     Get the current program.
     Set a named parameter. More...
     
    ProgramList getPrograms () const
     Get the program settings available in this plugin. More...
     
    std::string getCurrentProgram () const
     Get the current program. More...
     
    void selectProgram (std::string)
     Select a program.
    size_t getPreferredStepSize () const
     Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.
    size_t getPreferredBlockSize () const
     Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).
    size_t getMinChannelCount () const
     Get the minimum supported number of input channels.
    size_t getMaxChannelCount () const
     Get the maximum supported number of input channels.
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin.
     Select a program. More...
     
    size_t getPreferredStepSize () const
     Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin. More...
     
    size_t getPreferredBlockSize () const
     Get the preferred block size (window size – the number of sample frames passed in each block to the process() function). More...
     
    size_t getMinChannelCount () const
     Get the minimum supported number of input channels. More...
     
    size_t getMaxChannelCount () const
     Get the maximum supported number of input channels. More...
     
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin. More...
     
    FeatureSet process (const float *const *inputBuffers, RealTime timestamp)
     Process a single block of input data.
     Process a single block of input data. More...
     
    FeatureSet getRemainingFeatures ()
     After all blocks have been processed, calculate and return any remaining features derived from the complete input.
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

     After all blocks have been processed, calculate and return any remaining features derived from the complete input. More...
     
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase. More...
     
    + - +

    Static Public Member Functions

    static std::vector< std::string > getPluginPath ()

    +

     
    + - +

    Protected Member Functions

    void convertFeatures (VampFeatureList *, FeatureSet &)

    +

     
    + + + +

    Protected Attributes

    const VampPluginDescriptorm_descriptor
     
    VampPluginHandle m_handle
     
    float m_inputSampleRate
     
    -

    Detailed Description

    +

    Detailed Description

    PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language VampPluginDescriptor object appear as a C++ Vamp::Plugin object.

    The Vamp API is defined in vamp/vamp.h as a C API. The C++ objects used for convenience by plugins and hosts actually communicate using the C low-level API, but the details of this communication are handled seamlessly by the Vamp SDK implementation provided the plugin and host use the proper C++ wrapper objects.

    See also PluginAdapter, the plugin-side wrapper that makes a C++ plugin object available using the C query API.

    -

    Definition at line 68 of file PluginHostAdapter.h.

    -

    Member Typedef Documentation

    - +

    Definition at line 68 of file PluginHostAdapter.h.

    +

    Member Typedef Documentation

    + +

    ◆ OutputList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList
    +
    +inherited
    +
    + +

    Definition at line 335 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ FeatureList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<Feature> Vamp::Plugin::FeatureList
    +
    +inherited
    +
    + +

    Definition at line 393 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ FeatureSet

    + +
    +
    + + + + + +
    + + + + +
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet
    +
    +inherited
    +
    + +

    Definition at line 395 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ ParameterList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList
    +
    +inherited
    +
    + +

    Definition at line 203 of file vamp-sdk/PluginBase.h.

    + +
    +
    + +

    ◆ ProgramList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList
    +
    +inherited
    +
    + +

    Definition at line 225 of file vamp-sdk/PluginBase.h.

    + +
    +
    +

    Member Enumeration Documentation

    + +

    ◆ InputDomain

    + +
    +
    + + + + + +
    + + + + +
    enum Vamp::Plugin::InputDomain
    +
    +inherited
    +
    + + + +
    Enumerator
    TimeDomain 
    FrequencyDomain 
    + +

    Definition at line 152 of file vamp-sdk/Plugin.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ PluginHostAdapter()

    +
    - - -
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList [inherited]
    -
    -
    - -

    Definition at line 327 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<Feature> Vamp::Plugin::FeatureList [inherited]
    -
    -
    - -

    Definition at line 385 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet [inherited]
    -
    -
    - -

    Definition at line 387 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList [inherited]
    -
    -
    - -

    Definition at line 199 of file vamp-sdk/PluginBase.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList [inherited]
    -
    -
    - -

    Definition at line 221 of file vamp-sdk/PluginBase.h.

    - -
    -
    -

    Member Enumeration Documentation

    - -
    -
    - - - - -
    enum Vamp::Plugin::InputDomain [inherited]
    -
    -
    -
    Enumerator:
    - - -
    TimeDomain  -
    FrequencyDomain  -
    -
    -
    - -

    Definition at line 152 of file vamp-sdk/Plugin.h.

    - -
    -
    -

    Constructor & Destructor Documentation

    - -
    -
    - - - + @@ -304,50 +381,72 @@
    Vamp::PluginHostAdapter::PluginHostAdapter Vamp::PluginHostAdapter::PluginHostAdapter ( const VampPluginDescriptor descriptor,
    -
    -
    +
    - + +

    ◆ ~PluginHostAdapter()

    +
    + + + + + +
    - + - +
    virtual Vamp::PluginHostAdapter::~PluginHostAdapter virtual Vamp::PluginHostAdapter::~PluginHostAdapter ( ) [virtual]
    - -
    +
    +virtual
    +
    -

    Member Function Documentation

    - +

    Member Function Documentation

    + +

    ◆ getPluginPath()

    +
    + + + + + +
    - + - +
    static std::vector<std::string> Vamp::PluginHostAdapter::getPluginPath static std::vector<std::string> Vamp::PluginHostAdapter::getPluginPath ( ) [static]
    - -
    +
    +static
    +
    - + +

    ◆ initialise()

    +
    + + + + + +
    - + @@ -367,11 +466,15 @@ - +
    bool Vamp::PluginHostAdapter::initialise bool Vamp::PluginHostAdapter::initialise ( size_t  inputChannels,
    ) [virtual]
    - -
    +
    +virtual
    +

    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).

    The input sample rate should have been already specified at construction time.

    @@ -381,19 +484,28 @@
    - + +

    ◆ reset()

    +
    + + + + + +
    - + - +
    void Vamp::PluginHostAdapter::reset void Vamp::PluginHostAdapter::reset ( ) [virtual]
    - -
    +
    +virtual
    +

    Reset the plugin after use, to prepare it for another clean run.

    Not called for the first initialisation (i.e. initialise must also do a reset).

    @@ -402,61 +514,88 @@
    - + +

    ◆ getInputDomain()

    +
    + + + + + +
    - + - +
    InputDomain Vamp::PluginHostAdapter::getInputDomain InputDomain Vamp::PluginHostAdapter::getInputDomain ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the plugin's required input domain.

    -

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    -

    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 process(). 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.

    +

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    +

    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 process(). 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.

    Implements Vamp::Plugin.

    - + +

    ◆ getVampApiVersion()

    +
    + + + + + +
    - + - +
    unsigned int Vamp::PluginHostAdapter::getVampApiVersion unsigned int Vamp::PluginHostAdapter::getVampApiVersion ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the Vamp API compatibility level of the plugin.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getIdentifier()

    +
    + + + + + +
    - + - +
    std::string Vamp::PluginHostAdapter::getIdentifier std::string Vamp::PluginHostAdapter::getIdentifier ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the computer-usable name of the plugin.

    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.

    @@ -467,19 +606,28 @@
    - + +

    ◆ getName()

    +
    + + + + + +
    - + - +
    std::string Vamp::PluginHostAdapter::getName std::string Vamp::PluginHostAdapter::getName ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get a human-readable name or title of the plugin.

    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").

    @@ -489,19 +637,28 @@
    - + +

    ◆ getDescription()

    +
    + + + + + +
    - + - +
    std::string Vamp::PluginHostAdapter::getDescription std::string Vamp::PluginHostAdapter::getDescription ( ) const [virtual] const
    - -
    +
    +virtual
    +

    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".

    May be empty if the name has said it all already.

    @@ -511,19 +668,28 @@
    - + +

    ◆ getMaker()

    +
    + + + + + +
    - + - +
    std::string Vamp::PluginHostAdapter::getMaker std::string Vamp::PluginHostAdapter::getMaker ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the name of the author or vendor of the plugin in human-readable form.

    This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar.

    @@ -532,19 +698,28 @@
    - + +

    ◆ getPluginVersion()

    +
    + + + + + +
    - + - +
    int Vamp::PluginHostAdapter::getPluginVersion int Vamp::PluginHostAdapter::getPluginVersion ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the version number of the plugin.

    @@ -552,19 +727,28 @@
    - + +

    ◆ getCopyright()

    +
    + + + + + +
    - + - +
    std::string Vamp::PluginHostAdapter::getCopyright std::string Vamp::PluginHostAdapter::getCopyright ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the copyright statement or licensing summary for the plugin.

    This can be an informative text, without the same presentation constraints as mentioned for getMaker above.

    @@ -573,54 +757,77 @@
    - + +

    ◆ getParameterDescriptors()

    +
    + + + + + +
    - + - +
    ParameterList Vamp::PluginHostAdapter::getParameterDescriptors ParameterList Vamp::PluginHostAdapter::getParameterDescriptors ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the controllable parameters of this plugin.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getParameter()

    +
    + + + + + +
    - + - +
    float Vamp::PluginHostAdapter::getParameter float Vamp::PluginHostAdapter::getParameter ( std::string  ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the value of a named parameter.

    The argument is the identifier field from that parameter's descriptor.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ setParameter()

    +
    + + + + + +
    - + @@ -634,11 +841,15 @@ - +
    void Vamp::PluginHostAdapter::setParameter void Vamp::PluginHostAdapter::setParameter ( std::string  ,
    ) [virtual]
    - -
    +
    +virtual
    +

    Set a named parameter.

    The first argument is the identifier field from that parameter's descriptor.

    @@ -647,62 +858,89 @@
    - + +

    ◆ getPrograms()

    +
    + + + + + +
    - + - +
    ProgramList Vamp::PluginHostAdapter::getPrograms ProgramList Vamp::PluginHostAdapter::getPrograms ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the program settings available in this plugin.

    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.

    The programs must have unique names.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ getCurrentProgram()

    +
    + + + + + +
    - + - +
    std::string Vamp::PluginHostAdapter::getCurrentProgram std::string Vamp::PluginHostAdapter::getCurrentProgram ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the current program.

    -

    Reimplemented from Vamp::PluginBase.

    +

    Reimplemented from Vamp::PluginBase.

    - + +

    ◆ selectProgram()

    +
    + + + + + +
    - + - +
    void Vamp::PluginHostAdapter::selectProgram void Vamp::PluginHostAdapter::selectProgram ( std::string  ) [virtual]
    - -
    +
    +virtual
    +

    Select a program.

    (If the given program name is not one of the available programs, do nothing.)

    @@ -711,117 +949,167 @@
    - + +

    ◆ getPreferredStepSize()

    +
    + + + + + +
    - + - +
    size_t Vamp::PluginHostAdapter::getPreferredStepSize size_t Vamp::PluginHostAdapter::getPreferredStepSize ( ) const [virtual] const
    - -
    +
    +virtual
    +
    -

    Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    -

    This should be called before initialise().

    -

    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 initialise() call.

    +

    Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    +

    This should be called before initialise().

    +

    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 initialise() call.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getPreferredBlockSize()

    +
    + + + + + +
    - + - +
    size_t Vamp::PluginHostAdapter::getPreferredBlockSize size_t Vamp::PluginHostAdapter::getPreferredBlockSize ( ) const [virtual] const
    - -
    +
    +virtual
    +
    -

    Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).

    -

    This should be called before initialise().

    -

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    +

    Get the preferred block size (window size – the number of sample frames passed in each block to the process() function).

    +

    This should be called before initialise().

    +

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getMinChannelCount()

    +
    + + + + + +
    - + - +
    size_t Vamp::PluginHostAdapter::getMinChannelCount size_t Vamp::PluginHostAdapter::getMinChannelCount ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the minimum supported number of input channels.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getMaxChannelCount()

    +
    + + + + + +
    - + - +
    size_t Vamp::PluginHostAdapter::getMaxChannelCount size_t Vamp::PluginHostAdapter::getMaxChannelCount ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the maximum supported number of input channels.

    -

    Reimplemented from Vamp::Plugin.

    +

    Reimplemented from Vamp::Plugin.

    - + +

    ◆ getOutputDescriptors()

    +
    + + + + + +
    - + - +
    OutputList Vamp::PluginHostAdapter::getOutputDescriptors OutputList Vamp::PluginHostAdapter::getOutputDescriptors ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the outputs of this plugin.

    -

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    +

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    Implements Vamp::Plugin.

    - + +

    ◆ process()

    +
    + + + + + +
    - + @@ -835,34 +1123,47 @@ - +
    FeatureSet Vamp::PluginHostAdapter::process FeatureSet Vamp::PluginHostAdapter::process ( const float *const *  inputBuffers,
    ) [virtual]
    - -
    +
    +virtual
    +

    Process a single block of input data.

    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.

    -

    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).

    +

    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).

    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.)

    Implements Vamp::Plugin.

    - + +

    ◆ getRemainingFeatures()

    +
    + + + + + +
    - + - +
    FeatureSet Vamp::PluginHostAdapter::getRemainingFeatures FeatureSet Vamp::PluginHostAdapter::getRemainingFeatures ( ) [virtual]
    - -
    +
    +virtual
    +

    After all blocks have been processed, calculate and return any remaining features derived from the complete input.

    @@ -870,12 +1171,17 @@
    - + +

    ◆ convertFeatures()

    +
    + + + + + +
    - + @@ -889,82 +1195,122 @@ - +
    void Vamp::PluginHostAdapter::convertFeatures void Vamp::PluginHostAdapter::convertFeatures ( VampFeatureList ,
    ) [protected]
    - -
    +
    +protected
    +
    - + +

    ◆ getType()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::Plugin::getType virtual std::string Vamp::Plugin::getType ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    Do not reimplement this function in your subclass.

    Implements Vamp::PluginBase.

    -

    Definition at line 430 of file vamp-sdk/Plugin.h.

    +

    Definition at line 438 of file vamp-sdk/Plugin.h.

    -

    Member Data Documentation

    - +

    Member Data Documentation

    + +

    ◆ m_descriptor

    +
    + + + + + +
    - +
    const VampPluginDescriptor* Vamp::PluginHostAdapter::m_descriptor [protected]const VampPluginDescriptor* Vamp::PluginHostAdapter::m_descriptor
    - -
    +
    +protected
    +
    -

    Definition at line 113 of file PluginHostAdapter.h.

    +

    Definition at line 113 of file PluginHostAdapter.h.

    - + +

    ◆ m_handle

    +
    + + + + + +
    - +
    VampPluginHandle Vamp::PluginHostAdapter::m_handle [protected]VampPluginHandle Vamp::PluginHostAdapter::m_handle
    - -
    +
    +protected
    +
    -

    Definition at line 114 of file PluginHostAdapter.h.

    +

    Definition at line 114 of file PluginHostAdapter.h.

    - + +

    ◆ m_inputSampleRate

    + @@ -972,18 +1318,15 @@
  • PluginHostAdapter.h
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginHostAdapter.js --- a/code-docs/classVamp_1_1PluginHostAdapter.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginHostAdapter.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,40 +1,43 @@ var classVamp_1_1PluginHostAdapter = [ - [ "OutputList", "classVamp_1_1Plugin.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], - [ "FeatureList", "classVamp_1_1Plugin.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], - [ "FeatureSet", "classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], - [ "ParameterList", "classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], - [ "ProgramList", "classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20", null ], - [ "InputDomain", "classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc", null ], + [ "OutputList", "classVamp_1_1PluginHostAdapter.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], + [ "FeatureList", "classVamp_1_1PluginHostAdapter.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], + [ "FeatureSet", "classVamp_1_1PluginHostAdapter.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], + [ "ParameterList", "classVamp_1_1PluginHostAdapter.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], + [ "ProgramList", "classVamp_1_1PluginHostAdapter.html#a7f66f00437b21e5f694fe02356b12f20", null ], + [ "InputDomain", "classVamp_1_1PluginHostAdapter.html#a39cb7649d6dcc20e4cb1640cd55907bc", [ + [ "TimeDomain", "classVamp_1_1PluginHostAdapter.html#a39cb7649d6dcc20e4cb1640cd55907bcad4a9f31b958a43a9757af7893aa2e7ff", null ], + [ "FrequencyDomain", "classVamp_1_1PluginHostAdapter.html#a39cb7649d6dcc20e4cb1640cd55907bcaa30e7877ab33f76acbdca28607e6ab53", null ] + ] ], [ "PluginHostAdapter", "classVamp_1_1PluginHostAdapter.html#a6535abd551acfbbaab381bbe1268cd49", null ], [ "~PluginHostAdapter", "classVamp_1_1PluginHostAdapter.html#aed66c091340aa668d3be89c4b4c24474", null ], [ "getPluginPath", "classVamp_1_1PluginHostAdapter.html#a09cbfb7903d28f10d6d556c6cb81c5f6", null ], [ "initialise", "classVamp_1_1PluginHostAdapter.html#add6a2f1ee7e47bd97fa599cead14b738", null ], [ "reset", "classVamp_1_1PluginHostAdapter.html#a5d54c5bbd76bc27b7a243827148afeaa", null ], - [ "getInputDomain", "classVamp_1_1PluginHostAdapter.html#a8e9d25673367c741631a60cbb36e91d2", null ], - [ "getVampApiVersion", "classVamp_1_1PluginHostAdapter.html#a98aadddc8403eb46c9d8c5a9d1fdd19e", null ], - [ "getIdentifier", "classVamp_1_1PluginHostAdapter.html#ab27423a656f878d97d2ad2eba4e76c7a", null ], - [ "getName", "classVamp_1_1PluginHostAdapter.html#a45f1d0377e233eeddd1b7cefb48be62a", null ], - [ "getDescription", "classVamp_1_1PluginHostAdapter.html#a5eaafcef030e81b90a3e77cf16cf8ae1", null ], - [ "getMaker", "classVamp_1_1PluginHostAdapter.html#af572be0b175f5661559006a380a0f3db", null ], - [ "getPluginVersion", "classVamp_1_1PluginHostAdapter.html#a6fbd94781867ca46a20368c2a3593c77", null ], - [ "getCopyright", "classVamp_1_1PluginHostAdapter.html#ac73c9d6baad04369beee695e99584815", null ], - [ "getParameterDescriptors", "classVamp_1_1PluginHostAdapter.html#a602faa0bfaae83e2ca53b36292271a76", null ], - [ "getParameter", "classVamp_1_1PluginHostAdapter.html#af0c46d4f67ca93be7c76f3ea2e6c8efb", null ], + [ "getInputDomain", "classVamp_1_1PluginHostAdapter.html#ae1364251d4110ad9538523b3373f8d5e", null ], + [ "getVampApiVersion", "classVamp_1_1PluginHostAdapter.html#adc708325d057516bd92d5ea1c0808dbc", null ], + [ "getIdentifier", "classVamp_1_1PluginHostAdapter.html#a68749b61d8a4e322d7ce6662347817ca", null ], + [ "getName", "classVamp_1_1PluginHostAdapter.html#a6276b0838a3a9ac155d295cae0e7bb67", null ], + [ "getDescription", "classVamp_1_1PluginHostAdapter.html#aae795d71594901243de8cda96d871fc8", null ], + [ "getMaker", "classVamp_1_1PluginHostAdapter.html#ac906c3a0eef77f545fb4dad2456ee2b4", null ], + [ "getPluginVersion", "classVamp_1_1PluginHostAdapter.html#a5e774f5b0e86293714c0506676d4fa62", null ], + [ "getCopyright", "classVamp_1_1PluginHostAdapter.html#a6f68665c4c00bb55e4736a091a68d9a9", null ], + [ "getParameterDescriptors", "classVamp_1_1PluginHostAdapter.html#a8f2b1c45be01169414bc86b685f4508e", null ], + [ "getParameter", "classVamp_1_1PluginHostAdapter.html#a97149b60fb9d7c4359262ba8f6ff9743", null ], [ "setParameter", "classVamp_1_1PluginHostAdapter.html#a29f75395aa75b9de0228aa11edf9c6d6", null ], - [ "getPrograms", "classVamp_1_1PluginHostAdapter.html#ae0cde5cd625418c1bc470b91f75daafc", null ], - [ "getCurrentProgram", "classVamp_1_1PluginHostAdapter.html#a34859eff8ca8d862af39be9636ec1867", null ], + [ "getPrograms", "classVamp_1_1PluginHostAdapter.html#a1e3c40e9b9d8dc876d2e732976950c4b", null ], + [ "getCurrentProgram", "classVamp_1_1PluginHostAdapter.html#abf984c347c4dac9e4b01123498bfe68f", null ], [ "selectProgram", "classVamp_1_1PluginHostAdapter.html#a8f5515ab34cc13d9403ccc6b4b788683", null ], - [ "getPreferredStepSize", "classVamp_1_1PluginHostAdapter.html#a859ad5d59402691daed3cf1af1899ebe", null ], - [ "getPreferredBlockSize", "classVamp_1_1PluginHostAdapter.html#ad5e0ea8042bdec4dd18428991117e07a", null ], - [ "getMinChannelCount", "classVamp_1_1PluginHostAdapter.html#a67d1198c0e58d3f0076d0eda599ff28d", null ], - [ "getMaxChannelCount", "classVamp_1_1PluginHostAdapter.html#a25091905e97e39d515d8ffc1a9f2b9e0", null ], - [ "getOutputDescriptors", "classVamp_1_1PluginHostAdapter.html#a9649a113da0252fe8bd9fc731b047ae0", null ], + [ "getPreferredStepSize", "classVamp_1_1PluginHostAdapter.html#a344c85cc017c97bf4f0f144e7d6e0f42", null ], + [ "getPreferredBlockSize", "classVamp_1_1PluginHostAdapter.html#a9ee8ecc8406f633c68e9aa1516700332", null ], + [ "getMinChannelCount", "classVamp_1_1PluginHostAdapter.html#a8e7f62e03adea0321080839f6ef6c77b", null ], + [ "getMaxChannelCount", "classVamp_1_1PluginHostAdapter.html#a626ad6e35eb0f4ed93bc3c6d976cdca4", null ], + [ "getOutputDescriptors", "classVamp_1_1PluginHostAdapter.html#ad799e6317c4caf1a1c55b172ed6cc1fc", null ], [ "process", "classVamp_1_1PluginHostAdapter.html#a38fe1080b343ba10e5d8a4b30c87cbdd", null ], [ "getRemainingFeatures", "classVamp_1_1PluginHostAdapter.html#a984a4c11f3fbdcfd90e4837b1619a5ab", null ], [ "convertFeatures", "classVamp_1_1PluginHostAdapter.html#aee417a4c9ba9dbb63777c963d5f9452a", null ], - [ "getType", "classVamp_1_1Plugin.html#abe13b3997a69fbcc09e2213faa352f91", null ], + [ "getType", "classVamp_1_1PluginHostAdapter.html#a530123068767a8728c568ffccfe3e4e5", null ], [ "m_descriptor", "classVamp_1_1PluginHostAdapter.html#a0c9f252aca8ac298e30cadd0de032ec2", null ], [ "m_handle", "classVamp_1_1PluginHostAdapter.html#a02ebd03b226b4a467cad747ce77e79ee", null ], - [ "m_inputSampleRate", "classVamp_1_1Plugin.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] + [ "m_inputSampleRate", "classVamp_1_1PluginHostAdapter.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginHostAdapter__inherit__graph.map --- a/code-docs/classVamp_1_1PluginHostAdapter__inherit__graph.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginHostAdapter__inherit__graph.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,4 +1,4 @@ - - - + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginHostAdapter__inherit__graph.md5 --- a/code-docs/classVamp_1_1PluginHostAdapter__inherit__graph.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1PluginHostAdapter__inherit__graph.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -2992e89428ff4fe754343c5ad5231eb9 \ No newline at end of file +895597d988475ed30a4d82d7d627251f \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1PluginHostAdapter__inherit__graph.png Binary file code-docs/classVamp_1_1PluginHostAdapter__inherit__graph.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1Plugin__inherit__graph.map --- a/code-docs/classVamp_1_1Plugin__inherit__graph.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1Plugin__inherit__graph.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,15 +1,15 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1Plugin__inherit__graph.md5 --- a/code-docs/classVamp_1_1Plugin__inherit__graph.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classVamp_1_1Plugin__inherit__graph.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -f76e0377de46d8a56f43bb69e9f014ea \ No newline at end of file +c0ef8eacc1960165edff01a172813997 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1Plugin__inherit__graph.png Binary file code-docs/classVamp_1_1Plugin__inherit__graph.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classVamp_1_1RealTime-members.html --- a/code-docs/classVamp_1_1RealTime-members.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ - - - - - -VampPluginSDK: Member List - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    Vamp::RealTime Member List
    -
    -
    -This is the complete list of members for Vamp::RealTime, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    frame2RealTime(long frame, unsigned int sampleRate)Vamp::RealTime [static]
    fromMilliseconds(int msec)Vamp::RealTime [static]
    fromSeconds(double sec)Vamp::RealTime [static]
    fromTimeval(const struct timeval &)Vamp::RealTime [static]
    msec() const Vamp::RealTime [inline]
    nsecVamp::RealTime
    operator!=(const RealTime &r) const Vamp::RealTime [inline]
    operator+(const RealTime &r) const Vamp::RealTime [inline]
    operator-(const RealTime &r) const Vamp::RealTime [inline]
    operator-() const Vamp::RealTime [inline]
    operator/(int d) const Vamp::RealTime
    operator/(const RealTime &r) const Vamp::RealTime
    operator<(const RealTime &r) const Vamp::RealTime [inline]
    operator<=(const RealTime &r) const Vamp::RealTime [inline]
    operator=(const RealTime &r)Vamp::RealTime [inline]
    operator==(const RealTime &r) const Vamp::RealTime [inline]
    operator>(const RealTime &r) const Vamp::RealTime [inline]
    operator>=(const RealTime &r) const Vamp::RealTime [inline]
    RealTime()Vamp::RealTime [inline]
    RealTime(int s, int n)Vamp::RealTime
    RealTime(const RealTime &r)Vamp::RealTime [inline]
    realTime2Frame(const RealTime &r, unsigned int sampleRate)Vamp::RealTime [static]
    secVamp::RealTime
    toString() const Vamp::RealTime
    toText(bool fixedDp=false) const Vamp::RealTime
    usec() const Vamp::RealTime [inline]
    zeroTimeVamp::RealTime [static]
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classZeroCrossing-members.html --- a/code-docs/classZeroCrossing-members.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classZeroCrossing-members.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Member List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,58 +63,58 @@
    ZeroCrossing Member List
    -This is the complete list of members for ZeroCrossing, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

    This is the complete list of members for ZeroCrossing, including all inherited members.

    +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() const ZeroCrossing [virtual]
    getCurrentProgram() const Vamp::PluginBase [inline, virtual]
    getDescription() const ZeroCrossing [virtual]
    getIdentifier() const ZeroCrossing [virtual]
    getInputDomain() const ZeroCrossing [inline, virtual]
    getMaker() const ZeroCrossing [virtual]
    getMaxChannelCount() const Vamp::Plugin [inline, virtual]
    getMinChannelCount() const Vamp::Plugin [inline, virtual]
    getName() const ZeroCrossing [virtual]
    getOutputDescriptors() const ZeroCrossing [virtual]
    getParameter(std::string) const Vamp::PluginBase [inline, virtual]
    getParameterDescriptors() const Vamp::PluginBase [inline, virtual]
    getPluginVersion() const ZeroCrossing [virtual]
    getPreferredBlockSize() const Vamp::Plugin [inline, virtual]
    getPreferredStepSize() const Vamp::Plugin [inline, virtual]
    getPrograms() const Vamp::PluginBase [inline, virtual]
    getRemainingFeatures()ZeroCrossing [virtual]
    getType() const Vamp::Plugin [inline, virtual]
    getVampApiVersion() const Vamp::PluginBase [inline, virtual]
    initialise(size_t channels, size_t stepSize, size_t blockSize)ZeroCrossing [virtual]
    InputDomain enum nameVamp::Plugin
    m_inputSampleRateVamp::Plugin [protected]
    m_previousSampleZeroCrossing [protected]
    m_stepSizeZeroCrossing [protected]
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugin [inline, protected]
    process(const float *const *inputBuffers, Vamp::RealTime timestamp)ZeroCrossing [virtual]
    ProgramList typedefVamp::PluginBase
    reset()ZeroCrossing [virtual]
    selectProgram(std::string)Vamp::PluginBase [inline, virtual]
    setParameter(std::string, float)Vamp::PluginBase [inline, virtual]
    TimeDomain enum valueVamp::Plugin
    ZeroCrossing(float inputSampleRate)ZeroCrossing
    ~Plugin()Vamp::Plugin [inline, virtual]
    ~PluginBase()Vamp::PluginBase [inline, virtual]
    ~ZeroCrossing()ZeroCrossing [virtual]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureList typedefVamp::Plugin
    FeatureSet typedefVamp::Plugin
    FrequencyDomain enum valueVamp::Plugin
    getCopyright() constZeroCrossingvirtual
    getCurrentProgram() constVamp::PluginBaseinlinevirtual
    getDescription() constZeroCrossingvirtual
    getIdentifier() constZeroCrossingvirtual
    getInputDomain() constZeroCrossinginlinevirtual
    getMaker() constZeroCrossingvirtual
    getMaxChannelCount() constVamp::Plugininlinevirtual
    getMinChannelCount() constVamp::Plugininlinevirtual
    getName() constZeroCrossingvirtual
    getOutputDescriptors() constZeroCrossingvirtual
    getParameter(std::string) constVamp::PluginBaseinlinevirtual
    getParameterDescriptors() constVamp::PluginBaseinlinevirtual
    getPluginVersion() constZeroCrossingvirtual
    getPreferredBlockSize() constVamp::Plugininlinevirtual
    getPreferredStepSize() constVamp::Plugininlinevirtual
    getPrograms() constVamp::PluginBaseinlinevirtual
    getRemainingFeatures()ZeroCrossingvirtual
    getType() constVamp::Plugininlinevirtual
    getVampApiVersion() constVamp::PluginBaseinlinevirtual
    initialise(size_t channels, size_t stepSize, size_t blockSize)ZeroCrossingvirtual
    InputDomain enum nameVamp::Plugin
    m_inputSampleRateVamp::Pluginprotected
    m_previousSampleZeroCrossingprotected
    m_stepSizeZeroCrossingprotected
    OutputList typedefVamp::Plugin
    ParameterList typedefVamp::PluginBase
    Plugin(float inputSampleRate)Vamp::Plugininlineprotected
    process(const float *const *inputBuffers, Vamp::RealTime timestamp)ZeroCrossingvirtual
    ProgramList typedefVamp::PluginBase
    reset()ZeroCrossingvirtual
    selectProgram(std::string)Vamp::PluginBaseinlinevirtual
    setParameter(std::string, float)Vamp::PluginBaseinlinevirtual
    TimeDomain enum valueVamp::Plugin
    ZeroCrossing(float inputSampleRate)ZeroCrossing
    ~Plugin()Vamp::Plugininlinevirtual
    ~PluginBase()Vamp::PluginBaseinlinevirtual
    ~ZeroCrossing()ZeroCrossingvirtual
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classZeroCrossing.html --- a/code-docs/classZeroCrossing.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classZeroCrossing.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: ZeroCrossing Class Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -91,231 +78,330 @@
    Inheritance graph
    - + + +
    [legend]
    - -

    List of all members.

    - - + + + - - + + + + + - +

    +

    Public Types

    enum  InputDomain { TimeDomain, FrequencyDomain }
    typedef std::vector
    -< OutputDescriptor
    OutputList
     
    typedef std::vector< OutputDescriptorOutputList
     
    typedef std::vector< FeatureFeatureList
    typedef std::map< int,
    -FeatureList
    FeatureSet
    typedef std::vector
    -< ParameterDescriptor
    ParameterList
     
    typedef std::map< int, FeatureListFeatureSet
     
    typedef std::vector< ParameterDescriptorParameterList
     
    typedef std::vector< std::string > ProgramList

    +

     
    + + + - + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + - - + +

    Public Member Functions

     ZeroCrossing (float inputSampleRate)
     
    virtual ~ZeroCrossing ()
     
    bool initialise (size_t channels, size_t stepSize, size_t blockSize)
     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).
     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). More...
     
    void reset ()
     Reset the plugin after use, to prepare it for another clean run.
    InputDomain getInputDomain () const
     Get the plugin's required input domain.
    std::string getIdentifier () const
     Get the computer-usable name of the plugin.
    std::string getName () const
     Get a human-readable name or title of the plugin.
    std::string getDescription () const
     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".
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form.
    int getPluginVersion () const
     Get the version number of the plugin.
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin.
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin.
     Reset the plugin after use, to prepare it for another clean run. More...
     
    InputDomain getInputDomain () const
     Get the plugin's required input domain. More...
     
    std::string getIdentifier () const
     Get the computer-usable name of the plugin. More...
     
    std::string getName () const
     Get a human-readable name or title of the plugin. More...
     
    std::string getDescription () const
     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". More...
     
    std::string getMaker () const
     Get the name of the author or vendor of the plugin in human-readable form. More...
     
    int getPluginVersion () const
     Get the version number of the plugin. More...
     
    std::string getCopyright () const
     Get the copyright statement or licensing summary for the plugin. More...
     
    OutputList getOutputDescriptors () const
     Get the outputs of this plugin. More...
     
    FeatureSet process (const float *const *inputBuffers, Vamp::RealTime timestamp)
     Process a single block of input data.
     Process a single block of input data. More...
     
    FeatureSet getRemainingFeatures ()
     After all blocks have been processed, calculate and return any remaining features derived from the complete input.
    virtual size_t getPreferredBlockSize () const
     Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).
    virtual size_t getPreferredStepSize () const
     Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.
    virtual size_t getMinChannelCount () const
     Get the minimum supported number of input channels.
    virtual size_t getMaxChannelCount () const
     Get the maximum supported number of input channels.
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.
    virtual unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin.
    virtual ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin.
    virtual float getParameter (std::string) const
     Get the value of a named parameter.
     After all blocks have been processed, calculate and return any remaining features derived from the complete input. More...
     
    virtual size_t getPreferredBlockSize () const
     Get the preferred block size (window size – the number of sample frames passed in each block to the process() function). More...
     
    virtual size_t getPreferredStepSize () const
     Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin. More...
     
    virtual size_t getMinChannelCount () const
     Get the minimum supported number of input channels. More...
     
    virtual size_t getMaxChannelCount () const
     Get the maximum supported number of input channels. More...
     
    virtual std::string getType () const
     Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase. More...
     
    virtual unsigned int getVampApiVersion () const
     Get the Vamp API compatibility level of the plugin. More...
     
    virtual ParameterList getParameterDescriptors () const
     Get the controllable parameters of this plugin. More...
     
    virtual float getParameter (std::string) const
     Get the value of a named parameter. More...
     
    virtual void setParameter (std::string, float)
     Set a named parameter.
    virtual ProgramList getPrograms () const
     Get the program settings available in this plugin.
    virtual std::string getCurrentProgram () const
     Get the current program.
     Set a named parameter. More...
     
    virtual ProgramList getPrograms () const
     Get the program settings available in this plugin. More...
     
    virtual std::string getCurrentProgram () const
     Get the current program. More...
     
    virtual void selectProgram (std::string)
     Select a program.

    +

     Select a program. More...
     
    + + + +

    Protected Attributes

    size_t m_stepSize
     
    float m_previousSample
     
    float m_inputSampleRate
     
    -

    Detailed Description

    +

    Detailed Description

    Example plugin that calculates the positions and density of zero-crossing points in an audio waveform.

    -

    Definition at line 47 of file ZeroCrossing.h.

    -

    Member Typedef Documentation

    - +

    Definition at line 47 of file ZeroCrossing.h.

    +

    Member Typedef Documentation

    + +

    ◆ OutputList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList
    +
    +inherited
    +
    + +

    Definition at line 335 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ FeatureList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<Feature> Vamp::Plugin::FeatureList
    +
    +inherited
    +
    + +

    Definition at line 393 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ FeatureSet

    + +
    +
    + + + + + +
    + + + + +
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet
    +
    +inherited
    +
    + +

    Definition at line 395 of file vamp-sdk/Plugin.h.

    + +
    +
    + +

    ◆ ParameterList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList
    +
    +inherited
    +
    + +

    Definition at line 203 of file vamp-sdk/PluginBase.h.

    + +
    +
    + +

    ◆ ProgramList

    + +
    +
    + + + + + +
    + + + + +
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList
    +
    +inherited
    +
    + +

    Definition at line 225 of file vamp-sdk/PluginBase.h.

    + +
    +
    +

    Member Enumeration Documentation

    + +

    ◆ InputDomain

    + +
    +
    + + + + + +
    + + + + +
    enum Vamp::Plugin::InputDomain
    +
    +inherited
    +
    + + + +
    Enumerator
    TimeDomain 
    FrequencyDomain 
    + +

    Definition at line 152 of file vamp-sdk/Plugin.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ ZeroCrossing()

    +
    - - -
    typedef std::vector<OutputDescriptor> Vamp::Plugin::OutputList [inherited]
    -
    -
    - -

    Definition at line 327 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<Feature> Vamp::Plugin::FeatureList [inherited]
    -
    -
    - -

    Definition at line 385 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::map<int, FeatureList> Vamp::Plugin::FeatureSet [inherited]
    -
    -
    - -

    Definition at line 387 of file vamp-sdk/Plugin.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<ParameterDescriptor> Vamp::PluginBase::ParameterList [inherited]
    -
    -
    - -

    Definition at line 199 of file vamp-sdk/PluginBase.h.

    - -
    -
    - -
    -
    - - - - -
    typedef std::vector<std::string> Vamp::PluginBase::ProgramList [inherited]
    -
    -
    - -

    Definition at line 221 of file vamp-sdk/PluginBase.h.

    - -
    -
    -

    Member Enumeration Documentation

    - -
    -
    - - - - -
    enum Vamp::Plugin::InputDomain [inherited]
    -
    -
    -
    Enumerator:
    - - -
    TimeDomain  -
    FrequencyDomain  -
    -
    -
    - -

    Definition at line 152 of file vamp-sdk/Plugin.h.

    - -
    -
    -

    Constructor & Destructor Documentation

    - -
    -
    - - - +
    ZeroCrossing::ZeroCrossing ZeroCrossing::ZeroCrossing ( float  inputSampleRate)
    -
    -
    +
    -

    Definition at line 46 of file ZeroCrossing.cpp.

    +

    Definition at line 47 of file ZeroCrossing.cpp.

    - + +

    ◆ ~ZeroCrossing()

    +
    + + + + + +
    - + - +
    ZeroCrossing::~ZeroCrossing ZeroCrossing::~ZeroCrossing ( ) [virtual]
    - -
    +
    +virtual
    +
    -

    Definition at line 53 of file ZeroCrossing.cpp.

    +

    Definition at line 54 of file ZeroCrossing.cpp.

    -

    Member Function Documentation

    - +

    Member Function Documentation

    + +

    ◆ initialise()

    +
    + + + + + +
    - + @@ -335,11 +421,15 @@ - +
    bool ZeroCrossing::initialise bool ZeroCrossing::initialise ( size_t  inputChannels,
    ) [virtual]
    - -
    +
    +virtual
    +

    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).

    The input sample rate should have been already specified at construction time.

    @@ -347,76 +437,103 @@

    Implements Vamp::Plugin.

    -

    Definition at line 94 of file ZeroCrossing.cpp.

    +

    Definition at line 95 of file ZeroCrossing.cpp.

    -

    References Vamp::Plugin::getMaxChannelCount(), Vamp::Plugin::getMinChannelCount(), and m_stepSize.

    +

    References Vamp::Plugin::getMaxChannelCount(), Vamp::Plugin::getMinChannelCount(), and m_stepSize.

    - + +

    ◆ reset()

    +
    + + + + + +
    - + - +
    void ZeroCrossing::reset void ZeroCrossing::reset ( ) [virtual]
    - -
    +
    +virtual
    +

    Reset the plugin after use, to prepare it for another clean run.

    Not called for the first initialisation (i.e. initialise must also do a reset).

    Implements Vamp::Plugin.

    -

    Definition at line 105 of file ZeroCrossing.cpp.

    +

    Definition at line 106 of file ZeroCrossing.cpp.

    -

    References m_previousSample.

    +

    References m_previousSample.

    - + +

    ◆ getInputDomain()

    +
    + + + + + +
    - + - +
    InputDomain ZeroCrossing::getInputDomain InputDomain ZeroCrossing::getInputDomain ( ) const [inline, virtual] const
    - -
    +
    +inlinevirtual
    +

    Get the plugin's required input domain.

    -

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    -

    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 process(). 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.

    +

    If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin.

    +

    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 process(). 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.

    Implements Vamp::Plugin.

    -

    Definition at line 56 of file ZeroCrossing.h.

    +

    Definition at line 56 of file ZeroCrossing.h.

    -

    References Vamp::Plugin::TimeDomain.

    +

    References getCopyright(), getDescription(), getIdentifier(), getMaker(), getName(), getOutputDescriptors(), getPluginVersion(), getRemainingFeatures(), process(), and Vamp::Plugin::TimeDomain.

    - + +

    ◆ getIdentifier()

    +
    + + + + + +
    - + - +
    string ZeroCrossing::getIdentifier string ZeroCrossing::getIdentifier ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the computer-usable name of the plugin.

    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.

    @@ -425,23 +542,34 @@

    Implements Vamp::PluginBase.

    -

    Definition at line 58 of file ZeroCrossing.cpp.

    +

    Definition at line 59 of file ZeroCrossing.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getName()

    +
    + + + + + +
    - + - +
    string ZeroCrossing::getName string ZeroCrossing::getName ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get a human-readable name or title of the plugin.

    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").

    @@ -449,23 +577,34 @@

    Implements Vamp::PluginBase.

    -

    Definition at line 64 of file ZeroCrossing.cpp.

    +

    Definition at line 65 of file ZeroCrossing.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getDescription()

    +
    + + + + + +
    - + - +
    string ZeroCrossing::getDescription string ZeroCrossing::getDescription ( ) const [virtual] const
    - -
    +
    +virtual
    +

    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".

    May be empty if the name has said it all already.

    @@ -473,109 +612,160 @@

    Implements Vamp::PluginBase.

    -

    Definition at line 70 of file ZeroCrossing.cpp.

    +

    Definition at line 71 of file ZeroCrossing.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getMaker()

    +
    + + + + + +
    - + - +
    string ZeroCrossing::getMaker string ZeroCrossing::getMaker ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the name of the author or vendor of the plugin in human-readable form.

    This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar.

    Implements Vamp::PluginBase.

    -

    Definition at line 76 of file ZeroCrossing.cpp.

    +

    Definition at line 77 of file ZeroCrossing.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getPluginVersion()

    +
    + + + + + +
    - + - +
    int ZeroCrossing::getPluginVersion int ZeroCrossing::getPluginVersion ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the version number of the plugin.

    Implements Vamp::PluginBase.

    -

    Definition at line 82 of file ZeroCrossing.cpp.

    +

    Definition at line 83 of file ZeroCrossing.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getCopyright()

    +
    + + + + + +
    - + - +
    string ZeroCrossing::getCopyright string ZeroCrossing::getCopyright ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the copyright statement or licensing summary for the plugin.

    This can be an informative text, without the same presentation constraints as mentioned for getMaker above.

    Implements Vamp::PluginBase.

    -

    Definition at line 88 of file ZeroCrossing.cpp.

    +

    Definition at line 89 of file ZeroCrossing.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getOutputDescriptors()

    +
    + + + + + +
    - + - +
    ZeroCrossing::OutputList ZeroCrossing::getOutputDescriptors ZeroCrossing::OutputList ZeroCrossing::getOutputDescriptors ( ) const [virtual] const
    - -
    +
    +virtual
    +

    Get the outputs of this plugin.

    -

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    +

    An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call.

    Implements Vamp::Plugin.

    -

    Definition at line 111 of file ZeroCrossing.cpp.

    +

    Definition at line 112 of file ZeroCrossing.cpp.

    -

    References Vamp::Plugin::OutputDescriptor::binCount, Vamp::Plugin::OutputDescriptor::description, Vamp::Plugin::OutputDescriptor::hasFixedBinCount, Vamp::Plugin::OutputDescriptor::hasKnownExtents, Vamp::Plugin::OutputDescriptor::identifier, Vamp::Plugin::OutputDescriptor::isQuantized, Vamp::Plugin::m_inputSampleRate, Vamp::Plugin::OutputDescriptor::name, Vamp::Plugin::OutputDescriptor::OneSamplePerStep, Vamp::Plugin::OutputDescriptor::quantizeStep, Vamp::Plugin::OutputDescriptor::sampleRate, Vamp::Plugin::OutputDescriptor::sampleType, Vamp::Plugin::OutputDescriptor::unit, and Vamp::Plugin::OutputDescriptor::VariableSampleRate.

    +

    References Vamp::Plugin::OutputDescriptor::binCount, Vamp::Plugin::OutputDescriptor::description, Vamp::Plugin::OutputDescriptor::hasFixedBinCount, Vamp::Plugin::OutputDescriptor::hasKnownExtents, Vamp::Plugin::OutputDescriptor::identifier, Vamp::Plugin::OutputDescriptor::isQuantized, Vamp::Plugin::m_inputSampleRate, Vamp::Plugin::OutputDescriptor::name, Vamp::Plugin::OutputDescriptor::OneSamplePerStep, Vamp::Plugin::OutputDescriptor::quantizeStep, Vamp::Plugin::OutputDescriptor::sampleRate, Vamp::Plugin::OutputDescriptor::sampleType, Vamp::Plugin::OutputDescriptor::unit, and Vamp::Plugin::OutputDescriptor::VariableSampleRate.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ process()

    +
    + + + + + +
    - + @@ -589,11 +779,15 @@ - +
    ZeroCrossing::FeatureSet ZeroCrossing::process ZeroCrossing::FeatureSet ZeroCrossing::process ( const float *const *  inputBuffers,
    ) [virtual]
    - -
    +
    +virtual
    +

    Process a single block of input data.

    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.

    @@ -602,235 +796,325 @@

    Implements Vamp::Plugin.

    -

    Definition at line 142 of file ZeroCrossing.cpp.

    +

    Definition at line 143 of file ZeroCrossing.cpp.

    -

    References Vamp::RealTime::frame2RealTime(), Vamp::Plugin::Feature::hasTimestamp, Vamp::Plugin::m_inputSampleRate, m_previousSample, m_stepSize, Vamp::Plugin::Feature::timestamp, and Vamp::Plugin::Feature::values.

    +

    References Vamp::RealTime::frame2RealTime(), Vamp::Plugin::Feature::hasTimestamp, Vamp::Plugin::m_inputSampleRate, m_previousSample, m_stepSize, Vamp::Plugin::Feature::timestamp, and Vamp::Plugin::Feature::values.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getRemainingFeatures()

    +
    + + + + + +
    - + - +
    ZeroCrossing::FeatureSet ZeroCrossing::getRemainingFeatures ZeroCrossing::FeatureSet ZeroCrossing::getRemainingFeatures ( ) [virtual]
    - -
    +
    +virtual
    +

    After all blocks have been processed, calculate and return any remaining features derived from the complete input.

    Implements Vamp::Plugin.

    -

    Definition at line 191 of file ZeroCrossing.cpp.

    +

    Definition at line 192 of file ZeroCrossing.cpp.

    + +

    Referenced by getInputDomain().

    - + +

    ◆ getPreferredBlockSize()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getPreferredBlockSize virtual size_t Vamp::Plugin::getPreferredBlockSize ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function).

    -

    This should be called before initialise().

    -

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    +

    Get the preferred block size (window size – the number of sample frames passed in each block to the process() function).

    +

    This should be called before initialise().

    +

    A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call.

    -

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 179 of file vamp-sdk/Plugin.h.

    +

    Definition at line 179 of file vamp-sdk/Plugin.h.

    -

    Referenced by enumeratePlugins(), and runPlugin().

    +

    Referenced by enumeratePlugins(), and runPlugin().

    - + +

    ◆ getPreferredStepSize()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getPreferredStepSize virtual size_t Vamp::Plugin::getPreferredStepSize ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    -

    This should be called before initialise().

    -

    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 initialise() call.

    +

    Get the preferred step size (window increment – the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin.

    +

    This should be called before initialise().

    +

    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 initialise() call.

    -

    Reimplemented in Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::HostExt::PluginInputDomainAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginBufferingAdapter, Vamp::HostExt::PluginWrapper, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 194 of file vamp-sdk/Plugin.h.

    +

    Definition at line 194 of file vamp-sdk/Plugin.h.

    -

    Referenced by enumeratePlugins(), and runPlugin().

    +

    Referenced by enumeratePlugins(), and runPlugin().

    - + +

    ◆ getMinChannelCount()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getMinChannelCount virtual size_t Vamp::Plugin::getMinChannelCount ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    - + +

    ◆ getMaxChannelCount()

    +
    + + + + + +
    - + - +
    virtual size_t Vamp::Plugin::getMaxChannelCount virtual size_t Vamp::Plugin::getMaxChannelCount ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    - + +

    ◆ getType()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::Plugin::getType virtual std::string Vamp::Plugin::getType ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +
    -

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    +

    Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase.

    Do not reimplement this function in your subclass.

    Implements Vamp::PluginBase.

    -

    Definition at line 430 of file vamp-sdk/Plugin.h.

    +

    Definition at line 438 of file vamp-sdk/Plugin.h.

    - + +

    ◆ getVampApiVersion()

    +
    + + + + + +
    - + - +
    virtual unsigned int Vamp::PluginBase::getVampApiVersion virtual unsigned int Vamp::PluginBase::getVampApiVersion ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the Vamp API compatibility level of the plugin.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 68 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 68 of file vamp-sdk/PluginBase.h.

    -

    Referenced by enumeratePlugins().

    +

    Referenced by enumeratePlugins().

    - + +

    ◆ getParameterDescriptors()

    +
    + + + + + +
    - + - +
    virtual ParameterList Vamp::PluginBase::getParameterDescriptors virtual ParameterList Vamp::PluginBase::getParameterDescriptors ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the controllable parameters of this plugin.

    -

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 204 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 208 of file vamp-sdk/PluginBase.h.

    -

    Referenced by enumeratePlugins().

    +

    Referenced by enumeratePlugins().

    - + +

    ◆ getParameter()

    +
    + + + + + +
    - + - +
    virtual float Vamp::PluginBase::getParameter virtual float Vamp::PluginBase::getParameter ( std::string  ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the value of a named parameter.

    The argument is the identifier field from that parameter's descriptor.

    -

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    +

    Reimplemented in Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 212 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 216 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ setParameter()

    +
    + + + + + +
    - + @@ -844,140 +1128,200 @@ - +
    virtual void Vamp::PluginBase::setParameter virtual void Vamp::PluginBase::setParameter ( std::string  ,
    ) [inline, virtual, inherited]
    - -
    +
    +inlinevirtualinherited
    +

    Set a named parameter.

    The first argument is the identifier field from that parameter's descriptor.

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::PluginHostAdapter, Vamp::HostExt::PluginWrapper, AmplitudeFollower, FixedTempoEstimator, and PercussionOnsetDetector.

    -

    Definition at line 218 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 222 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ getPrograms()

    +
    + + + + + +
    - + - +
    virtual ProgramList Vamp::PluginBase::getPrograms virtual ProgramList Vamp::PluginBase::getPrograms ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the program settings available in this plugin.

    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.

    The programs must have unique names.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 233 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 237 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ getCurrentProgram()

    +
    + + + + + +
    - + - +
    virtual std::string Vamp::PluginBase::getCurrentProgram virtual std::string Vamp::PluginBase::getCurrentProgram ( ) const [inline, virtual, inherited] const
    - -
    +
    +inlinevirtualinherited
    +

    Get the current program.

    -

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    +

    Reimplemented in Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 238 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 242 of file vamp-sdk/PluginBase.h.

    - + +

    ◆ selectProgram()

    +
    + + + + + +
    - + - +
    virtual void Vamp::PluginBase::selectProgram virtual void Vamp::PluginBase::selectProgram ( std::string  ) [inline, virtual, inherited]
    - -
    +
    +inlinevirtualinherited
    +

    Select a program.

    (If the given program name is not one of the available programs, do nothing.)

    Reimplemented in Vamp::HostExt::PluginBufferingAdapter, Vamp::PluginHostAdapter, and Vamp::HostExt::PluginWrapper.

    -

    Definition at line 244 of file vamp-sdk/PluginBase.h.

    +

    Definition at line 248 of file vamp-sdk/PluginBase.h.

    + +

    References _VAMP_SDK_PLUGSPACE_END.

    -

    Member Data Documentation

    - +

    Member Data Documentation

    + +

    ◆ m_stepSize

    +
    + + + + + +
    - +
    size_t ZeroCrossing::m_stepSize [protected]size_t ZeroCrossing::m_stepSize
    - -
    +
    +protected
    +
    -

    Definition at line 73 of file ZeroCrossing.h.

    +

    Definition at line 73 of file ZeroCrossing.h.

    -

    Referenced by initialise(), and process().

    +

    Referenced by initialise(), and process().

    - + +

    ◆ m_previousSample

    +
    + + + + + +
    - +
    float ZeroCrossing::m_previousSample [protected]float ZeroCrossing::m_previousSample
    - -
    +
    +protected
    +
    -

    Definition at line 74 of file ZeroCrossing.h.

    +

    Definition at line 74 of file ZeroCrossing.h.

    -

    Referenced by process(), and reset().

    +

    Referenced by process(), and reset().

    - + +

    ◆ m_inputSampleRate

    + @@ -986,17 +1330,15 @@
  • ZeroCrossing.cpp
  • + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classZeroCrossing.js --- a/code-docs/classZeroCrossing.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classZeroCrossing.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,38 +1,41 @@ var classZeroCrossing = [ - [ "OutputList", "classVamp_1_1Plugin.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], - [ "FeatureList", "classVamp_1_1Plugin.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], - [ "FeatureSet", "classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], - [ "ParameterList", "classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], - [ "ProgramList", "classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20", null ], - [ "InputDomain", "classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc", null ], + [ "OutputList", "classZeroCrossing.html#a30f531b8fb69fac41a24e3d2a6a08ed9", null ], + [ "FeatureList", "classZeroCrossing.html#a0730bc72c87fa02eb8d2854b233f7be1", null ], + [ "FeatureSet", "classZeroCrossing.html#a448fb57dc245d47923ec9eeaf9856c5f", null ], + [ "ParameterList", "classZeroCrossing.html#a3b6bb4bbd86affe1ca9deceea1aad4f8", null ], + [ "ProgramList", "classZeroCrossing.html#a7f66f00437b21e5f694fe02356b12f20", null ], + [ "InputDomain", "classZeroCrossing.html#a39cb7649d6dcc20e4cb1640cd55907bc", [ + [ "TimeDomain", "classZeroCrossing.html#a39cb7649d6dcc20e4cb1640cd55907bcad4a9f31b958a43a9757af7893aa2e7ff", null ], + [ "FrequencyDomain", "classZeroCrossing.html#a39cb7649d6dcc20e4cb1640cd55907bcaa30e7877ab33f76acbdca28607e6ab53", null ] + ] ], [ "ZeroCrossing", "classZeroCrossing.html#a9855153a54bdc9ba75cc1a705a149473", null ], [ "~ZeroCrossing", "classZeroCrossing.html#af1de0da862e6e2443581e4e16044675b", null ], [ "initialise", "classZeroCrossing.html#af21bbcc87a6eb7875dfab7d86222dccc", null ], [ "reset", "classZeroCrossing.html#a9ae6c4a31ea027dceb1e97ead807e228", null ], - [ "getInputDomain", "classZeroCrossing.html#aafe2ce6ebd353a14c40db7e8e60f4051", null ], - [ "getIdentifier", "classZeroCrossing.html#af2baf9e19fcdd11cfe97ace56d4f5c1a", null ], - [ "getName", "classZeroCrossing.html#afa96f7ce6e7d9f03768f48c6a9d88498", null ], - [ "getDescription", "classZeroCrossing.html#a710bb0b013157adaeef2a9e6867b4478", null ], - [ "getMaker", "classZeroCrossing.html#ac68561634a3c329a029c2fd3deaeae2a", null ], - [ "getPluginVersion", "classZeroCrossing.html#ad685f6c2f443f07a1634550c335571eb", null ], - [ "getCopyright", "classZeroCrossing.html#af9c41b92aa8ff8bddaebf75569ff789c", null ], - [ "getOutputDescriptors", "classZeroCrossing.html#ac9d590a6feb1fc9a37d7892aefe2b688", null ], + [ "getInputDomain", "classZeroCrossing.html#a2fd2cefbd1564e4d30ccabd64d6555e7", null ], + [ "getIdentifier", "classZeroCrossing.html#af5049a01a3f003f17a45c61b599c6543", null ], + [ "getName", "classZeroCrossing.html#a191365f793e6488d02d57029eb14deb2", null ], + [ "getDescription", "classZeroCrossing.html#a7ba1cfd102a427f8333ddfa2fe234d58", null ], + [ "getMaker", "classZeroCrossing.html#a9ddf295d977b6c64d8acd34b7e0ce1b0", null ], + [ "getPluginVersion", "classZeroCrossing.html#a4199350192d84a4ec5f379805cd3e7cf", null ], + [ "getCopyright", "classZeroCrossing.html#af955fb85b26a5497690aecbd288975f2", null ], + [ "getOutputDescriptors", "classZeroCrossing.html#ab83cfab3f9674920e295c2f3571bb24e", null ], [ "process", "classZeroCrossing.html#abf4aaa6fd8cc03de63f4e1e8942633da", null ], [ "getRemainingFeatures", "classZeroCrossing.html#a70996d1b7166e303903daf92a9a37ad8", null ], - [ "getPreferredBlockSize", "classVamp_1_1Plugin.html#aa529adf83f87a603954eb31407602aac", null ], - [ "getPreferredStepSize", "classVamp_1_1Plugin.html#a514c716c22f81c055f19b56c3f882567", null ], - [ "getMinChannelCount", "classVamp_1_1Plugin.html#a267b42e866df3cf0d190893e8096f525", null ], - [ "getMaxChannelCount", "classVamp_1_1Plugin.html#a2c5ab12b6fa4847cb244bd1e9cb3ae5e", null ], - [ "getType", "classVamp_1_1Plugin.html#abe13b3997a69fbcc09e2213faa352f91", null ], - [ "getVampApiVersion", "classVamp_1_1PluginBase.html#a8fd2c48291c64b790f0efb8948508dcf", null ], - [ "getParameterDescriptors", "classVamp_1_1PluginBase.html#aac3e49b3b66cacfbb768dfdf07444f21", null ], - [ "getParameter", "classVamp_1_1PluginBase.html#a97ababcd45348ceec998d0f8e0f38bf7", null ], - [ "setParameter", "classVamp_1_1PluginBase.html#a6c718ce822f7b73b98940d59dcaa9366", null ], - [ "getPrograms", "classVamp_1_1PluginBase.html#abb307c60bdb981d5f5af50c3c4ae84af", null ], - [ "getCurrentProgram", "classVamp_1_1PluginBase.html#a24e77eccf1bdfbbca3c79bb25e8799b3", null ], - [ "selectProgram", "classVamp_1_1PluginBase.html#aadd3a547ef140bae200473a9518e3353", null ], + [ "getPreferredBlockSize", "classZeroCrossing.html#ae3b9c32b12796ece152388babad7cc7d", null ], + [ "getPreferredStepSize", "classZeroCrossing.html#a33eaf9a265bc3a055e156452112456c2", null ], + [ "getMinChannelCount", "classZeroCrossing.html#ab74f7634c6ac6e3da115667808a79c30", null ], + [ "getMaxChannelCount", "classZeroCrossing.html#a0bff9464bc8c117470136c396b2405dd", null ], + [ "getType", "classZeroCrossing.html#a530123068767a8728c568ffccfe3e4e5", null ], + [ "getVampApiVersion", "classZeroCrossing.html#ab4aa9c3e6f6dd9addbc095463c9fb772", null ], + [ "getParameterDescriptors", "classZeroCrossing.html#a0c24ff6a43c681198dc9497287a26e3a", null ], + [ "getParameter", "classZeroCrossing.html#aa813d61077080ec95487d2a0227cc51b", null ], + [ "setParameter", "classZeroCrossing.html#a6c718ce822f7b73b98940d59dcaa9366", null ], + [ "getPrograms", "classZeroCrossing.html#aaf6febff0ab4daf4a5089c98a67f4df8", null ], + [ "getCurrentProgram", "classZeroCrossing.html#aac38c5dc6e87208616122897518ca3d5", null ], + [ "selectProgram", "classZeroCrossing.html#aadd3a547ef140bae200473a9518e3353", null ], [ "m_stepSize", "classZeroCrossing.html#a584f100b87c78f9af9da040d79567d52", null ], [ "m_previousSample", "classZeroCrossing.html#a0f2d9f2cab0a8a30344e1f2c0ebb8ee8", null ], - [ "m_inputSampleRate", "classVamp_1_1Plugin.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] + [ "m_inputSampleRate", "classZeroCrossing.html#a59b9dd82a4f4eb946cd0474cc81abc23", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classZeroCrossing__inherit__graph.map --- a/code-docs/classZeroCrossing__inherit__graph.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classZeroCrossing__inherit__graph.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,4 +1,4 @@ - - - + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classZeroCrossing__inherit__graph.md5 --- a/code-docs/classZeroCrossing__inherit__graph.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classZeroCrossing__inherit__graph.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -c606d7f9fcc452640c504b2f9e279914 \ No newline at end of file +32c54a8539635ebcac9b90ca820fc458 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classZeroCrossing__inherit__graph.png Binary file code-docs/classZeroCrossing__inherit__graph.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/classes.html --- a/code-docs/classes.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/classes.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Class Index - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -77,48 +63,47 @@
    Class Index
    -
    A | D | F | O | P | R | S | Z | _
    - -","
      A  
    -
    PercussionOnsetDetector   
      S  
    +
    _ | a | d | f | o | p | r | s | z
    + + + + + + + + - - - - - - + - - - - - - - - - - + + + + + + + +
      _  
    +
    FFT (Vamp)   PluginHostAdapter (Vamp)   
    FFTComplex (Vamp)   PluginInputDomainAdapter (Vamp::HostExt)   
    _VampFeature   FFTReal (Vamp)   PluginLoader (Vamp::HostExt)   
    _VampFeatureList   FixedTempoEstimator   PluginSummarisingAdapter (Vamp::HostExt)   
    _VampFeatureUnion   
      o  
    +
    PluginWrapper (Vamp::HostExt)   
    _VampFeatureV2   PowerSpectrum   
    _VampOutputDescriptor   Plugin::OutputDescriptor (Vamp)   
      r  
    Plugin (Vamp)   
    AmplitudeFollower   PluginAdapter (Vamp)   SpectralCentroid   
      D  
    -
    PluginAdapterBase (Vamp)   
      Z  
    +
    _VampParameterDescriptor   
      p  
    PluginBase (Vamp)   
    FixedTempoEstimator::D   PluginBufferingAdapter (Vamp::HostExt)   ZeroCrossing   
      F  
    -
    PluginChannelAdapter (Vamp::HostExt)   
      _  
    +
    _VampPluginDescriptor   RealTime (Vamp)   
      a  
    +
    PluginBase::ParameterDescriptor (Vamp)   
      s  
    PluginHostAdapter (Vamp)   
    Plugin::Feature (Vamp)   PluginInputDomainAdapter (Vamp::HostExt)   _VampFeature   
    FFT (Vamp)   PluginLoader (Vamp::HostExt)   _VampFeatureList   
    FixedTempoEstimator   PluginSummarisingAdapter (Vamp::HostExt)   _VampFeatureUnion   
      O  
    -
    PluginWrapper (Vamp::HostExt)   _VampFeatureV2   
    PowerSpectrum   _VampOutputDescriptor   
    Plugin::OutputDescriptor (Vamp)   
      R  
    -
    _VampParameterDescriptor   
      P  
    -
    _VampPluginDescriptor   
    RealTime (Vamp)   
    PluginBase::ParameterDescriptor (Vamp)   
    PercussionOnsetDetector   
    AmplitudeFollower   Plugin (Vamp)   SpectralCentroid   
      d  
    +
    PluginAdapter (Vamp)   
      z  
    +
    PluginAdapterBase (Vamp)   
    FixedTempoEstimator::D   PluginBase (Vamp)   ZeroCrossing   
      f  
    +
    PluginBufferingAdapter (Vamp::HostExt)   
    PluginChannelAdapter (Vamp::HostExt)   
    Plugin::Feature (Vamp)   
    -
    A | D | F | O | P | R | S | Z | _
    +
    _ | a | d | f | o | p | r | s | z
    + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/closed.png Binary file code-docs/closed.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_000000_000002.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/dir_000000_000002.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,74 @@ + + + + + + + +VampPluginSDK: examples -> vamp-sdk Relation + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_000000_000005.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/dir_000000_000005.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,74 @@ + + + + + + + +VampPluginSDK: examples -> vamp Relation + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +

    examples → vamp Relation

    File in examplesIncludes file in vamp
    plugins.cppvamp.h
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_000002_000005.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/dir_000002_000005.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,74 @@ + + + + + + + +VampPluginSDK: vamp-sdk -> vamp Relation + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +

    vamp-sdk → vamp Relation

    File in vamp-sdkIncludes file in vamp
    PluginAdapter.hvamp.h
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_000003_000002.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/dir_000003_000002.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,74 @@ + + + + + + + +VampPluginSDK: vamp-hostsdk -> vamp-sdk Relation + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_000003_000005.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/dir_000003_000005.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,74 @@ + + + + + + + +VampPluginSDK: vamp-hostsdk -> vamp Relation + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +

    vamp-hostsdk → vamp Relation

    File in vamp-hostsdkIncludes file in vamp
    host-c.hvamp.h
    PluginHostAdapter.hvamp.h
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_000004_000003.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/dir_000004_000003.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,74 @@ + + + + + + + +VampPluginSDK: host -> vamp-hostsdk Relation + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_09d7d2829940fe46b7bc0eab58bbbc83.html --- a/code-docs/dir_09d7d2829940fe46b7bc0eab58bbbc83.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ - - - - -VampPluginSDK: vamp/ Directory Reference - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.1 -
    - -
    -
    - - - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    vamp Directory Reference
    -
    -
    -
    -Directory dependency graph for vamp/:
    -
    -
    vamp/
    - - -
    - - - -

    -Files

    file  vamp.h [code]
    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_09d7d2829940fe46b7bc0eab58bbbc83_dep.map --- a/code-docs/dir_09d7d2829940fe46b7bc0eab58bbbc83_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_09d7d2829940fe46b7bc0eab58bbbc83_dep.md5 --- a/code-docs/dir_09d7d2829940fe46b7bc0eab58bbbc83_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -fa1a12dce37ca78c8c973be4a9615a8b \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_09d7d2829940fe46b7bc0eab58bbbc83_dep.png Binary file code-docs/dir_09d7d2829940fe46b7bc0eab58bbbc83_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_2d75386d541e768dd0382c2de0bcb161.html --- a/code-docs/dir_2d75386d541e768dd0382c2de0bcb161.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ - - - - -VampPluginSDK: src/ Directory Reference - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.3 -
    - -
    -
    - - - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    src Directory Reference
    -
    -
    -
    -Directory dependency graph for src/:
    -
    -
    src/
    - - -
    - - - -

    -Files

    file  doc-overview [code]
    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_2d75386d541e768dd0382c2de0bcb161_dep.map --- a/code-docs/dir_2d75386d541e768dd0382c2de0bcb161_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_2d75386d541e768dd0382c2de0bcb161_dep.md5 --- a/code-docs/dir_2d75386d541e768dd0382c2de0bcb161_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -508f030d44297a1462e7e2fde9dd977c \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_2d75386d541e768dd0382c2de0bcb161_dep.png Binary file code-docs/dir_2d75386d541e768dd0382c2de0bcb161_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_35887283b966ca996e4ff77f459c38ce.html --- a/code-docs/dir_35887283b966ca996e4ff77f459c38ce.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ - - - - -VampPluginSDK: examples/ Directory Reference - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.3 -
    - -
    -
    - - - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    examples Directory Reference
    -
    - -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_35887283b966ca996e4ff77f459c38ce_dep.map --- a/code-docs/dir_35887283b966ca996e4ff77f459c38ce_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_35887283b966ca996e4ff77f459c38ce_dep.md5 --- a/code-docs/dir_35887283b966ca996e4ff77f459c38ce_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -df458a330b7fc67f5e9b56e4130d8e39 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_35887283b966ca996e4ff77f459c38ce_dep.png Binary file code-docs/dir_35887283b966ca996e4ff77f459c38ce_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_4571ebff077265f6d30f5427df02fcd6.html --- a/code-docs/dir_4571ebff077265f6d30f5427df02fcd6.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ - - - - -VampPluginSDK: vamp-hostsdk/ Directory Reference - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.3 -
    - -
    -
    - - - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    vamp-hostsdk Directory Reference
    -
    - -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_4571ebff077265f6d30f5427df02fcd6_dep.map --- a/code-docs/dir_4571ebff077265f6d30f5427df02fcd6_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_4571ebff077265f6d30f5427df02fcd6_dep.md5 --- a/code-docs/dir_4571ebff077265f6d30f5427df02fcd6_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -c76c95c460dd63acdeebf850c51e7371 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_4571ebff077265f6d30f5427df02fcd6_dep.png Binary file code-docs/dir_4571ebff077265f6d30f5427df02fcd6_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_4ec587bfce30b9b784fbf1cea7303b09.html --- a/code-docs/dir_4ec587bfce30b9b784fbf1cea7303b09.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ - - - - -VampPluginSDK: examples/ Directory Reference - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.1 -
    - -
    -
    - - - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    examples Directory Reference
    -
    - -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_4ec587bfce30b9b784fbf1cea7303b09_dep.map --- a/code-docs/dir_4ec587bfce30b9b784fbf1cea7303b09_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_4ec587bfce30b9b784fbf1cea7303b09_dep.md5 --- a/code-docs/dir_4ec587bfce30b9b784fbf1cea7303b09_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -eeb315c6124b9c6db8bdfcd24cd37d2c \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_4ec587bfce30b9b784fbf1cea7303b09_dep.png Binary file code-docs/dir_4ec587bfce30b9b784fbf1cea7303b09_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_4f7e4242e27b8c8b476722507617a881.html --- a/code-docs/dir_4f7e4242e27b8c8b476722507617a881.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/dir_4f7e4242e27b8c8b476722507617a881.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,58 +3,51 @@ -VampPluginSDK: host/ Directory Reference - + + +VampPluginSDK: host Directory Reference - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - -
    + + + + + + +
    @@ -71,30 +64,33 @@
    -Directory dependency graph for host/:
    +Directory dependency graph for host:
    -
    host/
    +
    host
    - + + + +
    - + +

    +

    Files

    file  system.h [code]
     
    file  vamp-simple-host.cpp [code]
     
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_4f7e4242e27b8c8b476722507617a881.js --- a/code-docs/dir_4f7e4242e27b8c8b476722507617a881.js Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -var dir_4f7e4242e27b8c8b476722507617a881 = -[ - [ "system.h", "system_8h.html", null ], - [ "vamp-simple-host.cpp", "vamp-simple-host_8cpp.html", null ] -]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_4f7e4242e27b8c8b476722507617a881_dep.map --- a/code-docs/dir_4f7e4242e27b8c8b476722507617a881_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/dir_4f7e4242e27b8c8b476722507617a881_dep.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,5 @@ - - + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_4f7e4242e27b8c8b476722507617a881_dep.md5 --- a/code-docs/dir_4f7e4242e27b8c8b476722507617a881_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/dir_4f7e4242e27b8c8b476722507617a881_dep.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -dd9f8c36bed7f65011373d474af35ca7 \ No newline at end of file +a9302acd00ef59a854e379ef6670e474 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_4f7e4242e27b8c8b476722507617a881_dep.png Binary file code-docs/dir_4f7e4242e27b8c8b476722507617a881_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_5b77fce4b90561041d958141b45c7c55.html --- a/code-docs/dir_5b77fce4b90561041d958141b45c7c55.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,103 +0,0 @@ - - - - -VampPluginSDK: vamp-sdk/ Directory Reference - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.3 -
    - -
    -
    - - - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    vamp-sdk Directory Reference
    -
    -
    -
    -Directory dependency graph for vamp-sdk/:
    -
    -
    vamp-sdk/
    - - -
    - - - - - - - - -

    -Files

    file  plugguard.h [code]
    file  vamp-sdk/Plugin.h [code]
    file  PluginAdapter.h [code]
    file  vamp-sdk/PluginBase.h [code]
    file  vamp-sdk/RealTime.h [code]
    file  vamp-sdk.h [code]
    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_5b77fce4b90561041d958141b45c7c55_dep.map --- a/code-docs/dir_5b77fce4b90561041d958141b45c7c55_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_5b77fce4b90561041d958141b45c7c55_dep.md5 --- a/code-docs/dir_5b77fce4b90561041d958141b45c7c55_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -a90a48fc58b0133c16bdddab892783d2 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_5b77fce4b90561041d958141b45c7c55_dep.png Binary file code-docs/dir_5b77fce4b90561041d958141b45c7c55_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_629e1dda0168f818e2ee3ab23f68039a.html --- a/code-docs/dir_629e1dda0168f818e2ee3ab23f68039a.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ - - - - -VampPluginSDK: src/ Directory Reference - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.1 -
    - -
    -
    - - - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    src Directory Reference
    -
    -
    -
    -Directory dependency graph for src/:
    -
    -
    src/
    - - -
    - - - -

    -Files

    file  doc-overview [code]
    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_629e1dda0168f818e2ee3ab23f68039a_dep.map --- a/code-docs/dir_629e1dda0168f818e2ee3ab23f68039a_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_629e1dda0168f818e2ee3ab23f68039a_dep.md5 --- a/code-docs/dir_629e1dda0168f818e2ee3ab23f68039a_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -db9baf074e4c9fbd7f1b51c19609d148 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_629e1dda0168f818e2ee3ab23f68039a_dep.png Binary file code-docs/dir_629e1dda0168f818e2ee3ab23f68039a_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html --- a/code-docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,58 +3,51 @@ -VampPluginSDK: src/ Directory Reference - + + +VampPluginSDK: src Directory Reference - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - -
    + + + + + + +
    @@ -70,30 +63,22 @@
    src Directory Reference
    -
    -Directory dependency graph for src/:
    -
    -
    src/
    - - -
    - +

    +

    Files

    file  doc-overview [code]
     
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_68267d1309a1af8e8297ef4c3efbcdba.js --- a/code-docs/dir_68267d1309a1af8e8297ef4c3efbcdba.js Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -var dir_68267d1309a1af8e8297ef4c3efbcdba = -[ - [ "doc-overview", "doc-overview.html", null ] -]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map --- a/code-docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 --- a/code-docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -0359f9f3db80f8303b5c3d3ef459005d \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png Binary file code-docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_6fbd4b7d3be43d486a3cce3231e92c53.html --- a/code-docs/dir_6fbd4b7d3be43d486a3cce3231e92c53.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ - - - - -VampPluginSDK: host/ Directory Reference - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.1 -
    - -
    -
    - - - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    host Directory Reference
    -
    -
    -
    -Directory dependency graph for host/:
    -
    -
    host/
    - - -
    - - - - -

    -Files

    file  system.h [code]
    file  vamp-simple-host.cpp [code]
    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_6fbd4b7d3be43d486a3cce3231e92c53_dep.map --- a/code-docs/dir_6fbd4b7d3be43d486a3cce3231e92c53_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_6fbd4b7d3be43d486a3cce3231e92c53_dep.md5 --- a/code-docs/dir_6fbd4b7d3be43d486a3cce3231e92c53_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -668f8aa105255542a7dc8dd8fbe710ef \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_6fbd4b7d3be43d486a3cce3231e92c53_dep.png Binary file code-docs/dir_6fbd4b7d3be43d486a3cce3231e92c53_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_8661d6ced9d80e9e8c7982a58cd73404.html --- a/code-docs/dir_8661d6ced9d80e9e8c7982a58cd73404.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/dir_8661d6ced9d80e9e8c7982a58cd73404.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,58 +3,51 @@ -VampPluginSDK: vamp-sdk/ Directory Reference - + + +VampPluginSDK: vamp-sdk Directory Reference - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - -
    + + + + + + +
    @@ -71,35 +64,43 @@
    -Directory dependency graph for vamp-sdk/:
    +Directory dependency graph for vamp-sdk:
    -
    vamp-sdk/
    +
    vamp-sdk
    - + + + +
    - + + + + + + +

    +

    Files

    file  FFT.h [code]
     
    file  plugguard.h [code]
     
    file  vamp-sdk/Plugin.h [code]
     
    file  PluginAdapter.h [code]
     
    file  vamp-sdk/PluginBase.h [code]
     
    file  vamp-sdk/RealTime.h [code]
     
    file  vamp-sdk.h [code]
     
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_8661d6ced9d80e9e8c7982a58cd73404.js --- a/code-docs/dir_8661d6ced9d80e9e8c7982a58cd73404.js Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -var dir_8661d6ced9d80e9e8c7982a58cd73404 = -[ - [ "FFT.h", "FFT_8h.html", null ], - [ "plugguard.h", "plugguard_8h.html", null ], - [ "vamp-sdk/Plugin.h", "vamp-sdk_2Plugin_8h.html", null ], - [ "PluginAdapter.h", "PluginAdapter_8h.html", null ], - [ "vamp-sdk/PluginBase.h", "vamp-sdk_2PluginBase_8h.html", null ], - [ "vamp-sdk/RealTime.h", "vamp-sdk_2RealTime_8h.html", null ], - [ "vamp-sdk.h", "vamp-sdk_8h.html", null ] -]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_8661d6ced9d80e9e8c7982a58cd73404_dep.map --- a/code-docs/dir_8661d6ced9d80e9e8c7982a58cd73404_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/dir_8661d6ced9d80e9e8c7982a58cd73404_dep.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,5 @@ - - + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_8661d6ced9d80e9e8c7982a58cd73404_dep.md5 --- a/code-docs/dir_8661d6ced9d80e9e8c7982a58cd73404_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/dir_8661d6ced9d80e9e8c7982a58cd73404_dep.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -f3416788fff7ad7bdf976282b4463ba8 \ No newline at end of file +e2663fa690e0cd6d4982262740672969 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_8661d6ced9d80e9e8c7982a58cd73404_dep.png Binary file code-docs/dir_8661d6ced9d80e9e8c7982a58cd73404_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_878d155c6c7dea35ce3fc23c898c55e3.html --- a/code-docs/dir_878d155c6c7dea35ce3fc23c898c55e3.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ - - - - -VampPluginSDK: vamp-hostsdk/ Directory Reference - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.1 -
    - -
    -
    - - - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    vamp-hostsdk Directory Reference
    -
    - -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_878d155c6c7dea35ce3fc23c898c55e3_dep.map --- a/code-docs/dir_878d155c6c7dea35ce3fc23c898c55e3_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_878d155c6c7dea35ce3fc23c898c55e3_dep.md5 --- a/code-docs/dir_878d155c6c7dea35ce3fc23c898c55e3_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -6489b905a9c2c157c9372559650cab77 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_878d155c6c7dea35ce3fc23c898c55e3_dep.png Binary file code-docs/dir_878d155c6c7dea35ce3fc23c898c55e3_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_9c751ccb9387a8f0ae6ae8f777da02a0.html --- a/code-docs/dir_9c751ccb9387a8f0ae6ae8f777da02a0.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/dir_9c751ccb9387a8f0ae6ae8f777da02a0.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,58 +3,51 @@ -VampPluginSDK: vamp/ Directory Reference - + + +VampPluginSDK: vamp Directory Reference - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - -
    + + + + + + +
    @@ -70,30 +63,22 @@
    vamp Directory Reference
    -
    -Directory dependency graph for vamp/:
    -
    -
    vamp/
    - - -
    - +

    +

    Files

    file  vamp.h [code]
     
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_9c751ccb9387a8f0ae6ae8f777da02a0.js --- a/code-docs/dir_9c751ccb9387a8f0ae6ae8f777da02a0.js Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -var dir_9c751ccb9387a8f0ae6ae8f777da02a0 = -[ - [ "vamp.h", "vamp_8h.html", null ] -]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_9c751ccb9387a8f0ae6ae8f777da02a0_dep.map --- a/code-docs/dir_9c751ccb9387a8f0ae6ae8f777da02a0_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_9c751ccb9387a8f0ae6ae8f777da02a0_dep.md5 --- a/code-docs/dir_9c751ccb9387a8f0ae6ae8f777da02a0_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -6cf79b2d9d1638155ff2a0d14c7fc408 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_9c751ccb9387a8f0ae6ae8f777da02a0_dep.png Binary file code-docs/dir_9c751ccb9387a8f0ae6ae8f777da02a0_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_b086eb10f854304ab96fb3af468374a7.html --- a/code-docs/dir_b086eb10f854304ab96fb3af468374a7.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ - - - - -VampPluginSDK: vamp/ Directory Reference - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.3 -
    - -
    -
    - - - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    vamp Directory Reference
    -
    -
    -
    -Directory dependency graph for vamp/:
    -
    -
    vamp/
    - - -
    - - - -

    -Files

    file  vamp.h [code]
    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_b086eb10f854304ab96fb3af468374a7_dep.map --- a/code-docs/dir_b086eb10f854304ab96fb3af468374a7_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_b086eb10f854304ab96fb3af468374a7_dep.md5 --- a/code-docs/dir_b086eb10f854304ab96fb3af468374a7_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -3e487476c06676330b2ed33684db7d1a \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_b086eb10f854304ab96fb3af468374a7_dep.png Binary file code-docs/dir_b086eb10f854304ab96fb3af468374a7_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_d28a4824dc47e487b107a5db32ef43c4.html --- a/code-docs/dir_d28a4824dc47e487b107a5db32ef43c4.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/dir_d28a4824dc47e487b107a5db32ef43c4.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,58 +3,51 @@ -VampPluginSDK: examples/ Directory Reference - + + +VampPluginSDK: examples Directory Reference - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - -
    + + + + + + +
    @@ -71,41 +64,58 @@
    -Directory dependency graph for examples/:
    +Directory dependency graph for examples:
    -
    examples/
    +
    examples
    - + + + + + + +
    - + + + + + + + + + + + + +

    +

    Files

    file  AmplitudeFollower.cpp [code]
     
    file  AmplitudeFollower.h [code]
     
    file  FixedTempoEstimator.cpp [code]
     
    file  FixedTempoEstimator.h [code]
     
    file  PercussionOnsetDetector.cpp [code]
     
    file  PercussionOnsetDetector.h [code]
     
    file  plugins.cpp [code]
     
    file  PowerSpectrum.cpp [code]
     
    file  PowerSpectrum.h [code]
     
    file  SpectralCentroid.cpp [code]
     
    file  SpectralCentroid.h [code]
     
    file  ZeroCrossing.cpp [code]
     
    file  ZeroCrossing.h [code]
     
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_d28a4824dc47e487b107a5db32ef43c4.js --- a/code-docs/dir_d28a4824dc47e487b107a5db32ef43c4.js Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -var dir_d28a4824dc47e487b107a5db32ef43c4 = -[ - [ "AmplitudeFollower.cpp", "AmplitudeFollower_8cpp.html", null ], - [ "AmplitudeFollower.h", "AmplitudeFollower_8h.html", null ], - [ "FixedTempoEstimator.cpp", "FixedTempoEstimator_8cpp.html", null ], - [ "FixedTempoEstimator.h", "FixedTempoEstimator_8h.html", null ], - [ "PercussionOnsetDetector.cpp", "PercussionOnsetDetector_8cpp.html", null ], - [ "PercussionOnsetDetector.h", "PercussionOnsetDetector_8h.html", null ], - [ "plugins.cpp", "plugins_8cpp.html", null ], - [ "PowerSpectrum.cpp", "PowerSpectrum_8cpp.html", null ], - [ "PowerSpectrum.h", "PowerSpectrum_8h.html", null ], - [ "SpectralCentroid.cpp", "SpectralCentroid_8cpp.html", null ], - [ "SpectralCentroid.h", "SpectralCentroid_8h.html", null ], - [ "ZeroCrossing.cpp", "ZeroCrossing_8cpp.html", null ], - [ "ZeroCrossing.h", "ZeroCrossing_8h.html", null ] -]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_d28a4824dc47e487b107a5db32ef43c4_dep.map --- a/code-docs/dir_d28a4824dc47e487b107a5db32ef43c4_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/dir_d28a4824dc47e487b107a5db32ef43c4_dep.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,8 @@ - - + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 --- a/code-docs/dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -10937f28fa50affc753bdfc7e07e9d06 \ No newline at end of file +7a3edf66a6f3397ac2677de44f2892f8 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_d28a4824dc47e487b107a5db32ef43c4_dep.png Binary file code-docs/dir_d28a4824dc47e487b107a5db32ef43c4_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_dc0199af6955c245f7b5a687135670df.html --- a/code-docs/dir_dc0199af6955c245f7b5a687135670df.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ - - - - -VampPluginSDK: host/ Directory Reference - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.3 -
    - -
    -
    - - - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    host Directory Reference
    -
    -
    -
    -Directory dependency graph for host/:
    -
    -
    host/
    - - -
    - - - - -

    -Files

    file  system.h [code]
    file  vamp-simple-host.cpp [code]
    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_dc0199af6955c245f7b5a687135670df_dep.map --- a/code-docs/dir_dc0199af6955c245f7b5a687135670df_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_dc0199af6955c245f7b5a687135670df_dep.md5 --- a/code-docs/dir_dc0199af6955c245f7b5a687135670df_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -2e73e3e63c81320b20412486cb25acc4 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_dc0199af6955c245f7b5a687135670df_dep.png Binary file code-docs/dir_dc0199af6955c245f7b5a687135670df_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_fb90db1f62862cb68177e0e13786fda0.html --- a/code-docs/dir_fb90db1f62862cb68177e0e13786fda0.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/dir_fb90db1f62862cb68177e0e13786fda0.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,58 +3,51 @@ -VampPluginSDK: vamp-hostsdk/ Directory Reference - + + +VampPluginSDK: vamp-hostsdk Directory Reference - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - -
    + + + + + + +
    @@ -71,40 +64,58 @@
    -Directory dependency graph for vamp-hostsdk/:
    +Directory dependency graph for vamp-hostsdk:
    -
    vamp-hostsdk/
    +
    vamp-hostsdk
    - + + + + + + +
    - + + + + + + + + + + + + + +

    +

    Files

    file  host-c.h [code]
     
    file  hostguard.h [code]
     
    file  vamp-hostsdk/Plugin.h [code]
     
    file  vamp-hostsdk/PluginBase.h [code]
     
    file  PluginBufferingAdapter.h [code]
     
    file  PluginChannelAdapter.h [code]
     
    file  PluginHostAdapter.h [code]
     
    file  PluginInputDomainAdapter.h [code]
     
    file  PluginLoader.h [code]
     
    file  PluginSummarisingAdapter.h [code]
     
    file  PluginWrapper.h [code]
     
    file  vamp-hostsdk/RealTime.h [code]
     
    file  vamp-hostsdk.h [code]
     
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_fb90db1f62862cb68177e0e13786fda0.js --- a/code-docs/dir_fb90db1f62862cb68177e0e13786fda0.js Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -var dir_fb90db1f62862cb68177e0e13786fda0 = -[ - [ "hostguard.h", "hostguard_8h.html", null ], - [ "vamp-hostsdk/Plugin.h", "vamp-hostsdk_2Plugin_8h.html", null ], - [ "vamp-hostsdk/PluginBase.h", "vamp-hostsdk_2PluginBase_8h.html", null ], - [ "PluginBufferingAdapter.h", "PluginBufferingAdapter_8h.html", null ], - [ "PluginChannelAdapter.h", "PluginChannelAdapter_8h.html", null ], - [ "PluginHostAdapter.h", "PluginHostAdapter_8h.html", null ], - [ "PluginInputDomainAdapter.h", "PluginInputDomainAdapter_8h.html", null ], - [ "PluginLoader.h", "PluginLoader_8h.html", null ], - [ "PluginSummarisingAdapter.h", "PluginSummarisingAdapter_8h.html", null ], - [ "PluginWrapper.h", "PluginWrapper_8h.html", null ], - [ "vamp-hostsdk/RealTime.h", "vamp-hostsdk_2RealTime_8h.html", null ], - [ "vamp-hostsdk.h", "vamp-hostsdk_8h.html", null ] -]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_fb90db1f62862cb68177e0e13786fda0_dep.map --- a/code-docs/dir_fb90db1f62862cb68177e0e13786fda0_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/dir_fb90db1f62862cb68177e0e13786fda0_dep.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,8 @@ - - + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_fb90db1f62862cb68177e0e13786fda0_dep.md5 --- a/code-docs/dir_fb90db1f62862cb68177e0e13786fda0_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/dir_fb90db1f62862cb68177e0e13786fda0_dep.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -983c6efe48dec4196d7c7c578b7cca88 \ No newline at end of file +b6c6cd9cc675f9029d203361efeacfe0 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_fb90db1f62862cb68177e0e13786fda0_dep.png Binary file code-docs/dir_fb90db1f62862cb68177e0e13786fda0_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_fc29d784de6894b015ce0522888485dd.html --- a/code-docs/dir_fc29d784de6894b015ce0522888485dd.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,103 +0,0 @@ - - - - -VampPluginSDK: vamp-sdk/ Directory Reference - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.1 -
    - -
    -
    - - - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    vamp-sdk Directory Reference
    -
    -
    -
    -Directory dependency graph for vamp-sdk/:
    -
    -
    vamp-sdk/
    - - -
    - - - - - - - - -

    -Files

    file  plugguard.h [code]
    file  vamp-sdk/Plugin.h [code]
    file  PluginAdapter.h [code]
    file  vamp-sdk/PluginBase.h [code]
    file  vamp-sdk/RealTime.h [code]
    file  vamp-sdk.h [code]
    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_fc29d784de6894b015ce0522888485dd_dep.map --- a/code-docs/dir_fc29d784de6894b015ce0522888485dd_dep.map Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_fc29d784de6894b015ce0522888485dd_dep.md5 --- a/code-docs/dir_fc29d784de6894b015ce0522888485dd_dep.md5 Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -39bc4a0383683e8d24319be4132d8cc8 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dir_fc29d784de6894b015ce0522888485dd_dep.png Binary file code-docs/dir_fc29d784de6894b015ce0522888485dd_dep.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dirs.html --- a/code-docs/dirs.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,94 +0,0 @@ - - - - - -VampPluginSDK: Directories - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    Directories
    -
    -
    -
    This directory hierarchy is sorted roughly, but not completely, alphabetically:
    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dirs.js --- a/code-docs/dirs.js Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -var dirs = -[ - [ "examples", "dir_d28a4824dc47e487b107a5db32ef43c4.html", "dir_d28a4824dc47e487b107a5db32ef43c4" ], - [ "host", "dir_4f7e4242e27b8c8b476722507617a881.html", "dir_4f7e4242e27b8c8b476722507617a881" ], - [ "src", "dir_68267d1309a1af8e8297ef4c3efbcdba.html", "dir_68267d1309a1af8e8297ef4c3efbcdba" ], - [ "vamp", "dir_9c751ccb9387a8f0ae6ae8f777da02a0.html", "dir_9c751ccb9387a8f0ae6ae8f777da02a0" ], - [ "vamp-hostsdk", "dir_fb90db1f62862cb68177e0e13786fda0.html", "dir_fb90db1f62862cb68177e0e13786fda0" ], - [ "vamp-sdk", "dir_8661d6ced9d80e9e8c7982a58cd73404.html", "dir_8661d6ced9d80e9e8c7982a58cd73404" ] -]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/doc-overview.html --- a/code-docs/doc-overview.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/doc-overview.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: doc-overview File Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/doc-overview_source.html --- a/code-docs/doc-overview_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/doc-overview_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: doc-overview Source File - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -76,19 +63,16 @@
    doc-overview
    +Go to the documentation of this file.
    1 
    2 /** \mainpage Vamp Plugin SDK
    3 
    4 \section about About Vamp
    5 
    6 Vamp is an API for C and C++ plugins that process sampled audio data
    7 to produce descriptive output (measurements or semantic observations).
    8 Find more information at http://www.vamp-plugins.org/ .
    9 
    10 Although the official API for Vamp plugins is defined in C for maximum
    11 binary compatibility, we strongly recommend using the provided C++
    12 classes in the SDK to implement your own plugins and hosts.
    13 
    14 \section plugins For Plugins
    15 
    16 Plugins should subclass Vamp::Plugin, and then use a
    17 Vamp::PluginAdapter to expose the correct C API for the plugin. Read
    18 the documentation for Vamp::PluginBase and Vamp::Plugin before
    19 starting.
    20 
    21 Plugins should be compiled and linked into dynamic libraries using the
    22 usual convention for your platform, and should link (preferably
    23 statically) with -lvamp-sdk. Any number of plugins can reside in a
    24 single dynamic library. See plugins.cpp in the example plugins
    25 directory for the sort of code that will need to accompany your plugin
    26 class or classes, to make it possible for a host to look up your
    27 plugins properly.
    28 
    29 Please read the relevant README file for your platform found in the
    30 Vamp SDK build/ directory, for details about how to ensure the
    31 resulting dynamic library exports the correct linker symbols.
    32 
    33 The following example plugins are provided. You may legally reuse any
    34 amount of the code from these examples in any plugins you write,
    35 whether proprietary or open-source.
    36 
    37  - ZeroCrossing calculates the positions and density of zero-crossing
    38  points in an audio waveform.
    39 
    40  - SpectralCentroid calculates the centre of gravity of the frequency
    41  domain representation of each block of audio.
    42 
    43  - PowerSpectrum calculates a power spectrum from the input audio.
    44  Actually, it doesn't do any work except calculating power from a
    45  cartesian complex FFT output. The work of calculating this frequency
    46  domain output is done for it by the host or host SDK; the plugin just
    47  needs to declare that it wants frequency domain input. This is the
    48  simplest of the example plugins.
    49 
    50  - AmplitudeFollower is a simple implementation of SuperCollider's
    51  amplitude-follower algorithm.
    52 
    53  - PercussionOnsetDetector estimates the locations of percussive
    54  onsets using a simple method described in "Drum Source Separation
    55  using Percussive Feature Detection and Spectral Modulation" by Dan
    56  Barry, Derry Fitzgerald, Eugene Coyle and Bob Lawlor, ISSC 2005.
    57 
    58  - FixedTempoEstimator calculates a single beats-per-minute value
    59  which is an estimate of the tempo of a piece of music that is assumed
    60  to be of fixed tempo, using autocorrelation of a frequency domain
    61  energy rise metric. It has several outputs that return intermediate
    62  results used in the calculation, and may be a useful example of a
    63  plugin having several outputs with varying feature structures.
    64 
    65 Plugin authors should also read the Programmer's Guide at
    66 http://vamp-plugins.org/guide.pdf .
    67 
    68 \section hosts For Hosts
    69 
    70 Hosts will normally use a Vamp::PluginHostAdapter to convert each
    71 plugin's exposed C API back into a useful Vamp::Plugin C++ object.
    72 
    73 The Vamp::HostExt namespace contains several additional C++ classes to
    74 do this work for them, and make the host's life easier:
    75 
    76  - Vamp::HostExt::PluginLoader provides a very easy interface for a
    77  host to discover, load, and find out category information about the
    78  available plugins. Most Vamp hosts will probably want to use this
    79  class.
    80 
    81  - Vamp::HostExt::PluginInputDomainAdapter provides a simple means for
    82  hosts to handle plugins that want frequency-domain input, without
    83  having to convert the input themselves.
    84 
    85  - Vamp::HostExt::PluginChannelAdapter provides a simple means for
    86  hosts to use plugins that do not necessarily support the same number
    87  of audio channels as they have available, without having to apply a
    88  channel management / mixdown policy themselves.
    89 
    90  - Vamp::HostExt::PluginBufferingAdapter provides a means for hosts to
    91  avoid having to negotiate the input step and block size, instead
    92  permitting the host to use any block size they desire (and a step
    93  size equal to it). This is particularly useful for "streaming" hosts
    94  that cannot seek backwards in the input audio stream and so would
    95  otherwise need to implement an additional buffer to support step
    96  sizes smaller than the block size.
    97 
    98  - Vamp::HostExt::PluginSummarisingAdapter provides summarisation
    99  methods such as mean and median averages of output features, for use
    100  in any context where an available plugin produces individual values
    101  but the result that is actually needed is some sort of aggregate.
    102 
    103 The PluginLoader class can also use the input domain, channel, and
    104 buffering adapters automatically to make these conversions transparent
    105 to the host if required.
    106 
    107 Host authors should also refer to the example host code in the host
    108 directory of the SDK.
    109 
    110 Hosts should link with -lvamp-hostsdk.
    111 
    112 (The following notes in this section are mostly relevant for
    113 developers that are not using the HostExt classes, or that wish to
    114 know more about the policy they implement.)
    115 
    116 The Vamp API does not officially specify how to load plugin libraries
    117 or where to find them. However, the SDK does include a function
    118 (Vamp::PluginHostAdapter::getPluginPath()) that returns a recommended
    119 directory search path that hosts may use for plugin libraries, and a
    120 class (Vamp::HostExt::PluginLoader) that implements a sensible
    121 cross-platform lookup policy using this path. We recommend using this
    122 class in your host unless you have a good reason not to want to. This
    123 implementation also permits the user to set the environment variable
    124 VAMP_PATH to override the default path if desired.
    125 
    126 The policy used by Vamp::HostExt::PluginLoader -- and our
    127 recommendation for any host -- is to search each directory in this
    128 path for .DLL (on Windows), .so (on Linux, Solaris, BSD etc) or .dylib
    129 (on OS/X) files, then to load each one and perform a dynamic name
    130 lookup on the vampGetPluginDescriptor function to enumerate the
    131 plugins in the library. The example host has some code that may help,
    132 but this operation will necessarily be system-dependent.
    133 
    134 Vamp also has an informal convention for sorting plugins into
    135 functional categories. In addition to the library file itself, a
    136 plugin library may install a category file with the same name as the
    137 library but .cat extension. The existence and format of this file are
    138 not specified by the Vamp API, but by convention the file may contain
    139 lines of the format
    140 
    141 \code
    142 vamp:pluginlibrary:pluginname::General Category > Specific Category
    143 \endcode
    144 
    145 which a host may read and use to assign plugins a location within a
    146 category tree for display to the user. The expectation is that
    147 advanced users may also choose to set up their own preferred category
    148 trees, which is why this information is not queried as part of the
    149 Vamp plugin's API itself. The Vamp::HostExt::PluginLoader class also
    150 provides support for plugin category lookup using this scheme.
    151 
    152 \section license License
    153 
    154 This plugin SDK is freely redistributable under a "new-style BSD"
    155 licence. See the file COPYING for more details. In short, you may
    156 modify and redistribute the SDK and example plugins within any
    157 commercial or non-commercial, proprietary or open-source plugin or
    158 application under almost any conditions, with no obligation to provide
    159 source code, provided you retain the original copyright note.
    160 
    161 
    162 */
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/doc.png Binary file code-docs/doc.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/doxygen.css --- a/code-docs/doxygen.css Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/doxygen.css Fri Feb 24 16:44:47 2017 +0000 @@ -1,31 +1,54 @@ -/* The standard CSS for doxygen */ +/* The standard CSS for doxygen 1.8.13 */ body, table, div, p, dl { - font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; - font-size: 13px; - line-height: 1.3; + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; } /* @group Heading Levels */ -h1 { +h1.groupheader { font-size: 150%; } .title { + font: 400 14px/28px Roboto,sans-serif; font-size: 150%; font-weight: bold; margin: 10px 2px; } -h2 { - font-size: 120%; +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; } -h3 { +h3.groupheader { font-size: 100%; } +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + dt { font-weight: bold; } @@ -37,10 +60,14 @@ -webkit-column-count: 3; } -p.startli, p.startdd, p.starttd { +p.startli, p.startdd { margin-top: 2px; } +p.starttd { + margin-top: 0px; +} + p.endli { margin-bottom: 0px; } @@ -122,11 +149,11 @@ a.elRef { } -a.code, a.code:visited { +a.code, a.code:visited, a.line, a.line:visited { color: #4665A2; } -a.codeRef, a.codeRef:visited { +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { color: #4665A2; } @@ -136,23 +163,89 @@ margin-left: -1cm; } -.fragment { - font-family: monospace, fixed; - font-size: 105%; +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; } -pre.fragment { +div.fragment { + padding: 0px; + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; } -div.ah { +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { background-color: black; font-weight: bold; color: #ffffff; @@ -167,7 +260,16 @@ -webkit-box-shadow: 2px 2px 3px #999; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; } div.groupHeader { @@ -189,7 +291,7 @@ div.contents { margin-top: 10px; - margin-left: 8px; + margin-left: 12px; margin-right: 8px; } @@ -353,6 +455,24 @@ padding: 0px; } +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { @@ -367,8 +487,11 @@ color: #555; } -.memItemLeft, .memItemRight, .memTemplParams { - border-top: 1px solid #C4CFE5; +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; } .memItemLeft, .memTemplItemLeft { @@ -382,6 +505,7 @@ .memTemplParams { color: #4665A2; white-space: nowrap; + font-size: 80%; } /* @end */ @@ -390,6 +514,29 @@ /* Styles for detailed member documentation */ +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + .memtemplate { font-size: 80%; color: #4665A2; @@ -414,14 +561,28 @@ padding: 0; margin-bottom: 10px; margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; } .memname { - white-space: nowrap; - font-weight: bold; + font-weight: 400; margin-left: 6px; } +.memname td { + vertical-align: bottom; +} + .memproto, dl.reflist dt { border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; @@ -430,45 +591,46 @@ color: #253555; font-weight: bold; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 8px; - border-top-left-radius: 8px; + border-top-right-radius: 4px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 8px; - -moz-border-radius-topleft: 8px; + -moz-border-radius-topright: 4px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 8px; - -webkit-border-top-left-radius: 8px; - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; + -webkit-border-top-right-radius: 4px; } +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + .memdoc, dl.reflist dd { border-bottom: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; - padding: 2px 5px; + padding: 6px 10px 2px 10px; background-color: #FBFCFD; border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; /* opera specific markup */ - border-bottom-left-radius: 8px; - border-bottom-right-radius: 8px; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); /* firefox specific markup */ - -moz-border-radius-bottomleft: 8px; - -moz-border-radius-bottomright: 8px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); /* webkit specific markup */ - -webkit-border-bottom-left-radius: 8px; - -webkit-border-bottom-right-radius: 8px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); } dl.reflist dt { @@ -495,9 +657,13 @@ .paramname em { font-style: normal; } +.paramname code { + line-height: 14px; +} .params, .retval, .exception, .tparams { - border-spacing: 6px 2px; + margin-left: 0px; + padding-left: 0px; } .params .paramname, .retval .paramname { @@ -515,105 +681,191 @@ vertical-align: top; } +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} /* @end */ -/* @group Directory (tree) */ +/* these are for tree view inside a (index) page */ -/* for the tree view */ - -.ftvtree { - font-family: sans-serif; - margin: 0px; +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; } -/* these are for tree view when used as main index */ - -.directory { - font-size: 9pt; - font-weight: bold; - margin: 5px; +.directory table { + border-collapse:collapse; } -.directory h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; } -/* -The following two styles can be used to replace the root node title -with an image of your choice. Simply uncomment the next two styles, -specify the name of your image and be sure to set 'height' to the -proper pixel height of your image. -*/ - -/* -.directory h3.swap { - height: 61px; - background-repeat: no-repeat; - background-image: url("yourimage.gif"); -} -.directory h3.swap span { - display: none; -} -*/ - -.directory > h3 { - margin-top: 0; +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; } -.directory p { - margin: 0px; - white-space: nowrap; +.directory td.entry a { + outline:none; } -.directory div { - display: none; - margin: 0px; +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; } .directory img { vertical-align: -30%; } -/* these are for tree view when not used as main index */ - -.directory-alt { - font-size: 100%; - font-weight: bold; +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; } -.directory-alt h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; } -.directory-alt > h3 { - margin-top: 0; +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; } -.directory-alt p { - margin: 0px; - white-space: nowrap; +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; } -.directory-alt div { - display: none; - margin: 0px; +.icona { + width: 24px; + height: 22px; + display: inline-block; } -.directory-alt img { - vertical-align: -30%; +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; } /* @end */ div.dynheader { margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } address { @@ -621,6 +873,10 @@ color: #2A3D61; } +table.doxtable caption { + caption-side: top; +} + table.doxtable { border-collapse:collapse; margin-top: 4px; @@ -641,7 +897,7 @@ } table.fieldtable { - width: 100%; + /*width: 100%;*/ margin-bottom: 10px; border: 1px solid #A8B8D9; border-spacing: 0px; @@ -664,9 +920,21 @@ vertical-align: top; } +.fieldtable td.fieldname { + padding-top: 3px; +} + .fieldtable td.fielddoc { border-bottom: 1px solid #A8B8D9; - width: 100%; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; } .fieldtable tr:last-child td { @@ -682,6 +950,7 @@ padding-bottom: 4px; padding-top: 5px; text-align:left; + font-weight: 400; -moz-border-radius-topleft: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-left-radius: 4px; @@ -707,6 +976,7 @@ font-size: 11px; background-image:url('tab_b.png'); background-repeat:repeat-x; + background-position: 0 -5px; height:30px; line-height:30px; color:#8AA0CC; @@ -734,6 +1004,10 @@ display:block; text-decoration: none; outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; } .navpath li.navelem a:hover @@ -769,11 +1043,21 @@ white-space: nowrap; } +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + div.ingroups { - margin-left: 5px; font-size: 8pt; - padding-left: 5px; width: 50%; text-align: left; } @@ -794,7 +1078,7 @@ div.headertitle { - padding: 5px 5px 5px 7px; + padding: 5px 5px 5px 10px; } dl @@ -805,42 +1089,63 @@ /* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ dl.section { - border-left:4px solid; - padding: 0 0 0 6px; + margin-left: 0px; + padding-left: 0px; } dl.note { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; border-color: #D0C000; } dl.warning, dl.attention { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; border-color: #FF0000; } dl.pre, dl.post, dl.invariant { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; border-color: #00D000; } dl.deprecated { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; border-color: #505050; } dl.todo { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; border-color: #00C0E0; } dl.test { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; border-color: #3030E0; } dl.bug { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; border-color: #C08050; } @@ -861,6 +1166,11 @@ border: 0px none; } +#projectalign +{ + vertical-align: middle; +} + #projectname { font: 300% Tahoma, Arial,sans-serif; @@ -905,6 +1215,16 @@ text-align: center; } +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + .caption { font-weight: bold; @@ -939,7 +1259,7 @@ border-radius: 7px 7px 7px 7px; float: right; height: auto; - margin: 0 20px 10px 10px; + margin: 0 8px 10px 10px; width: 200px; } @@ -980,6 +1300,201 @@ margin-left: 45px; } +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} @media print { @@ -998,15 +1513,84 @@ overflow:inherit; display:inline; } - pre.fragment - { - overflow: visible; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - } } +/* @group Markdown */ + +/* +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTableHead tr { +} + +table.markdownTableBodyLeft td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft { + text-align: left +} + +th.markdownTableHeadRight { + text-align: right +} + +th.markdownTableHeadCenter { + text-align: center +} +*/ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + + +/* @end */ diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/doxygen.png Binary file code-docs/doxygen.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/dynsections.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/dynsections.js Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,104 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + VampPluginSDK: File List - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -76,55 +63,56 @@
    File List
    -
    Here is a list of all files with brief descriptions:
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    Here is a list of all files with brief descriptions:
    +
    AmplitudeFollower.cpp [code]
    AmplitudeFollower.h [code]
    doc-overview [code]
    FFT.h [code]
    FixedTempoEstimator.cpp [code]
    FixedTempoEstimator.h [code]
    hostguard.h [code]
    PercussionOnsetDetector.cpp [code]
    PercussionOnsetDetector.h [code]
    plugguard.h [code]
    vamp-sdk/Plugin.h [code]
    vamp-hostsdk/Plugin.h [code]
    PluginAdapter.h [code]
    vamp-sdk/PluginBase.h [code]
    vamp-hostsdk/PluginBase.h [code]
    PluginBufferingAdapter.h [code]
    PluginChannelAdapter.h [code]
    PluginHostAdapter.h [code]
    PluginInputDomainAdapter.h [code]
    PluginLoader.h [code]
    plugins.cpp [code]
    PluginSummarisingAdapter.h [code]
    PluginWrapper.h [code]
    PowerSpectrum.cpp [code]
    PowerSpectrum.h [code]
    vamp-sdk/RealTime.h [code]
    vamp-hostsdk/RealTime.h [code]
    SpectralCentroid.cpp [code]
    SpectralCentroid.h [code]
    system.h [code]
    vamp-hostsdk.h [code]
    vamp-sdk.h [code]
    vamp-simple-host.cpp [code]
    vamp.h [code]
    ZeroCrossing.cpp [code]
    ZeroCrossing.h [code]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     AmplitudeFollower.cpp
     AmplitudeFollower.h
     doc-overview
     FFT.h
     FixedTempoEstimator.cpp
     FixedTempoEstimator.h
     host-c.h
     hostguard.h
     PercussionOnsetDetector.cpp
     PercussionOnsetDetector.h
     plugguard.h
     vamp-sdk/Plugin.h
     vamp-hostsdk/Plugin.h
     PluginAdapter.h
     vamp-sdk/PluginBase.h
     vamp-hostsdk/PluginBase.h
     PluginBufferingAdapter.h
     PluginChannelAdapter.h
     PluginHostAdapter.h
     PluginInputDomainAdapter.h
     PluginLoader.h
     plugins.cpp
     PluginSummarisingAdapter.h
     PluginWrapper.h
     PowerSpectrum.cpp
     PowerSpectrum.h
     vamp-sdk/RealTime.h
     vamp-hostsdk/RealTime.h
     SpectralCentroid.cpp
     SpectralCentroid.h
     system.h
     vamp-hostsdk.h
     vamp-sdk.h
     vamp-simple-host.cpp
     vamp.h
     ZeroCrossing.cpp
     ZeroCrossing.h
    +
    + + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/files.js --- a/code-docs/files.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/files.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,39 +1,80 @@ var files = [ [ "AmplitudeFollower.cpp", "AmplitudeFollower_8cpp.html", null ], - [ "AmplitudeFollower.h", "AmplitudeFollower_8h.html", null ], + [ "AmplitudeFollower.h", "AmplitudeFollower_8h.html", [ + [ "AmplitudeFollower", "classAmplitudeFollower.html", "classAmplitudeFollower" ] + ] ], [ "doc-overview", "doc-overview.html", null ], - [ "FFT.h", "FFT_8h.html", null ], + [ "FFT.h", "FFT_8h.html", [ + [ "FFT", "classVamp_1_1FFT.html", "classVamp_1_1FFT" ], + [ "FFTComplex", "classVamp_1_1FFTComplex.html", "classVamp_1_1FFTComplex" ], + [ "FFTReal", "classVamp_1_1FFTReal.html", "classVamp_1_1FFTReal" ] + ] ], [ "FixedTempoEstimator.cpp", "FixedTempoEstimator_8cpp.html", "FixedTempoEstimator_8cpp" ], - [ "FixedTempoEstimator.h", "FixedTempoEstimator_8h.html", null ], + [ "FixedTempoEstimator.h", "FixedTempoEstimator_8h.html", [ + [ "FixedTempoEstimator", "classFixedTempoEstimator.html", "classFixedTempoEstimator" ] + ] ], + [ "host-c.h", "host-c_8h.html", "host-c_8h" ], [ "hostguard.h", "hostguard_8h.html", "hostguard_8h" ], [ "PercussionOnsetDetector.cpp", "PercussionOnsetDetector_8cpp.html", null ], - [ "PercussionOnsetDetector.h", "PercussionOnsetDetector_8h.html", null ], + [ "PercussionOnsetDetector.h", "PercussionOnsetDetector_8h.html", [ + [ "PercussionOnsetDetector", "classPercussionOnsetDetector.html", "classPercussionOnsetDetector" ] + ] ], [ "plugguard.h", "plugguard_8h.html", "plugguard_8h" ], - [ "vamp-sdk/Plugin.h", "vamp-sdk_2Plugin_8h.html", null ], + [ "vamp-sdk/Plugin.h", "vamp-sdk_2Plugin_8h.html", [ + [ "Plugin", "classVamp_1_1Plugin.html", "classVamp_1_1Plugin" ], + [ "OutputDescriptor", "structVamp_1_1Plugin_1_1OutputDescriptor.html", "structVamp_1_1Plugin_1_1OutputDescriptor" ], + [ "Feature", "structVamp_1_1Plugin_1_1Feature.html", "structVamp_1_1Plugin_1_1Feature" ] + ] ], [ "vamp-hostsdk/Plugin.h", "vamp-hostsdk_2Plugin_8h.html", null ], - [ "PluginAdapter.h", "PluginAdapter_8h.html", null ], - [ "vamp-sdk/PluginBase.h", "vamp-sdk_2PluginBase_8h.html", null ], + [ "PluginAdapter.h", "PluginAdapter_8h.html", [ + [ "PluginAdapterBase", "classVamp_1_1PluginAdapterBase.html", "classVamp_1_1PluginAdapterBase" ], + [ "PluginAdapter", "classVamp_1_1PluginAdapter.html", "classVamp_1_1PluginAdapter" ] + ] ], + [ "vamp-sdk/PluginBase.h", "vamp-sdk_2PluginBase_8h.html", [ + [ "PluginBase", "classVamp_1_1PluginBase.html", "classVamp_1_1PluginBase" ], + [ "ParameterDescriptor", "structVamp_1_1PluginBase_1_1ParameterDescriptor.html", "structVamp_1_1PluginBase_1_1ParameterDescriptor" ] + ] ], [ "vamp-hostsdk/PluginBase.h", "vamp-hostsdk_2PluginBase_8h.html", null ], - [ "PluginBufferingAdapter.h", "PluginBufferingAdapter_8h.html", null ], - [ "PluginChannelAdapter.h", "PluginChannelAdapter_8h.html", null ], - [ "PluginHostAdapter.h", "PluginHostAdapter_8h.html", null ], - [ "PluginInputDomainAdapter.h", "PluginInputDomainAdapter_8h.html", null ], - [ "PluginLoader.h", "PluginLoader_8h.html", null ], + [ "PluginBufferingAdapter.h", "PluginBufferingAdapter_8h.html", [ + [ "PluginBufferingAdapter", "classVamp_1_1HostExt_1_1PluginBufferingAdapter.html", "classVamp_1_1HostExt_1_1PluginBufferingAdapter" ] + ] ], + [ "PluginChannelAdapter.h", "PluginChannelAdapter_8h.html", [ + [ "PluginChannelAdapter", "classVamp_1_1HostExt_1_1PluginChannelAdapter.html", "classVamp_1_1HostExt_1_1PluginChannelAdapter" ] + ] ], + [ "PluginHostAdapter.h", "PluginHostAdapter_8h.html", [ + [ "PluginHostAdapter", "classVamp_1_1PluginHostAdapter.html", "classVamp_1_1PluginHostAdapter" ] + ] ], + [ "PluginInputDomainAdapter.h", "PluginInputDomainAdapter_8h.html", [ + [ "PluginInputDomainAdapter", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html", "classVamp_1_1HostExt_1_1PluginInputDomainAdapter" ] + ] ], + [ "PluginLoader.h", "PluginLoader_8h.html", [ + [ "PluginLoader", "classVamp_1_1HostExt_1_1PluginLoader.html", "classVamp_1_1HostExt_1_1PluginLoader" ] + ] ], [ "plugins.cpp", "plugins_8cpp.html", "plugins_8cpp" ], - [ "PluginSummarisingAdapter.h", "PluginSummarisingAdapter_8h.html", null ], - [ "PluginWrapper.h", "PluginWrapper_8h.html", null ], + [ "PluginSummarisingAdapter.h", "PluginSummarisingAdapter_8h.html", [ + [ "PluginSummarisingAdapter", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html", "classVamp_1_1HostExt_1_1PluginSummarisingAdapter" ] + ] ], + [ "PluginWrapper.h", "PluginWrapper_8h.html", [ + [ "PluginWrapper", "classVamp_1_1HostExt_1_1PluginWrapper.html", "classVamp_1_1HostExt_1_1PluginWrapper" ] + ] ], [ "PowerSpectrum.cpp", "PowerSpectrum_8cpp.html", null ], - [ "PowerSpectrum.h", "PowerSpectrum_8h.html", null ], + [ "PowerSpectrum.h", "PowerSpectrum_8h.html", [ + [ "PowerSpectrum", "classPowerSpectrum.html", "classPowerSpectrum" ] + ] ], [ "vamp-sdk/RealTime.h", "vamp-sdk_2RealTime_8h.html", "vamp-sdk_2RealTime_8h" ], [ "vamp-hostsdk/RealTime.h", "vamp-hostsdk_2RealTime_8h.html", null ], [ "SpectralCentroid.cpp", "SpectralCentroid_8cpp.html", null ], - [ "SpectralCentroid.h", "SpectralCentroid_8h.html", null ], + [ "SpectralCentroid.h", "SpectralCentroid_8h.html", [ + [ "SpectralCentroid", "classSpectralCentroid.html", "classSpectralCentroid" ] + ] ], [ "system.h", "system_8h.html", "system_8h" ], [ "vamp-hostsdk.h", "vamp-hostsdk_8h.html", null ], [ "vamp-sdk.h", "vamp-sdk_8h.html", null ], [ "vamp-simple-host.cpp", "vamp-simple-host_8cpp.html", "vamp-simple-host_8cpp" ], [ "vamp.h", "vamp_8h.html", "vamp_8h" ], [ "ZeroCrossing.cpp", "ZeroCrossing_8cpp.html", null ], - [ "ZeroCrossing.h", "ZeroCrossing_8h.html", null ] + [ "ZeroCrossing.h", "ZeroCrossing_8h.html", [ + [ "ZeroCrossing", "classZeroCrossing.html", "classZeroCrossing" ] + ] ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/folderclosed.png Binary file code-docs/folderclosed.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/folderopen.png Binary file code-docs/folderopen.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ftv2blank.png Binary file code-docs/ftv2blank.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ftv2doc.png Binary file code-docs/ftv2doc.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ftv2folderclosed.png Binary file code-docs/ftv2folderclosed.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ftv2folderopen.png Binary file code-docs/ftv2folderopen.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ftv2lastnode.png Binary file code-docs/ftv2lastnode.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ftv2link.png Binary file code-docs/ftv2link.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ftv2mlastnode.png Binary file code-docs/ftv2mlastnode.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ftv2mnode.png Binary file code-docs/ftv2mnode.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ftv2node.png Binary file code-docs/ftv2node.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ftv2plastnode.png Binary file code-docs/ftv2plastnode.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ftv2pnode.png Binary file code-docs/ftv2pnode.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ftv2splitbar.png Binary file code-docs/ftv2splitbar.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/ftv2vertline.png Binary file code-docs/ftv2vertline.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions.html --- a/code-docs/functions.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/functions.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,101 +3,51 @@ + + VampPluginSDK: Class Members - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - - - -
    + + + + + + +
    Here is a list of all class members with links to the classes they belong to:
    -

    - a -

    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x62.html --- a/code-docs/functions_0x62.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,146 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - b -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x63.html --- a/code-docs/functions_0x63.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,154 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - c -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x64.html --- a/code-docs/functions_0x64.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,152 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - d -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x66.html --- a/code-docs/functions_0x66.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,168 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - f -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x67.html --- a/code-docs/functions_0x67.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,356 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - g -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x68.html --- a/code-docs/functions_0x68.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,156 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - h -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x69.html --- a/code-docs/functions_0x69.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,171 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - - - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x6c.html --- a/code-docs/functions_0x6c.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - l -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x6d.html --- a/code-docs/functions_0x6d.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,263 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - m -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x6e.html --- a/code-docs/functions_0x6e.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,146 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - n -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x6f.html --- a/code-docs/functions_0x6f.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,168 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - o -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x70.html --- a/code-docs/functions_0x70.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,221 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - p -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x71.html --- a/code-docs/functions_0x71.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,135 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - q -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x72.html --- a/code-docs/functions_0x72.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,160 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - - - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x73.html --- a/code-docs/functions_0x73.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,201 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - s -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x74.html --- a/code-docs/functions_0x74.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,147 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - t -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x75.html --- a/code-docs/functions_0x75.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,141 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - u -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x76.html --- a/code-docs/functions_0x76.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,155 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - v -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x77.html --- a/code-docs/functions_0x77.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,132 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - w -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x7a.html --- a/code-docs/functions_0x7a.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,135 +0,0 @@ - - - - - -VampPluginSDK: Class Members - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - z -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_0x7e.html --- a/code-docs/functions_0x7e.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/functions_0x7e.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,101 +3,51 @@ + + VampPluginSDK: Class Members - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - - - -
    + + + + + + +
    Here is a list of all class members with links to the classes they belong to:
    -

    - ~ -

    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_b.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_b.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,94 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - b -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_c.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,102 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - c -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_d.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_d.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,100 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - d -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_dup.js --- a/code-docs/functions_dup.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/functions_dup.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,25 +1,25 @@ var functions_dup = [ [ "a", "functions.html", null ], - [ "b", "functions_0x62.html", null ], - [ "c", "functions_0x63.html", null ], - [ "d", "functions_0x64.html", null ], - [ "f", "functions_0x66.html", null ], - [ "g", "functions_0x67.html", null ], - [ "h", "functions_0x68.html", null ], - [ "i", "functions_0x69.html", null ], - [ "l", "functions_0x6c.html", null ], - [ "m", "functions_0x6d.html", null ], - [ "n", "functions_0x6e.html", null ], - [ "o", "functions_0x6f.html", null ], - [ "p", "functions_0x70.html", null ], - [ "q", "functions_0x71.html", null ], - [ "r", "functions_0x72.html", null ], - [ "s", "functions_0x73.html", null ], - [ "t", "functions_0x74.html", null ], - [ "u", "functions_0x75.html", null ], - [ "v", "functions_0x76.html", null ], - [ "w", "functions_0x77.html", null ], - [ "z", "functions_0x7a.html", null ], + [ "b", "functions_b.html", null ], + [ "c", "functions_c.html", null ], + [ "d", "functions_d.html", null ], + [ "f", "functions_f.html", null ], + [ "g", "functions_g.html", null ], + [ "h", "functions_h.html", null ], + [ "i", "functions_i.html", null ], + [ "l", "functions_l.html", null ], + [ "m", "functions_m.html", null ], + [ "n", "functions_n.html", null ], + [ "o", "functions_o.html", null ], + [ "p", "functions_p.html", null ], + [ "q", "functions_q.html", null ], + [ "r", "functions_r.html", null ], + [ "s", "functions_s.html", null ], + [ "t", "functions_t.html", null ], + [ "u", "functions_u.html", null ], + [ "v", "functions_v.html", null ], + [ "w", "functions_w.html", null ], + [ "z", "functions_z.html", null ], [ "~", "functions_0x7e.html", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_enum.html --- a/code-docs/functions_enum.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/functions_enum.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,75 +3,51 @@ + + VampPluginSDK: Class Members - Enumerations - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - - -
    + + + + + + +
    @@ -107,16 +83,14 @@
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_eval.html --- a/code-docs/functions_eval.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/functions_eval.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,92 +3,51 @@ + + VampPluginSDK: Class Members - Enumerator - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - - - -
    + + + + + + +
      -

    - a -

    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_f.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_f.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,124 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - f -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func.html --- a/code-docs/functions_func.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/functions_func.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,95 +3,51 @@ + + VampPluginSDK: Class Members - Functions - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - - - -
    + + + + + + +
      -

    - a -

    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func.js --- a/code-docs/functions_func.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/functions_func.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,19 +1,19 @@ var functions_func = [ [ "a", "functions_func.html", null ], - [ "c", "functions_func_0x63.html", null ], - [ "d", "functions_func_0x64.html", null ], - [ "f", "functions_func_0x66.html", null ], - [ "g", "functions_func_0x67.html", null ], - [ "i", "functions_func_0x69.html", null ], - [ "l", "functions_func_0x6c.html", null ], - [ "m", "functions_func_0x6d.html", null ], - [ "o", "functions_func_0x6f.html", null ], - [ "p", "functions_func_0x70.html", null ], - [ "r", "functions_func_0x72.html", null ], - [ "s", "functions_func_0x73.html", null ], - [ "t", "functions_func_0x74.html", null ], - [ "u", "functions_func_0x75.html", null ], - [ "z", "functions_func_0x7a.html", null ], + [ "c", "functions_func_c.html", null ], + [ "d", "functions_func_d.html", null ], + [ "f", "functions_func_f.html", null ], + [ "g", "functions_func_g.html", null ], + [ "i", "functions_func_i.html", null ], + [ "l", "functions_func_l.html", null ], + [ "m", "functions_func_m.html", null ], + [ "o", "functions_func_o.html", null ], + [ "p", "functions_func_p.html", null ], + [ "r", "functions_func_r.html", null ], + [ "s", "functions_func_s.html", null ], + [ "t", "functions_func_t.html", null ], + [ "u", "functions_func_u.html", null ], + [ "z", "functions_func_z.html", null ], [ "~", "functions_func_0x7e.html", null ] ]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_0x63.html --- a/code-docs/functions_func_0x63.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,136 +0,0 @@ - - - - - -VampPluginSDK: Class Members - Functions - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -  - -

    - c -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_0x64.html --- a/code-docs/functions_func_0x64.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +0,0 @@ - - - - - -VampPluginSDK: Class Members - Functions - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -  - -

    - d -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_0x66.html --- a/code-docs/functions_func_0x66.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,144 +0,0 @@ - - - - - -VampPluginSDK: Class Members - Functions - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -  - -

    - f -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_0x67.html --- a/code-docs/functions_func_0x67.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,337 +0,0 @@ - - - - - -VampPluginSDK: Class Members - Functions - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -  - -

    - g -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_0x69.html --- a/code-docs/functions_func_0x69.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ - - - - - -VampPluginSDK: Class Members - Functions - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - - - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_0x6c.html --- a/code-docs/functions_func_0x6c.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,132 +0,0 @@ - - - - - -VampPluginSDK: Class Members - Functions - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -  - -

    - l -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_0x6d.html --- a/code-docs/functions_func_0x6d.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +0,0 @@ - - - - - -VampPluginSDK: Class Members - Functions - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -  - -

    - m -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_0x6f.html --- a/code-docs/functions_func_0x6f.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,156 +0,0 @@ - - - - - -VampPluginSDK: Class Members - Functions - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -  - -

    - o -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_0x70.html --- a/code-docs/functions_func_0x70.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,181 +0,0 @@ - - - - - -VampPluginSDK: Class Members - Functions - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - - - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_0x72.html --- a/code-docs/functions_func_0x72.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,144 +0,0 @@ - - - - - -VampPluginSDK: Class Members - Functions - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - - - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_0x73.html --- a/code-docs/functions_func_0x73.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ - - - - - -VampPluginSDK: Class Members - Functions - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - - - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_0x74.html --- a/code-docs/functions_func_0x74.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,132 +0,0 @@ - - - - - -VampPluginSDK: Class Members - Functions - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -  - -

    - t -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_0x75.html --- a/code-docs/functions_func_0x75.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +0,0 @@ - - - - - -VampPluginSDK: Class Members - Functions - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -  - -

    - u -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_0x7a.html --- a/code-docs/functions_func_0x7a.html Tue Dec 03 16:43:33 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +0,0 @@ - - - - - -VampPluginSDK: Class Members - Functions - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    -
    VampPluginSDK -  2.4 -
    - -
    -
    - - - - - - -
    -
    - -
    -
    -
    - -
    -
    -  - -

    - z -

    -
    -
    - - - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_0x7e.html --- a/code-docs/functions_func_0x7e.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/functions_func_0x7e.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,95 +3,51 @@ + + VampPluginSDK: Class Members - Functions - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - - - -
    + + + + + + +
      -

    - ~ -

    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_func_c.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,90 @@ + + + + + + + +VampPluginSDK: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +  + +

    - c -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_d.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_func_d.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,80 @@ + + + + + + + +VampPluginSDK: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +  + +

    - d -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_f.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_func_f.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,106 @@ + + + + + + + +VampPluginSDK: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +  + +

    - f -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_g.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_func_g.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,291 @@ + + + + + + + +VampPluginSDK: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +  + +

    - g -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_i.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_func_i.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,98 @@ + + + + + + + +VampPluginSDK: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_l.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_func_l.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,92 @@ + + + + + + + +VampPluginSDK: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +  + +

    - l -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_m.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_func_m.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,80 @@ + + + + + + + +VampPluginSDK: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +  + +

    - m -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_o.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_func_o.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,110 @@ + + + + + + + +VampPluginSDK: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +  + +

    - o -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_p.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_func_p.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,135 @@ + + + + + + + +VampPluginSDK: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_r.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_func_r.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,98 @@ + + + + + + + +VampPluginSDK: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_s.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_func_s.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,111 @@ + + + + + + + +VampPluginSDK: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_t.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_func_t.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,86 @@ + + + + + + + +VampPluginSDK: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +  + +

    - t -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_u.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_func_u.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,80 @@ + + + + + + + +VampPluginSDK: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +  + +

    - u -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_func_z.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_func_z.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,80 @@ + + + + + + + +VampPluginSDK: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +  + +

    - z -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_g.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_g.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,304 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - g -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_h.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,104 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - h -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_i.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_i.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,121 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_l.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_l.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,96 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - l -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_m.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_m.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,213 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - m -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_n.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_n.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,94 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - n -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_o.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_o.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,116 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - o -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_p.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_p.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,169 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - p -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_q.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_q.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,83 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - q -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_r.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_r.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,108 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_s.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_s.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,151 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - s -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_t.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_t.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,95 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - t -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_type.html --- a/code-docs/functions_type.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/functions_type.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,75 +3,51 @@ + + VampPluginSDK: Class Members - Typedefs - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - - -
    + + + + + + +
    @@ -113,16 +89,14 @@
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_u.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_u.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,89 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - u -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_v.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_v.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,103 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - v -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_vars.html --- a/code-docs/functions_vars.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/functions_vars.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,97 +3,51 @@ + + VampPluginSDK: Class Members - Variables - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - - - -
    + + + + + + +
      -

    - b -

    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_w.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_w.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,80 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - w -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/functions_z.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/functions_z.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,83 @@ + + + + + + + +VampPluginSDK: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - z -

    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/globals.html --- a/code-docs/globals.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/globals.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,95 +3,51 @@ + + VampPluginSDK: File Members - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - - - -
    + + + + + + +
    Here is a list of all file members with links to the files they belong to:
    -

    - _ -

    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/globals_defs.html --- a/code-docs/globals_defs.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/globals_defs.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,75 +3,51 @@ + + VampPluginSDK: File Members - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - - -
    + + + + + + +
    @@ -142,16 +118,14 @@
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/globals_enum.html --- a/code-docs/globals_enum.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/globals_enum.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,75 +3,51 @@ + + VampPluginSDK: File Members - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - - -
    + + + + + + +
    @@ -95,16 +71,14 @@
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/globals_eval.html --- a/code-docs/globals_eval.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/globals_eval.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,75 +3,51 @@ + + VampPluginSDK: File Members - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - - -
    + + + + + + +
    @@ -113,16 +89,14 @@
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/globals_func.html --- a/code-docs/globals_func.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/globals_func.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,75 +3,51 @@ + + VampPluginSDK: File Members - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - - -
    + + + + + + +
    @@ -100,7 +76,7 @@ : vamp-simple-host.cpp
  • printFeatures() -: vamp-simple-host.cpp +: vamp-simple-host.cpp
  • printPluginCategoryList() : vamp-simple-host.cpp @@ -111,6 +87,9 @@
  • runPlugin() : vamp-simple-host.cpp
  • +
  • toSeconds() +: vamp-simple-host.cpp +
  • transformInput() : vamp-simple-host.cpp
  • @@ -121,18 +100,37 @@ : vamp.h , plugins.cpp +
  • vhGetLibraryCount() +: host-c.h +
  • +
  • vhGetLibraryIndex() +: host-c.h +
  • +
  • vhGetLibraryName() +: host-c.h +
  • +
  • vhGetPluginCount() +: host-c.h +
  • +
  • vhGetPluginDescriptor() +: host-c.h +
  • +
  • vhLoadLibrary() +: host-c.h +
  • +
  • vhUnloadLibrary() +: host-c.h +
  • +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/globals_type.html --- a/code-docs/globals_type.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/globals_type.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,75 +3,51 @@ + + VampPluginSDK: File Members - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - - -
    + + + + + + +
    @@ -97,7 +73,7 @@ : vamp.h
  • VampGetPluginDescriptorFunction -: vamp.h +: vamp.h
  • VampOutputDescriptor : vamp.h @@ -111,18 +87,19 @@
  • VampPluginHandle : vamp.h
  • +
  • vhLibrary +: host-c.h +
  • +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/globals_vars.html --- a/code-docs/globals_vars.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/globals_vars.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,75 +3,51 @@ + + VampPluginSDK: File Members - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - - -
    + + + + + + +
    @@ -119,16 +95,14 @@
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/graph_legend.html --- a/code-docs/graph_legend.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/graph_legend.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,58 +3,51 @@ + + VampPluginSDK: Graph Legend - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - -
    + + + + + + +
    @@ -71,44 +64,9 @@

    This page explains how to interpret the graphs that are generated by doxygen.

    -

    Consider the following example:

    -
    /*! Invisible class because of truncation */
    -class Invisible { };
    -
    -/*! Truncated class, inheritance relation is hidden */
    -class Truncated : public Invisible { };
    -
    -/* Class not documented with doxygen comments */
    -class Undocumented { };
    -
    -/*! Class that is inherited using public inheritance */
    -class PublicBase : public Truncated { };
    -
    -/*! A template class */
    -template<class T> class Templ { };
    -
    -/*! Class that is inherited using protected inheritance */
    -class ProtectedBase { };
    -
    -/*! Class that is inherited using private inheritance */
    -class PrivateBase { };
    -
    -/*! Class that is used by the Inherited class */
    -class Used { };
    -
    -/*! Super class that inherits a number of other classes */
    -class Inherited : public PublicBase,
    -                  protected ProtectedBase,
    -                  private PrivateBase,
    -                  public Undocumented,
    -                  public Templ<int>
    -{
    -  private:
    -    Used *m_usedClass;
    -};
    -

    This will result in the following graph:

    +

    Consider the following example:

    /*! Invisible class because of truncation */
    class Invisible { };
    /*! Truncated class, inheritance relation is hidden */
    class Truncated : public Invisible { };
    /* Class not documented with doxygen comments */
    class Undocumented { };
    /*! Class that is inherited using public inheritance */
    class PublicBase : public Truncated { };
    /*! A template class */
    template<class T> class Templ { };
    /*! Class that is inherited using protected inheritance */
    class ProtectedBase { };
    /*! Class that is inherited using private inheritance */
    class PrivateBase { };
    /*! Class that is used by the Inherited class */
    class Used { };
    /*! Super class that inherits a number of other classes */
    class Inherited : public PublicBase,
    protected ProtectedBase,
    private PrivateBase,
    public Undocumented,
    public Templ<int>
    {
    private:
    Used *m_usedClass;
    };

    This will result in the following graph:

    - +

    The boxes in the above graph have the following meaning:

      @@ -117,7 +75,7 @@
    • A box with a black border denotes a documented struct or class.
    • -A box with a grey border denotes an undocumented struct or class.
    • +A box with a gray border denotes an undocumented struct or class.
    • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
    @@ -130,21 +88,19 @@
  • A dark red arrow is used for private inheritance.
  • -A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • -A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/graph_legend.md5 --- a/code-docs/graph_legend.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/graph_legend.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -aa02ac430847567b48a24a6582604cb8 \ No newline at end of file +f3806cc3861cd7d670132b22cf4cb5dd \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/graph_legend.png Binary file code-docs/graph_legend.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/hierarchy.html --- a/code-docs/hierarchy.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/hierarchy.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Class Hierarchy - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -79,57 +65,51 @@
    +
    [detail level 1234]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     C_VampFeature
     C_VampFeatureList
     C_VampFeatureUnion
     C_VampFeatureV2
     C_VampOutputDescriptor
     C_VampParameterDescriptorC language API for Vamp plugins
     C_VampPluginDescriptor
     CFixedTempoEstimator::D
     CVamp::Plugin::Feature
     CVamp::FFTA simple FFT implementation provided for convenience of plugin authors
     CVamp::FFTComplexA simple FFT implementation provided for convenience of plugin authors
     CVamp::FFTRealA simple FFT implementation provided for convenience of plugin authors
     CVamp::Plugin::OutputDescriptor
     CVamp::PluginBase::ParameterDescriptor
     CVamp::PluginAdapterBasePluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library can use to make its C++ Vamp::Plugin objects available through the Vamp C API
     CVamp::PluginAdapter< P >PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular plugin implementation
     CVamp::PluginBaseA base class for plugins with optional configurable parameters, programs, etc
     CVamp::PluginVamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio or related data
     CAmplitudeFollowerExample plugin implementing the SuperCollider amplitude follower function
     CFixedTempoEstimatorExample plugin that estimates the tempo of a short fixed-tempo sample
     CPercussionOnsetDetectorExample plugin that detects percussive events
     CPowerSpectrumExample plugin that returns a power spectrum calculated (trivially) from the frequency domain representation of each block of audio
     CSpectralCentroidExample plugin that calculates the centre of gravity of the frequency domain representation of each block of audio
     CVamp::HostExt::PluginWrapperPluginWrapper is a simple base class for adapter plugins
     CVamp::HostExt::PluginBufferingAdapterPluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by a host supplying an audio stream in non-overlapping buffers of arbitrary size
     CVamp::HostExt::PluginChannelAdapterPluginChannelAdapter is a Vamp plugin adapter that implements a policy for management of plugins that expect a different number of input channels from the number actually available in the source audio data
     CVamp::HostExt::PluginInputDomainAdapterPluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input into frequency-domain input for plugins that need it
     CVamp::HostExt::PluginSummarisingAdapterPluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods such as mean and median averages of output features, for use in any context where an available plugin produces individual values but the result that is actually needed is some sort of aggregate
     CVamp::PluginHostAdapterPluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language VampPluginDescriptor object appear as a C++ Vamp::Plugin object
     CZeroCrossingExample plugin that calculates the positions and density of zero-crossing points in an audio waveform
     CVamp::HostExt::PluginLoaderVamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp plugins using the typical plugin-path, library naming, and categorisation conventions described in the Vamp SDK documentation
     CVamp::RealTimeRealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conversion functions
    +
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/hierarchy.js --- a/code-docs/hierarchy.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/hierarchy.js Fri Feb 24 16:44:47 2017 +0000 @@ -10,6 +10,8 @@ [ "FixedTempoEstimator::D", "classFixedTempoEstimator_1_1D.html", null ], [ "Vamp::Plugin::Feature", "structVamp_1_1Plugin_1_1Feature.html", null ], [ "Vamp::FFT", "classVamp_1_1FFT.html", null ], + [ "Vamp::FFTComplex", "classVamp_1_1FFTComplex.html", null ], + [ "Vamp::FFTReal", "classVamp_1_1FFTReal.html", null ], [ "Vamp::Plugin::OutputDescriptor", "structVamp_1_1Plugin_1_1OutputDescriptor.html", null ], [ "Vamp::PluginBase::ParameterDescriptor", "structVamp_1_1PluginBase_1_1ParameterDescriptor.html", null ], [ "Vamp::PluginAdapterBase", "classVamp_1_1PluginAdapterBase.html", [ diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/host-c_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/host-c_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,293 @@ + + + + + + + +VampPluginSDK: host-c.h File Reference + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    host-c.h File Reference
    +
    +
    +
    #include <vamp/vamp.h>
    +
    +Include dependency graph for host-c.h:
    +
    +
    + + + +
    +
    +

    Go to the source code of this file.

    + + + + +

    +Typedefs

    typedef struct vhLibrary_t * vhLibrary
     
    + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    int vhGetLibraryCount ()
     Return the number of Vamp plugin libraries discovered in the installation path. More...
     
    const char * vhGetLibraryName (int library)
     Return the library name (base soname) of the library with the given index, in the range 0..(vhGetLibraryCount()-1). More...
     
    int vhGetLibraryIndex (const char *name)
     Return the library index for the given library name, or -1 if the name is not known. More...
     
    vhLibrary vhLoadLibrary (int library)
     Load the library with the given index. More...
     
    int vhGetPluginCount (vhLibrary library)
     Return the number of Vamp plugins in the given library. More...
     
    const VampPluginDescriptorvhGetPluginDescriptor (vhLibrary library, int plugin)
     Return a Vamp plugin descriptor for a plugin in a given library. More...
     
    void vhUnloadLibrary (vhLibrary)
     Unload a plugin library. More...
     
    +

    Typedef Documentation

    + +

    ◆ vhLibrary

    + +
    +
    + + + + +
    typedef struct vhLibrary_t* vhLibrary
    +
    + +

    Definition at line 94 of file host-c.h.

    + +
    +
    +

    Function Documentation

    + +

    ◆ vhGetLibraryCount()

    + +
    +
    + + + + + + + +
    int vhGetLibraryCount ()
    +
    + +

    Return the number of Vamp plugin libraries discovered in the installation path.

    +

    This number will remain fixed after the first call – plugins are only discovered once, the first time this function is called.

    + +
    +
    + +

    ◆ vhGetLibraryName()

    + +
    +
    + + + + + + + + +
    const char* vhGetLibraryName (int library)
    +
    + +

    Return the library name (base soname) of the library with the given index, in the range 0..(vhGetLibraryCount()-1).

    + +
    +
    + +

    ◆ vhGetLibraryIndex()

    + +
    +
    + + + + + + + + +
    int vhGetLibraryIndex (const char * name)
    +
    + +

    Return the library index for the given library name, or -1 if the name is not known.

    + +
    +
    + +

    ◆ vhLoadLibrary()

    + +
    +
    + + + + + + + + +
    vhLibrary vhLoadLibrary (int library)
    +
    + +

    Load the library with the given index.

    +

    If the library cannot be loaded for any reason, the return value is 0; otherwise it is an opaque pointer suitable for passing to other functions in this API.

    + +
    +
    + +

    ◆ vhGetPluginCount()

    + +
    +
    + + + + + + + + +
    int vhGetPluginCount (vhLibrary library)
    +
    + +

    Return the number of Vamp plugins in the given library.

    + +
    +
    + +

    ◆ vhGetPluginDescriptor()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    const VampPluginDescriptor* vhGetPluginDescriptor (vhLibrary library,
    int plugin 
    )
    +
    + +

    Return a Vamp plugin descriptor for a plugin in a given library.

    +

    This simply calls the vampGetPluginDescriptor function in that library with the given plugin index and returns the result. See vamp/vamp.h for details about the plugin descriptor.

    + +
    +
    + +

    ◆ vhUnloadLibrary()

    + +
    +
    + + + + + + + + +
    void vhUnloadLibrary (vhLibrary )
    +
    + +

    Unload a plugin library.

    +

    Do not do this while any of its plugins are still in use.

    + +
    +
    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/host-c_8h.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/host-c_8h.js Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,11 @@ +var host_c_8h = +[ + [ "vhLibrary", "host-c_8h.html#a0d6585882923f575e76bd0a6835e9748", null ], + [ "vhGetLibraryCount", "host-c_8h.html#a63420c2f047538e88f88f76cf8f22a43", null ], + [ "vhGetLibraryName", "host-c_8h.html#afdaa93128f4c785fc4c022bc8ecd840a", null ], + [ "vhGetLibraryIndex", "host-c_8h.html#ac1e2a1b3c3f1c3019bee99140b4a1551", null ], + [ "vhLoadLibrary", "host-c_8h.html#ae93710ce0c0d9d99ca798fffa7517929", null ], + [ "vhGetPluginCount", "host-c_8h.html#af23b8bddcbf13f9d15f87a15d698de0b", null ], + [ "vhGetPluginDescriptor", "host-c_8h.html#a7d85254dce15986f87829d1c6e7b8d00", null ], + [ "vhUnloadLibrary", "host-c_8h.html#a4ec9d6f7408267d7567d9b2435807840", null ] +]; \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/host-c_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/host-c_8h__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,3 @@ + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/host-c_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/host-c_8h__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +fe37f9f24bd7d7fea28d26ff2821fa19 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/host-c_8h__incl.png Binary file code-docs/host-c_8h__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/host-c_8h_source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/host-c_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,88 @@ + + + + + + + +VampPluginSDK: host-c.h Source File + + + + + + + + + + + +
    +
    + + + + + + +
    +
    VampPluginSDK +  2.7 +
    +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    host-c.h
    +
    +
    +Go to the documentation of this file.
    1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
    2 
    3 /*
    4  Vamp
    5 
    6  An API for audio analysis and feature extraction plugins.
    7 
    8  Centre for Digital Music, Queen Mary, University of London.
    9  Copyright 2006-2015 Chris Cannam and QMUL.
    10 
    11  Permission is hereby granted, free of charge, to any person
    12  obtaining a copy of this software and associated documentation
    13  files (the "Software"), to deal in the Software without
    14  restriction, including without limitation the rights to use, copy,
    15  modify, merge, publish, distribute, sublicense, and/or sell copies
    16  of the Software, and to permit persons to whom the Software is
    17  furnished to do so, subject to the following conditions:
    18 
    19  The above copyright notice and this permission notice shall be
    20  included in all copies or substantial portions of the Software.
    21 
    22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
    26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
    27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
    28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    29 
    30  Except as contained in this notice, the names of the Centre for
    31  Digital Music; Queen Mary, University of London; and Chris Cannam
    32  shall not be used in advertising or otherwise to promote the sale,
    33  use or other dealings in this Software without prior written
    34  authorization.
    35 */
    36 
    37 /*
    38  This file defines a low-level API for enumerating and loading
    39  plugin libraries using C calling conventions. It could be used in
    40  C programs, or in languages with C-compatible foreign-function
    41  interfaces. Note that this works by calling to the C++ Vamp host
    42  SDK, so any program using this interface must still link against
    43  the rest of the Vamp plugin library and the C++ standard library.
    44 
    45  This is not the simplest or easiest interface for hosting Vamp
    46  plugins -- if you have the capability to use the C++ API, please
    47  do that instead. (Most programs should not even include this
    48  header.)
    49 
    50  The C and C++ interfaces provide different abstraction levels:
    51 
    52  In the C++ interface, the class PluginLoader provides a list of
    53  keys corresponding to the installed plugins (where a key combines
    54  the plugin's library name and plugin identifier into a single
    55  string) plus a method to load a single plugin based on its key
    56  (obtaining an instance of class Plugin). With the C++ interface
    57  you go straight from the key to a live instance of the plugin. The
    58  PluginLoader also provides various facilities to adapt the plugin
    59  based on your requirements (e.g. to do time- to frequency-domain
    60  conversion for you if the plugin requires it).
    61 
    62  This low-level C interface, on the other hand, deals only in
    63  plugin libraries and static descriptors, not in plugin
    64  instances. You can enumerate the installed libraries, getting just
    65  the base .soname of each library. Then you can retrieve each of
    66  the raw C plugin descriptors from a library, and use the
    67  descriptor (whose interface is defined in vamp/vamp.h) to
    68  instantiate the plugin.
    69 
    70  So this header corresponds to the first part of the PluginLoader
    71  class interface: finding and loading plugin libraries and
    72  retrieving plugin descriptors from them. But it does not do any of
    73  the rest, i.e. instantiating and adapting the plugins themselves.
    74  Although this makes the API appear very simple, it means the
    75  resulting plugins are relatively hard to use compared to those
    76  obtained by the PluginLoader API. There is no way to get to the
    77  full C++ abstraction using this API.
    78 
    79  This API is not thread-safe; use it from a single application
    80  thread, or guard access to it with a mutex.
    81 
    82  This header was introduced in version 2.6 of the Vamp plugin SDK.
    83 */
    84 
    85 #ifndef VAMPHOST_C_H_INCLUDED
    86 #define VAMPHOST_C_H_INCLUDED
    87 
    88 #include <vamp/vamp.h>
    89 
    90 #ifdef __cplusplus
    91 extern "C" {
    92 #endif
    93 
    94 typedef struct vhLibrary_t *vhLibrary;
    95 
    102 extern int vhGetLibraryCount();
    103 
    108 extern const char *vhGetLibraryName(int library);
    109 
    114 extern int vhGetLibraryIndex(const char *name);
    115 
    121 extern vhLibrary vhLoadLibrary(int library);
    122 
    126 extern int vhGetPluginCount(vhLibrary library);
    127 
    134 extern const VampPluginDescriptor *vhGetPluginDescriptor(vhLibrary library,
    135  int plugin);
    136 
    141 extern void vhUnloadLibrary(vhLibrary);
    142 
    143 #ifdef __cplusplus
    144 }
    145 #endif
    146 
    147 #endif
    const VampPluginDescriptor * vhGetPluginDescriptor(vhLibrary library, int plugin)
    Return a Vamp plugin descriptor for a plugin in a given library.
    +
    vhLibrary vhLoadLibrary(int library)
    Load the library with the given index.
    +
    struct vhLibrary_t * vhLibrary
    Definition: host-c.h:94
    +
    void vhUnloadLibrary(vhLibrary)
    Unload a plugin library.
    +
    int vhGetPluginCount(vhLibrary library)
    Return the number of Vamp plugins in the given library.
    + + +
    const char * vhGetLibraryName(int library)
    Return the library name (base soname) of the library with the given index, in the range 0...
    +
    int vhGetLibraryCount()
    Return the number of Vamp plugin libraries discovered in the installation path.
    +
    int vhGetLibraryIndex(const char *name)
    Return the library index for the given library name, or -1 if the name is not known.
    +
    +
    + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/hostguard_8h.html --- a/code-docs/hostguard_8h.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/hostguard_8h.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: hostguard.h File Reference - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    hostguard.h File Reference
    - +
    +This graph shows which files directly or indirectly include this file:
    +
    +
    + + + + + + + + + + + + + + +
    +

    Go to the source code of this file.

    - + - + + + - + + + + + + +

    -Defines

    +Macros

    #define _VAMP_IN_HOSTSDK
    #define VAMP_SDK_VERSION   "2.4"
     
    #define VAMP_SDK_VERSION   "2.7"
     
    #define VAMP_SDK_MAJOR_VERSION   2
    #define VAMP_SDK_MINOR_VERSION   4
     
    #define VAMP_SDK_MINOR_VERSION   7
     
    #define _VAMP_SDK_HOSTSPACE_BEGIN(h)   namespace _VampHost {
     
    #define _VAMP_SDK_HOSTSPACE_END(h)
     
    #define _VAMP_SDK_PLUGSPACE_BEGIN(h)   namespace _VampHost {
     
    #define _VAMP_SDK_PLUGSPACE_END(h)
     
    -

    Define Documentation

    - +

    Macro Definition Documentation

    + +

    ◆ _VAMP_IN_HOSTSDK

    +
    - +
    #define _VAMP_IN_HOSTSDK#define _VAMP_IN_HOSTSDK
    -
    -
    +
    -

    Definition at line 44 of file hostguard.h.

    +

    Definition at line 44 of file hostguard.h.

    - + +

    ◆ VAMP_SDK_VERSION

    +
    - +
    #define VAMP_SDK_VERSION   "2.4"#define VAMP_SDK_VERSION   "2.7"
    -
    -
    +
    -

    Definition at line 46 of file hostguard.h.

    +

    Definition at line 46 of file hostguard.h.

    - + +

    ◆ VAMP_SDK_MAJOR_VERSION

    +
    - +
    #define VAMP_SDK_MAJOR_VERSION   2#define VAMP_SDK_MAJOR_VERSION   2
    -
    -
    +
    -

    Definition at line 47 of file hostguard.h.

    +

    Definition at line 47 of file hostguard.h.

    - + +

    ◆ VAMP_SDK_MINOR_VERSION

    +
    - +
    #define VAMP_SDK_MINOR_VERSION   4#define VAMP_SDK_MINOR_VERSION   7
    -
    -
    +
    -

    Definition at line 48 of file hostguard.h.

    +

    Definition at line 48 of file hostguard.h.

    - + +

    ◆ _VAMP_SDK_HOSTSPACE_BEGIN

    +
    - +
    #define _VAMP_SDK_HOSTSPACE_BEGIN#define _VAMP_SDK_HOSTSPACE_BEGIN (   h)    namespace _VampHost {
    -
    -
    +
    -

    Definition at line 56 of file hostguard.h.

    +

    Definition at line 56 of file hostguard.h.

    - + +

    ◆ _VAMP_SDK_HOSTSPACE_END

    +
    - +
    #define _VAMP_SDK_HOSTSPACE_END#define _VAMP_SDK_HOSTSPACE_END (   h)
    -
    -
    -Value:
    } \
    -        using namespace _VampHost;
    -
    -

    Definition at line 59 of file hostguard.h.

    +
    +Value:
    } \
    using namespace _VampHost;
    +

    Definition at line 59 of file hostguard.h.

    - + +

    ◆ _VAMP_SDK_PLUGSPACE_BEGIN

    +
    - +
    #define _VAMP_SDK_PLUGSPACE_BEGIN#define _VAMP_SDK_PLUGSPACE_BEGIN (   h)    namespace _VampHost {
    -
    -
    +
    -

    Definition at line 62 of file hostguard.h.

    +

    Definition at line 62 of file hostguard.h.

    - + +

    ◆ _VAMP_SDK_PLUGSPACE_END

    +
    - +
    #define _VAMP_SDK_PLUGSPACE_END#define _VAMP_SDK_PLUGSPACE_END (   h)
    -
    -
    -Value:
    } \
    -        using namespace _VampHost;
    -
    -

    Definition at line 65 of file hostguard.h.

    +
    +Value:
    } \
    using namespace _VampHost;
    +

    Definition at line 65 of file hostguard.h.

    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/hostguard_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/hostguard_8h__dep__incl.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/hostguard_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/hostguard_8h__dep__incl.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +65ad52b3a688ccbaa8269ebb6ec5756d \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/hostguard_8h__dep__incl.png Binary file code-docs/hostguard_8h__dep__incl.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/hostguard_8h_source.html --- a/code-docs/hostguard_8h_source.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/hostguard_8h_source.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,64 +3,51 @@ + + VampPluginSDK: hostguard.h Source File - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -76,91 +63,16 @@
    hostguard.h
    -Go to the documentation of this file.
    00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
    -00002 
    -00003 /*
    -00004     Vamp
    -00005 
    -00006     An API for audio analysis and feature extraction plugins.
    -00007 
    -00008     Centre for Digital Music, Queen Mary, University of London.
    -00009     Copyright 2006 Chris Cannam.
    -00010   
    -00011     Permission is hereby granted, free of charge, to any person
    -00012     obtaining a copy of this software and associated documentation
    -00013     files (the "Software"), to deal in the Software without
    -00014     restriction, including without limitation the rights to use, copy,
    -00015     modify, merge, publish, distribute, sublicense, and/or sell copies
    -00016     of the Software, and to permit persons to whom the Software is
    -00017     furnished to do so, subject to the following conditions:
    -00018 
    -00019     The above copyright notice and this permission notice shall be
    -00020     included in all copies or substantial portions of the Software.
    -00021 
    -00022     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    -00023     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    -00024     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    -00025     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
    -00026     ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
    -00027     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
    -00028     WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    -00029 
    -00030     Except as contained in this notice, the names of the Centre for
    -00031     Digital Music; Queen Mary, University of London; and Chris Cannam
    -00032     shall not be used in advertising or otherwise to promote the sale,
    -00033     use or other dealings in this Software without prior written
    -00034     authorization.
    -00035 */
    -00036 
    -00037 #ifndef _VAMP_HOSTSDK_HOSTGUARD_H_
    -00038 #define _VAMP_HOSTSDK_HOSTGUARD_H_
    -00039 
    -00040 #ifdef _VAMP_IN_PLUGINSDK
    -00041 #error You have included headers from both vamp-sdk and vamp-hostsdk in the same source file. Please include only vamp-sdk headers in plugin code, and only vamp-hostsdk headers in host code.
    -00042 #else
    -00043 
    -00044 #define _VAMP_IN_HOSTSDK
    -00045 
    -00046 #define VAMP_SDK_VERSION "2.4"
    -00047 #define VAMP_SDK_MAJOR_VERSION 2
    -00048 #define VAMP_SDK_MINOR_VERSION 4
    -00049 
    -00050 #ifdef _VAMP_NO_HOST_NAMESPACE
    -00051 #define _VAMP_SDK_HOSTSPACE_BEGIN(h)
    -00052 #define _VAMP_SDK_HOSTSPACE_END(h)
    -00053 #define _VAMP_SDK_PLUGSPACE_BEGIN(h)
    -00054 #define _VAMP_SDK_PLUGSPACE_END(h)
    -00055 #else
    -00056 #define _VAMP_SDK_HOSTSPACE_BEGIN(h) \
    -00057         namespace _VampHost {
    -00058 
    -00059 #define _VAMP_SDK_HOSTSPACE_END(h) \
    -00060         } \
    -00061         using namespace _VampHost;
    -00062 #define _VAMP_SDK_PLUGSPACE_BEGIN(h) \
    -00063         namespace _VampHost {
    -00064 
    -00065 #define _VAMP_SDK_PLUGSPACE_END(h) \
    -00066         } \
    -00067         using namespace _VampHost;
    -00068 #endif
    -00069 
    -00070 #endif
    -00071 
    -00072 #endif
    -00073 
    -
    +Go to the documentation of this file.
    1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
    2 
    3 /*
    4  Vamp
    5 
    6  An API for audio analysis and feature extraction plugins.
    7 
    8  Centre for Digital Music, Queen Mary, University of London.
    9  Copyright 2006 Chris Cannam.
    10 
    11  Permission is hereby granted, free of charge, to any person
    12  obtaining a copy of this software and associated documentation
    13  files (the "Software"), to deal in the Software without
    14  restriction, including without limitation the rights to use, copy,
    15  modify, merge, publish, distribute, sublicense, and/or sell copies
    16  of the Software, and to permit persons to whom the Software is
    17  furnished to do so, subject to the following conditions:
    18 
    19  The above copyright notice and this permission notice shall be
    20  included in all copies or substantial portions of the Software.
    21 
    22  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    23  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    24  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    25  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
    26  ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
    27  CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
    28  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    29 
    30  Except as contained in this notice, the names of the Centre for
    31  Digital Music; Queen Mary, University of London; and Chris Cannam
    32  shall not be used in advertising or otherwise to promote the sale,
    33  use or other dealings in this Software without prior written
    34  authorization.
    35 */
    36 
    37 #ifndef _VAMP_HOSTSDK_HOSTGUARD_H_
    38 #define _VAMP_HOSTSDK_HOSTGUARD_H_
    39 
    40 #ifdef _VAMP_IN_PLUGINSDK
    41 #error You have included headers from both vamp-sdk and vamp-hostsdk in the same source file. Please include only vamp-sdk headers in plugin code, and only vamp-hostsdk headers in host code.
    42 #else
    43 
    44 #define _VAMP_IN_HOSTSDK
    45 
    46 #define VAMP_SDK_VERSION "2.7"
    47 #define VAMP_SDK_MAJOR_VERSION 2
    48 #define VAMP_SDK_MINOR_VERSION 7
    49 
    50 #ifdef _VAMP_NO_HOST_NAMESPACE
    51 #define _VAMP_SDK_HOSTSPACE_BEGIN(h)
    52 #define _VAMP_SDK_HOSTSPACE_END(h)
    53 #define _VAMP_SDK_PLUGSPACE_BEGIN(h)
    54 #define _VAMP_SDK_PLUGSPACE_END(h)
    55 #else
    56 #define _VAMP_SDK_HOSTSPACE_BEGIN(h) \
    57  namespace _VampHost {
    58 
    59 #define _VAMP_SDK_HOSTSPACE_END(h) \
    60  } \
    61  using namespace _VampHost;
    62 #define _VAMP_SDK_PLUGSPACE_BEGIN(h) \
    63  namespace _VampHost {
    64 
    65 #define _VAMP_SDK_PLUGSPACE_END(h) \
    66  } \
    67  using namespace _VampHost;
    68 #endif
    69 
    70 #endif
    71 
    72 #endif
    73 
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/index.html --- a/code-docs/index.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/index.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,58 +3,51 @@ -VampPluginSDK: Vamp Plugin SDK - + + +VampPluginSDK: Main Page - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - -
    + + + + + + +
    -
    Vamp Plugin SDK
    +
    VampPluginSDK Documentation
    -

    -About Vamp

    -

    Vamp is an API for C and C++ plugins that process sampled audio data to produce descriptive output (measurements or semantic observations). Find more information at http://www.vamp-plugins.org/ .

    -

    Although the official API for Vamp plugins is defined in C for maximum binary compatibility, we strongly recommend using the provided C++ classes in the SDK to implement your own plugins and hosts.

    -

    -For Plugins

    -

    Plugins should subclass Vamp::Plugin, and then use a Vamp::PluginAdapter to expose the correct C API for the plugin. Read the documentation for Vamp::PluginBase and Vamp::Plugin before starting.

    -

    Plugins should be compiled and linked into dynamic libraries using the usual convention for your platform, and should link (preferably statically) with -lvamp-sdk. Any number of plugins can reside in a single dynamic library. See plugins.cpp in the example plugins directory for the sort of code that will need to accompany your plugin class or classes, to make it possible for a host to look up your plugins properly.

    -

    Please read the relevant README file for your platform found in the Vamp SDK build/ directory, for details about how to ensure the resulting dynamic library exports the correct linker symbols.

    -

    The following example plugins are provided. You may legally reuse any amount of the code from these examples in any plugins you write, whether proprietary or open-source.

    -
      -
    • ZeroCrossing calculates the positions and density of zero-crossing points in an audio waveform.
    • -
    -
      -
    • SpectralCentroid calculates the centre of gravity of the frequency domain representation of each block of audio.
    • -
    -
      -
    • PowerSpectrum calculates a power spectrum from the input audio. Actually, it doesn't do any work except calculating power from a cartesian complex FFT output. The work of calculating this frequency domain output is done for it by the host or host SDK; the plugin just needs to declare that it wants frequency domain input. This is the simplest of the example plugins.
    • -
    -
      -
    • AmplitudeFollower is a simple implementation of SuperCollider's amplitude-follower algorithm.
    • -
    -
      -
    • PercussionOnsetDetector estimates the locations of percussive onsets using a simple method described in "Drum Source Separation - using Percussive Feature Detection and Spectral Modulation" by Dan Barry, Derry Fitzgerald, Eugene Coyle and Bob Lawlor, ISSC 2005.
    • -
    -
      -
    • FixedTempoEstimator calculates a single beats-per-minute value which is an estimate of the tempo of a piece of music that is assumed to be of fixed tempo, using autocorrelation of a frequency domain energy rise metric. It has several outputs that return intermediate results used in the calculation, and may be a useful example of a plugin having several outputs with varying feature structures.
    • -
    -

    Plugin authors should also read the Programmer's Guide at http://vamp-plugins.org/guide.pdf .

    -

    -For Hosts

    -

    Hosts will normally use a Vamp::PluginHostAdapter to convert each plugin's exposed C API back into a useful Vamp::Plugin C++ object.

    -

    The Vamp::HostExt namespace contains several additional C++ classes to do this work for them, and make the host's life easier:

    -
      -
    • Vamp::HostExt::PluginLoader provides a very easy interface for a host to discover, load, and find out category information about the available plugins. Most Vamp hosts will probably want to use this class.
    • -
    - -
      -
    • Vamp::HostExt::PluginChannelAdapter provides a simple means for hosts to use plugins that do not necessarily support the same number of audio channels as they have available, without having to apply a channel management / mixdown policy themselves.
    • -
    -
      -
    • Vamp::HostExt::PluginBufferingAdapter provides a means for hosts to avoid having to negotiate the input step and block size, instead permitting the host to use any block size they desire (and a step size equal to it). This is particularly useful for "streaming" hosts that cannot seek backwards in the input audio stream and so would otherwise need to implement an additional buffer to support step sizes smaller than the block size.
    • -
    -
      -
    • Vamp::HostExt::PluginSummarisingAdapter provides summarisation methods such as mean and median averages of output features, for use in any context where an available plugin produces individual values but the result that is actually needed is some sort of aggregate.
    • -
    -

    The PluginLoader class can also use the input domain, channel, and buffering adapters automatically to make these conversions transparent to the host if required.

    -

    Host authors should also refer to the example host code in the host directory of the SDK.

    -

    Hosts should link with -lvamp-hostsdk.

    -

    (The following notes in this section are mostly relevant for developers that are not using the HostExt classes, or that wish to know more about the policy they implement.)

    -

    The Vamp API does not officially specify how to load plugin libraries or where to find them. However, the SDK does include a function (Vamp::PluginHostAdapter::getPluginPath()) that returns a recommended directory search path that hosts may use for plugin libraries, and a class (Vamp::HostExt::PluginLoader) that implements a sensible cross-platform lookup policy using this path. We recommend using this class in your host unless you have a good reason not to want to. This implementation also permits the user to set the environment variable VAMP_PATH to override the default path if desired.

    -

    The policy used by Vamp::HostExt::PluginLoader -- and our recommendation for any host -- is to search each directory in this path for .DLL (on Windows), .so (on Linux, Solaris, BSD etc) or .dylib (on OS/X) files, then to load each one and perform a dynamic name lookup on the vampGetPluginDescriptor function to enumerate the plugins in the library. The example host has some code that may help, but this operation will necessarily be system-dependent.

    -

    Vamp also has an informal convention for sorting plugins into functional categories. In addition to the library file itself, a plugin library may install a category file with the same name as the library but .cat extension. The existence and format of this file are not specified by the Vamp API, but by convention the file may contain lines of the format

    -
    vamp:pluginlibrary:pluginname::General Category > Specific Category
    -

    which a host may read and use to assign plugins a location within a category tree for display to the user. The expectation is that advanced users may also choose to set up their own preferred category trees, which is why this information is not queried as part of the Vamp plugin's API itself. The Vamp::HostExt::PluginLoader class also provides support for plugin category lookup using this scheme.

    -

    -License

    -

    This plugin SDK is freely redistributable under a "new-style BSD" licence. See the file COPYING for more details. In short, you may modify and redistribute the SDK and example plugins within any commercial or non-commercial, proprietary or open-source plugin or application under almost any conditions, with no obligation to provide source code, provided you retain the original copyright note.

    -
    +
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_0.map --- a/code-docs/inherit_graph_0.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_0.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,3 @@ - - + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_0.md5 --- a/code-docs/inherit_graph_0.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_0.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -eb4b9fd0bb977a81ffad93a07a3424d4 \ No newline at end of file +6ba7b264098d85a465b0d162388030b7 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_0.png Binary file code-docs/inherit_graph_0.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_1.map --- a/code-docs/inherit_graph_1.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_1.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,3 @@ - - + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_1.md5 --- a/code-docs/inherit_graph_1.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_1.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -c38face13a6d22bcee624099c9b9c055 \ No newline at end of file +3c0f36c8bbdeb9f0942c99d366ec54e7 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_1.png Binary file code-docs/inherit_graph_1.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_10.map --- a/code-docs/inherit_graph_10.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_10.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,3 @@ - - + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_10.md5 --- a/code-docs/inherit_graph_10.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_10.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -8a399c8baa4b0365dfe67d776f6e439a \ No newline at end of file +6ea638b4f725637ffc8e3645c055c344 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_10.png Binary file code-docs/inherit_graph_10.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_11.map --- a/code-docs/inherit_graph_11.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_11.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,3 @@ - - + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_11.md5 --- a/code-docs/inherit_graph_11.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_11.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -cdc6d883535df0f18b4ac88f3bd41d70 \ No newline at end of file +4ac24e601c3fd69fc6fe861fe11e6987 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_11.png Binary file code-docs/inherit_graph_11.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_12.map --- a/code-docs/inherit_graph_12.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_12.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,4 +1,3 @@ - - - + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_12.md5 --- a/code-docs/inherit_graph_12.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_12.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -64cb6793b3cebd31d387c7f9355aadb1 \ No newline at end of file +23f11476ee873c150489e736dcc5dbf0 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_12.png Binary file code-docs/inherit_graph_12.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_13.map --- a/code-docs/inherit_graph_13.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_13.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,16 +1,3 @@ - - - - - - - - - - - - - - - + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_13.md5 --- a/code-docs/inherit_graph_13.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_13.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -b837ebdb201a5eb6a00a6636f42c6d34 \ No newline at end of file +4785ec3d3f93cc9026d795dac7b8a9e0 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_13.png Binary file code-docs/inherit_graph_13.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_14.map --- a/code-docs/inherit_graph_14.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_14.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,4 @@ - - + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_14.md5 --- a/code-docs/inherit_graph_14.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_14.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -f8f6047af365dc0bcf885485e34eebbb \ No newline at end of file +3af3186b913e3fe1927cd53504076369 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_14.png Binary file code-docs/inherit_graph_14.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_15.map --- a/code-docs/inherit_graph_15.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_15.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,16 @@ - - + + + + + + + + + + + + + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_15.md5 --- a/code-docs/inherit_graph_15.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_15.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -72ba5bcf1305b723cc32db4dd35d4fb3 \ No newline at end of file +8ad1f7c0ed33b194fa8ef96e38339cd6 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_15.png Binary file code-docs/inherit_graph_15.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_16.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/inherit_graph_16.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,3 @@ + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_16.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/inherit_graph_16.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +9d1a205c80ee48da8da7caeb55e86048 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_16.png Binary file code-docs/inherit_graph_16.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_17.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/inherit_graph_17.map Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,3 @@ + + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_17.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-docs/inherit_graph_17.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -0,0 +1,1 @@ +1b9db83c3d022802aad6ae23b153346c \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_17.png Binary file code-docs/inherit_graph_17.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_2.map --- a/code-docs/inherit_graph_2.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_2.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,3 @@ - - + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_2.md5 --- a/code-docs/inherit_graph_2.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_2.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -ce45ed563def7e43fa03be2317e86e48 \ No newline at end of file +7644bf6d74fb7c4b88bd8c40f9b15134 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_2.png Binary file code-docs/inherit_graph_2.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_3.map --- a/code-docs/inherit_graph_3.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_3.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,3 @@ - - + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_3.md5 --- a/code-docs/inherit_graph_3.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_3.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -f2d978652b4684eb182d7bbabc2b4dce \ No newline at end of file +0348e288080e3aa74e5c9348203531de \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_3.png Binary file code-docs/inherit_graph_3.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_4.map --- a/code-docs/inherit_graph_4.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_4.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,3 @@ - - + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_4.md5 --- a/code-docs/inherit_graph_4.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_4.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -baa05f112f1dbc0cd2aa8e286542b377 \ No newline at end of file +3553038d89708dba1c1abeba976e00e8 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_4.png Binary file code-docs/inherit_graph_4.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_5.map --- a/code-docs/inherit_graph_5.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_5.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,3 @@ - - + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_5.md5 --- a/code-docs/inherit_graph_5.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_5.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -0c5931d55e7c373f16354c90ba7fdca8 \ No newline at end of file +2bcd4275914ad26f699cf23fb0d6aa94 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_5.png Binary file code-docs/inherit_graph_5.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_6.map --- a/code-docs/inherit_graph_6.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_6.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,3 @@ - - + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_6.md5 --- a/code-docs/inherit_graph_6.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_6.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -fd3fb59e738be3a41ae80c24fc610c10 \ No newline at end of file +3e7623c29533a2372b6fb39cf9bd203f \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_6.png Binary file code-docs/inherit_graph_6.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_7.map --- a/code-docs/inherit_graph_7.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_7.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,3 @@ - - + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_7.md5 --- a/code-docs/inherit_graph_7.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_7.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -1218436b52ea6fba1b4a8c1e95bf996b \ No newline at end of file +42721f6dd74c0f26392f5b1bf77b1063 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_7.png Binary file code-docs/inherit_graph_7.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_8.map --- a/code-docs/inherit_graph_8.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_8.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,3 @@ - - + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_8.md5 --- a/code-docs/inherit_graph_8.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_8.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -5420b543e648e96f86fac267ce925194 \ No newline at end of file +2080477559f7c8ceaea071afc83ce821 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_8.png Binary file code-docs/inherit_graph_8.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_9.map --- a/code-docs/inherit_graph_9.map Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_9.map Fri Feb 24 16:44:47 2017 +0000 @@ -1,3 +1,3 @@ - - + + diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_9.md5 --- a/code-docs/inherit_graph_9.md5 Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherit_graph_9.md5 Fri Feb 24 16:44:47 2017 +0000 @@ -1,1 +1,1 @@ -550823f6e90752dea152b9695cea8bce \ No newline at end of file +0d1a97cd5e620d39ea7e2661eb8139b7 \ No newline at end of file diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherit_graph_9.png Binary file code-docs/inherit_graph_9.png has changed diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/inherits.html --- a/code-docs/inherits.html Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/inherits.html Fri Feb 24 16:44:47 2017 +0000 @@ -3,65 +3,51 @@ + + VampPluginSDK: Class Hierarchy - - + + - + - - + -
    - - +
    - - - - - -
    +
    VampPluginSDK -  2.4 +  2.7
    -
    - - - - -
    + + + + + + +
    @@ -82,80 +68,118 @@
    - + + - - - - - -
    - + +
    - + +
    - + +
    - + +
    - + +
    - + +
    - + +
    - + +
    - + +
    +
    + + + +
    + + + +
    - + +
    +
    - + +
    +
    - + +
    +
    - + + +
    +
    - + + + + + + + + + + + + + + +
    +
    - + +
    +
    - + +
    +
    + + - - - diff -r 5c95f546f0b4 -r 27319718b1f8 code-docs/jquery.js --- a/code-docs/jquery.js Tue Dec 03 16:43:33 2013 +0000 +++ b/code-docs/jquery.js Fri Feb 24 16:44:47 2017 +0000 @@ -1,27 +1,56 @@ -/* - * jQuery JavaScript Library v1.3.2 +/*! + * jQuery JavaScript Library v1.7.1 * http://jquery.com/ * - * Copyright (c) 2009 John Resig - * Dual licensed under the MIT and GPL licenses. - * http://docs.jquery.com/License + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license * - * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) - * Revision: 6246 + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 */ -(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
    "]||!O.indexOf("
    "]||(!O.indexOf("
    "]||!O.indexOf("
    "]||!o.support.htmlSerialize&&[1,"div
    ","
    "]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); -/* - * Sizzle CSS Selector Engine - v0.9.3 - * Copyright 2009, The Dojo Foundation +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
    a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
    ";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
    t
    ";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
    ";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */ -(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

    ";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
    ";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0) -{I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
    ").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function() -{G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
    ';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); - -/* +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

    ";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
    ";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
    ","
    "]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
    ").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! + * jQuery UI Widget 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! + * jQuery UI Mouse 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
    ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
    ');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! * jQuery hashchange event - v1.3 - 7/21/2010 * http://benalman.com/projects/jquery-hashchange-plugin/ * @@ -29,83 +58,30 @@ * Dual licensed under the MIT and GPL licenses. * http://benalman.com/about/license/ */ -(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('