Effect 4 of 15 · Pedals

Wah and auto-wah: a band-pass filter that moves

One resonant band-pass filter. Position puts it somewhere; Sensitivity lets the loudness of your playing push it upward.

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 wah, 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. Wah

    Position700 Hz
    Sensitivity60%
    Resonance5.0

The signal

What it does to the signal

A wah is a band-pass filter: it lets a band of frequencies through and turns down what lies either side. Moving the band up and down is the whole effect. On a wah pedal a foot moves it. Here, the Position knob is the treadle, and the filter can also be moved by the signal itself, which is what an auto-wah is.

The filter is one second-order band-pass, resting wherever Position puts it between 350 Hz and 2.2 kHz. Resonance is its Q. Because a band-pass of this kind passes its centre frequency at unity and everything else at less, its output is given a fixed 8 dB of gain.

The envelope follower measures how loud the input is: it follows the peaks, rising with a time constant of 8 ms and falling with one of 140 ms. That envelope, scaled so that peaks at −12 dBFS count as full, is multiplied by Sensitivity and added to the filter’s frequency in cents. At 100% a full envelope raises the filter 3,600 cents: three octaves. At 0% the filter stays where Position put it, and the pedal is a wah held still.

General definition: Wikipedia, “Wah-wah pedal” (revision 1371661178, read 2026-09-28). Everything on this page about how this pedal works describes this page’s own code. Its filter is a standard Web Audio node and its envelope follower is an AudioWorklet processor.

The graph

The graph, drawn.

The wah’s signal graph In feeds Band-pass (Position, Q); Band-pass (Position, Q) feeds Gain (+8 dB); Gain (+8 dB) feeds Out; In controls Envelope (8 ms · 140 ms); Envelope (8 ms · 140 ms) controls × Sensitivity (up to 3,600 cents); × Sensitivity (up to 3,600 cents) controls Band-pass (Position, Q). In Band-pass Position, Q Gain +8 dB Out Envelope 8 ms · 140 ms × Sensitivity up to 3,600 cents

audiocontrol: moves a setting, is never heard

The dashed line is a control signal, not audio: the envelope is connected to the filter’s frequency, not to its input.

The knobs

Every knob, in real units.

KnobRangeStarts atWhat it changes
Position350 Hz to 2.2 kHz700 HzThe centre frequency of the band-pass filter at rest: the treadle of a wah pedal, as a knob.
Sensitivity0% to 100%60%How far the envelope follower pushes the filter upward. At 0 the filter stays where Position puts it. At 100 a full-scale envelope raises it 3,600 cents (three octaves).
Resonance1.0 to 12.05.0The filter’s Q: how narrow the band is. Higher is narrower and more vocal.

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]
  • Fed white noise with Sensitivity at 0 and Position at 700 Hz, the strongest part of the output spectrum was at 668 Hz. [as described]
  • With Position at 1.5 kHz it was at 1482 Hz. [as described]
  • With Position at 350 Hz and Sensitivity at 100%, quiet noise (peaks at −40 dBFS) came out centred on 375 Hz and loud noise (peaks at −14 dBFS) on 1330 Hz: 1.8 octaves higher for playing harder. [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

  • There is no treadle. A browser has no expression pedal, so Position is a knob and the moving is left to the envelope.
  • How far the filter opens depends on how loud the signal arriving at the pedal is. A quiet input needs more Sensitivity.
  • The envelope stops rising at full. Anything louder than −12 dBFS opens the filter no further.

Where it goes in the chain

Early, in front of the drive. GuitarPlayer’s guide to pedal order says so, and gives the alternative: after a fuzz, the filter sweeps across the fuzz’s harmonics instead of shaping what the fuzz is given. 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.