diff options
author | Jan Holthuis <jholthuis@mixxx.org> | 2021-07-01 22:02:51 +0200 |
---|---|---|
committer | Jan Holthuis <jholthuis@mixxx.org> | 2021-07-02 18:51:52 +0200 |
commit | 96e0d644ed71ead4c3c438ad74cd15e72cdcdd7c (patch) | |
tree | 276e278230f153121ea29ab46eb134401e8f82ee /src/analyzer | |
parent | db345099907a0e2e1c1609906c1e9114e9162d1b (diff) |
Beats: Add mixxx::Bpm in BeatUtils and BeatGrid/BeatMap classes
Diffstat (limited to 'src/analyzer')
-rw-r--r-- | src/analyzer/analyzerbeats.cpp | 2 | ||||
-rw-r--r-- | src/analyzer/plugins/analyzerplugin.h | 5 | ||||
-rw-r--r-- | src/analyzer/plugins/analyzersoundtouchbeats.cpp | 7 | ||||
-rw-r--r-- | src/analyzer/plugins/analyzersoundtouchbeats.h | 7 |
4 files changed, 11 insertions, 10 deletions
diff --git a/src/analyzer/analyzerbeats.cpp b/src/analyzer/analyzerbeats.cpp index 14c91c2566..1b7dcb0939 100644 --- a/src/analyzer/analyzerbeats.cpp +++ b/src/analyzer/analyzerbeats.cpp @@ -230,7 +230,7 @@ void AnalyzerBeats::storeResults(TrackPointer pTrack) { qDebug() << "AnalyzerBeats plugin detected" << beats.size() << "beats. Average BPM:" << (pBeats ? pBeats->getBpm() : 0.0); } else { - float bpm = m_pPlugin->getBpm(); + mixxx::Bpm bpm = m_pPlugin->getBpm(); qDebug() << "AnalyzerBeats plugin detected constant BPM: " << bpm; pBeats = BeatFactory::makeBeatGrid(m_sampleRate, bpm, mixxx::audio::kStartFramePos); } diff --git a/src/analyzer/plugins/analyzerplugin.h b/src/analyzer/plugins/analyzerplugin.h index cc6ec54b84..5ebc6ef62a 100644 --- a/src/analyzer/plugins/analyzerplugin.h +++ b/src/analyzer/plugins/analyzerplugin.h @@ -4,6 +4,7 @@ #include "audio/frame.h" #include "track/beats.h" +#include "track/bpm.h" #include "track/keys.h" #include "util/types.h" @@ -69,8 +70,8 @@ class AnalyzerBeatsPlugin : public AnalyzerPlugin { ~AnalyzerBeatsPlugin() override = default; virtual bool supportsBeatTracking() const = 0; - virtual float getBpm() const { - return 0.0f; + virtual mixxx::Bpm getBpm() const { + return mixxx::Bpm(); } virtual QVector<mixxx::audio::FramePos> getBeats() const { return {}; diff --git a/src/analyzer/plugins/analyzersoundtouchbeats.cpp b/src/analyzer/plugins/analyzersoundtouchbeats.cpp index 8d122a3b29..21e4c926d2 100644 --- a/src/analyzer/plugins/analyzersoundtouchbeats.cpp +++ b/src/analyzer/plugins/analyzersoundtouchbeats.cpp @@ -8,15 +8,14 @@ namespace mixxx { AnalyzerSoundTouchBeats::AnalyzerSoundTouchBeats() - : m_downmixBuffer(kAnalysisFramesPerChunk), // mono, i.e. 1 sample per frame - m_fResultBpm(0.0f) { + : m_downmixBuffer(kAnalysisFramesPerChunk) { } AnalyzerSoundTouchBeats::~AnalyzerSoundTouchBeats() { } bool AnalyzerSoundTouchBeats::initialize(int samplerate) { - m_fResultBpm = 0.0f; + m_resultBpm = mixxx::Bpm(); m_pSoundTouch = std::make_unique<soundtouch::BPMDetect>(2, samplerate); return true; } @@ -42,7 +41,7 @@ bool AnalyzerSoundTouchBeats::finalize() { if (!m_pSoundTouch) { return false; } - m_fResultBpm = m_pSoundTouch->getBpm(); + m_resultBpm = mixxx::Bpm(m_pSoundTouch->getBpm()); m_pSoundTouch.reset(); return true; } diff --git a/src/analyzer/plugins/analyzersoundtouchbeats.h b/src/analyzer/plugins/analyzersoundtouchbeats.h index 1c8e26a359..34a1b1c8d2 100644 --- a/src/analyzer/plugins/analyzersoundtouchbeats.h +++ b/src/analyzer/plugins/analyzersoundtouchbeats.h @@ -37,14 +37,15 @@ class AnalyzerSoundTouchBeats : public AnalyzerBeatsPlugin { return false; } - float getBpm() const override { - return m_fResultBpm; + mixxx::Bpm getBpm() const override { + return m_resultBpm; } private: std::unique_ptr<soundtouch::BPMDetect> m_pSoundTouch; + /// mono, i.e. 1 sample per frame SampleBuffer m_downmixBuffer; - float m_fResultBpm; + mixxx::Bpm m_resultBpm; }; } // namespace mixxx |