Mercurial > hg > qm-dsp
comparison dsp/onsets/DetectionFunction.h @ 119:2020c73dc997 pvoc
Phase vocoder: provide time-domain and freq-domain inputs separately; update tests etc
author | Chris Cannam |
---|---|
date | Thu, 03 Oct 2013 12:58:36 +0100 |
parents | f3c69325cca2 |
children | 2053a308bb4d |
comparison
equal
deleted
inserted
replaced
118:4920d100b290 | 119:2020c73dc997 |
---|---|
41 { | 41 { |
42 public: | 42 public: |
43 double* getSpectrumMagnitude(); | 43 double* getSpectrumMagnitude(); |
44 DetectionFunction( DFConfig Config ); | 44 DetectionFunction( DFConfig Config ); |
45 virtual ~DetectionFunction(); | 45 virtual ~DetectionFunction(); |
46 double process( const double* TDomain ); | 46 |
47 double process( const double* magnitudes, const double* phases ); | 47 /** |
48 * Process a single time-domain frame of audio, provided as | |
49 * frameLength samples. | |
50 */ | |
51 double processTimeDomain(const double* samples); | |
52 | |
53 /** | |
54 * Process a single frequency-domain frame, provided as | |
55 * frameLength/2+1 real and imaginary component values. | |
56 */ | |
57 double processFrequencyDomain(const double* reals, const double* imags); | |
48 | 58 |
49 private: | 59 private: |
50 void whiten(); | 60 void whiten(); |
51 double runDF(); | 61 double runDF(); |
52 | 62 |
72 double* m_magHistory; | 82 double* m_magHistory; |
73 double* m_phaseHistory; | 83 double* m_phaseHistory; |
74 double* m_phaseHistoryOld; | 84 double* m_phaseHistoryOld; |
75 double* m_magPeaks; | 85 double* m_magPeaks; |
76 | 86 |
77 double* m_DFWindowedFrame; // Array for windowed analysis frame | 87 double* m_windowed; // Array for windowed analysis frame |
78 double* m_magnitude; // Magnitude of analysis frame ( frequency domain ) | 88 double* m_magnitude; // Magnitude of analysis frame ( frequency domain ) |
79 double* m_thetaAngle;// Phase of analysis frame ( frequency domain ) | 89 double* m_thetaAngle;// Phase of analysis frame ( frequency domain ) |
80 double* m_unwrapped; // Unwrapped phase of analysis frame | 90 double* m_unwrapped; // Unwrapped phase of analysis frame |
81 | 91 |
82 Window<double> *m_window; | 92 Window<double> *m_window; |