annotate LowFreq.cpp @ 1:411c5c28fc43

Makefiles, and build fix
author Chris Cannam
date Wed, 05 Mar 2014 10:47:15 +0000
parents b26975f6a1f1
children a84bae4ee627
rev   line source
Chris@0 1
Chris@0 2 #include "LowFreq.h"
Chris@0 3
Chris@0 4 static float defaultPShort = 0.1;
Chris@0 5 static float defaultPLong = 1.0;
Chris@0 6
Chris@0 7 LowFreq::LowFreq(float inputSampleRate) :
Chris@0 8 Plugin(inputSampleRate),
Chris@0 9 m_pShort(defaultPShort),
Chris@0 10 m_pLong(defaultPLong)
Chris@0 11 {
Chris@0 12 }
Chris@0 13
Chris@0 14 LowFreq::~LowFreq()
Chris@0 15 {
Chris@0 16 }
Chris@0 17
Chris@0 18 string
Chris@0 19 LowFreq::getIdentifier() const
Chris@0 20 {
Chris@0 21 return "lowfreq";
Chris@0 22 }
Chris@0 23
Chris@0 24 string
Chris@0 25 LowFreq::getName() const
Chris@0 26 {
Chris@0 27 return "Low-frequency Spectrogram";
Chris@0 28 }
Chris@0 29
Chris@0 30 string
Chris@0 31 LowFreq::getDescription() const
Chris@0 32 {
Chris@0 33 //!!! Return something helpful here!
Chris@0 34 return "";
Chris@0 35 }
Chris@0 36
Chris@0 37 string
Chris@0 38 LowFreq::getMaker() const
Chris@0 39 {
Chris@0 40 return "Queen Mary, University of London";
Chris@0 41 }
Chris@0 42
Chris@0 43 int
Chris@0 44 LowFreq::getPluginVersion() const
Chris@0 45 {
Chris@0 46 return 1;
Chris@0 47 }
Chris@0 48
Chris@0 49 string
Chris@0 50 LowFreq::getCopyright() const
Chris@0 51 {
Chris@0 52 return "GPL";
Chris@0 53 }
Chris@0 54
Chris@0 55 LowFreq::InputDomain
Chris@0 56 LowFreq::getInputDomain() const
Chris@0 57 {
Chris@0 58 return TimeDomain;
Chris@0 59 }
Chris@0 60
Chris@0 61 size_t
Chris@0 62 LowFreq::getPreferredBlockSize() const
Chris@0 63 {
Chris@0 64 //!!! calculate from params
Chris@0 65 return 0;
Chris@0 66 }
Chris@0 67
Chris@0 68 size_t
Chris@0 69 LowFreq::getPreferredStepSize() const
Chris@0 70 {
Chris@0 71 //!!!
Chris@0 72 return 0;
Chris@0 73 }
Chris@0 74
Chris@0 75 size_t
Chris@0 76 LowFreq::getMinChannelCount() const
Chris@0 77 {
Chris@0 78 return 1;
Chris@0 79 }
Chris@0 80
Chris@0 81 size_t
Chris@0 82 LowFreq::getMaxChannelCount() const
Chris@0 83 {
Chris@0 84 return 1;
Chris@0 85 }
Chris@0 86
Chris@0 87 LowFreq::ParameterList
Chris@0 88 LowFreq::getParameterDescriptors() const
Chris@0 89 {
Chris@0 90 ParameterList list;
Chris@0 91
Chris@0 92 ParameterDescriptor d;
Chris@0 93 d.identifier = "p_short";
Chris@0 94 d.name = "Shortest Period";
Chris@0 95 d.description = "Period in seconds of the highest-frequency component to include in the spectrogram. That is, 1/f where f is the highest frequency (in Hz) spanned by the spectrogram.";
Chris@0 96 d.unit = "s";
Chris@0 97 d.minValue = 0.01;
Chris@0 98 d.maxValue = 10;
Chris@0 99 d.defaultValue = defaultPShort;
Chris@0 100 d.isQuantized = false;
Chris@0 101 list.push_back(d);
Chris@0 102
Chris@0 103 d.identifier = "p_long";
Chris@0 104 d.name = "Longest Period";
Chris@0 105 d.description = "Period in seconds of the lowest-frequency component to include in the spectrogram. That is, 1/f where f is the lowest frequency (in Hz) spanned by the spectrogram.";
Chris@0 106 d.unit = "s";
Chris@0 107 d.minValue = 0.01;
Chris@0 108 d.maxValue = 10;
Chris@0 109 d.defaultValue = defaultPLong;
Chris@0 110 d.isQuantized = false;
Chris@0 111 list.push_back(d);
Chris@0 112
Chris@0 113 return list;
Chris@0 114 }
Chris@0 115
Chris@0 116 float
Chris@0 117 LowFreq::getParameter(string identifier) const
Chris@0 118 {
Chris@0 119 if (identifier == "p_short") {
Chris@0 120 return m_pShort;
Chris@0 121 } else if (identifier == "p_long") {
Chris@0 122 return m_pLong;
Chris@0 123 }
Chris@0 124 return 0;
Chris@0 125 }
Chris@0 126
Chris@0 127 void
Chris@0 128 LowFreq::setParameter(string identifier, float value)
Chris@0 129 {
Chris@0 130 if (identifier == "p_short") {
Chris@0 131 m_pShort = value;
Chris@0 132 } else if (identifier == "p_long") {
Chris@0 133 m_pLong = value;
Chris@0 134 }
Chris@0 135 }
Chris@0 136
Chris@0 137 LowFreq::ProgramList
Chris@0 138 LowFreq::getPrograms() const
Chris@0 139 {
Chris@0 140 ProgramList list;
Chris@0 141 return list;
Chris@0 142 }
Chris@0 143
Chris@0 144 string
Chris@0 145 LowFreq::getCurrentProgram() const
Chris@0 146 {
Chris@0 147 return ""; // no programs
Chris@0 148 }
Chris@0 149
Chris@0 150 void
Chris@0 151 LowFreq::selectProgram(string name)
Chris@0 152 {
Chris@0 153 }
Chris@0 154
Chris@0 155 LowFreq::OutputList
Chris@0 156 LowFreq::getOutputDescriptors() const
Chris@0 157 {
Chris@0 158 OutputList list;
Chris@0 159
Chris@0 160 OutputDescriptor d;
Chris@0 161 d.identifier = "spectrogram";
Chris@0 162 d.name = "Spectrogram";
Chris@0 163 d.description = "";
Chris@0 164 d.unit = "";
Chris@0 165 d.hasFixedBinCount = true;
Chris@0 166 d.binCount = 1; //!!! calculate
Chris@0 167 d.hasKnownExtents = false;
Chris@0 168 d.isQuantized = false;
Chris@0 169 d.sampleType = OutputDescriptor::OneSamplePerStep;
Chris@0 170 d.hasDuration = false;
Chris@0 171 list.push_back(d);
Chris@0 172
Chris@0 173 return list;
Chris@0 174 }
Chris@0 175
Chris@0 176 bool
Chris@0 177 LowFreq::initialise(size_t channels, size_t stepSize, size_t blockSize)
Chris@0 178 {
Chris@0 179 if (channels < getMinChannelCount() ||
Chris@0 180 channels > getMaxChannelCount()) return false;
Chris@0 181
Chris@0 182 // Real initialisation work goes here!
Chris@0 183
Chris@0 184 return true;
Chris@0 185 }
Chris@0 186
Chris@0 187 void
Chris@0 188 LowFreq::reset()
Chris@0 189 {
Chris@0 190 // Clear buffers, reset stored values, etc
Chris@0 191 }
Chris@0 192
Chris@0 193 LowFreq::FeatureSet
Chris@0 194 LowFreq::process(const float *const *inputBuffers, Vamp::RealTime timestamp)
Chris@0 195 {
Chris@0 196 // Do actual work!
Chris@0 197 return FeatureSet();
Chris@0 198 }
Chris@0 199
Chris@0 200 LowFreq::FeatureSet
Chris@0 201 LowFreq::getRemainingFeatures()
Chris@0 202 {
Chris@0 203 return FeatureSet();
Chris@0 204 }
Chris@0 205