annotate dsp/signalconditioning/DFProcess.h @ 12:da277e8b5244

* Some fixes to peak picker * Add broadband energy rise detection function (same as the percussive onset detector in the Vamp example plugins)
author cannam
date Fri, 18 May 2007 16:43:17 +0000
parents d7116e3183f8
children 769da847732b
rev   line source
cannam@0 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
cannam@0 2
cannam@0 3 /*
cannam@0 4 QM DSP Library
cannam@0 5
cannam@0 6 Centre for Digital Music, Queen Mary, University of London.
cannam@0 7 This file copyright 2005-2006 Christian Landone.
cannam@0 8 All rights reserved.
cannam@0 9 */
cannam@0 10
cannam@0 11 #ifndef CDFPROCESS_H
cannam@0 12 #define CDFPROCESS_H
cannam@0 13
cannam@0 14 #include <stdio.h>
cannam@0 15 #include "FiltFilt.h"
cannam@0 16
cannam@0 17 struct DFProcConfig{
cannam@0 18 unsigned int length;
cannam@0 19 unsigned int LPOrd;
cannam@0 20 double *LPACoeffs;
cannam@0 21 double *LPBCoeffs;
cannam@0 22 unsigned int winPre;
cannam@0 23 unsigned int winPost;
cannam@0 24 double AlphaNormParam;
cannam@12 25 bool isMedianPositive;
cannam@12 26 };
cannam@0 27
cannam@0 28 class DFProcess
cannam@0 29 {
cannam@0 30 public:
cannam@0 31 DFProcess( DFProcConfig Config );
cannam@0 32 virtual ~DFProcess();
cannam@0 33
cannam@0 34 void process( double* src, double* dst );
cannam@0 35
cannam@0 36
cannam@0 37 private:
cannam@0 38 void initialise( DFProcConfig Config );
cannam@0 39 void deInitialise();
cannam@0 40 void removeDCNormalize( double *src, double*dst );
cannam@0 41 void medianFilter( double* src, double* dst );
cannam@0 42
cannam@0 43 unsigned int m_length;
cannam@0 44 unsigned int m_FFOrd;
cannam@0 45
cannam@0 46 unsigned int m_winPre;
cannam@0 47 unsigned int m_winPost;
cannam@0 48
cannam@0 49 double m_alphaNormParam;
cannam@0 50
cannam@0 51 double* filtSrc;
cannam@0 52 double* filtDst;
cannam@0 53
cannam@0 54 double* m_filtScratchIn;
cannam@0 55 double* m_filtScratchOut;
cannam@0 56
cannam@0 57 FiltFiltConfig m_FilterConfigParams;
cannam@0 58
cannam@0 59 FiltFilt* m_FiltFilt;
cannam@0 60
cannam@0 61 bool m_isMedianPositive;
cannam@0 62 };
cannam@0 63
cannam@0 64 #endif