37 #ifndef _VAMP_SDK_PLUGIN_H_ 38 #define _VAMP_SDK_PLUGIN_H_ 141 virtual bool initialise(
size_t inputChannels,
143 size_t blockSize) = 0;
150 virtual void reset() = 0;
323 hasFixedBinCount(false),
325 hasKnownExtents(false),
330 sampleType(OneSamplePerStep),
332 hasDuration(false) { }
342 virtual OutputList getOutputDescriptors()
const = 0;
390 hasTimestamp(false), hasDuration(false) { }
424 virtual FeatureSet process(
const float *
const *inputBuffers,
431 virtual FeatureSet getRemainingFeatures() = 0;
438 virtual std::string
getType()
const {
return "Feature Extraction Plugin"; }
442 m_inputSampleRate(inputSampleRate) { }
std::vector< OutputDescriptor > OutputList
Chris@6:
bool hasDuration
True if the returned results for this output are known to have a duration field.
Chris@6:
std::string label
Label for the sample of this feature.
Chris@6:
Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...
Chris@6:
Chris@6:
Chris@6:
float sampleRate
Sample rate of the output results, as samples per second.
Chris@6:
bool hasFixedBinCount
True if the output has the same number of values per sample for every output sample.
Chris@6:
Chris@6:
std::vector< float > values
Results for a single sample of this feature.
Chris@6:
Results are evenly spaced in time (sampleRate specified below)
Chris@6:
std::map< int, FeatureList > FeatureSet
Chris@6:
Chris@6:
float quantizeStep
Quantization resolution of the output values (e.g.
Chris@6:
RealTime timestamp
Timestamp of the output feature.
Chris@6:
std::string description
A human-readable short text describing the output.
Chris@6:
Plugin(float inputSampleRate)
Chris@6:
std::string identifier
The name of the output, in computer-usable form.
Chris@6:
float minValue
Minimum value of the results in the output.
Chris@6:
Chris@6:
std::vector< std::string > binNames
The (human-readable) names of each of the bins, if appropriate.
Chris@6:
virtual size_t getPreferredBlockSize() const
Get the preferred block size (window size – the number of sample frames passed in each block to the ...
Chris@6:
Chris@6:
Chris@6:
float maxValue
Maximum value of the results in the output.
Chris@6:
virtual std::string getType() const
Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase...
Chris@6:
Chris@6:
RealTime duration
Duration of the output feature.
Chris@6:
std::string unit
The unit of the output, in human-readable form.
Chris@6:
Chris@6:
virtual size_t getMinChannelCount() const
Get the minimum supported number of input channels.
Chris@6:
std::string name
The human-readable name of the output.
Chris@6:
Chris@6:
Chris@6:
virtual size_t getMaxChannelCount() const
Get the maximum supported number of input channels.
Chris@6:
virtual size_t getPreferredStepSize() const
Get the preferred step size (window increment – the distance in sample frames between the start fram...
Chris@6:
RealTime represents time values to nanosecond precision with accurate arithmetic and frame-rate conve...
Chris@6:
bool hasTimestamp
True if an output feature has its own timestamp.
Chris@6:
#define _VAMP_SDK_PLUGSPACE_BEGIN(h)
Chris@6:
Chris@6:
std::vector< Feature > FeatureList
Chris@6:
#define _VAMP_SDK_PLUGSPACE_END(h)
Chris@6:
bool hasDuration
True if an output feature has a specified duration.
Chris@6:
Results from each process() align with that call's block start.
Chris@6:
A base class for plugins with optional configurable parameters, programs, etc.
Chris@6:
size_t binCount
The number of values per result of the output.
Chris@6:
bool isQuantized
True if the output values are quantized to a particular resolution.
Chris@6:
SampleType sampleType
Positioning in time of the output results.
Chris@6:
Chris@6:
bool hasKnownExtents
True if the results in each output bin fall within a fixed numeric range (minimum and maximum values)...
Chris@6: