Mercurial > hg > qm-dsp
comparison dsp/chromagram/Chromagram.cpp @ 34:ad645e404d0c
* Add range of normalise options to chromagram
* bit of tidying
author | cannam |
---|---|
date | Tue, 22 Jan 2008 17:27:07 +0000 |
parents | 8bb764969d50 |
children | 114e833c07ac |
comparison
equal
deleted
inserted
replaced
33:499d438b52ba | 34:ad645e404d0c |
---|---|
23 int Chromagram::initialise( ChromaConfig Config ) | 23 int Chromagram::initialise( ChromaConfig Config ) |
24 { | 24 { |
25 m_FMin = Config.min; // min freq | 25 m_FMin = Config.min; // min freq |
26 m_FMax = Config.max; // max freq | 26 m_FMax = Config.max; // max freq |
27 m_BPO = Config.BPO; // bins per octave | 27 m_BPO = Config.BPO; // bins per octave |
28 isNormalised = Config.isNormalised; // true if frame normalisation is required | 28 m_normalise = Config.normalise; // if frame normalisation is required |
29 | 29 |
30 // No. of constant Q bins | 30 // No. of constant Q bins |
31 m_uK = ( unsigned int ) ceil( m_BPO * log(m_FMax/m_FMin)/log(2.0)); | 31 m_uK = ( unsigned int ) ceil( m_BPO * log(m_FMax/m_FMin)/log(2.0)); |
32 | 32 |
33 // Create array for chroma result | 33 // Create array for chroma result |
155 { | 155 { |
156 m_chromadata[i] += kabs( m_CQRe[ firstBin + i ], m_CQIm[ firstBin + i ]); | 156 m_chromadata[i] += kabs( m_CQRe[ firstBin + i ], m_CQIm[ firstBin + i ]); |
157 } | 157 } |
158 } | 158 } |
159 | 159 |
160 if( isNormalised ) | 160 MathUtilities::normalise(m_chromadata, m_BPO, m_normalise); |
161 unityNormalise( m_chromadata ); | |
162 | 161 |
163 return m_chromadata; | 162 return m_chromadata; |
164 } | 163 } |
165 | 164 |
166 | 165 |