Позвольте мне сначала объяснить идею. Актуальный математический вопрос ниже скриншотов.
Для музыкальных целей я строю алгоритм канавки, в котором позиции события переводятся математической функцией F (X). Позиции нормализуются внутри диапазона канавок, поэтому я в основном имею дело со значениями от нуля до единицы (что облегчает формирование кривых канавок - единственное ограничение - x '> = 0).
Этот алгоритм канавки принимает любую позицию события, а также работает, фильтруя статические заметки из структуры данных, такой как дорожка заметки на временной шкале. Для фильтрации событий в определенном диапазоне (размер звукового блока) мне нужна функция обратной канавки, чтобы найти ноты в дорожке и преобразовать их в пространство канавки. Все идет нормально. Это работает!
Короче говоря: я использую обратную функцию для того факта, что она зеркально отображена в (y = x). Так что я могу подключить значение х и получить у. Этот y, очевидно, может быть подключен к обратной функции, чтобы снова получить первый x.
Проблема: теперь я хочу иметь возможность смешать канавку с другой, но обычный линейный код (подсказка подсказки) не ведет себя так, как я ожидал. Чтобы было проще, я сначала попытался смешаться с y = x.
B(x)=alpha*F(x) + (1-alpha)*x;
iB(x)=alpha*iF(x) + (1-alpha)*x;
Для альфа = 1 мы получаем полную кривую. Для альфа = 0 мы получаем прямую линию. Но для альфа между 0 и 1 B (x) и iB (x) больше не отражаются (близко, но недостаточно), F (x) и iF (x) все еще отражаются.
Есть ли решение для этого (помимо квантования кривой на отрезки)? Любой предмет, на который я должен обратить внимание?