Mercurial > hg > vamp-tempogram
comparison NoveltyCurveProcessor.cpp @ 24:957b83524c06
* Replacing loop unsigned ints with ints
| author | Carl Bussey <c.bussey@se10.qmul.ac.uk> | 
|---|---|
| date | Tue, 19 Aug 2014 18:20:26 +0100 | 
| parents | 7d36c742a183 | 
| children | fe23998968b4 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 23:7d36c742a183 | 24:957b83524c06 | 
|---|---|
| 111 smoothFilter.process(&spectrogramTransposed[i][0], diffHannWindow, &spectrogramTransposed[i][0], FIRFilter::middle); | 111 smoothFilter.process(&spectrogramTransposed[i][0], diffHannWindow, &spectrogramTransposed[i][0], FIRFilter::middle); | 
| 112 } | 112 } | 
| 113 } | 113 } | 
| 114 | 114 | 
| 115 //half rectification (set negative to zero) | 115 //half rectification (set negative to zero) | 
| 116 void NoveltyCurveProcessor::halfWaveRectify(SpectrogramTransposed &spectrogramTransposed) const | 116 void NoveltyCurveProcessor::halfWaveRectify(Spectrogram &spectrogram) const | 
| 117 { | 117 { | 
| 118 int numberOfBlocks = spectrogramTransposed[0].size(); | 118 int length = spectrogram.size(); | 
| 119 int height = spectrogram[0].size(); | |
| 119 | 120 | 
| 120 for (int block = 0; block < numberOfBlocks; block++){ | 121 for (int i = 0; i < length; i++){ | 
| 121 for (int k = 0; k < (int)m_blockSize; k++){ | 122 for (int j = 0; j < height; j++){ | 
| 122 if (spectrogramTransposed[k][block] < 0.0) spectrogramTransposed[k][block] = 0.0; | 123 if (spectrogram[i][j] < 0.0) spectrogram[i][j] = 0.0; | 
| 123 } | 124 } | 
| 124 } | 125 } | 
| 125 } | 126 } | 
| 126 | 127 | 
| 127 //process method | 128 //process method | 
| 138 for (int k = 0; k < (int)m_blockSize; k++){ | 139 for (int k = 0; k < (int)m_blockSize; k++){ | 
| 139 spectrogramTransposed[k][block] = log(1+m_compressionConstant*spectrogram[block][k]); | 140 spectrogramTransposed[k][block] = log(1+m_compressionConstant*spectrogram[block][k]); | 
| 140 if(normaliseScale != 0.0) spectrogramTransposed[k][block] /= normaliseScale; //normalise | 141 if(normaliseScale != 0.0) spectrogramTransposed[k][block] /= normaliseScale; //normalise | 
| 141 } | 142 } | 
| 142 } | 143 } | 
| 143 | 144 | 
| 144 //smooted differentiator | 145 //smooted differentiator | 
| 145 smoothedDifferentiator(spectrogramTransposed, 5); //make smoothLength a parameter! | 146 smoothedDifferentiator(spectrogramTransposed, 5); //make smoothLength a parameter! | 
| 146 //halfwave rectification | 147 //halfwave rectification | 
| 147 halfWaveRectify(spectrogramTransposed); | 148 halfWaveRectify(spectrogramTransposed); | 
| 148 | 149 | 
