模拟伪随机 LFO 信号建模(Javascript 中的低通滤波)

Modeling an analog psuedo random LFO signal (low pass filtering in Javascript)

我正在编写一个 Javascript 程序,以编程方式为程序生成的音乐创建 MIDI 信号,该程序使用外部输入 modify/manipulate 响应环境变化的声音。

我想做的一件事是弄清楚如何对模拟伪随机低频振荡器 (LFO) 信号进行编程,如下图中的虚线所示:

此信号将驱动 MIDI 效果,例如弯音或调制。

该函数应采用单值输入来控制信号波动的剧烈程度。当输入为 0 时,得到的信号应该为 0,或者一条平线。随着输入值的增加,信号应该成比例地变得越来越不稳定。

我觉得我知道如何生成实现这些目标的 step 函数(如上图中的实线),但我有 不知道如何"smooth"它(即低通滤波器)以获得像虚线一样的连续曲线。最终,smoothed/continuous/analog 函数将被采样,比如说,每 100 毫秒并广播为新的 MIDI 弯音指令等。

我只会使用现有的动画库,例如 TweenJS。 https://www.createjs.com/docs/tweenjs/modules/TweenJS.html 这些库通常用于视觉用途,但也可以通用。

未经测试,但请尝试这样的操作:

const cc = {
  modwheel: 0
};
createjs.Tween.get(cc).to({modwheel: 127}, 1000);

然后,每隔 100 毫秒或任何您想要的 "frame" 观察 cc.modhweel 属性。

另请参阅: