Chris@7: Chris@7: #include "TipicVampPlugin.h" Chris@7: Chris@7: Tipic::Tipic(float inputSampleRate) : Chris@7: Plugin(inputSampleRate) Chris@7: { Chris@7: } Chris@7: Chris@7: Tipic::~Tipic() Chris@7: { Chris@7: } Chris@7: Chris@7: string Chris@7: Tipic::getIdentifier() const Chris@7: { Chris@7: return "tipic"; Chris@7: } Chris@7: Chris@7: string Chris@7: Tipic::getName() const Chris@7: { Chris@7: return "Timbre-Invariant Pitch Chroma"; Chris@7: } Chris@7: Chris@7: string Chris@7: Tipic::getDescription() const Chris@7: { Chris@7: // Return something helpful here! Chris@7: return ""; Chris@7: } Chris@7: Chris@7: string Chris@7: Tipic::getMaker() const Chris@7: { Chris@7: // Your name here Chris@7: return ""; Chris@7: } Chris@7: Chris@7: int Chris@7: Tipic::getPluginVersion() const Chris@7: { Chris@7: // Increment this each time you release a version that behaves Chris@7: // differently from the previous one Chris@7: return 1; Chris@7: } Chris@7: Chris@7: string Chris@7: Tipic::getCopyright() const Chris@7: { Chris@7: // This function is not ideally named. It does not necessarily Chris@7: // need to say who made the plugin -- getMaker does that -- but it Chris@7: // should indicate the terms under which it is distributed. For Chris@7: // example, "Copyright (year). All Rights Reserved", or "GPL" Chris@7: return ""; Chris@7: } Chris@7: Chris@7: Tipic::InputDomain Chris@7: Tipic::getInputDomain() const Chris@7: { Chris@7: return TimeDomain; Chris@7: } Chris@7: Chris@7: size_t Chris@7: Tipic::getPreferredBlockSize() const Chris@7: { Chris@7: return 0; // 0 means "I can handle any block size" Chris@7: } Chris@7: Chris@7: size_t Chris@7: Tipic::getPreferredStepSize() const Chris@7: { Chris@7: return 0; // 0 means "anything sensible"; in practice this Chris@7: // means the same as the block size for TimeDomain Chris@7: // plugins, or half of it for FrequencyDomain plugins Chris@7: } Chris@7: Chris@7: size_t Chris@7: Tipic::getMinChannelCount() const Chris@7: { Chris@7: return 1; Chris@7: } Chris@7: Chris@7: size_t Chris@7: Tipic::getMaxChannelCount() const Chris@7: { Chris@7: return 1; Chris@7: } Chris@7: Chris@7: Tipic::ParameterList Chris@7: Tipic::getParameterDescriptors() const Chris@7: { Chris@7: ParameterList list; Chris@7: return list; Chris@7: } Chris@7: Chris@7: float Chris@7: Tipic::getParameter(string identifier) const Chris@7: { Chris@7: return 0; Chris@7: } Chris@7: Chris@7: void Chris@7: Tipic::setParameter(string identifier, float value) Chris@7: { Chris@7: } Chris@7: Chris@7: Tipic::ProgramList Chris@7: Tipic::getPrograms() const Chris@7: { Chris@7: ProgramList list; Chris@7: return list; Chris@7: } Chris@7: Chris@7: string Chris@7: Tipic::getCurrentProgram() const Chris@7: { Chris@7: return ""; // no programs Chris@7: } Chris@7: Chris@7: void Chris@7: Tipic::selectProgram(string name) Chris@7: { Chris@7: } Chris@7: Chris@7: Tipic::OutputList Chris@7: Tipic::getOutputDescriptors() const Chris@7: { Chris@7: OutputList list; Chris@7: Chris@7: OutputDescriptor d; Chris@7: d.identifier = "pitch"; Chris@7: d.name = "Pitch Features"; Chris@7: d.description = ""; Chris@7: d.unit = ""; Chris@7: d.hasFixedBinCount = true; Chris@7: d.binCount = 88; Chris@7: d.hasKnownExtents = false; Chris@7: d.isQuantized = false; Chris@7: d.sampleType = OutputDescriptor::FixedSampleRate; Chris@7: d.sampleRate = 4410.0 / m_inputSampleRate; Chris@7: d.hasDuration = false; Chris@7: list.push_back(d); Chris@7: Chris@7: return list; Chris@7: } Chris@7: Chris@7: bool Chris@7: Tipic::initialise(size_t channels, size_t stepSize, size_t blockSize) Chris@7: { Chris@7: if (channels < getMinChannelCount() || Chris@7: channels > getMaxChannelCount()) return false; Chris@7: Chris@7: return true; Chris@7: } Chris@7: Chris@7: void Chris@7: Tipic::reset() Chris@7: { Chris@7: // Clear buffers, reset stored values, etc Chris@7: } Chris@7: Chris@7: Tipic::FeatureSet Chris@7: Tipic::process(const float *const *inputBuffers, Vamp::RealTime timestamp) Chris@7: { Chris@7: return FeatureSet(); Chris@7: } Chris@7: Chris@7: Tipic::FeatureSet Chris@7: Tipic::getRemainingFeatures() Chris@7: { Chris@7: return FeatureSet(); Chris@7: } Chris@7: