c@89: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ c@89: c@89: /* c@89: QM Vamp Plugin Set c@89: c@89: Centre for Digital Music, Queen Mary, University of London. c@135: c@135: This program is free software; you can redistribute it and/or c@135: modify it under the terms of the GNU General Public License as c@135: published by the Free Software Foundation; either version 2 of the c@135: License, or (at your option) any later version. See the file c@135: COPYING included with this distribution for more information. c@89: */ c@89: c@89: #ifndef _BAR_BEAT_TRACK_PLUGIN_H_ c@89: #define _BAR_BEAT_TRACK_PLUGIN_H_ c@89: c@89: #include c@89: c@89: class BarBeatTrackerData; c@89: c@89: class BarBeatTracker : public Vamp::Plugin c@89: { c@89: public: c@89: BarBeatTracker(float inputSampleRate); c@89: virtual ~BarBeatTracker(); c@89: c@89: bool initialise(size_t channels, size_t stepSize, size_t blockSize); c@89: void reset(); c@89: c@89: InputDomain getInputDomain() const { return TimeDomain; } c@89: c@89: std::string getIdentifier() const; c@89: std::string getName() const; c@89: std::string getDescription() const; c@89: std::string getMaker() const; c@89: int getPluginVersion() const; c@89: std::string getCopyright() const; c@89: c@89: ParameterList getParameterDescriptors() const; c@89: float getParameter(std::string) const; c@89: void setParameter(std::string, float); c@89: c@89: size_t getPreferredStepSize() const; c@89: size_t getPreferredBlockSize() const; c@89: c@89: OutputList getOutputDescriptors() const; c@89: c@89: FeatureSet process(const float *const *inputBuffers, c@89: Vamp::RealTime timestamp); c@89: c@89: FeatureSet getRemainingFeatures(); c@89: c@89: protected: c@89: BarBeatTrackerData *m_d; c@89: static float m_stepSecs; c@89: int m_bpb; c@89: FeatureSet barBeatTrack(); luis@144: luis@144: // MEPD new protected parameters to allow the user to control these advanced parameters of the beat tracker luis@144: // changes are as per the BeatTrack.h luis@144: double m_alpha; luis@144: double m_tightness; luis@144: double m_inputtempo; luis@144: bool m_constraintempo; c@89: }; c@89: c@89: c@89: #endif