Effect 14 of 15 · Pedals

Reverb: a room made of noise

Convolution with an impulse response. The impulse response is not a recording of anywhere: the page generates it each time you move a knob.

Play it alone

Signal into the board

The test signals are synthesized by this page, sample by sample. Your instrument is asked for only when you press Start with “Your instrument” chosen, with the browser’s echo cancellation, noise suppression and automatic gain control switched off.

70%
Output levelsilent

Sample rate
not started
Processing latency
not started
Output latency
not started
Input latency
not started
Reported total
not started

Browser audio has latency: you hear each note a little after you play it. These are the browser’s own figures and they leave things out.

What the latency figures mean

The reverb, alone

In, this one pedal, out. Drag a knob sideways, or focus it and use the arrow keys or the wheel. The whole board has the rest.

  1. Reverb

    Decay1.8 s
    Tone5 kHz
    Pre-delay20 ms
    Mix25%

The signal

What it does to the signal

Reverberation is what a room adds to a sound: thousands of reflections, arriving so close together that they merge into a tail that dies away. A convolution reverb holds a description of such a tail, its impulse response, and applies it to everything that passes through: every sample of the input sets off a copy of the whole tail.

Usually an impulse response is recorded in a real place. This one is generated. The page makes noise from a seeded generator, so that it is the same noise every time. It shapes the noise with an envelope that falls 60 dB in the time the Decay knob sets. It passes the noise through a low-pass filter whose corner starts where Tone puts it and falls an octave every third of the decay time, to a floor of 800 Hz, so that the top of the tail dies before the bottom. The first 4 ms fade in. The result is scaled to have a total energy of 1.

Pre-delay is a plain delay in front of the convolution: a gap between the note and the start of its tail.

General definition: Wikipedia, “Reverb effect” (revision 1364839120, read 2026-09-28). Everything on this page about how this pedal works describes this page’s own code. It is built from standard Web Audio nodes.

The graph

The graph, drawn.

The reverb’s signal graph In feeds Gain (dry (Mix)); Gain (dry (Mix)) feeds a sum; a sum feeds Out; In feeds Delay (Pre-delay); Delay (Pre-delay) feeds Convolver (impulse response); Convolver (impulse response) feeds Gain (wet (Mix)); Gain (wet (Mix)) feeds a sum; Seeded noise controls Envelope (−60 dB at Decay); Envelope (−60 dB at Decay) controls Falling low-pass (from Tone); Falling low-pass (from Tone) controls Convolver (impulse response). In Gain dry (Mix) + Out Delay Pre-delay Convolver impulse response Gain wet (Mix) Seeded noise Envelope −60 dB at Decay Falling low-pass from Tone

audiocontrol: moves a setting, is never heard

The generator runs in the page, not in the audio graph: it writes a buffer, and the convolver reads it.

The knobs

Every knob, in real units.

KnobRangeStarts atWhat it changes
Decay0.3 s to 6 s1.8 sThe time the generated impulse response’s envelope takes to fall 60 dB.
Tone1.5 kHz to 12 kHz5 kHzThe corner, at the start of the tail, of the low-pass filter the noise is generated through. The corner falls an octave every third of the decay time, to a floor of 800 Hz.
Pre-delay0 ms to 100 ms20 msA gap between the dry sound and the start of the reverberation.
Mix0% to 100%25%At 50 the dry signal and the reverberation are both at full level.

Measured

What the test measured

Rendered offline, then measured

  • Switched off and rendered over 48,000 samples of the plucked-string signal, the output was identical to the input in every sample, and the pedal was not in the graph. [as described]
  • Wet signal only, Pre-delay 20 ms: an impulse went in and nothing came out for 20.02 ms. [as described]
  • Decay 1.8 s: measured by backward integration of the tail (the time to fall from −5 dB to −35 dB, doubled), the reverberation time was 1.81 s below 400 Hz and 1.56 s across the whole band. The whole-band figure is shorter because the top of the tail is filtered away as it goes. [as described]
  • Decay 0.6 s: 0.61 s below 400 Hz, 0.52 s across the whole band. [as described]
  • The impulse response is generated in the page: 110,399 samples for a 1.8 s decay at 48 kHz, identical on every generation, with a total energy of 1.0000. [as described]

Rendered in an OfflineAudioContext at 48,000 Hz in Chrome/154.0.8037.58, 2026-09-29 01:07 UTC. The test is work the page’s builder ran, not something your browser does when you open this page.

Limits

  • A tail of shaped noise is not a room. It has no early reflections of its own and no particular size or shape, and it is mono.
  • Moving Decay or Tone makes a new impulse response 80 ms after the knob comes to rest. While the knob is moving you are hearing the old one.
  • The measured reverberation time across the whole band is shorter than the Decay setting, because the filter removes energy as the tail goes on. Below 400 Hz it matches.

Where it goes in the chain

Last of the effects, before the cabinet. GuitarPlayer’s guide to pedal order says reverb “usually comes at the end of a chain”: there it covers everything before it, as a room would. It also describes a player who puts reverb before his drives, on purpose. The whole order, and the reasons, are on the signal chain page.

Method

What is computed, and what is read.

Computed here, nothing fetched

Every sound on these pages is computed in your browser by the Web Audio API: 9 of the 15 pedals are graphs of the engine’s standard nodes, 5 are AudioWorklet processors, the wah is both, and the 3 test signals are synthesized sample by sample. No recording is loaded and no data feed is read. The one request the board’s own scripts make is for their AudioWorklet module, a file on labs.llc; the pitch detector is the one the Tuner uses.

Every effect was rendered offline with a known signal and measured: 73 of 73 checks came out as described. Nothing was tested on a real instrument or audio interface, only one browser was used, and nobody listened: the tests measure numbers, not tone. The method, the table of checks and what the latency figures mean are on the about page.

Sources

The W3C Web Audio API 1.1 and Media Capture and Streams specifications (W3C Document License); RFC 9110 and RFC 3986 for the share link’s fragment; GuitarPlayer’s guide to pedal order, quoted briefly; Wikibooks, “Guitar/Effects Pedals”; and each effect’s English Wikipedia article at a named revision (CC BY-SA). All read 2026-09-28; none is fetched by the page.

What happens to what you play

Audio from your input goes into the audio graph and out to your output device, and nowhere else: it is not recorded, stored or sent. Presets and the board as you left it stay in this browser’s local storage. A share link carries the board after the #, which browsers do not send to servers.