@logue/reverb

Reverb effect.

Usage no npm install needed!

<script type="module">
  import logueReverb from 'https://cdn.skypack.dev/@logue/reverb';
</script>

README

Reverb.js

npm version

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();

Reference

License

MIT