Skip to content

Filters

Signalsmith biquad filters, DaisySP SVF/ladder/moog/tone/modal/comb, virtual analog (Faust), and multi-order IIR filters (DspFilters).

Usage examples

Biquad filters (signalsmith)

from nanodsp.effects import filters
from nanodsp.buffer import AudioBuffer

buf = AudioBuffer.from_file("input.wav")

# Basic filters
lp = filters.lowpass(buf, cutoff_hz=1000.0)
hp = filters.highpass(buf, cutoff_hz=80.0)
bp = filters.bandpass(buf, center_hz=1000.0)
nt = filters.notch(buf, center_hz=50.0)         # remove 50 Hz hum

# EQ: boost 3 kHz by 6 dB with 1-octave bandwidth
eq = filters.peak_db(buf, center_hz=3000.0, db=6.0, octaves=1.0)

# Shelving filters
bright = filters.high_shelf_db(buf, cutoff_hz=8000.0, db=3.0)
warm = filters.low_shelf_db(buf, cutoff_hz=200.0, db=2.0)

# Allpass (phase shift without magnitude change)
ap = filters.allpass(buf, freq_hz=1000.0)

# Choose a filter design method
lp_vicanek = filters.lowpass(buf, cutoff_hz=5000.0, design="vicanek")
lp_cookbook = filters.lowpass(buf, cutoff_hz=5000.0, design="cookbook")

DaisySP filters

# State variable filter with resonance
lp = filters.svf_lowpass(buf, freq_hz=1000.0, resonance=0.5)
hp = filters.svf_highpass(buf, freq_hz=200.0, resonance=0.3)
bp = filters.svf_bandpass(buf, freq_hz=1000.0, resonance=0.7)
nt = filters.svf_notch(buf, freq_hz=1000.0)
pk = filters.svf_peak(buf, freq_hz=1000.0, resonance=0.8)

# 4-pole ladder filter (Moog-inspired, multiple modes)
lp24 = filters.ladder_filter(buf, freq_hz=800.0, resonance=0.6, mode="lp24")
bp12 = filters.ladder_filter(buf, freq_hz=1200.0, mode="bp12")
hp24 = filters.ladder_filter(buf, freq_hz=200.0, mode="hp24")

# Moog ladder (simplified: cutoff + resonance only)
moog = filters.moog_ladder(buf, freq_hz=1000.0, resonance=0.7)

# Simple 1-pole filters
gentle_lp = filters.tone_lowpass(buf, freq_hz=2000.0)
gentle_hp = filters.tone_highpass(buf, freq_hz=100.0)

# Resonant bandpass for modal synthesis
modal = filters.modal_bandpass(buf, freq_hz=440.0, q=50.0)

# Comb filter
comb = filters.comb_filter(buf, freq_hz=500.0, rev_time=0.5)

Virtual analog filters (Faust)

# Moog transistor ladder -- warm, classic
va_moog = filters.va_moog_ladder(buf, cutoff_hz=1000.0, q=2.0)

# Diode ladder -- acidic, TB-303 style
va_diode = filters.va_diode_ladder(buf, cutoff_hz=800.0, q=3.0)

# Korg MS-20 filters
va_korg_lp = filters.va_korg35_lpf(buf, cutoff_hz=1500.0, q=2.0)
va_korg_hp = filters.va_korg35_hpf(buf, cutoff_hz=200.0, q=1.5)

# Oberheim SEM multi-mode
va_ob_lp = filters.va_oberheim(buf, cutoff_hz=2000.0, q=1.0, mode="lpf")
va_ob_hp = filters.va_oberheim(buf, cutoff_hz=500.0, mode="hpf")
va_ob_bp = filters.va_oberheim(buf, cutoff_hz=1000.0, mode="bpf")
va_ob_bs = filters.va_oberheim(buf, cutoff_hz=1000.0, mode="bsf")

Multi-order IIR filters (DspFilters)

# Butterworth lowpass, 8th order
steep_lp = filters.iir_filter(
    buf, family="butterworth", filter_type="lowpass", order=8, freq=1000.0
)

# Chebyshev Type I highpass, 6th order with 1 dB ripple
cheby = filters.iir_filter(
    buf, family="chebyshev1", filter_type="highpass", order=6,
    freq=200.0, ripple_db=1.0
)

# Elliptic bandpass, 4th order
ellip = filters.iir_filter(
    buf, family="elliptic", filter_type="bandpass", order=4,
    freq=1000.0, width=500.0, ripple_db=1.0, rolloff=40.0
)

# Bessel lowpass (best phase linearity)
bessel = filters.iir_filter(
    buf, family="bessel", filter_type="lowpass", order=8, freq=5000.0
)

# Get SOS coefficients without applying
import numpy as np
sos = filters.iir_design(
    "butterworth", "lowpass", order=4, sample_rate=44100, freq=1000.0
)

API reference

filters

Filter functions -- signalsmith biquads, DaisySP, virtual analog, IIR.

lowpass

lowpass(
    buf: AudioBuffer,
    cutoff_hz: float,
    octaves: float | None = None,
    design: str | int = "bilinear",
) -> AudioBuffer

Apply a biquad lowpass filter.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

cutoff_hz

Cutoff frequency in Hz.

TYPE: float

octaves

Bandwidth in octaves. If None, uses default Q.

TYPE: float or None DEFAULT: None

design

Biquad design method (e.g. "bilinear", "one_sided").

TYPE: str or int DEFAULT: 'bilinear'

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

highpass

highpass(
    buf: AudioBuffer,
    cutoff_hz: float,
    octaves: float | None = None,
    design: str | int = "bilinear",
) -> AudioBuffer

Apply a biquad highpass filter.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

cutoff_hz

Cutoff frequency in Hz.

TYPE: float

octaves

Bandwidth in octaves. If None, uses default Q.

TYPE: float or None DEFAULT: None

design

Biquad design method (e.g. "bilinear", "one_sided").

TYPE: str or int DEFAULT: 'bilinear'

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

bandpass

bandpass(
    buf: AudioBuffer,
    center_hz: float,
    octaves: float | None = None,
    design: str | int = "one_sided",
) -> AudioBuffer

Apply a biquad bandpass filter.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

center_hz

Center frequency in Hz.

TYPE: float

octaves

Bandwidth in octaves. If None, uses default Q.

TYPE: float or None DEFAULT: None

design

Biquad design method (e.g. "bilinear", "one_sided").

TYPE: str or int DEFAULT: 'one_sided'

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

notch

notch(
    buf: AudioBuffer,
    center_hz: float,
    octaves: float | None = None,
    design: str | int = "one_sided",
) -> AudioBuffer

Apply a biquad notch (band-reject) filter.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

center_hz

Center frequency in Hz.

TYPE: float

octaves

Bandwidth in octaves. If None, uses default Q.

TYPE: float or None DEFAULT: None

design

Biquad design method (e.g. "bilinear", "one_sided").

TYPE: str or int DEFAULT: 'one_sided'

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

peak

peak(
    buf: AudioBuffer,
    center_hz: float,
    gain: float,
    octaves: float = 1.0,
    design: str | int = "one_sided",
) -> AudioBuffer

Apply a biquad peak (bell) filter with linear gain.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

center_hz

Center frequency in Hz.

TYPE: float

gain

Linear gain at center frequency.

TYPE: float

octaves

Bandwidth in octaves.

TYPE: float DEFAULT: 1.0

design

Biquad design method.

TYPE: str or int DEFAULT: 'one_sided'

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

peak_db

peak_db(
    buf: AudioBuffer,
    center_hz: float,
    db: float,
    octaves: float = 1.0,
    design: str | int = "one_sided",
) -> AudioBuffer

Apply a biquad peak (bell) filter with gain in dB.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

center_hz

Center frequency in Hz.

TYPE: float

db

Gain at center frequency in dB.

TYPE: float

octaves

Bandwidth in octaves.

TYPE: float DEFAULT: 1.0

design

Biquad design method.

TYPE: str or int DEFAULT: 'one_sided'

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

high_shelf

high_shelf(
    buf: AudioBuffer,
    cutoff_hz: float,
    gain: float,
    octaves: float | None = None,
    design: str | int = "one_sided",
) -> AudioBuffer

Apply a biquad high shelf filter with linear gain.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

cutoff_hz

Shelf corner frequency in Hz.

TYPE: float

gain

Linear gain above the shelf frequency.

TYPE: float

octaves

Transition bandwidth in octaves. If None, uses default.

TYPE: float or None DEFAULT: None

design

Biquad design method.

TYPE: str or int DEFAULT: 'one_sided'

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

high_shelf_db

high_shelf_db(
    buf: AudioBuffer,
    cutoff_hz: float,
    db: float,
    octaves: float | None = None,
    design: str | int = "one_sided",
) -> AudioBuffer

Apply a biquad high shelf filter with gain in dB.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

cutoff_hz

Shelf corner frequency in Hz.

TYPE: float

db

Gain above the shelf frequency in dB.

TYPE: float

octaves

Transition bandwidth in octaves. If None, uses default.

TYPE: float or None DEFAULT: None

design

Biquad design method.

TYPE: str or int DEFAULT: 'one_sided'

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

low_shelf

low_shelf(
    buf: AudioBuffer,
    cutoff_hz: float,
    gain: float,
    octaves: float = 2.0,
    design: str | int = "one_sided",
) -> AudioBuffer

Apply a biquad low shelf filter with linear gain.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

cutoff_hz

Shelf corner frequency in Hz.

TYPE: float

gain

Linear gain below the shelf frequency.

TYPE: float

octaves

Transition bandwidth in octaves.

TYPE: float DEFAULT: 2.0

design

Biquad design method.

TYPE: str or int DEFAULT: 'one_sided'

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

low_shelf_db

low_shelf_db(
    buf: AudioBuffer,
    cutoff_hz: float,
    db: float,
    octaves: float = 2.0,
    design: str | int = "one_sided",
) -> AudioBuffer

Apply a biquad low shelf filter with gain in dB.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

cutoff_hz

Shelf corner frequency in Hz.

TYPE: float

db

Gain below the shelf frequency in dB.

TYPE: float

octaves

Transition bandwidth in octaves.

TYPE: float DEFAULT: 2.0

design

Biquad design method.

TYPE: str or int DEFAULT: 'one_sided'

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

allpass

allpass(
    buf: AudioBuffer,
    freq_hz: float,
    octaves: float = 1.0,
    design: str | int = "one_sided",
) -> AudioBuffer

Apply a biquad allpass filter.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

freq_hz

Center frequency in Hz.

TYPE: float

octaves

Bandwidth in octaves.

TYPE: float DEFAULT: 1.0

design

Biquad design method.

TYPE: str or int DEFAULT: 'one_sided'

RETURNS DESCRIPTION
AudioBuffer

Filtered audio (same magnitude, altered phase).

biquad_process

biquad_process(buf: AudioBuffer, biquad) -> AudioBuffer

Process buffer through a pre-configured Biquad, resetting between channels.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

biquad

Pre-configured Biquad instance.

TYPE: Biquad

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

svf_lowpass

svf_lowpass(
    buf: AudioBuffer,
    freq_hz: float = 1000.0,
    resonance: float = 0.0,
    drive: float = 0.0,
) -> AudioBuffer

State-variable filter lowpass.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

freq_hz

Cutoff frequency in Hz.

TYPE: float DEFAULT: 1000.0

resonance

Resonance amount (0.0 to 1.0).

TYPE: float DEFAULT: 0.0

drive

Input drive amount.

TYPE: float DEFAULT: 0.0

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

svf_highpass

svf_highpass(
    buf: AudioBuffer,
    freq_hz: float = 1000.0,
    resonance: float = 0.0,
    drive: float = 0.0,
) -> AudioBuffer

State-variable filter highpass.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

freq_hz

Cutoff frequency in Hz.

TYPE: float DEFAULT: 1000.0

resonance

Resonance amount (0.0 to 1.0).

TYPE: float DEFAULT: 0.0

drive

Input drive amount.

TYPE: float DEFAULT: 0.0

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

svf_bandpass

svf_bandpass(
    buf: AudioBuffer,
    freq_hz: float = 1000.0,
    resonance: float = 0.0,
    drive: float = 0.0,
) -> AudioBuffer

State-variable filter bandpass.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

freq_hz

Center frequency in Hz.

TYPE: float DEFAULT: 1000.0

resonance

Resonance amount (0.0 to 1.0).

TYPE: float DEFAULT: 0.0

drive

Input drive amount.

TYPE: float DEFAULT: 0.0

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

svf_notch

svf_notch(
    buf: AudioBuffer,
    freq_hz: float = 1000.0,
    resonance: float = 0.0,
    drive: float = 0.0,
) -> AudioBuffer

State-variable filter notch.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

freq_hz

Center frequency in Hz.

TYPE: float DEFAULT: 1000.0

resonance

Resonance amount (0.0 to 1.0).

TYPE: float DEFAULT: 0.0

drive

Input drive amount.

TYPE: float DEFAULT: 0.0

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

svf_peak

svf_peak(
    buf: AudioBuffer,
    freq_hz: float = 1000.0,
    resonance: float = 0.0,
    drive: float = 0.0,
) -> AudioBuffer

State-variable filter peak.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

freq_hz

Center frequency in Hz.

TYPE: float DEFAULT: 1000.0

resonance

Resonance amount (0.0 to 1.0).

TYPE: float DEFAULT: 0.0

drive

Input drive amount.

TYPE: float DEFAULT: 0.0

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

ladder_filter

ladder_filter(
    buf: AudioBuffer,
    freq_hz: float = 1000.0,
    resonance: float = 0.0,
    mode: Literal[
        "lp24", "lp12", "bp24", "bp12", "hp24", "hp12"
    ] = "lp24",
    drive: float = 1.0,
) -> AudioBuffer

Ladder filter with selectable mode.

PARAMETER DESCRIPTION
mode

One of "lp24", "lp12", "bp24", "bp12", "hp24", "hp12".

TYPE: str DEFAULT: 'lp24'

drive

Input drive (multiplier). 1.0 = unity gain (no drive), >1.0 adds saturation.

TYPE: float DEFAULT: 1.0

moog_ladder

moog_ladder(
    buf: AudioBuffer,
    freq_hz: float = 1000.0,
    resonance: float = 0.0,
) -> AudioBuffer

Moog-style ladder lowpass filter.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

freq_hz

Cutoff frequency in Hz.

TYPE: float DEFAULT: 1000.0

resonance

Resonance amount (0.0 to 1.0).

TYPE: float DEFAULT: 0.0

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

tone_lowpass

tone_lowpass(
    buf: AudioBuffer, freq_hz: float = 1000.0
) -> AudioBuffer

One-pole lowpass filter (Tone).

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

freq_hz

Cutoff frequency in Hz.

TYPE: float DEFAULT: 1000.0

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

tone_highpass

tone_highpass(
    buf: AudioBuffer, freq_hz: float = 1000.0
) -> AudioBuffer

One-pole highpass filter (ATone).

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

freq_hz

Cutoff frequency in Hz.

TYPE: float DEFAULT: 1000.0

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

modal_bandpass

modal_bandpass(
    buf: AudioBuffer,
    freq_hz: float = 1000.0,
    q: float = 500.0,
) -> AudioBuffer

Modal resonator bandpass filter.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

freq_hz

Resonant frequency in Hz.

TYPE: float DEFAULT: 1000.0

q

Quality factor.

TYPE: float DEFAULT: 500.0

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

comb_filter

comb_filter(
    buf: AudioBuffer,
    freq_hz: float = 500.0,
    rev_time: float = 0.5,
    max_size: int = 4096,
) -> AudioBuffer

Comb filter.

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

freq_hz

Comb frequency in Hz.

TYPE: float DEFAULT: 500.0

rev_time

Reverb time (feedback decay time in seconds).

TYPE: float DEFAULT: 0.5

max_size

Maximum delay line size in samples.

TYPE: int DEFAULT: 4096

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

va_moog_ladder

va_moog_ladder(
    buf: AudioBuffer,
    cutoff_hz: float = 1000.0,
    q: float = 1.0,
) -> AudioBuffer

Moog Ladder 24 dB/oct lowpass filter (virtual analog).

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

cutoff_hz

Cutoff frequency in Hz, > 0 and < Nyquist.

TYPE: float DEFAULT: 1000.0

q

Resonance / Q factor, > 0. Higher values increase resonance at cutoff. Typical: 0.5--10.

TYPE: float DEFAULT: 1.0

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

va_moog_half_ladder

va_moog_half_ladder(
    buf: AudioBuffer,
    cutoff_hz: float = 1000.0,
    q: float = 1.0,
) -> AudioBuffer

Moog Half-Ladder 12 dB/oct lowpass filter (virtual analog).

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

cutoff_hz

Cutoff frequency in Hz, > 0 and < Nyquist.

TYPE: float DEFAULT: 1000.0

q

Resonance / Q factor, > 0. Higher values increase resonance at cutoff. Typical: 0.5--10.

TYPE: float DEFAULT: 1.0

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

va_diode_ladder

va_diode_ladder(
    buf: AudioBuffer,
    cutoff_hz: float = 1000.0,
    q: float = 1.0,
) -> AudioBuffer

Diode Ladder 24 dB/oct lowpass filter (virtual analog).

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

cutoff_hz

Cutoff frequency in Hz, > 0 and < Nyquist.

TYPE: float DEFAULT: 1000.0

q

Resonance / Q factor, > 0. Higher values increase resonance at cutoff. Typical: 0.5--10.

TYPE: float DEFAULT: 1.0

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

va_korg35_lpf

va_korg35_lpf(
    buf: AudioBuffer,
    cutoff_hz: float = 1000.0,
    q: float = 1.0,
) -> AudioBuffer

Korg 35 24 dB/oct lowpass filter (virtual analog).

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

cutoff_hz

Cutoff frequency in Hz, > 0 and < Nyquist.

TYPE: float DEFAULT: 1000.0

q

Resonance / Q factor, > 0. Higher values increase resonance at cutoff. Typical: 0.5--10.

TYPE: float DEFAULT: 1.0

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

va_korg35_hpf

va_korg35_hpf(
    buf: AudioBuffer,
    cutoff_hz: float = 1000.0,
    q: float = 1.0,
) -> AudioBuffer

Korg 35 24 dB/oct highpass filter (virtual analog).

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

cutoff_hz

Cutoff frequency in Hz, > 0 and < Nyquist.

TYPE: float DEFAULT: 1000.0

q

Resonance / Q factor, > 0. Higher values increase resonance at cutoff. Typical: 0.5--10.

TYPE: float DEFAULT: 1.0

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

va_oberheim

va_oberheim(
    buf: AudioBuffer,
    cutoff_hz: float = 1000.0,
    q: float = 1.0,
    mode: Literal["lpf", "hpf", "bpf", "bsf"] = "lpf",
) -> AudioBuffer

Oberheim multi-mode state-variable filter (virtual analog).

PARAMETER DESCRIPTION
buf

Input audio.

TYPE: AudioBuffer

cutoff_hz

Cutoff frequency in Hz, > 0 and < Nyquist.

TYPE: float DEFAULT: 1000.0

q

Resonance / Q factor, > 0. Typical: 0.5--10.

TYPE: float DEFAULT: 1.0

mode

One of "lpf", "hpf", "bpf", "bsf" (notch).

TYPE: str DEFAULT: 'lpf'

RETURNS DESCRIPTION
AudioBuffer

Filtered audio.

iir_design

iir_design(
    family: str,
    filter_type: str,
    order: int,
    sample_rate: float,
    freq: float,
    width: float = 0.0,
    ripple_db: float = 0.0,
    rolloff: float = 0.0,
) -> np.ndarray

Design an IIR filter and return SOS coefficients.

Returns an array of shape [n_sections, 6] where each row is [b0, b1, b2, a0, a1, a2] with a0 = 1.0.

PARAMETER DESCRIPTION
family

Filter family: butterworth/butter, chebyshev1/cheby1, chebyshev2/cheby2, elliptic/ellip, bessel.

TYPE: str

filter_type

Filter type: lowpass/lp, highpass/hp, bandpass/bp, bandstop/bs/notch.

TYPE: str

order

Filter order (1-16).

TYPE: int

sample_rate

Sample rate in Hz.

TYPE: float

freq

Cutoff (LP/HP) or center (BP/BS) frequency in Hz.

TYPE: float

width

Bandwidth in Hz (required for bandpass/bandstop).

TYPE: float DEFAULT: 0.0

ripple_db

Passband ripple for Chebyshev I / Elliptic (dB). Stopband attenuation for Chebyshev II (dB).

TYPE: float DEFAULT: 0.0

rolloff

Transition width for Elliptic filters (range approx -16 to 4).

TYPE: float DEFAULT: 0.0

iir_filter

iir_filter(
    buf: AudioBuffer,
    family: str = "butterworth",
    filter_type: str = "lowpass",
    order: int = 4,
    freq: float = 1000.0,
    width: float = 0.0,
    ripple_db: float = 0.0,
    rolloff: float = 0.0,
) -> AudioBuffer

Apply a multi-order IIR filter.

Supports Butterworth, Chebyshev I/II, Elliptic, and Bessel filter families with orders up to 16, in lowpass, highpass, bandpass, and bandstop configurations.

PARAMETER DESCRIPTION
family

butterworth/butter, chebyshev1/cheby1, chebyshev2/cheby2, elliptic/ellip, bessel.

TYPE: str DEFAULT: 'butterworth'

filter_type

lowpass/lp, highpass/hp, bandpass/bp, bandstop/bs/notch.

TYPE: str DEFAULT: 'lowpass'

order

Filter order (1-16).

TYPE: int DEFAULT: 4

freq

Cutoff or center frequency in Hz.

TYPE: float DEFAULT: 1000.0

width

Bandwidth in Hz (required for bandpass/bandstop).

TYPE: float DEFAULT: 0.0

ripple_db

Passband ripple (Chebyshev I, Elliptic) or stopband attenuation (Chebyshev II) in dB.

TYPE: float DEFAULT: 0.0

rolloff

Transition width for Elliptic filters.

TYPE: float DEFAULT: 0.0