diff org/vamp_plugins/OutputDescriptor.java @ 28:f2914a92b553

Docs
author Chris Cannam
date Mon, 19 Nov 2012 15:12:44 +0000
parents 7b1740a9020a
children c9515589be7d
line wrap: on
line diff
--- a/org/vamp_plugins/OutputDescriptor.java	Fri Nov 16 08:01:01 2012 +0000
+++ b/org/vamp_plugins/OutputDescriptor.java	Mon Nov 19 15:12:44 2012 +0000
@@ -1,24 +1,118 @@
 
 package org.vamp_plugins;
 
+/**
+ * OutputDescriptor describes the properties of an output of a Vamp
+ * plugin. Returned by e.g. Plugin.getOutputDescriptors().
+ */
 public class OutputDescriptor {
+
+    /**
+     * The name of the output, in computer-usable form.  Will contain
+     * the characters [a-zA-Z0-9_-] only.
+     */
     public String identifier;
+
+    /**
+     * The human-readable name of the output.
+     */
     public String name;
+
+    /**
+     * A human-readable short text describing the output.  May be
+     * empty if the name has said it all already.
+     */
     public String description;
+
+    /**
+     * The unit of the output, in human-readable form.
+     */
     public String unit;
+
+    /**
+     * True if the output has the same number of values per sample
+     * for every output sample.
+     */
     public boolean hasFixedBinCount;
+
+    /**
+     * The number of values per result of the output.  Undefined
+     * 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).
+     */
     public int binCount;
+
+    /**
+     * The (human-readable) names of each of the bins, if
+     * appropriate.  This is always optional.
+     */
     public String[] binNames;
+
+    /**
+     * True if the results in each output bin fall within a fixed
+     * numeric range (minimum and maximum values).  Undefined if
+     * binCount is zero.
+     */
     public boolean hasKnownExtents;
+
+    /**
+     * Minimum value of the results in the output.  Undefined if
+     * hasKnownExtents is false or binCount is zero.
+     */
     public float minValue;
+
+    /**
+     * Maximum value of the results in the output.  Undefined if
+     * hasKnownExtents is false or binCount is zero.
+     */
     public float maxValue;
+
+    /**
+     * True if the output values are quantized to a particular
+     * resolution.  Undefined if binCount is zero.
+     */
     public boolean isQuantized;
+
+    /**
+     * Quantization resolution of the output values (e.g. 1.0 if
+     * they are all integers).  Undefined if isQuantized is false
+     * or binCount is zero.
+     */
     public float quantizeStep;
+
     public static enum SampleType {
-	OneSamplePerStep, FixedSampleRate, VariableSampleRate
+	/// Results from each process() align with that call's block start
+	OneSamplePerStep,
+
+	/// Results are evenly spaced in time (sampleRate specified below)
+	FixedSampleRate,
+
+	/// Results are unevenly spaced and have individual timestamps
+	VariableSampleRate
     };
+
+    /**
+     * Positioning in time of the output results.
+     */
     public SampleType sampleType;
+
+    /**
+     * Sample rate of the output results, as samples per second.
+     * Undefined if sampleType is OneSamplePerStep.
+     *
+     * 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 sample, in time,
+     * will be 1/sampleRate seconds).  It's recommended to set
+     * this to zero if that behaviour is not desired.
+     */
     public float sampleRate;
+
+    /**
+     * True if the returned results for this output are known to
+     * have a duration field.
+     */
     public boolean hasDuration;
 
     OutputDescriptor() {