2017-04-25 53 views
0

這可能是一個愚蠢的問題,因爲我是Tone.js的新手,但可以將rampTo頻率值降低到低通濾波器的頻率值嗎? 我試圖做一個實時的交互式工作,需要將低通斜坡值(x)。 我嘗試了幾個不同的東西,但似乎沒有工作。像synth.volume.rampTo(x,t)這樣的東西很好用,但我似乎無法使其適用於Filter組件。RampTo在Tone.js中過濾頻率值

例如,我嘗試傳遞一個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 

} 

回答

0

不完全知道你想要做什麼,但你可以嘗試lowPass.frequency.linearRampToValueAtTime(value, time)適當的值valuetime。這會將濾波器的頻率(截止值)從其當前值線性更改爲新的value

+0

ahhh謝謝Raymond。問題是我試圖使用lowPass.frequency.value.rampTo(),這是一個錯誤。這就是爲什麼我試圖通過lowPassFreq信號來傳遞......對不起,這個小菜一碟! –

+0

很高興,因爲我不確定你在做什麼。每個人在某個時候都是小菜一碟! –