Table of Contents

Class LinkwitzRileyCrossover

Namespace
NAudio.Dsp
Assembly
NAudio.Core.dll

Linkwitz–Riley 4th-order (24 dB/oct) crossover that splits a single channel into N contiguous bands at N-1 ascending crossover frequencies. Each split is two cascaded Butterworth biquads (LR4); a two-band split sums back to a magnitude-flat (all-pass) response. For more than two bands the split is serial, which carries a small recombination ripple — fine for band-wise dynamics, which is its purpose. A reusable building block for multiband compression and the de-esser.

public sealed class LinkwitzRileyCrossover
Inheritance
LinkwitzRileyCrossover
Inherited Members

Constructors

LinkwitzRileyCrossover(int, params float[])

Creates a crossover.

public LinkwitzRileyCrossover(int sampleRate, params float[] crossoverFrequencies)

Parameters

sampleRate int

Sample rate in Hz. Must be positive.

crossoverFrequencies float[]

Ascending crossover frequencies in Hz (each strictly between 0 and Nyquist). One frequency yields two bands.

Properties

Bands

Number of output bands (crossover count + 1).

public int Bands { get; }

Property Value

int

Methods

Process(float, Span<float>)

Splits one input sample into Bands band outputs (low → high).

public void Process(float input, Span<float> bandOutputs)

Parameters

input float
bandOutputs Span<float>

Reset()

Clears the filter state.

public void Reset()