For the audio programmer or DSP enthusiast, implementing an allpass filter is straightforward. Here is a Python/NumPy snippet for a first-order allpass:
The pull of the pole is perfectly balanced by the push of the zero, resulting in a gain of 1 (unity) across all frequencies.
Remember the phaser pedal on your guitarist's pedalboard? A phaser is essentially a chain of Allpass filters connected in a feedback loop. allpassphase
Stacking multiple instances can create "laser" or "robotic" timbres often heard in bass music.
The is a specialized VST audio plugin designed to introduce phase dispersion , a process that shifts the timing of various frequencies within an audio signal without changing their volume (magnitude response). This effect is often used to "soften" transients, creating a characteristic "laser zap" sound, or to give a unique, smeared character to bass sounds. Deep Piece: How All-Pass Phase Shifting Works For the audio programmer or DSP enthusiast, implementing
def allpass_first_order(x, a): y = np.zeros_like(x) y_prev = 0 x_prev = 0 for n in range(len(x)): y[n] = a * x[n] + x_prev - a * y_prev x_prev = x[n] y_prev = y[n] return y
So next time you twist a "Phase" knob on a flanger or a reverb, remember: you are not sculpting volume. You are bending the phase of everything while touching nothing. That is the quiet magic of allpassphase. A phaser is essentially a chain of Allpass
a = 0.5 b = [a, 1.0] # numerator: a + z^-1 a_coeffs = [1.0, a] # denominator: 1 + a*z^-1
import numpy as np
The importance of phase equalization becomes intuitive in audio: the frequency components corresponding to different pitches need to reach the listener's ear at the same time to preserve imaging and clarity. In digital communications, a nonlinear-phase channel distorts the transmitted waveform; compensating this requires a digital phase circuit that linearizes the overall phase response. All-pass filters excel at both these tasks.