comparison src/Silvet.cpp @ 215:5ba328aae5be norm

Normalise samples to cumulative maximum (experimentally)
author Chris Cannam
date Tue, 15 Jul 2014 13:32:27 +0100
parents 5bde003a43a9
children b5a8836dd2a4
comparison
equal deleted inserted replaced
214:c0779464b792 215:5ba328aae5be
388 m_postFilter.push_back(new MedianFilter<double>(3)); 388 m_postFilter.push_back(new MedianFilter<double>(3));
389 } 389 }
390 m_pianoRoll.clear(); 390 m_pianoRoll.clear();
391 m_columnCount = 0; 391 m_columnCount = 0;
392 m_startTime = RealTime::zeroTime; 392 m_startTime = RealTime::zeroTime;
393 m_signalMax = 0.0;
393 } 394 }
394 395
395 Silvet::FeatureSet 396 Silvet::FeatureSet
396 Silvet::process(const float *const *inputBuffers, Vamp::RealTime timestamp) 397 Silvet::process(const float *const *inputBuffers, Vamp::RealTime timestamp)
397 { 398 {
399 m_startTime = timestamp; 400 m_startTime = timestamp;
400 } 401 }
401 402
402 vector<double> data; 403 vector<double> data;
403 for (int i = 0; i < m_blockSize; ++i) { 404 for (int i = 0; i < m_blockSize; ++i) {
404 data.push_back(inputBuffers[0][i]); 405 double d = inputBuffers[0][i];
406 if (fabs(d) > m_signalMax) {
407 m_signalMax = fabs(d);
408 }
409 }
410 for (int i = 0; i < m_blockSize; ++i) {
411 double d = inputBuffers[0][i];
412 if (m_signalMax > 0.0) {
413 data.push_back(d / m_signalMax * 0.5);
414 } else {
415 data.push_back(0.0);
416 }
405 } 417 }
406 418
407 if (m_resampler) { 419 if (m_resampler) {
408 data = m_resampler->process(data.data(), data.size()); 420 data = m_resampler->process(data.data(), data.size());
409 } 421 }