Class LinkwitzRileyCrossover
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
sampleRateintSample rate in Hz. Must be positive.
crossoverFrequenciesfloat[]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
Methods
Process(float, Span<float>)
Splits one input sample into Bands band outputs (low → high).
public void Process(float input, Span<float> bandOutputs)
Parameters
Reset()
Clears the filter state.
public void Reset()