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.
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.
The Procedural EQ panel opens with an empty operation list and an Add operation button at the bottom.
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:
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.
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:
Every operation you add starts with this assignment:
| Channel | Default |
|---|---|
| 1: Left | Yes |
| 2: Right | Yes |
| 3: Center | No |
| 4: LFE | No |
| 5: Back Left | No |
| 6: Back Right | No |
| 7: Surround Left | No |
| 8: Surround Right | No |
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.
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.
| Parameter | Type | Default | Description |
|---|---|---|---|
| Apply to channels | Toggle per channel | Left and Right on | The channels whose polarity is inverted |
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.
| Parameter | Type | Default | Description |
|---|---|---|---|
| Input channel | Dropdown | The channel's own number | The channel the audio is taken from |
| Output channel | Dropdown | The channel's own number | The channel the audio is sent to |
| Gain (dB) | Numeric | 0 | Gain applied to this routing |
| Invert phase | Toggle | No | Inverts polarity for this routing only |
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.
| Parameter | Type | Default | Description |
|---|---|---|---|
| Delay (ms) | Numeric, per channel | 0 | Milliseconds of delay applied to that channel |
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.
| Parameter | Type | Default | Description |
|---|---|---|---|
| Gain (dB) | Numeric, -24 to +24 | 0 | Gain applied to every selected channel |
| Apply to channels | Toggle per channel | Left and Right on | The channels the gain is applied to |
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.
| Parameter | Type | Default | Description |
|---|---|---|---|
| Apply to channels | Toggle per channel | Left and Right on | The channels that are silenced |
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:
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| Parameter | Type | Default | Description |
|---|---|---|---|
| A1 | Numeric | 0 | First feedback coefficient, normalized against A0 |
| A2 | Numeric | 0 | Second feedback coefficient, normalized against A0 |
| B0 | Numeric | 0 | First feedforward coefficient, normalized against A0 |
| B1 | Numeric | 0 | Second feedforward coefficient, normalized against A0 |
| B2 | Numeric | 0 | Third feedforward coefficient, normalized against A0 |
| Apply to channels | Toggle per channel | Left and Right on | The channels the filter is applied to |
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.
| Parameter | Type | Default | Description |
|---|---|---|---|
| Filter | Band editor | 7 bands, 5 enabled | The parametric bands applied to the selected channels |
| Apply to channels | Toggle per channel | Left and Right on | The channels the equalizer is applied to |
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:
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.