diff vamp-sdk/Plugin.h @ 9:44113b1e296b

* Add valueNames to parameter descriptor * Change valueCount and valueNames to binCount and binNames in output descriptor, to avoid confusion with other uses of value * Some explanatory notes about FFT alignment
author cannam
date Wed, 05 Apr 2006 16:50:07 +0000
parents c4662bbef275
children a67eeb9d6341
line wrap: on
line diff
--- a/vamp-sdk/Plugin.h	Mon Apr 03 14:19:02 2006 +0000
+++ b/vamp-sdk/Plugin.h	Wed Apr 05 16:50:07 2006 +0000
@@ -205,59 +205,55 @@
 	std::string unit;
 
 	/**
-	 * True if the output has the same number of values per result
-	 * for every output result.  Outputs for which this is false
+	 * True if the output has the same number of values per sample
+	 * for every output sample.  Outputs for which this is false
 	 * are unlikely to be very useful in a general-purpose host.
 	 */
-	bool hasFixedValueCount;
+	bool hasFixedBinCount;
 
 	/**
 	 * The number of values per result of the output.  Undefined
-	 * if hasFixedValueCount is false.  If this is zero, the output
+	 * if hasFixedBinCount is false.  If this is zero, the output
 	 * is point data (i.e. only the time of each output is of
 	 * interest, the value list will be empty).
-	 *
-	 * Note that this gives the number of values of a single
-	 * output result, not of the output stream (which has one more
-	 * dimension: time).
 	 */
-	size_t valueCount;
+	size_t binCount;
 
 	/**
-	 * The names of each of the values, if appropriate.  This is
+	 * The names of each of the bins, if appropriate.  This is
 	 * always optional.
 	 */
-	std::vector<std::string> valueNames;
+	std::vector<std::string> binNames;
 
 	/**
-	 * True if the results in the output have a fixed numeric
-	 * range (minimum and maximum values).  Undefined if
-	 * valueCount is zero.
+	 * True if the results in each output bin fall within a fixed
+	 * numeric range (minimum and maximum values).  Undefined if
+	 * binCount is zero.
 	 */
 	bool hasKnownExtents;
 
 	/**
 	 * Minimum value of the results in the output.  Undefined if
-	 * hasKnownExtents is false or valueCount is zero.
+	 * hasKnownExtents is false or binCount is zero.
 	 */
 	float minValue;
 
 	/**
 	 * Maximum value of the results in the output.  Undefined if
-	 * hasKnownExtents is false or valueCount is zero.
+	 * hasKnownExtents is false or binCount is zero.
 	 */
 	float maxValue;
 
 	/**
 	 * True if the output values are quantized to a particular
-	 * resolution.  Undefined if valueCount is zero.
+	 * resolution.  Undefined if binCount is zero.
 	 */
 	bool isQuantized;
 
 	/**
 	 * Quantization resolution of the output values (e.g. 1.0 if
 	 * they are all integers).  Undefined if isQuantized is false
-	 * or valueCount is zero.
+	 * or binCount is zero.
 	 */
 	float quantizeStep;
 
@@ -284,7 +280,7 @@
 	 *
 	 * If sampleType is VariableSampleRate and this value is
 	 * non-zero, then it may be used to calculate a resolution for
-	 * the output (i.e. the "duration" of each value, in time).
+	 * the output (i.e. the "duration" of each sample, in time).
 	 * It's recommended to set this to zero if that behaviour is
 	 * not desired.
 	 */
@@ -318,8 +314,8 @@
 	
 	/**
 	 * Results for a single sample of this feature.  If the output
-	 * hasFixedValueCount, there must be the same number of values
-	 * as the output's valueCount count.
+	 * hasFixedBinCount, there must be the same number of values
+	 * as the output's binCount count.
 	 */
 	std::vector<float> values;
 
@@ -338,16 +334,19 @@
      * 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 host will zero-pad as necessary).  The timestamp 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 consecutive pairs of
      * real and imaginary component floats corresponding to bins
-     * 0..(blockSize/2-1) of the FFT output.
-     *
-     * The timestamp is the real time in seconds of the start of the
-     * supplied block of samples.
+     * 0..(blockSize/2-1) of the FFT output.  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