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

时间:2017-11-13 23:13:39

标签: javascript audio signal-processing midi digital-analog-converter

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

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

enter image description here

此信号将驱动弯音或调制等MIDI效果。

该功能应该采用单个值输入来控制信号波动的程度。当输入为0时,结果信号应为0或平线。随着输入值的增加,信号应该按比例变得越来越不稳定。

我觉得我知道如何生成步骤功能(如上图中的实线)来实现这些目标,但我不知道如何"顺利"它(即低通滤波器)得到像虚线一样的连续曲线。最终,平滑/连续/模拟功能将被采样,例如,每100毫秒和广播作为新的MIDI弯音指令等。

1 个答案:

答案 0 :(得分:1)

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

未经测试,但尝试这样的事情:

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

然后,每隔100毫秒观察一次cc.modhweel属性或其他任何"帧"你想要的。

另请参阅:https://stackoverflow.com/a/13501577/362536