1

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

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

在此处输入图像描述

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

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

我觉得我知道如何生成实现这些目标的阶跃函数(如上图中的实线),但我不知道如何“平滑”它(即低通滤波器)以获得像虚线一样的连续曲线。最终,平滑/连续/模拟功能将被采样,例如,每 100 毫秒并作为新的 MIDI 弯音指令进行广播,等等。

4

1 回答 1

1

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

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

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

cc.modhweel然后,只需每 100 毫秒或您想要的任何“帧”观察一次属性。

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

于 2017-11-14T01:13:05.053 回答