Mercurial > hg > vamp-onsetsds-plugin
changeset 1:3d1928670329
* Commit Dan's patch for threshold parameter
author | cannam |
---|---|
date | Fri, 20 Jun 2008 13:42:15 +0000 |
parents | 635e8745ccc9 |
children | 6414d166d4d8 |
files | onsetsdsplugin.cpp onsetsdsplugin.h |
diffstat | 2 files changed, 22 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/onsetsdsplugin.cpp Thu Jun 19 12:30:15 2008 +0000 +++ b/onsetsdsplugin.cpp Fri Jun 20 13:42:15 2008 +0000 @@ -35,9 +35,10 @@ m_ods(0), m_odsdata(0), m_dfType(ODS_ODF_RCOMPLEX), + m_threshold(0.5), m_medspan(11), - m_stepSize(512), - m_fftSize(1024) + m_stepSize(256), + m_fftSize(512) { } @@ -106,6 +107,16 @@ desc.valueNames.push_back("Modified Kullback-Liebler deviation"); list.push_back(desc); + desc.identifier = "threshold"; + desc.name = "Detection threshold"; + desc.description = "Onsets trigger when the function beats this value"; + desc.minValue = 0; + desc.maxValue = 1; + desc.defaultValue = 0.5; + desc.isQuantized = false; + desc.valueNames.clear(); + list.push_back(desc); + desc.identifier = "medspan"; desc.name = "Median frame span"; desc.description = "Number of past frames used in median calculation"; @@ -133,6 +144,8 @@ case ODS_ODF_WPHASE: return 5; case ODS_ODF_MKL: return 6; } + } else if (name == "threshold") { + return m_threshold; } else if (name == "medspan") { return m_medspan; } @@ -155,6 +168,8 @@ } if (dfType == m_dfType) return; m_dfType = dfType; + } else if (name == "threshold") { + m_threshold = value; } else if (name == "medspan") { m_medspan = lrintf(value); } @@ -191,7 +206,8 @@ memset(m_ods, 0, sizeof(OnsetsDS)); onsetsds_init(m_ods, m_odsdata, ODS_FFT_FFTW3_R2C, m_dfType, m_fftSize, m_medspan, m_inputSampleRate); - + m_ods->thresh = m_threshold; + return true; } @@ -209,13 +225,13 @@ size_t OnsetsDSPlugin::getPreferredStepSize() const { - return 512; + return 256; } size_t OnsetsDSPlugin::getPreferredBlockSize() const { - return 1024; + return 512; } OnsetsDSPlugin::OutputList