Mercurial > hg > lowfreq
view LowFreq.h @ 4:9867e53a2592
Many fixes to buffering, etc
author | Chris Cannam |
---|---|
date | Fri, 07 Mar 2014 14:17:47 +0000 |
parents | a84bae4ee627 |
children | bf742ae09443 |
line wrap: on
line source
#ifndef _LOWFREQ_H_ #define _LOWFREQ_H_ #include <vamp-sdk/Plugin.h> #include "base/Window.h" using std::string; class Resampler; class FFT; class LowFreq : public Vamp::Plugin { public: LowFreq(float inputSampleRate); virtual ~LowFreq(); string getIdentifier() const; string getName() const; string getDescription() const; string getMaker() const; int getPluginVersion() const; string getCopyright() const; InputDomain getInputDomain() const; size_t getPreferredBlockSize() const; size_t getPreferredStepSize() const; size_t getMinChannelCount() const; size_t getMaxChannelCount() const; ParameterList getParameterDescriptors() const; float getParameter(string identifier) const; void setParameter(string identifier, float value); ProgramList getPrograms() const; string getCurrentProgram() const; void selectProgram(string name); OutputList getOutputDescriptors() const; bool initialise(size_t channels, size_t stepSize, size_t blockSize); void reset(); FeatureSet process(const float *const *inputBuffers, Vamp::RealTime timestamp); FeatureSet getRemainingFeatures(); protected: Feature processColumn(); void advance(); int getTargetSampleRate() const; int getTargetStepSize() const; float m_p; int m_n; float m_overlap; int m_blockSize; Resampler *m_resampler; FFT *m_fft; Window<double> *m_window; std::vector<double> m_buffer; }; #endif