RampTo过滤Tone.js中的频率值

时间:2017-04-25 12:44:29

标签: javascript web-audio

这可能是一个愚蠢的问题,因为我是Tone.js的新手,但是有可能试图降低低通滤波器的频率值吗? 我试图进行实时交互式工作,需要将低通量提升到一个值(x)。 我尝试了一些不同的东西但似乎都没有用。像synth.volume.rampTo(x,t)这样的东西很好用,但我似乎无法使它适用于Filter组件。

例如,我试图传递一个Signal作为频率值,因为Signal类有像.rampTo这样的方法。它是否正确?我该怎么做?

var lowPassFreq = new Tone.Signal(300, Tone.Frequency);

var lowPass = new Tone.Filter(
    {
        "type":"lowpass",
        "frequency":lowPassFreq.value           
    }
).toMaster();

var noiseSynth = new Tone.NoiseSynth().connect(lowPass);

this.playSound = function (x){

    noiseSynth.triggerAttack("4n");

    lowPassFreq.rampTo(x, 0.05)
    lowPass.frequency.value = lowPassFreq.value

}

1 个答案:

答案 0 :(得分:0)

不完全确定您尝试做什么,但您可以使用lowPass.frequency.linearRampToValueAtTime(value, time)value的适当值尝试time。这会将滤波器的频率(截止频率)从其当前值线性变为新的value