# HG changeset patch # User Chris Cannam # Date 1364490484 0 # Node ID 05ba4bbd2b870d56b491f76234a25661d43d8517 # Parent 459235dccff6d4d5f2190131b6f5826a77b3cde7 Warn if the output sample rate is higher than that of the input model diff -r 459235dccff6 -r 05ba4bbd2b87 data/model/SparseModel.h --- a/data/model/SparseModel.h Thu Mar 28 10:01:55 2013 +0000 +++ b/data/model/SparseModel.h Thu Mar 28 17:08:04 2013 +0000 @@ -436,11 +436,15 @@ PointListConstIterator i = i0; for (i = i0; i != i1; ++i) { +// std::cerr << "i->frame is " << i->frame << ", wanting " << frame << std::endl; + if (i->frame < (int)frame) { continue; } if (indexAtFrame > 0) { --indexAtFrame; continue; } return i; } +// std::cerr << "returning i with i->frame = " << i->frame << std::endl; + if (indexAtFrame > 0) { std::cerr << "WARNING: SparseModel::getPointListIteratorForRow: No iterator available for row " << row << " (frame = " << frame << ", index at frame = " << initialIndexAtFrame << ", leftover index " << indexAtFrame << ")" << std::endl; } @@ -598,6 +602,7 @@ QMutexLocker locker(&m_mutex); if (m_resolution == 0) { +// std::cerr << "getPointIterators: resolution == 0, returning end()" << std::endl; startItr = m_points.end(); endItr = m_points.end(); return; @@ -609,7 +614,7 @@ PointType startPoint(start), endPoint(end); // std::cerr << "getPointIterators: start frame " << start << ", end frame " << end << ", m_resolution " << m_resolution << std::endl; - + startItr = m_points.lower_bound(startPoint); endItr = m_points.upper_bound(endPoint); } diff -r 459235dccff6 -r 05ba4bbd2b87 transform/FeatureExtractionModelTransformer.cpp --- a/transform/FeatureExtractionModelTransformer.cpp Thu Mar 28 10:01:55 2013 +0000 +++ b/transform/FeatureExtractionModelTransformer.cpp Thu Mar 28 17:08:04 2013 +0000 @@ -202,6 +202,14 @@ size_t modelRate = input->getSampleRate(); size_t modelResolution = 1; + if (m_descriptor->sampleType != + Vamp::Plugin::OutputDescriptor::OneSamplePerStep) { + if (m_descriptor->sampleRate > input->getSampleRate()) { + std::cerr << "WARNING: plugin reports output sample rate as " + << m_descriptor->sampleRate << " (can't display features with finer resolution than the input rate of " << input->getSampleRate() << ")" << std::endl; + } + } + switch (m_descriptor->sampleType) { case Vamp::Plugin::OutputDescriptor::VariableSampleRate: