Skip to content

Instantly share code, notes, and snippets.

@ramirezd42
Created January 25, 2016 07:30
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ramirezd42/0432981a21abc67914f2 to your computer and use it in GitHub Desktop.
Save ramirezd42/0432981a21abc67914f2 to your computer and use it in GitHub Desktop.
Delay Effect with Web Audio API
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var streamNode;
var masterNode;
var bypassNode;
var delayNode;
var feedbackNode;
//request an audio MediaStream track and save a reference to it
navigator.mediaDevices.getUserMedia({audio: true})
.then(stream => {
//create an audio node from the stream
streamNode = audioCtx.createMediaStreamSource(stream);
delayNode = audioCtx.createDelay(100)
feedbackNode = audioCtx.createGain();
bypassNode = audioCtx.createGain();
masterNode = audioCtx.createGain();
//controls
delayNode.delayTime.value = 1;
feedbackNode.gain.value = 0.8;
bypassNode.gain.value = 1;
//wire up nodes
streamNode.connect(delayNode);
delayNode.connect(feedbackNode);
feedbackNode.connect(delayNode);
delayNode.connect(bypassNode);
bypassNode.connect(masterNode);
streamNode.connect(masterNode);
masterNode.connect(audioCtx.destination);
})
.catch(e => console.log(e));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment