DSP runs in C++ compiled to WebAssembly. Click to load the module and grant microphone access.
Requires echo_chamber.js (built via Emscripten) in the same directory.
C++ WebAssembly · delay · convolution reverb · real-time
echo_chamber.cpp compiled to WebAssembly via Emscripten.
The delay line is a power-of-2 RingBuffer with linear interpolation for
sub-sample accuracy — the same structure used in EchoPsychFX (JUCE). The reverb is a
Schroeder network: 4 parallel comb filters (mutually prime lengths, RT60-derived gain)
followed by 2 all-pass diffusors, with a Gardner pre-delay. All parameter changes are
smoothed with a one-pole filter to prevent zipper noise. JS handles only audio I/O and
UI; it writes samples into the WASM linear memory heap and reads results back per block.
Source: github.com/alizpasztor/echo-chamber