我正在编写一个Javascript程序,以编程方式为程序生成的音乐创建MIDI信号,该音乐使用外部输入来修改/操纵声音以响应环境的变化。
我尝试做的其中一件事是弄清楚如何编程模拟伪随机低频振荡器(LFO)信号,如下图所示的虚线:
此信号将驱动弯音或调制等MIDI效果。
该功能应该采用单个值输入来控制信号波动的程度。当输入为0时,结果信号应为0或平线。随着输入值的增加,信号应该按比例变得越来越不稳定。
我觉得我知道如何生成步骤功能(如上图中的实线)来实现这些目标,但我不知道如何"顺利"它(即低通滤波器)得到像虚线一样的连续曲线。最终,平滑/连续/模拟功能将被采样,例如,每100毫秒和广播作为新的MIDI弯音指令等。
答案 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
属性或其他任何"帧"你想要的。