README
Reverb.js
Append reverb effect to audio source.
This script is originally a spin out of sf2synth.js's reverb effect.
Sample
Syntax
const reverb = new Reverb(ctx, {
noise: 0, // Inpulse Response Noise algorithm (0: White noise, 1: Pink noise, 2: Brown noise)
decay: 5, // Amount of IR (Inpulse Response) decay. 0~100
delay: 0, // Delay time o IR. (NOT delay effect) 0~100 [sec]
filterFreq: 2200, // Filter frequency. 20~5000 [Hz]
filterQ: 1, // Filter quality. 0~10
filterType: 'lowpass', // Filter type. 'bandpass' etc. See https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode/type .
mix: 0.5, // Dry (Original Sound) and Wet (Effected sound) raito. 0~1
reverse: false, // Reverse IR.
time: 3 // Time length of IR. 0~50 [sec]
});
Usage
// Setup Audio Context
const ctx = new (window.AudioContext || window.webkitAudioContext)();
// iOS fix.
document.addEventListener('touchstart', initAudioContext);
function initAudioContext() {
document.removeEventListener('touchstart', initAudioContext);
// wake up AudioContext
const emptySource = ctx.createBufferSource();
emptySource.start();
emptySource.stop();
}
// Setup Reverb Class
const reverb = new Reverb(ctx, {});
// put Audio data to audio buffer source
const sourceNode = ctx.createBufferSource();
sourceNode.buffer = [AudioBuffer];
// Connect Reverb
reverb.connect(sourceNode);
sourceNode.connect(ctx.destination);
// fire
sourceNode.play();