diff options
author | Jan Holthuis <jholthuis@mixxx.org> | 2021-07-01 16:36:56 +0200 |
---|---|---|
committer | Jan Holthuis <jholthuis@mixxx.org> | 2021-07-01 17:19:25 +0200 |
commit | af40d4f447268ce1500b6ae84f81c379a8fce6c4 (patch) | |
tree | 82b000c89dab5aabc40b8acbdc65a77a16985560 /src/analyzer | |
parent | 0191a50db0d2b77760c41c90b7d4ad98c0d0ea4a (diff) |
Beats: Use frame positions for beatmap/beatgrid construction
Diffstat (limited to 'src/analyzer')
-rw-r--r-- | src/analyzer/analyzerbeats.cpp | 4 | ||||
-rw-r--r-- | src/analyzer/plugins/analyzerplugin.h | 5 | ||||
-rw-r--r-- | src/analyzer/plugins/analyzerqueenmarybeats.cpp | 2 | ||||
-rw-r--r-- | src/analyzer/plugins/analyzerqueenmarybeats.h | 4 |
4 files changed, 8 insertions, 7 deletions
diff --git a/src/analyzer/analyzerbeats.cpp b/src/analyzer/analyzerbeats.cpp index 4317d616be..14c91c2566 100644 --- a/src/analyzer/analyzerbeats.cpp +++ b/src/analyzer/analyzerbeats.cpp @@ -219,7 +219,7 @@ void AnalyzerBeats::storeResults(TrackPointer pTrack) { mixxx::BeatsPointer pBeats; if (m_pPlugin->supportsBeatTracking()) { - QVector<double> beats = m_pPlugin->getBeats(); + QVector<mixxx::audio::FramePos> beats = m_pPlugin->getBeats(); QHash<QString, QString> extraVersionInfo = getExtraVersionInfo( m_pluginId, m_bPreferencesFastAnalysis); pBeats = BeatFactory::makePreferredBeats( @@ -232,7 +232,7 @@ void AnalyzerBeats::storeResults(TrackPointer pTrack) { } else { float bpm = m_pPlugin->getBpm(); qDebug() << "AnalyzerBeats plugin detected constant BPM: " << bpm; - pBeats = BeatFactory::makeBeatGrid(m_sampleRate, bpm, 0.0f); + pBeats = BeatFactory::makeBeatGrid(m_sampleRate, bpm, mixxx::audio::kStartFramePos); } pTrack->trySetBeats(pBeats); diff --git a/src/analyzer/plugins/analyzerplugin.h b/src/analyzer/plugins/analyzerplugin.h index 18298a98a8..cc6ec54b84 100644 --- a/src/analyzer/plugins/analyzerplugin.h +++ b/src/analyzer/plugins/analyzerplugin.h @@ -2,6 +2,7 @@ #include <QString> +#include "audio/frame.h" #include "track/beats.h" #include "track/keys.h" #include "util/types.h" @@ -71,8 +72,8 @@ class AnalyzerBeatsPlugin : public AnalyzerPlugin { virtual float getBpm() const { return 0.0f; } - virtual QVector<double> getBeats() const { - return QVector<double>(); + virtual QVector<mixxx::audio::FramePos> getBeats() const { + return {}; } }; diff --git a/src/analyzer/plugins/analyzerqueenmarybeats.cpp b/src/analyzer/plugins/analyzerqueenmarybeats.cpp index 47ba8a1347..03c89ea19f 100644 --- a/src/analyzer/plugins/analyzerqueenmarybeats.cpp +++ b/src/analyzer/plugins/analyzerqueenmarybeats.cpp @@ -107,7 +107,7 @@ bool AnalyzerQueenMaryBeats::finalize() { for (size_t i = 0; i < beats.size(); ++i) { // we add the halve m_stepSize here, because the beat // is detected between the two samples. - double result = (beats.at(i) * m_stepSize) + m_stepSize / 2; + const auto result = mixxx::audio::FramePos((beats.at(i) * m_stepSize) + m_stepSize / 2); m_resultBeats.push_back(result); } diff --git a/src/analyzer/plugins/analyzerqueenmarybeats.h b/src/analyzer/plugins/analyzerqueenmarybeats.h index 5dc70ae85c..46b1cae6d5 100644 --- a/src/analyzer/plugins/analyzerqueenmarybeats.h +++ b/src/analyzer/plugins/analyzerqueenmarybeats.h @@ -40,7 +40,7 @@ class AnalyzerQueenMaryBeats : public AnalyzerBeatsPlugin { return true; } - QVector<double> getBeats() const override { + QVector<mixxx::audio::FramePos> getBeats() const override { return m_resultBeats; } @@ -51,7 +51,7 @@ class AnalyzerQueenMaryBeats : public AnalyzerBeatsPlugin { int m_windowSize; int m_stepSize; std::vector<double> m_detectionResults; - QVector<double> m_resultBeats; + QVector<mixxx::audio::FramePos> m_resultBeats; }; } // namespace mixxx |