gain.gain.setValueAtTime(0.000001, ctx.currentTime); gain.gain.exponentialRampToValueAtTime(1, ctx.currentTime + 0.5); gain.gain.setValueAtTime(1, ctx.currentTime + 1); gain.gain.setTargetAtTime(0, ctx.currentTime + 1.5, 0.3); gain.gain.setValueAtTime(0.00001, ctx.currentTime + 2.5);