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__) */