試圖爲小型Web音頻應用程序發送延遲效果,並且似乎無法使其聽起來不錯。似乎很簡單,但沒有得到我想要的結果。希望延遲音符反覆重複並慢慢消失。我可以實現增益部分,但似乎無法獲得反饋環路部分,因此延遲仍在繼續。有人能指引我朝着正確的方向嗎?Web音頻延遲節點指南
下面是相關的代碼。增加了第二次延期,希望延期但並不完全符合我的期望。
var osc = ctx.createOscillator();
var gainNode = ctx.createGain();
if (addDelay === false) {
osc.connect(gainNode);
gainNode.connect(ctx.destination);
}
else if (addDelay === true) {
var delay = ctx.createDelay();
var delay2 = ctx.createDelay();
delay.delayTime.value = 0.35;
delay2.delayTime.value = 0.5;
osc.connect(gainNode);
gainNode.connect(ctx.destination);
gainNode.connect(delay);
gainNode.connect(delay2);
delay.connect(gainNode);
delay2.connect(gainNode);
delay.connect(ctx.destination);
delay2.connect(ctx.destination);
}
gainNode.gain.value = 0.0;
gainNode.gain.setTargetAtTime(0.75, ctx.currentTime, 0.1);
gainNode.gain.setTargetAtTime(0.0, ctx.currentTime + sustainFnl, 0.01);
osc.frequency.value = hz * octave/4;
osc.type = waveType;
osc.start();
osc.stop(ctx.currentTime + sustainFnl + 0.01);
}
謝謝!
感謝雷蒙,是的,我是試着增加兩次延遲,看看是否會增加結果,我今天晚上會和你一起玩,並且告訴你結果,再次感謝 – Fedreg
能夠嘗試一下,我想我沒有說清楚原來的帖子,但我正在尋找的是一個延遲,將繼續響幾次而不只是一次,換句話說,比如說我玩了十六分鐘的音符。我很樂意聽到這張音符幾次播放,每次.25s左右,直到它最終消失。希望是有道理的!我需要做些什麼來實現這種延遲?謝謝! – Fedreg