From c99fad8dd87b9d849ba8eafe1516be46b4d81ec4 Mon Sep 17 00:00:00 2001 From: Matt Long Date: Fri, 8 Mar 2024 12:30:19 -0800 Subject: [PATCH 1/2] set any 0 bpm sections to the previous section's bpm --- src/Etterna/Models/Misc/TimingData.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Etterna/Models/Misc/TimingData.cpp b/src/Etterna/Models/Misc/TimingData.cpp index 01023b782d..fe0e1caea5 100644 --- a/src/Etterna/Models/Misc/TimingData.cpp +++ b/src/Etterna/Models/Misc/TimingData.cpp @@ -1409,8 +1409,6 @@ TimingData::BuildAndGetEtaner(const std::vector& nerv) event_row = bpms[i]->GetRow(); time_to_next_event = NoteRowToBeat(event_row - lastbpmrow) / bps; const auto next_event_time = last_time + time_to_next_event; - if (bps <= 0) - Locator::getLogger()->fatal("Found {} bps in file {} - Very likely to crash.", bps, m_sFile); while (idx < nerv.size() && nerv[idx] <= event_row) { const auto perc = static_cast(nerv[idx] - lastbpmrow) / static_cast(event_row - lastbpmrow); @@ -1423,6 +1421,11 @@ TimingData::BuildAndGetEtaner(const std::vector& nerv) } last_time = next_event_time; bps = ToBPM(bpms[i])->GetBPM() / 60.f; + // set any 0 bpm sections to the previous section's bpm + if (bps <= 0) { + ToBPM(bpms[i])->SetBPM(ToBPM(bpms[i - 1])->GetBPM()); + bps = ToBPM(bpms[i])->GetBPM() / 60.f; + } lastbpmrow = event_row; } From e92f4a452589a936d74f2256e3752bb6046a253e Mon Sep 17 00:00:00 2001 From: Matt Long Date: Fri, 8 Mar 2024 12:35:55 -0800 Subject: [PATCH 2/2] "section" -> "segment" --- src/Etterna/Models/Misc/TimingData.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Etterna/Models/Misc/TimingData.cpp b/src/Etterna/Models/Misc/TimingData.cpp index fe0e1caea5..93258435cf 100644 --- a/src/Etterna/Models/Misc/TimingData.cpp +++ b/src/Etterna/Models/Misc/TimingData.cpp @@ -1421,7 +1421,7 @@ TimingData::BuildAndGetEtaner(const std::vector& nerv) } last_time = next_event_time; bps = ToBPM(bpms[i])->GetBPM() / 60.f; - // set any 0 bpm sections to the previous section's bpm + // set any 0 bpm segments to the previous segment's bpm if (bps <= 0) { ToBPM(bpms[i])->SetBPM(ToBPM(bpms[i - 1])->GetBPM()); bps = ToBPM(bpms[i])->GetBPM() / 60.f;