17 if (groove.states_no_feel() || groove.timing_strength() == 0)
20 std::int64_t reach = 0;
21 if (
const auto grid = groove.swing_grid(); grid.value != 0) {
23 reach = extreme.value < 0 ? -extreme.value : extreme.value;
26 std::int64_t widest_step = 0;
27 for (
const auto& step : groove.steps()) {
28 const auto offset = step.timing_offset.value;
29 widest_step = std::max(widest_step, offset < 0 ? -offset : offset);
31 return reach + widest_step;