|
- #pragma once
-
- #include <vector>
-
- #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<Range const *>{&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
|