Skip to content

Commit

Permalink
BeatGrid: Fix wrong multiplication with kFrameSize
Browse files Browse the repository at this point in the history
The beatgrid now uses frames, so this multiplication results in a
beatgrid of half the intended BPM. This was an oversight from mixxxdj#4049.
  • Loading branch information
Holzhaus committed Jul 20, 2021
1 parent 80e9fa8 commit 0cdf85c
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions src/track/beatgrid.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ struct BeatGridData {
double firstBeat;
};

constexpr int kFrameSize = 2;
constexpr double kBpmScaleRounding = 0.001;

} // namespace
Expand Down Expand Up @@ -349,8 +348,8 @@ BeatsPointer BeatGrid::scale(BpmScale scale) const {

bpm = BeatUtils::roundBpmWithinRange(bpm - kBpmScaleRounding, bpm, bpm + kBpmScaleRounding);
grid.mutable_bpm()->set_bpm(bpm.value());
double beatLength = (60.0 * m_sampleRate / bpm.value()) * kFrameSize;
return BeatsPointer(new BeatGrid(*this, grid, beatLength));
const mixxx::audio::FrameDiff_t beatLengthFrames = (60.0 * m_sampleRate / bpm.value());
return BeatsPointer(new BeatGrid(*this, grid, beatLengthFrames));
}

BeatsPointer BeatGrid::setBpm(mixxx::Bpm bpm) {
Expand All @@ -359,8 +358,8 @@ BeatsPointer BeatGrid::setBpm(mixxx::Bpm bpm) {
}
mixxx::track::io::BeatGrid grid = m_grid;
grid.mutable_bpm()->set_bpm(bpm.value());
double beatLength = (60.0 * m_sampleRate / bpm.value()) * kFrameSize;
return BeatsPointer(new BeatGrid(*this, grid, beatLength));
const mixxx::audio::FrameDiff_t beatLengthFrames = (60.0 * m_sampleRate / bpm.value());
return BeatsPointer(new BeatGrid(*this, grid, beatLengthFrames));
}

} // namespace mixxx

0 comments on commit 0cdf85c

Please sign in to comment.