projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
show what PresentationInfo::Change is being used for
[ardour.git]
/
libs
/
vamp-plugins
/
OnsetDetect.cpp
diff --git
a/libs/vamp-plugins/OnsetDetect.cpp
b/libs/vamp-plugins/OnsetDetect.cpp
index 714eee3647fa69638b66c4d47088a9bf430c0832..2a347919517e82db599c2b40daea28686be1b726 100644
(file)
--- a/
libs/vamp-plugins/OnsetDetect.cpp
+++ b/
libs/vamp-plugins/OnsetDetect.cpp
@@
-49,7
+49,7
@@
public:
vector<double> dfOutput;
Vamp::RealTime origin;
};
vector<double> dfOutput;
Vamp::RealTime origin;
};
-
+
OnsetDetector::OnsetDetector(float inputSampleRate) :
Vamp::Plugin(inputSampleRate),
OnsetDetector::OnsetDetector(float inputSampleRate) :
Vamp::Plugin(inputSampleRate),
@@
-162,7
+162,7
@@
OnsetDetector::getParameter(std::string name) const
} else if (name == "sensitivity") {
return m_sensitivity;
} else if (name == "whiten") {
} else if (name == "sensitivity") {
return m_sensitivity;
} else if (name == "whiten") {
- return m_whiten ? 1.0 : 0.0;
+ return m_whiten ? 1.0 : 0.0;
}
return 0.0;
}
}
return 0.0;
}
@@
-265,7
+265,7
@@
OnsetDetector::initialise(size_t channels, size_t stepSize, size_t blockSize)
dfConfig.adaptiveWhitening = m_whiten;
dfConfig.whiteningRelaxCoeff = -1;
dfConfig.whiteningFloor = -1;
dfConfig.adaptiveWhitening = m_whiten;
dfConfig.whiteningRelaxCoeff = -1;
dfConfig.whiteningFloor = -1;
-
+
m_d = new OnsetDetectorData(dfConfig);
return true;
}
m_d = new OnsetDetectorData(dfConfig);
return true;
}
@@
-354,7
+354,7
@@
OnsetDetector::process(const float *const *inputBuffers,
return FeatureSet();
}
return FeatureSet();
}
- size_t len = m_d->dfConfig.frameLength / 2;
+ size_t len = m_d->dfConfig.frameLength / 2
+ 1
;
// float mean = 0.f;
// for (size_t i = 0; i < len; ++i) {
// float mean = 0.f;
// for (size_t i = 0; i < len; ++i) {
@@
-368,23
+368,20
@@
OnsetDetector::process(const float *const *inputBuffers,
// << "dftype " << m_dfType << ", sens " << m_sensitivity
// << ", len " << len << ", mean " << mean << std::endl;
// << "dftype " << m_dfType << ", sens " << m_sensitivity
// << ", len " << len << ", mean " << mean << std::endl;
- double *
magnitude
s = new double[len];
- double *
phase
s = new double[len];
+ double *
real
s = new double[len];
+ double *
imag
s = new double[len];
// We only support a single input channel
for (size_t i = 0; i < len; ++i) {
// We only support a single input channel
for (size_t i = 0; i < len; ++i) {
-
- magnitudes[i] = sqrt(inputBuffers[0][i*2 ] * inputBuffers[0][i*2 ] +
- inputBuffers[0][i*2+1] * inputBuffers[0][i*2+1]);
-
- phases[i] = atan2(-inputBuffers[0][i*2+1], inputBuffers[0][i*2]);
+ reals[i] = inputBuffers[0][i*2];
+ imags[i] = inputBuffers[0][i*2+1];
}
}
- double output = m_d->df->process
(magnitudes, phase
s);
+ double output = m_d->df->process
FrequencyDomain(reals, imag
s);
- delete[]
magnitude
s;
- delete[]
phase
s;
+ delete[]
real
s;
+ delete[]
imag
s;
if (m_d->dfOutput.empty()) m_d->origin = timestamp;
if (m_d->dfOutput.empty()) m_d->origin = timestamp;
@@
-480,7
+477,7
@@
OnsetDetector::getRemainingFeatures()
}
for (unsigned int i = 0; i < ppParams.length; ++i) {
}
for (unsigned int i = 0; i < ppParams.length; ++i) {
-
+
Feature feature;
// feature.hasTimestamp = false;
feature.hasTimestamp = true;
Feature feature;
// feature.hasTimestamp = false;
feature.hasTimestamp = true;