annotate src/TipicVampPlugin.cpp @ 7:9262806af1cd

Add papers, skeleton plugin code
author Chris Cannam
date Fri, 14 Aug 2015 12:02:57 +0100
parents
children f440b0e2192b
rev   line source
Chris@7 1
Chris@7 2 #include "TipicVampPlugin.h"
Chris@7 3
Chris@7 4 Tipic::Tipic(float inputSampleRate) :
Chris@7 5 Plugin(inputSampleRate)
Chris@7 6 {
Chris@7 7 }
Chris@7 8
Chris@7 9 Tipic::~Tipic()
Chris@7 10 {
Chris@7 11 }
Chris@7 12
Chris@7 13 string
Chris@7 14 Tipic::getIdentifier() const
Chris@7 15 {
Chris@7 16 return "tipic";
Chris@7 17 }
Chris@7 18
Chris@7 19 string
Chris@7 20 Tipic::getName() const
Chris@7 21 {
Chris@7 22 return "Timbre-Invariant Pitch Chroma";
Chris@7 23 }
Chris@7 24
Chris@7 25 string
Chris@7 26 Tipic::getDescription() const
Chris@7 27 {
Chris@7 28 // Return something helpful here!
Chris@7 29 return "";
Chris@7 30 }
Chris@7 31
Chris@7 32 string
Chris@7 33 Tipic::getMaker() const
Chris@7 34 {
Chris@7 35 // Your name here
Chris@7 36 return "";
Chris@7 37 }
Chris@7 38
Chris@7 39 int
Chris@7 40 Tipic::getPluginVersion() const
Chris@7 41 {
Chris@7 42 // Increment this each time you release a version that behaves
Chris@7 43 // differently from the previous one
Chris@7 44 return 1;
Chris@7 45 }
Chris@7 46
Chris@7 47 string
Chris@7 48 Tipic::getCopyright() const
Chris@7 49 {
Chris@7 50 // This function is not ideally named. It does not necessarily
Chris@7 51 // need to say who made the plugin -- getMaker does that -- but it
Chris@7 52 // should indicate the terms under which it is distributed. For
Chris@7 53 // example, "Copyright (year). All Rights Reserved", or "GPL"
Chris@7 54 return "";
Chris@7 55 }
Chris@7 56
Chris@7 57 Tipic::InputDomain
Chris@7 58 Tipic::getInputDomain() const
Chris@7 59 {
Chris@7 60 return TimeDomain;
Chris@7 61 }
Chris@7 62
Chris@7 63 size_t
Chris@7 64 Tipic::getPreferredBlockSize() const
Chris@7 65 {
Chris@7 66 return 0; // 0 means "I can handle any block size"
Chris@7 67 }
Chris@7 68
Chris@7 69 size_t
Chris@7 70 Tipic::getPreferredStepSize() const
Chris@7 71 {
Chris@7 72 return 0; // 0 means "anything sensible"; in practice this
Chris@7 73 // means the same as the block size for TimeDomain
Chris@7 74 // plugins, or half of it for FrequencyDomain plugins
Chris@7 75 }
Chris@7 76
Chris@7 77 size_t
Chris@7 78 Tipic::getMinChannelCount() const
Chris@7 79 {
Chris@7 80 return 1;
Chris@7 81 }
Chris@7 82
Chris@7 83 size_t
Chris@7 84 Tipic::getMaxChannelCount() const
Chris@7 85 {
Chris@7 86 return 1;
Chris@7 87 }
Chris@7 88
Chris@7 89 Tipic::ParameterList
Chris@7 90 Tipic::getParameterDescriptors() const
Chris@7 91 {
Chris@7 92 ParameterList list;
Chris@7 93 return list;
Chris@7 94 }
Chris@7 95
Chris@7 96 float
Chris@7 97 Tipic::getParameter(string identifier) const
Chris@7 98 {
Chris@7 99 return 0;
Chris@7 100 }
Chris@7 101
Chris@7 102 void
Chris@7 103 Tipic::setParameter(string identifier, float value)
Chris@7 104 {
Chris@7 105 }
Chris@7 106
Chris@7 107 Tipic::ProgramList
Chris@7 108 Tipic::getPrograms() const
Chris@7 109 {
Chris@7 110 ProgramList list;
Chris@7 111 return list;
Chris@7 112 }
Chris@7 113
Chris@7 114 string
Chris@7 115 Tipic::getCurrentProgram() const
Chris@7 116 {
Chris@7 117 return ""; // no programs
Chris@7 118 }
Chris@7 119
Chris@7 120 void
Chris@7 121 Tipic::selectProgram(string name)
Chris@7 122 {
Chris@7 123 }
Chris@7 124
Chris@7 125 Tipic::OutputList
Chris@7 126 Tipic::getOutputDescriptors() const
Chris@7 127 {
Chris@7 128 OutputList list;
Chris@7 129
Chris@7 130 OutputDescriptor d;
Chris@7 131 d.identifier = "pitch";
Chris@7 132 d.name = "Pitch Features";
Chris@7 133 d.description = "";
Chris@7 134 d.unit = "";
Chris@7 135 d.hasFixedBinCount = true;
Chris@7 136 d.binCount = 88;
Chris@7 137 d.hasKnownExtents = false;
Chris@7 138 d.isQuantized = false;
Chris@7 139 d.sampleType = OutputDescriptor::FixedSampleRate;
Chris@7 140 d.sampleRate = 4410.0 / m_inputSampleRate;
Chris@7 141 d.hasDuration = false;
Chris@7 142 list.push_back(d);
Chris@7 143
Chris@7 144 return list;
Chris@7 145 }
Chris@7 146
Chris@7 147 bool
Chris@7 148 Tipic::initialise(size_t channels, size_t stepSize, size_t blockSize)
Chris@7 149 {
Chris@7 150 if (channels < getMinChannelCount() ||
Chris@7 151 channels > getMaxChannelCount()) return false;
Chris@7 152
Chris@7 153 return true;
Chris@7 154 }
Chris@7 155
Chris@7 156 void
Chris@7 157 Tipic::reset()
Chris@7 158 {
Chris@7 159 // Clear buffers, reset stored values, etc
Chris@7 160 }
Chris@7 161
Chris@7 162 Tipic::FeatureSet
Chris@7 163 Tipic::process(const float *const *inputBuffers, Vamp::RealTime timestamp)
Chris@7 164 {
Chris@7 165 return FeatureSet();
Chris@7 166 }
Chris@7 167
Chris@7 168 Tipic::FeatureSet
Chris@7 169 Tipic::getRemainingFeatures()
Chris@7 170 {
Chris@7 171 return FeatureSet();
Chris@7 172 }
Chris@7 173