# HG changeset patch # User Paul Brossier # Date 1147794201 0 # Node ID 76c1a7bd04169eb29909e384c33111965c1f3aa0 # Parent 8230b03a8060265e625b7521fa587bf04faf31fa include math.h, add onset timestamps, fix default block and step sizes, switch to onset_complex and pitch_yinfft diff -r 8230b03a8060 -r 76c1a7bd0416 plugins/Notes.cpp --- a/plugins/Notes.cpp Mon May 15 12:56:46 2006 +0000 +++ b/plugins/Notes.cpp Tue May 16 15:43:21 2006 +0000 @@ -14,6 +14,7 @@ */ +#include #include "Notes.h" using std::string; @@ -29,9 +30,9 @@ m_pv(0), m_peakpick(0), m_onsetdet(0), - m_onsettype(aubio_onset_mkl), + m_onsettype(aubio_onset_complex), m_pitchdet(0), - m_pitchtype(aubio_pitch_fcomb), + m_pitchtype(aubio_pitch_yinfft), m_pitchmode(aubio_pitchm_freq), m_threshold(0.3), m_silence(-90), @@ -125,18 +126,13 @@ size_t Notes::getPreferredStepSize() const { - if (m_onsettype == aubio_onset_energy || - m_onsettype == aubio_onset_hfc) { - return 512; - } else { - return 128; - } + return 512; } size_t Notes::getPreferredBlockSize() const { - return getPreferredStepSize(); + return 4*getPreferredStepSize(); } Notes::ParameterList @@ -149,7 +145,7 @@ desc.description = "Onset Detection Function Type"; desc.minValue = 0; desc.maxValue = 6; - desc.defaultValue = (int)aubio_onset_mkl; + desc.defaultValue = (int)aubio_onset_complex; desc.isQuantized = true; desc.quantizeStep = 1; desc.valueNames.push_back("Energy Based"); @@ -166,7 +162,7 @@ desc.description = "Pitch Detection Function Type"; desc.minValue = 0; desc.maxValue = 4; - desc.defaultValue = (int)aubio_pitch_fcomb; + desc.defaultValue = (int)aubio_pitch_yinfft; desc.isQuantized = true; desc.quantizeStep = 1; desc.valueNames.push_back("YIN Frequency Estimator"); diff -r 8230b03a8060 -r 76c1a7bd0416 plugins/Onset.cpp --- a/plugins/Onset.cpp Mon May 15 12:56:46 2006 +0000 +++ b/plugins/Onset.cpp Tue May 16 15:43:21 2006 +0000 @@ -14,6 +14,7 @@ */ +#include #include "Onset.h" using std::string; @@ -29,7 +30,7 @@ m_pv(0), m_peakpick(0), m_onsetdet(0), - m_onsettype(aubio_onset_mkl), + m_onsettype(aubio_onset_complex), m_threshold(0.3), m_silence(-90), m_channelCount(1) @@ -83,21 +84,13 @@ m_stepSize = stepSize; m_blockSize = blockSize; - size_t processingBlockSize; - if (m_onsettype == aubio_onset_energy || - m_onsettype == aubio_onset_hfc) { - processingBlockSize = stepSize * 2; - } else { - processingBlockSize = stepSize * 4; - } - m_ibuf = new_fvec(stepSize, channels); m_onset = new_fvec(1, channels); - m_fftgrain = new_cvec(processingBlockSize, channels); - m_pv = new_aubio_pvoc(processingBlockSize, stepSize, channels); + m_fftgrain = new_cvec(blockSize, channels); + m_pv = new_aubio_pvoc(blockSize, stepSize, channels); m_peakpick = new_aubio_peakpicker(m_threshold); - m_onsetdet = new_aubio_onsetdetection(m_onsettype, processingBlockSize, channels); + m_onsetdet = new_aubio_onsetdetection(m_onsettype, blockSize, channels); return true; } @@ -110,18 +103,13 @@ size_t Onset::getPreferredStepSize() const { - if (m_onsettype == aubio_onset_energy || - m_onsettype == aubio_onset_hfc) { - return 512; - } else { - return 128; - } + return 512; } size_t Onset::getPreferredBlockSize() const { - return getPreferredStepSize(); + return 2*getPreferredStepSize(); } Onset::ParameterList @@ -134,7 +122,7 @@ desc.description = "Onset Detection Function Type"; desc.minValue = 0; desc.maxValue = 6; - desc.defaultValue = (int)aubio_onset_mkl; + desc.defaultValue = (int)aubio_onset_complex; desc.isQuantized = true; desc.quantizeStep = 1; desc.valueNames.push_back("Energy Based"); @@ -253,7 +241,9 @@ FeatureSet returnFeatures; if (isonset) { - returnFeatures[0].push_back(Feature()); + Feature onsettime; + onsettime.hasTimestamp = false; + returnFeatures[0].push_back(onsettime); } Feature feature; for (size_t j = 0; j < m_channelCount; ++j) { diff -r 8230b03a8060 -r 76c1a7bd0416 plugins/Pitch.cpp --- a/plugins/Pitch.cpp Mon May 15 12:56:46 2006 +0000 +++ b/plugins/Pitch.cpp Tue May 16 15:43:21 2006 +0000 @@ -14,6 +14,7 @@ */ +#include #include "Pitch.h" using std::string; @@ -25,7 +26,7 @@ Plugin(inputSampleRate), m_ibuf(0), m_pitchdet(0), - m_pitchtype(aubio_pitch_fcomb), + m_pitchtype(aubio_pitch_yinfft), m_pitchmode(aubio_pitchm_freq) { } @@ -75,7 +76,7 @@ m_ibuf = new_fvec(stepSize, channels); - m_pitchdet = new_aubio_pitchdetection(blockSize * 4, + m_pitchdet = new_aubio_pitchdetection(blockSize, stepSize, channels, lrintf(m_inputSampleRate), @@ -99,7 +100,7 @@ size_t Pitch::getPreferredBlockSize() const { - return 1024; + return 2048; } Pitch::ParameterList @@ -112,7 +113,7 @@ desc.description = "Pitch Detection Function Type"; desc.minValue = 0; desc.maxValue = 4; - desc.defaultValue = (int)aubio_pitch_fcomb; + desc.defaultValue = (int)aubio_pitch_yinfft; desc.isQuantized = true; desc.quantizeStep = 1; desc.valueNames.push_back("YIN Frequency Estimator");