fix: harden note-program model against corrupt tempo/division/denomination records

Reject subnormal BPM that overflows to NaN, normalize Division equality, pin a single out-of-range-denomination interpretation across all readers, flag collapsed capture windows, add offset off-view editors and structural static_asserts, collapse duplicated CLAUDE.md facts.
This commit is contained in:
2026-07-30 20:11:06 -04:00
parent 834a6ddcc7
commit d923b352ae
10 changed files with 175 additions and 36 deletions
+4
View File
@@ -7,6 +7,7 @@
#pragma once
#include <optional>
#include <type_traits>
namespace reasampler::instrument::note {
@@ -34,4 +35,7 @@ private:
double bpm_;
};
static_assert(!std::is_default_constructible_v<Tempo>,
"Tempo must not be constructible without a validated BPM");
} // namespace reasampler::instrument::note