Tone.js-如何使LFO对象成为作为振荡器链一部分的Volume对象的控制输入



我想要一个LFO对象作为振荡器输入的Volume对象的控制输入(通过每个振荡器和一个滤波器对象的平移器(。以下是我正在创建的4个振荡器之一的初始化示例。。。

const oscillator = new Tone.OmniOscillator();
const volume = new Tone.Volume();
oscillator.chain(new Tone.Panner(-0.8), new Tone.Filter(1200, 'lowpass'), vol , Tone.Destination);
lfo.connect(volume);

振荡器工作良好,平移和过滤对象也是如此。然而,我在UI中显示了LFO的频率、最小值和最大值,但更改这些值似乎根本不会影响噪声?这是我在输入到输出表单-中要进行的设置

OCS1 OSC2 OSC3 OSC4 (all with panners)
feeding into 
FILTER
feeding into 
VOLUME <- LFO
feeding into 
DESTINATION/OUTPUT

我是不是错过了什么?当我将LFO连接到volume对象并使其在振荡器链之前和之后时,我曾尝试更改顺序,但没有成功。此外,最初我在打开振荡器时使用LFO.start和LFO.stop,但这似乎只是LFO信号直接指向音频通道,这是不对的(尽管我真的不知道如何在不打开的情况下使用LFO!!(。

非常感谢您的帮助。

LFO需要连接到卷的volume属性。

oscillator = new Tone.Oscillator(220, "sine");
var filter = new Tone.Filter(1200, "lowpass");
var vol = new Tone.Volume();
// Example of LFO for lowpass filter.
var lfo = new Tone.LFO(4, 200, 1200); // hertz, min, max
lfo.connect(filter.frequency);
lfo.start();
// Example of LFO for volume.
var lfo2 = new Tone.LFO(0.1, -100, 0); // hertz, min, max
lfo2.connect(vol.volume);
lfo2.start();

oscillator.chain(filter, vol);
oscillator.start();
vol.toDestination();

这是一个正在工作的CodePen:https://codepen.io/joeweiss/pen/JjWvdmL?editors=0011

最新更新