Chris@7: #ifndef TIPIC_VAMP_PLUGIN_H Chris@7: #define TIPIC_VAMP_PLUGIN_H Chris@7: Chris@7: #include Chris@7: Chris@19: #include "Types.h" Chris@19: Chris@19: class PitchFilterbank; Chris@19: class CRP; Chris@26: class Chroma; Chris@39: class CENS; Chris@35: class FeatureDownsample; Chris@9: Chris@7: using std::string; Chris@7: Chris@7: class Tipic : public Vamp::Plugin Chris@7: { Chris@7: public: Chris@7: Tipic(float inputSampleRate); Chris@7: virtual ~Tipic(); Chris@7: Chris@7: string getIdentifier() const; Chris@7: string getName() const; Chris@7: string getDescription() const; Chris@7: string getMaker() const; Chris@7: int getPluginVersion() const; Chris@7: string getCopyright() const; Chris@7: Chris@7: InputDomain getInputDomain() const; Chris@7: size_t getPreferredBlockSize() const; Chris@7: size_t getPreferredStepSize() const; Chris@7: size_t getMinChannelCount() const; Chris@7: size_t getMaxChannelCount() const; Chris@7: Chris@7: ParameterList getParameterDescriptors() const; Chris@7: float getParameter(string identifier) const; Chris@7: void setParameter(string identifier, float value); Chris@7: Chris@7: ProgramList getPrograms() const; Chris@7: string getCurrentProgram() const; Chris@7: void selectProgram(string name); Chris@7: Chris@7: OutputList getOutputDescriptors() const; Chris@7: Chris@7: bool initialise(size_t channels, size_t stepSize, size_t blockSize); Chris@7: void reset(); Chris@7: Chris@7: FeatureSet process(const float *const *inputBuffers, Chris@7: Vamp::RealTime timestamp); Chris@7: Chris@7: FeatureSet getRemainingFeatures(); Chris@7: Chris@7: protected: Chris@9: int m_stepSize; Chris@9: int m_blockSize; Chris@15: float m_tuningFrequency; Chris@15: PitchFilterbank *m_filterbank; Chris@19: CRP *m_crp; Chris@26: Chroma *m_chroma; Chris@26: Chroma *m_logChroma; Chris@39: CENS *m_cens; Chris@9: mutable int m_pitchOutputNo; Chris@26: mutable int m_cpOutputNo; Chris@26: mutable int m_clpOutputNo; Chris@39: mutable int m_censOutputNo; Chris@19: mutable int m_crpOutputNo; Chris@35: std::map m_downsamplers; Chris@9: Chris@36: void addFeatures(FeatureSet &, int outputNo, const RealBlock &, bool final); Chris@7: }; Chris@7: Chris@7: Chris@7: #endif