Mercurial > hg > silvet
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 } |