annotate LowFreq.h @ 5:bf742ae09443

Frequency range, and resample to higher frequency to avoid transition band -- and some comments on what is still wrong with it
author Chris Cannam
date Mon, 10 Mar 2014 16:03:53 +0000
parents 9867e53a2592
children 4a777e3b515e
rev   line source
Chris@0 1 #ifndef _LOWFREQ_H_
Chris@0 2 #define _LOWFREQ_H_
Chris@0 3
Chris@0 4 #include <vamp-sdk/Plugin.h>
Chris@0 5
Chris@4 6 #include "base/Window.h"
Chris@4 7
Chris@0 8 using std::string;
Chris@0 9
Chris@2 10 class Resampler;
Chris@2 11 class FFT;
Chris@0 12
Chris@0 13 class LowFreq : public Vamp::Plugin
Chris@0 14 {
Chris@0 15 public:
Chris@0 16 LowFreq(float inputSampleRate);
Chris@0 17 virtual ~LowFreq();
Chris@0 18
Chris@0 19 string getIdentifier() const;
Chris@0 20 string getName() const;
Chris@0 21 string getDescription() const;
Chris@0 22 string getMaker() const;
Chris@0 23 int getPluginVersion() const;
Chris@0 24 string getCopyright() const;
Chris@0 25
Chris@0 26 InputDomain getInputDomain() const;
Chris@0 27 size_t getPreferredBlockSize() const;
Chris@0 28 size_t getPreferredStepSize() const;
Chris@0 29 size_t getMinChannelCount() const;
Chris@0 30 size_t getMaxChannelCount() const;
Chris@0 31
Chris@0 32 ParameterList getParameterDescriptors() const;
Chris@0 33 float getParameter(string identifier) const;
Chris@0 34 void setParameter(string identifier, float value);
Chris@0 35
Chris@0 36 ProgramList getPrograms() const;
Chris@0 37 string getCurrentProgram() const;
Chris@0 38 void selectProgram(string name);
Chris@0 39
Chris@0 40 OutputList getOutputDescriptors() const;
Chris@0 41
Chris@0 42 bool initialise(size_t channels, size_t stepSize, size_t blockSize);
Chris@0 43 void reset();
Chris@0 44
Chris@0 45 FeatureSet process(const float *const *inputBuffers,
Chris@0 46 Vamp::RealTime timestamp);
Chris@0 47
Chris@0 48 FeatureSet getRemainingFeatures();
Chris@0 49
Chris@0 50 protected:
Chris@2 51 Feature processColumn();
Chris@4 52 void advance();
Chris@4 53
Chris@4 54 int getTargetSampleRate() const;
Chris@4 55 int getTargetStepSize() const;
Chris@5 56 int getFFTSize() const;
Chris@5 57 int getFirstOutputBin() const;
Chris@5 58 float getOutputBinFrequency(int i) const;
Chris@2 59
Chris@5 60 float m_fmin;
Chris@5 61 float m_fmax;
Chris@2 62 int m_n;
Chris@4 63 float m_overlap;
Chris@2 64
Chris@2 65 int m_blockSize;
Chris@2 66
Chris@2 67 Resampler *m_resampler;
Chris@2 68 FFT *m_fft;
Chris@4 69 Window<double> *m_window;
Chris@2 70 std::vector<double> m_buffer;
Chris@0 71 };
Chris@0 72
Chris@0 73
Chris@0 74
Chris@0 75 #endif