Chris@0
|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
|
Chris@0
|
2
|
Chris@0
|
3 #ifndef _SIMPLE_CEPSTRUM_H_
|
Chris@0
|
4 #define _SIMPLE_CEPSTRUM_H_
|
Chris@0
|
5
|
Chris@0
|
6 #include <vamp-sdk/Plugin.h>
|
Chris@0
|
7
|
Chris@0
|
8 class SimpleCepstrum : public Vamp::Plugin
|
Chris@0
|
9 {
|
Chris@0
|
10 public:
|
Chris@0
|
11 SimpleCepstrum(float inputSampleRate);
|
Chris@0
|
12 virtual ~SimpleCepstrum();
|
Chris@0
|
13
|
Chris@0
|
14 std::string getIdentifier() const;
|
Chris@0
|
15 std::string getName() const;
|
Chris@0
|
16 std::string getDescription() const;
|
Chris@0
|
17 std::string getMaker() const;
|
Chris@0
|
18 int getPluginVersion() const;
|
Chris@0
|
19 std::string getCopyright() const;
|
Chris@0
|
20
|
Chris@0
|
21 InputDomain getInputDomain() const;
|
Chris@0
|
22 size_t getPreferredBlockSize() const;
|
Chris@0
|
23 size_t getPreferredStepSize() const;
|
Chris@0
|
24 size_t getMinChannelCount() const;
|
Chris@0
|
25 size_t getMaxChannelCount() const;
|
Chris@0
|
26
|
Chris@0
|
27 ParameterList getParameterDescriptors() const;
|
Chris@0
|
28 float getParameter(std::string identifier) const;
|
Chris@0
|
29 void setParameter(std::string identifier, float value);
|
Chris@0
|
30
|
Chris@0
|
31 ProgramList getPrograms() const;
|
Chris@0
|
32 std::string getCurrentProgram() const;
|
Chris@0
|
33 void selectProgram(std::string name);
|
Chris@0
|
34
|
Chris@0
|
35 OutputList getOutputDescriptors() const;
|
Chris@0
|
36
|
Chris@0
|
37 bool initialise(size_t channels, size_t stepSize, size_t blockSize);
|
Chris@0
|
38 void reset();
|
Chris@0
|
39
|
Chris@0
|
40 FeatureSet process(const float *const *inputBuffers,
|
Chris@0
|
41 Vamp::RealTime timestamp);
|
Chris@0
|
42
|
Chris@0
|
43 FeatureSet getRemainingFeatures();
|
Chris@0
|
44
|
Chris@0
|
45 protected:
|
Chris@0
|
46 size_t m_channels;
|
Chris@0
|
47 size_t m_stepSize;
|
Chris@0
|
48 size_t m_blockSize;
|
Chris@0
|
49 float m_fmin;
|
Chris@0
|
50 float m_fmax;
|
Chris@0
|
51 bool m_clamp;
|
Chris@0
|
52
|
Chris@2
|
53 // mutable int m_f0Output;
|
Chris@0
|
54 mutable int m_rawOutput;
|
Chris@0
|
55 mutable int m_varOutput;
|
Chris@0
|
56 mutable int m_p2mOutput;
|
Chris@0
|
57 mutable int m_cepOutput;
|
Chris@0
|
58 mutable int m_pvOutput;
|
Chris@0
|
59 mutable int m_amOutput;
|
Chris@2
|
60 mutable int m_envOutput;
|
Chris@2
|
61 mutable int m_esOutput;
|
Chris@0
|
62
|
Chris@0
|
63 void fft(unsigned int n, bool inverse,
|
Chris@0
|
64 double *ri, double *ii, double *ro, double *io);
|
Chris@0
|
65 };
|
Chris@0
|
66
|
Chris@0
|
67 #endif
|