annotate plugins/ChromagramPlugin.h @ 49:fc88b465548a

* Normalise type option for chromagram * Minimum segment duration option for segmenter * Bit more documentation
author Chris Cannam <c.cannam@qmul.ac.uk>
date Tue, 22 Jan 2008 17:27:48 +0000
parents 5d7ce1d87301
children dcf5800f0f00
rev   line source
c@0 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
c@0 2
c@0 3 /*
c@0 4 QM Vamp Plugin Set
c@0 5
c@0 6 Centre for Digital Music, Queen Mary, University of London.
c@0 7 All rights reserved.
c@0 8 */
c@0 9
c@0 10 #ifndef _CHROMAGRAM_PLUGIN_H_
c@0 11 #define _CHROMAGRAM_PLUGIN_H_
c@0 12
c@3 13 #include <vamp-sdk/Plugin.h>
c@3 14 #include <dsp/chromagram/Chromagram.h>
c@0 15
c@0 16 class ChromagramPlugin : public Vamp::Plugin
c@0 17 {
c@0 18 public:
c@0 19 ChromagramPlugin(float inputSampleRate);
c@0 20 virtual ~ChromagramPlugin();
c@0 21
c@0 22 bool initialise(size_t channels, size_t stepSize, size_t blockSize);
c@0 23 void reset();
c@0 24
c@7 25 InputDomain getInputDomain() const { return FrequencyDomain; }
c@0 26
c@22 27 std::string getIdentifier() const;
c@0 28 std::string getName() const;
c@0 29 std::string getDescription() const;
c@0 30 std::string getMaker() const;
c@0 31 int getPluginVersion() const;
c@0 32 std::string getCopyright() const;
c@0 33
c@0 34 ParameterList getParameterDescriptors() const;
c@0 35 float getParameter(std::string) const;
c@0 36 void setParameter(std::string, float);
c@0 37
c@0 38 size_t getPreferredStepSize() const;
c@0 39 size_t getPreferredBlockSize() const;
c@0 40
c@0 41 OutputList getOutputDescriptors() const;
c@0 42
c@18 43 FeatureSet process(const float *const *inputBuffers,
c@18 44 Vamp::RealTime timestamp);
c@0 45
c@0 46 FeatureSet getRemainingFeatures();
c@0 47
c@0 48 protected:
c@0 49 int m_minMIDIPitch;
c@0 50 int m_maxMIDIPitch;
c@0 51 float m_tuningFrequency;
c@49 52 MathUtilities::NormaliseType m_normalise;
c@0 53 int m_bpo;
c@0 54
c@0 55 void setupConfig();
c@0 56
c@0 57 ChromaConfig m_config;
c@0 58 Chromagram *m_chromagram;
c@0 59 mutable size_t m_step;
c@0 60 mutable size_t m_block;
c@0 61
c@45 62 vector<double> m_binsums;
c@45 63 size_t m_count;
c@0 64 };
c@0 65
c@0 66
c@0 67 #endif