JSFiddle - React, Tailwind, and code Playground
by octatone
JavaScript
var audioContext = new webkitAudioContext();
var bufferSize = 2 * audioContext.sampleRate,
noiseBuffer = audioContext.createBuffer(1, bufferSize, audioContext.sampleRate),
output = noiseBuffer.getChannelData(0);
for (var i = 0; i < bufferSize; i++) {
output[i] = Math.random() * 2 - 1;
}
// Create the filter
var filter = audioContext.createBiquadFilter();
// Create and specify parameters for the low-pass filter.
filter.type = 0; // Low-pass filter. See BiquadFilterNode docs
filter.frequency.value = 1000; // Set cutoff to 440 HZ
filter.connect(audioContext.destination);
function bang () {
var whiteNoise = audioContext.createBufferSource();
whiteNoise.connect(filter);
whiteNoise.buffer = noiseBuffer;
whiteNoise.loop = true;
whiteNoise.start(0);
setTimeout(function () { whiteNoise.stop(0);}, 40);
}
bang();
setInterval(bang, 100);