Skip to main content
Skip table of contents



Multi-channel envelope detector with programmable attack and release times


This subsystem implements N-way crossover filters of either Linkwitz-Riley or Butterworth design. Internally, the crossovers are constructed out of two other subsystems: a 1in-2out crossover which divides the input into two separate frequency bands and an allpass phase compensation network. The 1in-2out crossover consists of lowpass (first output) and highpass (second output) filters. The lowpass and highpass filters are designed such that the sum of their responses equals an allpass filter with unity gain - and this allpass response equals the response of the allphase phase compensation network. An N-way crossover is constructed by cascading these subsystems.

In the final subsystem, the first output pin (the top pin in Audio Weaver Designer) is the lowest frequency band. Output pin 2 is the next higher frequency band and so on. The last output pin (the bottom one Audio Weaver Designer) is the highest frequency band.

The subsystem .className is generated using the crossover type, number of outputs, and order. For Linkwitz-Riley crossovers, the .className equals "LRXoverN%dOrder%d" where the first integer is the number of bands and the second integer is the order. Similarly, for Butterworth crossovers, the .className equals "ButterXoverN%dOrder%d" where the first integer is the number of bands and the second integer is the order.

The number of 1in-2out crossovers required to make an N-way crossover equals N-1. The number of allpass phase compensation filters grows as O(NxN), so beware, there may be quite a large number of filters! The table below shows the number of 1in-2out crossovers and the number of allpass filters as a function of N, the number of output channels.

N 1in-2out Allpass

2 1 0

3 2 1

4 3 3

5 4 6

6 5 10

See some of the example below for the topology of the crossover system.

In the Linkwitz-Rily design, the lowpass and highpass splitting filters are always 4th order. The splitting filters are each formed as a cascade of 2 second order Butterworth filters. The allpass compensating filter is 2nd order based on a Butterworth design.

In the Butterworth filter design, the lowpass and highpass filters are each standard Butterworth designs and the order must be odd. The odd order requirement ensures that the sum of the splitting filters is an allpass, and the allpass compensation filter equals the the sum of the splitting filters. The order of the allpass compensation filter matches the order of the splitting filters. Thus, 5th order splitting filters require a 5th order allpass network

Type Definition

-Not Shown-







Default value







[1 x 1]










Input Pins

Name: in

Description: audio input

Data type: float

Channel range: Unrestricted

Block size range: Unrestricted

Sample rate range: Unrestricted

Complex support: Real

Output Pins

Name: out1

Description: Audio output

Data type: float

Name: out2

Description: Audio output

Data type: float

Scratch Pins

Channel count: 1

Block size: 32

Sample rate: 48000

Channel count: 1

Block size: 32

Sample rate: 48000


File Name: xover_nway_subsystem.m

 SYS=xover_nway_subsystem(NAME, N, ORDER, isHP)
 Creates a subsystem that implements N-way crossovers of various types.
 The module has a single input pin and N output pins.  Each pin can
 be multichannel.  The subsystem divides the input signal into N
 distinct frequency bands.  The first band extends from DC to
 cutoff(1) Hz; the second band extends from cutoff(1) to cutoff(2) Hz;
 the last band extends from cutoff(N-1) to Nyquist.  Arguments:
   NAME - name of the subsystem
   N - number of output bands.  This should be in the range 2 to 12.
   ORDER - order of each of each crossover filter.
           An even ORDER will use the Linkwitz Riley design.
           An odd ORDER will use the Butterworth filters.
   isHP - use high-precision filter or regular filter
 ORDER determines what type of crossover is used. If the ORDER is even, a
 Linkwitz Riley crossover design will be used. If the ORDER is odd, a
 Butterworth filter design si used.
 The function returns a subsystem that implements the crossover.  The
 subsystem's input pin is named '.in' and the outputs are named
 '.out1', '.out2', etc.
 07/07/2014 - added isHP option. For the option of using high
 precision filters instead

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.