Media Element Source Delay
HTML
<button id='start'>Start Oscillator</button>
<button id='start2'>Start Media Element Source</button>
JavaScript
var context = new AudioContext();
var audio = new Audio(); //creates a HTML5 Audio Element
url = 'http://api.soundcloud.com/tracks/33925813/stream' + '?client_id=c625af85886c1a833e8fe3d740af753c';
//wraps the soundcloud stream to an audio element.
audio.src = url;
var source;
var input = context.createGainNode();
var output = context.createGainNode();
var fb = context.createGainNode();
fb.gain.value = 0.4;
var delay = context.createDelayNode();
delay.delayTime.value = 2;
audio.addEventListener('canplaythrough', function(){
source = context.createMediaElementSource(audio);
//dry
source.connect(input);
input.connect(output);
//wet
input.connect(delay);
delay.connect(fb);
fb.connect(delay);
delay.connect(output);
}, false);
output.connect(context.destination);
$('#start').click(function () {
now = context.currentTime;
osc = context.createOscillator();
osc.connect(input);
osc.start(now);
osc.stop(now + 0.2);
});
$('#start2').click(function(){
source.mediaElement.play();
});