试图为小型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