Roon Procedural EQ: Channels, Crossovers, IIR

MUSE - Precision Audio Control: Procedural Equalizer

The Procedural Equalizer is the most flexible tool in the MUSE (what is Muse) suite. It lets you build your own signal chain: a list of audio operations that run in the order you set, each applied only to the channels you choose. This is how you build a digital crossover, correct one speaker without touching the other, or re-route and mix channels by hand.

This article is for users comfortable with digital signal processing concepts. If you only want to shape the overall frequency response of a zone, the Parametric Equalizer is the simpler tool for the job.

Important Considerations

Warning
The Procedural Equalizer can mute channels, invert phase, add gain, and re-route audio between channels. A mistake here can produce sudden, very loud output that damages your hearing or your equipment. Please turn your volume down before you enable a new configuration, and turn it up gradually once you've confirmed the result.

Stacking operations that add gain will clip your audio. Before you add gain anywhere in the chain, please review Headroom Management and set enough headroom to accommodate it.

Digital signal processing consumes CPU on your Roon Server. A long chain of operations, particularly at high sample rates, can cause playback to stutter. If you run into performance problems, disable operations one at a time to find the expensive one.

Prerequisites

  • Roon 2.71 (build 1683) or later.
  • A desktop client: Roon on macOS, Windows, or Linux.
  • A zone selected in MUSE. Every MUSE configuration is per zone.

Alert
You can't edit MUSE settings from Roon on a phone or tablet. Mobile remotes let you enable and disable filters, but any editing has to be done from a desktop client. The Procedural Equalizer is also not included in MUSE for Roon ARC 1.81.


Opening the Procedural Equalizer

  1. Open MUSE for the zone you want to configure. There are several ways in, including your volume controls, right-clicking or long-pressing the zone icon, and Signal Path. The full list is in Accessing the MUSE suite.
  2. Scroll down the MUSE sidebar to Filters.
  3. Click Add filter.
  4. Click the + beside Procedural EQ.
  5. Click the blue chevron on the new Procedural EQ row.

The Procedural EQ panel opens with an empty operation list and an Add operation button at the bottom.


How the Procedural Equalizer Works

A Procedural EQ holds a list of operations. Audio enters at the top of the list and passes through each enabled operation in turn, so the order matters: a gain change before a filter produces a different result than the same gain change after it.

Each operation in the list has three controls:

  • A drag handle on the left. Drag an operation up or down to change where it sits in the chain.
  • An Enabled toggle. Switch an operation off to hear the chain without it. This is the fastest way to audition a change or to find a CPU-hungry operation.
  • Remove filter, at the top right of the operation's panel, which deletes it.

Click Add operation to add another. Seven operation types are available: Invert phase, Mix, Delay, Volume, Mute channels, Generic IIR filter, and Parametric equalizer. Each is documented below.

Assigning Operations to Channels

Every operation carries its own independent channel assignment. Assignments are not shared between operations, and they do not carry over when you add a new one.

To set which channels an operation affects:

  1. Click the blue chevron on the operation to open its panel.
  2. Find the Apply to channels list.
  3. Toggle each channel to Yes or No.

Every operation you add starts with this assignment:

ChannelDefault
1: LeftYes
2: RightYes
3: CenterNo
4: LFENo
5: Back LeftNo
6: Back RightNo
7: Surround LeftNo
8: Surround RightNo

Info
Every new operation starts on Left and Right. A second operation will not inherit the channels you set on the first. Please set the channel assignment on each operation as you add it.

To work with more than eight channels, set Show all channels to Yes at the top of the Procedural EQ panel. The list expands to 32 channel slots. Channels 1 through 8 keep their names, and channels 9 through 32 are numbered only.

Operation Reference

Invert phase

Flips the polarity of the selected channels.

Useful when one speaker is wired out of phase, or as part of a mid-side or crossover configuration. It has no parameters: the only thing to set is which channels it applies to.

ParameterTypeDefaultDescription
Apply to channelsToggle per channelLeft and Right onThe channels whose polarity is inverted

Mix

Routes audio from one channel to another, with optional gain and phase inversion.

Mix is a list of mixing rules, not a grid. Each rule takes audio from one input channel and sends it to one output channel. A Procedural EQ starts with one rule per channel, each routing a channel to itself, which leaves the audio unchanged. Build your routing by editing those rules and adding more. Use the three-dot menu beside a rule to manage it.

To send one input to several outputs, add a rule for each destination. To sum several inputs into one output, add a rule for each source pointing at the same output channel.

ParameterTypeDefaultDescription
Input channelDropdownThe channel's own numberThe channel the audio is taken from
Output channelDropdownThe channel's own numberThe channel the audio is sent to
Gain (dB)Numeric0Gain applied to this routing
Invert phaseToggleNoInverts polarity for this routing only

Delay

Delays the selected channels by a set number of milliseconds.

Delay is set per channel, and all channels appear together in one list, so this operation has no separate Apply to channels list. Leave a channel at 0 to pass it through untouched. This is how you time-align drivers in a crossover, or compensate for a speaker that sits closer to the listening position than the others.

ParameterTypeDefaultDescription
Delay (ms)Numeric, per channel0Milliseconds of delay applied to that channel

Volume

Applies a fixed gain to the selected channels.

Use it to balance levels between channels, or to attenuate one leg of a crossover. Gain is limited to the range -24 dB to +24 dB. Values outside that range are clamped to the nearest limit.

ParameterTypeDefaultDescription
Gain (dB)Numeric, -24 to +240Gain applied to every selected channel
Apply to channelsToggle per channelLeft and Right onThe channels the gain is applied to

Mute channels

Silences the selected channels.

It has no parameters beyond the channel selection. Useful for auditioning one channel of a crossover in isolation, or for silencing a channel your system doesn't use.

ParameterTypeDefaultDescription
Apply to channelsToggle per channelLeft and Right onThe channels that are silenced

Generic IIR filter

Applies a single biquad filter from coefficients you supply.

This is the lowest-level tool in MUSE. Use it when you're building a digital crossover and already know the filters you want, expressed as coefficients. For ordinary frequency response adjustments, use the Parametric equalizer operation instead: it's the same class of filter with a usable interface on top.

Roon implements a standard second-order biquad. Enter five coefficients: A1, A2, B0, B1, and B2. Three points matter:

  • A0 is normalized to 1. Filter design formulas, including those in the Audio EQ Cookbook, produce an A0 value. Divide every coefficient by A0 before entering it.
  • Coefficients have the sample rate built in. A filter designed for 44.1 kHz will sit at a different frequency when the stream is 88.2 kHz. Either target a single sample rate, or use Sample rate conversion to normalize incoming material first.
  • Check the sign convention of your source. Coefficients exported from third-party design tools sometimes need the signs of A1 and A2 reversed to behave as intended in Roon.

All five coefficients default to 0. Enter your computed values before you enable the operation.

# Example: normalize before entering
A1 = A1 / A0
A2 = A2 / A0
B0 = B0 / A0
B1 = B1 / A0
B2 = B2 / A0
ParameterTypeDefaultDescription
A1Numeric0First feedback coefficient, normalized against A0
A2Numeric0Second feedback coefficient, normalized against A0
B0Numeric0First feedforward coefficient, normalized against A0
B1Numeric0Second feedforward coefficient, normalized against A0
B2Numeric0Third feedforward coefficient, normalized against A0
Apply to channelsToggle per channelLeft and Right onThe channels the filter is applied to

Parametric equalizer

Places a full parametric equalizer inside the chain, applied only to the channels you choose.

This is the operation to use when you want different equalization on different channels. Add one Parametric equalizer operation per channel or group of channels, then set each one's Apply to channels list accordingly.

Click the chevron beside Filter to open the band editor. It's the same editor as the standalone Parametric EQ filter, with the same band types and controls. Please see Parametric Equalizer for the band parameters. The channel assignment sits below the Filter section on the same panel.

Roon does not include a fixed-band graphic equalizer in the Procedural Equalizer or anywhere else in MUSE. To get the equivalent of a graphic EQ, add bands at the center frequencies you want and set each one's gain.

ParameterTypeDefaultDescription
FilterBand editor7 bands, 5 enabledThe parametric bands applied to the selected channels
Apply to channelsToggle per channelLeft and Right onThe channels the equalizer is applied to

Verifying Your Configuration

Start playback in the zone and open Signal Path. Your Procedural EQ appears as a processing stage, which confirms the chain is engaged rather than bypassed. For more on reading the display, please see Signal Path.

Then check two things:

  1. Headroom. If you've added gain anywhere in the chain, confirm Headroom Management is set to accommodate it. Clipping is the most common result of a working chain that sounds wrong.
  2. Channel assignment. Open each operation and confirm its Apply to channels list matches what you intended. An operation left on its Left and Right default is the most common cause of a chain that processes the wrong channels.

If you're building a speaker configuration rather than a custom chain, Speaker Setup may get you there with less work.

If your chain still isn't processing the channels you expect, please get in touch with our Technical Support team here.