Я реализую эффект фильтрации фильтра (я не знаю, называется ли это так). То, что я делаю, в основном создает фильтр нижних частот и заставляет его «перемещаться» по определенному частотовому диапазону.DSP - Эффект фильтра фильтра
Чтобы вычислить частоту среза фильтра в данный момент я использую предоставленный пользователем линейную функцию, что дает значения между 0 и 1.
Моя первая попытка была непосредственно сопоставить значения, возвращаемые линейной функции к диапазону частот, как в cf = freqRange * lf (x). Хотя он работал нормально, казалось, что развертка работала намного быстрее при движении по низким частотам, а затем замедлялась по пути в высокочастотную зону. Я не уверен, почему это так, но я думаю, что это связано с тем, что человеческий слух воспринимает изменения частоты нелинейным образом.
Моя следующая попытка состояла в том, чтобы сдвинуть частоту среза фильтра логарифмическим способом. Теперь он работает намного лучше, но я все еще чувствую, что фильтр не перемещается с постоянной воспринимаемой скоростью через диапазон частот.
Как разделить частотное пространство для получения постоянной воспринимаемой скорости развертки?
Заранее спасибо.
Чтобы получить сенсорное явление, которое вы ищете, я предполагаю, что вы хотите, чтобы постоянный (устойчивый) интервал времени между соответствующими нотами в последующих октавах. То есть, интервал между A2, A3, A4 все тот же, что и время задержки между достижением B3 от B2, B4 от B3 и т. д. Хотя последовательность A2B2C2D2E2F2G2A3 ..., это может быть слишком сложно, но если вы получите либо A, либо C вправо, я думаю, что это будет похоже на прогрессию в западном масштабе. –