Effect 5 of 15 · Pedals
The compressor: loud made less loud
It turns the loud parts down. Then make-up gain turns everything up, and quiet and loud end closer together.
Play it alone
Signal into the board
Use headphones. With speakers, a microphone hears the board’s own output and sends it round again: that loop is feedback, and it howls. Turn the output volume down before you press Start.
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.
Clipping: the output reached full scale. Turn a level down.
- 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.
The compressor, 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.
Compressor
Threshold−24 dBRatio4:1Attack10 msRelease200 msMake-up+6 dB
The signal
What it does to the signal
A compressor reduces the difference between the loudest and the quietest parts of a signal. It does it by turning the loud parts down; the make-up gain that follows brings the whole signal back up, which is why a compressed note seems to sustain for longer: its tail has been raised.
A detector follows the peaks of the input, rising with the Attack time constant and falling with the Release one. The detector’s level is converted to decibels and compared with the threshold. Below the threshold nothing happens. Above it, the gain is reduced by the excess times (1 − 1 ÷ ratio): at 4:1, a signal 12 dB over the threshold comes out 3 dB over it. For 3 dB either side of the threshold the curve bends gradually rather than at a corner.
This is a feed-forward design: the detector listens to the input, not to the output.
General definition: Wikipedia, “Dynamic range compression” (revision 1377121547, read 2026-09-28). Everything on this page about how this pedal works describes this page’s own code. It runs as an AudioWorklet processor.
The graph
The graph, drawn.
audiocontrol: moves a setting, is never heard
The detector and the gain computer work out a gain; the signal itself only passes through the gain and the make-up stage. All four are one AudioWorklet processor.
The knobs
Every knob, in real units.
| Knob | Range | Starts at | What it changes |
|---|---|---|---|
| Threshold | −60 dB to 0 dB | −24 dB | The level above which gain is reduced. The knee is 6 dB wide, centred on the threshold. |
| Ratio | 1:1 to 20:1 | 4:1 | Above the threshold, every Ratio decibels of input become one decibel of output. |
| Attack | 0.1 ms to 100 ms | 10 ms | The detector’s time constant while the level is rising. A slow attack lets the pick’s transient through before the gain comes down. |
| Release | 20 ms to 1 s | 200 ms | The detector’s time constant while the level is falling. |
| Make-up | 0 dB to +24 dB | +6 dB | Fixed gain after the compression, to bring the level back up. |
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]
- Threshold −24 dB, ratio 4:1, attack 1 ms, make-up 0 dB. A 1 kHz tone peaking at −6.0 dBFS came out peaking at −19.4 dBFS once settled; the curve predicts −19.5 dBFS. [as described]
- The same tone at −40 dBFS, which is under the threshold, came out at −40.00 dBFS: untouched. [as described]
- So two tones 34.0 dB apart went in and came out 20.6 dB apart. [as described]
- With Make-up at +6 dB the quiet tone came out 6.00 dB higher. [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
- It raises noise. Make-up gain lifts everything, including the hiss between notes that the compression did not touch.
- It cannot see the future. With any attack time above zero, the very front of a note passes before the gain has come down. That is often wanted.
- A short release on a low note makes the gain follow the individual cycles of the wave, which is distortion.
Where it goes in the chain
GuitarPlayer’s guide to pedal order gives two places: at the very start, where it evens out what every later pedal receives, or at the very end, where it evens out the whole board but also flattens reverb tails. This board’s default puts it before the overdrive. 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.