Fix interpolation when iterating over sequence (#9288)
When a control-point is exactly at tick (N * 8), iterating over the List (Sequence<Time>::const_iterator::operator++) skipped the point. Sequence::time_between_interpolated_controller_outputs == 8.
This commit is contained in:
parent
a0286f2e6f
commit
a6401763a3
@ -1704,7 +1704,7 @@ ControlList::rt_safe_earliest_event_linear_unlocked (Temporal::timepos_t const&
|
|||||||
build_search_cache_if_necessary (start);
|
build_search_cache_if_necessary (start);
|
||||||
const ControlEvent* first = *_search_cache.first;
|
const ControlEvent* first = *_search_cache.first;
|
||||||
if (_search_cache.first != _events.end ()) {
|
if (_search_cache.first != _events.end ()) {
|
||||||
if (((first->when > start) || (inclusive && first->when == start)) && first->when < start + min_x_delta) {
|
if (((first->when > start) || (inclusive && first->when == start)) && ((first->when < start + min_x_delta) || (!inclusive && first->when == start + min_x_delta))) {
|
||||||
x = first->when;
|
x = first->when;
|
||||||
y = first->value;
|
y = first->value;
|
||||||
/* Move left of cache to this point
|
/* Move left of cache to this point
|
||||||
|
Loading…
Reference in New Issue
Block a user