#pragma once #include #include "display/controls.h" #include "range.h" #include "selector.h" #include "sigmoid.h" namespace DHE { namespace Duration { static constexpr auto short_range = Range{0.001f, 1.f}; static constexpr auto medium_range = Range{0.01f, 10.f}; static constexpr auto long_range = Range{0.1f, 100.f}; static const auto ranges = std::vector{&short_range, &medium_range, &long_range}; } // namespace Duration inline auto duration(float rotation, const Range &range) -> float { auto tapered = Sigmoid::j_taper(rotation, 0.8f); return range.scale(tapered); } // namespace Duration inline auto duration(float rotation) -> float { return duration(rotation, Duration::medium_range); } } // namespace DHE