What Is an All-Pass Filter? Phase, Phasers and Why It Matters


Most filters exist to remove something. A low-pass cuts the highs, a high-pass cuts the lows, a notch digs a hole at one frequency. An all-pass filter removes nothing. Every frequency that goes in comes out at exactly the same level.

So what does it do? It changes when each frequency arrives. Some frequencies come out on time, some come out a little late, and the amount of lateness depends on where they sit relative to the filter’s center frequency. That timing change is called a phase shift, and it is the basis of phasers, a lot of reverb design, crossover alignment and a handful of mixing tricks.

The lab below runs a real all-pass filter in your browser with Tone.js. Press Play, then drag the amber handle around the chart.

All-pass lab
A saw wave through one all-pass stage
MAGNITUDE (dB)PHASE SHIFT20501002005001k2k5k10k20k0-12-240°-180°-360°800 Hz · Q 0.70
Drag the handle: left/right moves the center frequency, up/down changes Q. Arrow keys work too. Dots mark the harmonics of the note you hear.
Oscilloscope Input OutputPreview. Press Play to hear it
Phase at note
-23°
Phase delay
0.57 ms
Peak in → out
1.16 → 1.57
Notches
none
Waveform
Stages
110 Hz
800 Hz
0.70
100% wet
0.25 Hz
±2.0 oct
-18 dB

A few things to notice while you drag:

  • The blue magnitude line stays flat at 0 dB no matter where the handle goes. That is the “all-pass” part.
  • The amber phase curve moves. Below the center frequency the phase shift is small, at the center it is exactly -180°, and above it the shift heads toward -360°.
  • The oscilloscope shows the output (amber) changing shape compared to the input (gray). The sound barely changes.

That last point surprises most people the first time. The waveform can look completely different and still sound almost identical.

What an all-pass filter is

An all-pass filter has a flat magnitude response and a frequency-dependent phase response. In plain terms, it is a delay whose length changes with frequency.

Phase is measured in degrees of a cycle. A 360° shift on a 100 Hz sine is one full period, 10 ms. A 180° shift on the same sine is 5 ms, which flips the wave upside down relative to the original. Because each frequency gets its own shift, a single all-pass filter treats the bass, mids and highs of a sound differently in time while leaving their levels alone.

There are two common flavors:

TypePhase at DCPhase at centerPhase at the topControls
First-order0°-90°-180°Frequency only
Second-order0°-180°-360°Frequency and Q

The Web Audio API’s BiquadFilterNode (and so Tone.js’s Tone.Filter with type: "allpass") is second-order. That’s the one in the lab.

How it behaves

Center frequency

The center frequency is where the phase shift passes -180°. Drag the handle left and right and watch the steep part of the phase curve follow it. Harmonics well below the center (the dots on the left of the curve) barely move. Harmonics well above it get shifted almost a full cycle, which brings them back close to their original alignment.

The harmonics near the center are the ones that get rearranged. That’s why the oscilloscope changes most when the center sits right on top of the note’s first few harmonics.

Q

Q sets how quickly the phase turns around the center frequency. Drag the handle up for a high Q and the phase curve becomes a cliff. Almost everything below the center is untouched, almost everything above it is shifted a full 360°, and only a narrow band in between is out of line with its neighbors. Drag it down for a low Q and the phase turns gradually over several octaves.

High Q also means a lot of delay piled into a narrow band. Stack enough high-Q stages and a click becomes an audible “pew”, because the frequencies near the center arrive later than everything else. More on that below.

Stages

Real devices rarely use one all-pass filter. They chain several identical stages. Each second-order stage adds another 360° to the total, so four stages turn the phase through 1440° across the spectrum. Switch the lab between 1, 2, 4 and 8 stages and watch the phase axis grow.

On its own, more stages still sounds mostly the same on a steady tone. The difference shows up when you mix the result with the original signal.

Phase delay

The Phase delay readout converts the phase shift at the note’s fundamental into milliseconds. For one stage it tops out at a few milliseconds for bass notes. That small number is enough to matter when two signals are summed, like a kick and a bass, or a DI and a mic on the same guitar.

Why the waveform changes but the sound doesn’t

A square wave is a stack of odd harmonics lined up so their peaks build the flat top. Shift those harmonics by different amounts and the flat top falls apart, even though every harmonic is still at the same level.

All-pass lab
Reshaping a square wave
MAGNITUDE (dB)PHASE SHIFT20501002005001k2k5k10k20k0-12-240°-180°-360°-540°-720°330 Hz · Q 0.70
Drag the handle: left/right moves the center frequency, up/down changes Q. Arrow keys work too. Dots mark the harmonics of the note you hear.
Oscilloscope Input OutputPreview. Press Play to hear it
Phase at note
-113°
Phase delay
2.85 ms
Peak in → out
1.18 → 1.86
Notches
none
Waveform
Stages
110 Hz
330 Hz
0.70
100% wet
0.25 Hz
±2.0 oct
-18 dB

Toggle the Mix slider between 0% and 100% while it plays. The scope jumps between a clean square and a lopsided shape. Your ears mostly shrug. For steady, sustained tones we are not very sensitive to the phase relationship between harmonics. We hear which harmonics are present and how loud they are.

Look at the Peak in → out readout, though. The output peak is different from the input peak even though the spectrum is identical. Sometimes it goes up, sometimes down. That matters a lot for limiters and for headroom, and it’s the reason broadcast processors use all-pass filters (see the use cases below).

Ears do notice phase on transients. A drum hit is a burst where all the harmonics start at once. Smear their timing with several high-Q stages and the attack gets softer, or turns into a chirp. One gentle stage is inaudible on most material. Eight sharp ones are not.

Mix it with the dry signal and you get a phaser

The all-pass filter becomes audible the moment you add its output back to the original. Any frequency where the all-pass output is shifted by exactly 180° cancels against the dry copy. Any frequency where it’s shifted by 0° or 360° adds up. The result is a set of notches in the spectrum.

Set the mix to 50% and the blue magnitude line drops into deep notches. Turn on Sweep and the center frequency moves up and down on an LFO. The notches slide with it, and that moving, hollow, jet-like sound is a phaser.

All-pass lab
Four stages, 50% mix, swept: a phaser
MAGNITUDE (dB)PHASE SHIFT20501002005001k2k5k10k20k0-12-240°-360°-720°-1080°-1440°700 Hz · Q 0.50
Drag the handle: left/right moves the center frequency, up/down changes Q. Arrow keys work too. Dots mark the harmonics of the note you hear.
Oscilloscope Input OutputPreview. Press Play to hear it
Phase at note
-143°
Phase delay
3.61 ms
Peak in → out
1.16 → 0.65
Notches
4
Waveform
Stages
110 Hz
700 Hz
0.50
50% wet
0.30 Hz
±2.0 oct
-18 dB

Some details worth trying:

  • Count the notches. Each second-order stage adds one notch, so 4 stages give 4. Classic pedal phasers use first-order stages, which add 180° each, so a four-stage pedal like the MXR Phase 90 has two notches.
  • Mix sets the depth. At exactly 50% the notches are infinitely deep. At 30% or 70% they’re shallow and the effect is subtle.
  • Q sets the spacing. Low Q spreads the notches across the spectrum. High Q bunches them up around the center.
  • Saw beats sine. A sine has one harmonic, so it only gets louder and quieter as a notch passes over it. A saw has a harmonic every 110 Hz for the notches to carve into.

A phaser is often confused with a flanger. A flanger mixes in a short time delay instead of an all-pass filter. A delay shifts phase in proportion to frequency, so its notches are evenly spaced all the way up the spectrum, which gives the metallic comb sound. A phaser’s notches are fewer and spaced however the all-pass stages put them, which sounds smoother.

Where all-pass filters are used

Phasers

Covered above. Almost every phaser plugin and pedal is a chain of all-pass stages, an LFO on their frequency, and a dry/wet mix, sometimes with feedback from the output back into the input to sharpen the notches.

Lining up two sources in phase

Record a bass DI and a bass amp mic at the same time and they won’t line up perfectly. Moving one track in time fixes the delay at every frequency equally, but the mismatch from the amp, speaker and room is not equal at every frequency. A tunable all-pass filter lets you rotate the phase of one source in a specific frequency range until the low end sums fully. The Little Labs IBP, built for exactly this job, is the best-known hardware example, and plugin versions of it exist.

The same trick works on kick and bass. If the bass fundamental partly cancels the kick’s body, a single all-pass stage on the bass, centered near that frequency, can rotate the bass into line without changing its EQ.

Crossovers and multiband processing

A Linkwitz-Riley crossover splits a signal into low and high bands that add back to a flat magnitude response. The sum is not identical to the input, though. It’s the input passed through an all-pass filter. Multiband compressors and speaker crossovers use matching all-pass filters to keep a dry or unsplit path aligned with the processed bands, otherwise blending them in parallel would comb-filter.

Broadcast phase rotators

Human speech is asymmetrical. The positive peaks of a voice waveform can be much taller than the negative ones. Radio processors pass the voice through a phase rotator, which is a chain of all-pass filters, to make the waveform more symmetrical. The spectrum is unchanged, the peaks drop, and the station can run more loudness into its limiter without extra distortion. You saw the same effect in the Peak in → out readout above.

Reverb

Classic Schroeder reverbs and the widely copied Freeverb algorithm pass the signal through a few all-pass sections in series. Those all-pass sections are built from delay lines with feedback rather than biquads, but they share the key property: flat magnitude response, scrambled timing. They turn a handful of discrete echoes into a dense wash without coloring the tone the way plain comb filters do.

Dispersion and chirps

Chain dozens of high-Q all-pass stages at the same frequency and frequencies near the center arrive much later than everything else. A kick or a snare turns into a laser zap. Spring reverbs produce a similar dispersion naturally, which is part of their “boing”. Plugins such as Kilohearts Disperser are essentially a big stack of all-pass filters with a few controls.

Frequency shifters

A frequency shifter (the Bode shifter, not a pitch shifter) needs two copies of the signal that are 90° apart at every frequency. A pair of carefully tuned all-pass chains does that, and it’s the standard way to build one.

Building one in Tone.js

Here’s the core of the lab’s audio graph. One oscillator feeds both a dry gain and a chain of all-pass filters, and the two are summed:

import * as Tone from "tone";

await Tone.start();

const osc = new Tone.Oscillator({ type: "sawtooth", frequency: 110 });
const stages = Array.from(
  { length: 4 },
  () => new Tone.Filter({ type: "allpass", frequency: 700, Q: 0.5, rolloff: -12 }),
);
const dry = new Tone.Gain(0.5);
const wet = new Tone.Gain(0.5);
const out = new Tone.Volume(-18).toDestination();

osc.connect(dry);
osc.chain(...stages, wet);
dry.connect(out);
wet.connect(out);
osc.start();

// sweep every stage together for a phaser
stages.forEach((stage) => stage.frequency.rampTo(2800, 4));

rolloff: -12 keeps each Tone.Filter to a single biquad, so one filter equals one second-order stage. For a real-time LFO you can connect a Tone.LFO to each stage’s frequency instead of ramping by hand.

Things to watch for

  • An all-pass on a single track usually sounds like nothing. That’s expected. It becomes audible when the track is summed with another signal that shares content, or when it hits a limiter, or on sharp transients.
  • Peaks can go up. Rotating phase can raise the peak level of a sound with the same spectrum. Check your headroom after adding one.
  • It doesn’t fix polarity or delay. If two mics are simply flipped or offset in time, use the polarity switch or move the track. An all-pass is for the leftover mismatch that changes with frequency.
  • Mono sums are where it shows up. Different all-pass settings on left and right sound wide in stereo and lose energy when summed to mono, for the same reason the phaser notches appear.

If you want the dynamics side of the mixing story, What Is Audio Compression? uses the same kind of interactive demos for threshold, ratio, attack and release.