Crossover

Splits audio into 2–4 Linkwitz-Riley bands, output as one band-major bundle whose bands sum back flat.

  • Filter
  • Since 0.2.0
  • filter
  • crossover
  • bands
  • multiband
  • split
  • linkwitz-riley

Open in TuneToys

Crossover as the Patch draws it, at default values: inlets on the left, outlets on the right.

A crossover splits a sound into frequency bands, so each can be processed on its own and added back together.

What it does#

Each split divides the signal into a low and a high band with Linkwitz-Riley filters, the kind used in loudspeaker crossovers: at the split frequency both bands are 6 dB down, and added together they give back the original level at every frequency. Lower bands also pass the allpass response of every split above them, so the phase of all bands lines up and the sum of every band is flat. Two bands split once, at Low split; three bands split at Low split and High split; four bands add Mid split between them. Split frequencies are used lowest first, so the bands always run from low to high.

The output is one bundle holding every band, band by band: with a stereo input and three bands it carries six channels, 1–2 the low band, 3–4 the middle and 5–6 the high band. Pick a band with Select channels, process it, and add the bands back with a Mixer. Because the number of bands sets how many channels the output carries, Bands is chosen on the node; a control or cable cannot drive it.

Slope sets how steeply each band falls past its split: LR12 is 12 dB per octave, LR24 24 dB and LR48 48 dB. Every slope sums flat. At LR12 each upper band is polarity-inverted, which is what makes that slope sum flat. The node adds no latency.

When to use it#

Use it to compress, distort, widen or delay one frequency range of a sound and leave the rest alone, or to send lows and highs to different places. For the common case of a three-band compressor in one node, use the Multiband compressor; to shape tone without splitting, use the Parametric EQ.

Ports#

PortDirectionSignalLanes
audioInputAudioInferred from the cable
audioOutputAudioInferred from the cable

Parameters#

ParameterLabelRangeDefaultUnitScaleNotes
bandsBands2 to 43linearSets the output width to bands × input channels, so it is set on the node, never by a control or cable. Choices: 2 Two, 3 Three, 4 Four.
low_hzLow split20 to 2000200HzlogTop of the lowest band; the only split at two bands.
mid_hzMid split100 to 80001000HzlogDivides the middle into two bands at four bands. Shown when bands is 4.
high_hzHigh split500 to 160004000HzlogBottom of the highest band at three and four bands. Shown when bands is 3 or 4.
slopeSlope0 to 21linearLinkwitz-Riley order: 12, 24 or 48 dB per octave. Every slope sums flat; LR12 inverts each upper band. Choices: 0 LR12, 1 LR24, 2 LR48.

Bands (bands)#

Two, three or four bands. The output carries this many copies of the input's channels, so it is set on the node, never by a control or cable.

Low split (low_hz)#

The top of the lowest band, from 20 to 2000 Hz. At two bands it is the only split.

Mid split (mid_hz)#

Divides the middle into two bands, from 100 to 8000 Hz. Used only at four bands.

High split (high_hz)#

The bottom of the highest band, from 500 to 16000 Hz, at three and four bands.

Slope (slope)#

The Linkwitz-Riley order: LR12, LR24 or LR48, for 12, 24 or 48 dB per octave.

Tips#

  • Keep splits at least an octave apart so each band has room of its own.
  • LR24 is the usual choice; LR48 isolates bands more sharply, LR12 overlaps them more gently.
  • Leave a band's path empty to hear the other bands without it.

See also#

Multiband compressor, Select channels, Parametric EQ, Filter.

Help patches

Each help patch is an ordinary Toy that teaches one idea. The diagram shows the Patch; the preview shows its Frame. Open it in TuneToys to play and edit it.

1. Split into three bands

beginner Teaches: low_hz, high_hz

A crossover splits a bright saw into low, mid and high bands, each with its own level.

Patch: Oscillator audio output connected to Mixer “source” saw.in input. Gain “low_gain” audio output connected to Mixer “join” low_gain.in input. Gain “mid_gain” audio output connected to Mixer “join” mid_gain.in input. Gain “high_gain” audio output connected to Mixer “join” high_gain.in input. Mixer “join” audio output connected to Patch outputs audio input. Noise audio output connected to Mixer “source” air.in input. Mixer “source” audio output connected to Crossover audio input. Crossover audio output connected to Select channels “low” audio input. Crossover audio output connected to Select channels “mid” audio input. Crossover audio output connected to Select channels “high” audio input. Select channels “low” audio output connected to Gain “low_gain” audio input. Select channels “mid” audio output connected to Gain “mid_gain” audio input. Select channels “high” audio output connected to Gain “high_gain” audio input.
Connections as text
  • Oscillator audio output connected to Mixer “source” saw.in input
  • Gain “low_gain” audio output connected to Mixer “join” low_gain.in input
  • Gain “mid_gain” audio output connected to Mixer “join” mid_gain.in input
  • Gain “high_gain” audio output connected to Mixer “join” high_gain.in input
  • Mixer “join” audio output connected to Patch outputs audio input
  • Noise audio output connected to Mixer “source” air.in input
  • Mixer “source” audio output connected to Crossover audio input
  • Crossover audio output connected to Select channels “low” audio input
  • Crossover audio output connected to Select channels “mid” audio input
  • Crossover audio output connected to Select channels “high” audio input
  • Select channels “low” audio output connected to Gain “low_gain” audio input
  • Select channels “mid” audio output connected to Gain “mid_gain” audio input
  • Select channels “high” audio output connected to Gain “high_gain” audio input
  • Three bands of a stereo cable make one six-lane bundle, band by band: lanes 1–2 low, 3–4 mid, 5–6 high. Select channels picks each pair.
  • With every level at 1 the bands add back to the original sound: the split is flat.
Frame preview: Split into three bandsFrame “Split into three bands” with 6 elements: text heading, knob High split, knob High level, knob Low split, knob Low level, knob Mid level.SPLIT INTO THREE BANDS3000 HzHigh split1 linearHigh level250 HzLow split1 linearLow level1 linearMid level
Frame preview (static). Controls show their default values.

Open in TuneToys

2. Four bands and the slope

intermediate Teaches: slope, mid_hz

Four bands with the upper mids muted, to hear how steep each Linkwitz-Riley slope is.

Patch: Oscillator audio output connected to Mixer “source” saw.in input. Select channels “lows” audio output connected to Mixer “join” lows.in input. Gain “low_mid_gain” audio output connected to Mixer “join” low_mid_gain.in input. Gain “high_mid_gain” audio output connected to Mixer “join” high_mid_gain.in input. Select channels “highs” audio output connected to Mixer “join” highs.in input. Mixer “join” audio output connected to Patch outputs audio input. Noise audio output connected to Mixer “source” air.in input. Mixer “source” audio output connected to Crossover audio input. Crossover audio output connected to Select channels “lows” audio input. Crossover audio output connected to Select channels “low_mids” audio input. Crossover audio output connected to Select channels “high_mids” audio input. Crossover audio output connected to Select channels “highs” audio input. Select channels “low_mids” audio output connected to Gain “low_mid_gain” audio input. Select channels “high_mids” audio output connected to Gain “high_mid_gain” audio input.
Connections as text
  • Oscillator audio output connected to Mixer “source” saw.in input
  • Select channels “lows” audio output connected to Mixer “join” lows.in input
  • Gain “low_mid_gain” audio output connected to Mixer “join” low_mid_gain.in input
  • Gain “high_mid_gain” audio output connected to Mixer “join” high_mid_gain.in input
  • Select channels “highs” audio output connected to Mixer “join” highs.in input
  • Mixer “join” audio output connected to Patch outputs audio input
  • Noise audio output connected to Mixer “source” air.in input
  • Mixer “source” audio output connected to Crossover audio input
  • Crossover audio output connected to Select channels “lows” audio input
  • Crossover audio output connected to Select channels “low_mids” audio input
  • Crossover audio output connected to Select channels “high_mids” audio input
  • Crossover audio output connected to Select channels “highs” audio input
  • Select channels “low_mids” audio output connected to Gain “low_mid_gain” audio input
  • Select channels “high_mids” audio output connected to Gain “high_mid_gain” audio input
  • Four bands make eight lanes. The upper-mid band is muted: a steeper slope carves a deeper, sharper hole.
  • Mid split divides the middle into two bands; it only appears at four bands.
Frame preview: Four bands and the slopeFrame “Four bands and the slope” with 5 elements: text heading, knob High-mid level, knob Low-mid level, knob Mid split, segmented Slope.FOUR BANDS AND THE SLOPE0 linearHigh-mid level1 linearLow-mid level900 HzMid splitLR12LR24LR48Slope
Frame preview (static). Controls show their default values.

Open in TuneToys

  • Multiband compressor Three-band compressor on a flat-summing crossover: per-band threshold, ratio, attack, release, makeup and solo, then an output trim.
  • Select channels Extract a contiguous channel range. Use several selectors to split a bundle.
  • Parametric EQ Parametric EQ with up to 32 reorderable RBJ bands: cuts, shelves, bells and notches, per-band bypass and output trim.
  • Filter Low-pass, high-pass, band-pass, notch, all-pass or morphing filter with resonance, 12/24 dB slopes, curve editing and output RTA.

Edit this page on GitHub

esc

↑ ↓ move↩ open⌘↩ new tabesc close