annotate FIRFilter.h @ 57:252d2b03f4a8
Added tag v1.0 for changeset f1c128d0f78c
author |
Chris Cannam |
date |
Thu, 16 Oct 2014 14:22:50 +0100 |
parents |
4cf2d163127b |
children |
|
rev |
line source |
Chris@43
|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
|
Chris@43
|
2
|
Chris@43
|
3 /*
|
Chris@43
|
4 Vamp Tempogram Plugin
|
Chris@43
|
5 Carl Bussey, Centre for Digital Music, Queen Mary University of London
|
Chris@43
|
6 Copyright 2014 Queen Mary University of London.
|
Chris@43
|
7
|
Chris@43
|
8 This program is free software; you can redistribute it and/or
|
Chris@43
|
9 modify it under the terms of the GNU General Public License as
|
Chris@43
|
10 published by the Free Software Foundation; either version 2 of the
|
Chris@43
|
11 License, or (at your option) any later version. See the file
|
Chris@43
|
12 COPYING included with this distribution for more information.
|
Chris@43
|
13 */
|
c@0
|
14
|
c@0
|
15 #ifndef __Tempogram__FIRFilter__
|
c@0
|
16 #define __Tempogram__FIRFilter__
|
c@0
|
17
|
c@7
|
18 #include <cmath>
|
c@7
|
19 #include <vamp-sdk/FFT.h>
|
c@7
|
20 #include <assert.h>
|
c@15
|
21 #include <iostream>
|
c@7
|
22
|
c@0
|
23 class FIRFilter{
|
c@0
|
24 public:
|
c@15
|
25 enum OutputTypeArgument{
|
c@15
|
26 first = 0,
|
c@15
|
27 middle,
|
c@15
|
28 all
|
c@15
|
29 };
|
c@15
|
30
|
c@13
|
31 FIRFilter(const size_t &lengthInput, const size_t &numberOfCoefficients);
|
c@0
|
32 ~FIRFilter();
|
c@15
|
33 void process(const float *pInput, const float *pCoefficients, float * pOutput, OutputTypeArgument outputType = first);
|
c@0
|
34 private:
|
c@13
|
35 size_t m_lengthInput;
|
c@13
|
36 size_t m_numberOfCoefficients;
|
c@20
|
37 size_t m_lengthFIRFFT;
|
c@0
|
38
|
c@13
|
39 double *m_pFftInput;
|
c@13
|
40 double *m_pFftCoefficients;
|
c@13
|
41 double *m_pFftReal1;
|
c@13
|
42 double *m_pFftImag1;
|
c@13
|
43 double *m_pFftReal2;
|
c@13
|
44 double *m_pFftImag2;
|
c@13
|
45 double *m_pFftFilteredReal;
|
c@13
|
46 double *m_pFftFilteredImag;
|
c@13
|
47 double *m_pFftOutputReal;
|
c@13
|
48 double *m_pFftOutputImag;
|
c@0
|
49
|
c@0
|
50 void initialise();
|
c@0
|
51 void cleanup();
|
c@0
|
52 };
|
c@0
|
53
|
c@0
|
54 #endif /* defined(__Tempogram__FIRFilter__) */
|