Chris@7
|
1 #ifndef TIPIC_VAMP_PLUGIN_H
|
Chris@7
|
2 #define TIPIC_VAMP_PLUGIN_H
|
Chris@7
|
3
|
Chris@7
|
4 #include <vamp-sdk/Plugin.h>
|
Chris@7
|
5
|
Chris@19
|
6 #include "Types.h"
|
Chris@19
|
7
|
Chris@19
|
8 class PitchFilterbank;
|
Chris@19
|
9 class CRP;
|
Chris@26
|
10 class Chroma;
|
Chris@39
|
11 class CENS;
|
Chris@35
|
12 class FeatureDownsample;
|
Chris@9
|
13
|
Chris@7
|
14 using std::string;
|
Chris@7
|
15
|
Chris@7
|
16 class Tipic : public Vamp::Plugin
|
Chris@7
|
17 {
|
Chris@7
|
18 public:
|
Chris@7
|
19 Tipic(float inputSampleRate);
|
Chris@7
|
20 virtual ~Tipic();
|
Chris@7
|
21
|
Chris@7
|
22 string getIdentifier() const;
|
Chris@7
|
23 string getName() const;
|
Chris@7
|
24 string getDescription() const;
|
Chris@7
|
25 string getMaker() const;
|
Chris@7
|
26 int getPluginVersion() const;
|
Chris@7
|
27 string getCopyright() const;
|
Chris@7
|
28
|
Chris@7
|
29 InputDomain getInputDomain() const;
|
Chris@7
|
30 size_t getPreferredBlockSize() const;
|
Chris@7
|
31 size_t getPreferredStepSize() const;
|
Chris@7
|
32 size_t getMinChannelCount() const;
|
Chris@7
|
33 size_t getMaxChannelCount() const;
|
Chris@7
|
34
|
Chris@7
|
35 ParameterList getParameterDescriptors() const;
|
Chris@7
|
36 float getParameter(string identifier) const;
|
Chris@7
|
37 void setParameter(string identifier, float value);
|
Chris@7
|
38
|
Chris@7
|
39 ProgramList getPrograms() const;
|
Chris@7
|
40 string getCurrentProgram() const;
|
Chris@7
|
41 void selectProgram(string name);
|
Chris@7
|
42
|
Chris@7
|
43 OutputList getOutputDescriptors() const;
|
Chris@7
|
44
|
Chris@7
|
45 bool initialise(size_t channels, size_t stepSize, size_t blockSize);
|
Chris@7
|
46 void reset();
|
Chris@7
|
47
|
Chris@7
|
48 FeatureSet process(const float *const *inputBuffers,
|
Chris@7
|
49 Vamp::RealTime timestamp);
|
Chris@7
|
50
|
Chris@7
|
51 FeatureSet getRemainingFeatures();
|
Chris@7
|
52
|
Chris@7
|
53 protected:
|
Chris@9
|
54 int m_stepSize;
|
Chris@9
|
55 int m_blockSize;
|
Chris@15
|
56 float m_tuningFrequency;
|
Chris@15
|
57 PitchFilterbank *m_filterbank;
|
Chris@19
|
58 CRP *m_crp;
|
Chris@26
|
59 Chroma *m_chroma;
|
Chris@26
|
60 Chroma *m_logChroma;
|
Chris@39
|
61 CENS *m_cens;
|
Chris@9
|
62 mutable int m_pitchOutputNo;
|
Chris@26
|
63 mutable int m_cpOutputNo;
|
Chris@26
|
64 mutable int m_clpOutputNo;
|
Chris@39
|
65 mutable int m_censOutputNo;
|
Chris@19
|
66 mutable int m_crpOutputNo;
|
Chris@35
|
67 std::map<int, FeatureDownsample *> m_downsamplers;
|
Chris@9
|
68
|
Chris@36
|
69 void addFeatures(FeatureSet &, int outputNo, const RealBlock &, bool final);
|
Chris@7
|
70 };
|
Chris@7
|
71
|
Chris@7
|
72
|
Chris@7
|
73 #endif
|