From 03ef26faf63cf4072017317696e161f62dd4eeeb Mon Sep 17 00:00:00 2001 From: haslersn Date: Sun, 7 Jun 2020 17:22:59 +0200 Subject: Fix a bug where "Beat data grid has unsorted indices" (cherry picked from commit 3864e1ec0cb61b81b20ebe4f41939b41ddbe8598) --- src/library/export/engineprimeexportjob.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/library/export/engineprimeexportjob.cpp b/src/library/export/engineprimeexportjob.cpp index d7dbd329f0..f6a69766e9 100644 --- a/src/library/export/engineprimeexportjob.cpp +++ b/src/library/export/engineprimeexportjob.cpp @@ -175,11 +175,16 @@ void exportMetadata(djinterop::database& db, // correctly assign an index for the last beat. double lastBeatPlayPos = beats->findPrevBeat(sampleCount * 2); int numBeats = beats->numBeatsInRange(firstBarAlignedBeatPlayPos, lastBeatPlayPos); - std::vector beatgrid{ - {0, firstBarAlignedBeatPlayPos / 2}, {numBeats, lastBeatPlayPos / 2}}; - beatgrid = el::normalize_beatgrid(std::move(beatgrid), sampleCount); - externalTrack.set_default_beatgrid(beatgrid); - externalTrack.set_adjusted_beatgrid(beatgrid); + if (numBeats > 0) { + std::vector beatgrid{ + {0, firstBarAlignedBeatPlayPos / 2}, {numBeats, lastBeatPlayPos / 2}}; + beatgrid = el::normalize_beatgrid(std::move(beatgrid), sampleCount); + externalTrack.set_default_beatgrid(beatgrid); + externalTrack.set_adjusted_beatgrid(beatgrid); + } else { + qWarning() << "Non-positive number of beats in beat data of track" << pTrack->getId() + << "(" << pTrack->getFileInfo().fileName() << ")"; + } } else { qInfo() << "No beats data found for track" << pTrack->getId() << "(" << pTrack->getFileInfo().fileName() << ")"; -- cgit v1.2.3