update qm-dsp library
[ardour.git] / libs / qm-dsp / dsp / signalconditioning / DFProcess.h
index ad40f846b9aed4e02829cb221200ca8534f05ca2..b93b535518434cc164ae256f4538cb3d26a4579b 100644 (file)
@@ -6,6 +6,14 @@
     Centre for Digital Music, Queen Mary, University of London.
     This file 2005-2006 Christian Landone.
 
+    Modifications:
+
+    - delta threshold
+    Description: add delta threshold used as offset in the smoothed
+    detection function
+    Author: Mathieu Barthet
+    Date: June 2010
+
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
     published by the Free Software Foundation; either version 2 of the
 #include "FiltFilt.h"
 
 struct DFProcConfig{
-    unsigned int length;
-    unsigned int LPOrd;
-    double *LPACoeffs;
-    double *LPBCoeffs;
+    unsigned int length; 
+    unsigned int LPOrd; 
+    double *LPACoeffs; 
+    double *LPBCoeffs; 
     unsigned int winPre;
-    unsigned int winPost;
+    unsigned int winPost; 
     double AlphaNormParam;
     bool isMedianPositive;
+    float delta; //delta threshold used as an offset when computing the smoothed detection function
+
+    DFProcConfig() :
+        length(0),
+        LPOrd(0),
+        LPACoeffs(NULL),
+        LPBCoeffs(NULL),
+        winPre(0),
+        winPost(0),
+        AlphaNormParam(0),
+        isMedianPositive(false),
+        delta(0)
+    {
+    }
 };
 
-class DFProcess
+class DFProcess  
 {
 public:
     DFProcess( DFProcConfig Config );
@@ -38,7 +60,7 @@ public:
 
     void process( double* src, double* dst );
 
-
+       
 private:
     void initialise( DFProcConfig Config );
     void deInitialise();
@@ -59,11 +81,12 @@ private:
     double* m_filtScratchIn;
     double* m_filtScratchOut;
 
-    FiltFiltConfig m_FilterConfigParams;
+    FilterConfig m_FilterConfigParams;
 
     FiltFilt* m_FiltFilt;
 
     bool m_isMedianPositive;
+    float m_delta; //add delta threshold
 };
 
 #endif