Progenitor Reverb implementation

Adapted to be as close as possible to chart linked here: convexoptimization.com/[...]/Dattorro_Convex_Optimization_of_a_Reverberator
As such, the knobs are the labels listed on the diagram, and not meant to be the most user-friendly.
A possible simplification: Damping, Dry/Wet, Early Lvl, Late Lvl, Early Diffuse, Late Diffuse.

Beware of the sound! In some configurations, the tank can blow up! The "Panic!" button is there to help yourself.
Also, you can copy the URL and the current state of the reverb would be saved along with it.

Sources:

  • Source Code
  • Controls interface: bit101 - minicomps2
  • Freesound - Placeboing 338387
  • Freesound - goldendiaphragm 242720
  • Clips from Kikuo - Mikukikuo5
  • To-do:

  • The reverb has a 4 channel output. Need to figure out if this is correctly rendered.
  • To use this reverb, put progenitorReverb.js in your folder, then:

    aC.audioWorklet.addModule('progenitorReverb.js').then(() => {
      let reverb = new AudioWorkletNode(aC, 'ProgenitorReverb', { outputChannelCount: [4] });
      inputNode.connect(reverb);
      reverb.connect(destinationNode);
    });