Я реализую эффект 'развертки фильтра' (я не знаю, называется ли он так). В основном я создаю фильтр нижних частот и заставляю его «двигаться» в определенном диапазоне частот.
Для расчета частоты среза фильтра в данный момент я использую предоставленную пользователем линейную функцию, которая выдает значения от 0 до 1.
Моя первая попытка состояла в том, чтобы напрямую отобразить значения, возвращаемые линейной функцией, в диапазон частот, как в cf = freqRange * lf (x). Несмотря на то, что он работал нормально, он выглядел так, как будто развертка проходила намного быстрее при движении на низких частотах, а затем замедлялась при переходе в зону высоких частот. Я не уверен, почему это так, но я предполагаю, что это как-то связано с человеческим слухом, воспринимающим изменения частоты нелинейным образом.
Моей следующей попыткой было перемещение частоты среза фильтра логарифмическим образом. Теперь он работает намного лучше, но я все еще чувствую, что фильтр не движется с постоянной воспринимаемой скоростью в диапазоне частот.
Как мне разделить частотное пространство для получения постоянной воспринимаемой скорости развертки?
Заранее спасибо.