JBL M2, FIR/Convolution Crossover Implementation via Roon

Hi,

As the title suggestions I’m looking to implement FIR (Convolution) crossovers using Roon convolution.

My signal path will be:
Roon Server > RPI4 USB > Motu MK5 Lite > 2x NAD c298 amps.
This setup is tested and working for procedural crossover upto 8 channels.

The JBL M2 crossovers parameters can be found at the end of this doc: https://rephase.org/projects/JBL_M2_crossover.pdf
These filters have been cross referenced/measured against JBL OEM filters.

Rephase M2 Low:
image

Rephase M2 High:

I have a decent understanding of how to use Rephase to generate the appropriate wav outputs. But it seems I need to create config .cfg (for each sampling rate used) to instruct correct application and channel routing, as noted by the Roon help page. https://help.roonlabs.com/portal/en/kb/articles/dsp-engine-convolution#Convolver_text_configuration_support

As such, I was hoping some advanced users might be able to offer some advice and assistance here.

This is my “go” at creating a .cfg for 44100, referencing a 2x4 convolution.
Reference here: Config examples

For My JBL m2 setup… Stereo source, 4 outputs……
44100 2 4 33 #44.1khz, stereo in, 4 channels out, up to 4 channel mapping
0 0 #Delay on inputs)
0 0 0 0 #Delay on outputs)
Drive:\high44.wav #Location of 44.1 wav)
0
0.0 #Channel 1 input left
0.0 #Channel 1 output left
Drive:\high44.wav #Location of 44.1 wav)
0
1.0 #Channel 2 input right
2.0 #Channel 3 output right
Drive:\low44.wav
0
0.0 #Channel 1 input left
1.0 #Channel 2 output left
Drive:\low44.wav
0
1.0 #Channel 2 input right
3.0 #Channel 4 output right

Does this look correct? I assume I just create .cfg for each sampling rate used if not resampling to a fixed sampling rate? I.e. I.e. 48000, 96000, 192000

Many thanks.

The examples in Roon’s help article are from my Loft setup:

You can’t use absolute paths (with drive letters, etc.) for the filter files. Drop the Drive:\ bit from each and just list the filenames.

You need a separate file for each sampling rate, but I would just do one for 44.1 kHz and one for 48 kHz. Roon will upsample the rest.

I believe that I was told previously that not including higher resolution files will add to the processing load and if you have higher res files you should use them.

In my case I was trying to apply convolution to DSD and my sonicTransporter i7 (from several years ago) did not have the power to pull it off.

1 Like

Thanks that’s helpful.
In terms of the structure and content of the .cfg do they look about right?

Example @ 44.1khz, stereo in, 4 channels out, up to 4 channel mapping

44100 2 4 33
0 0
0 0 0 0
high44.wav
0
0.0
0.0
high44.wav
0
1.0
2.0
low44.wav
0
0.0
1.0
low44.wav
0
1.0
3.0

I assume these .cfg files are simply renamed text files.
One thing that does confuse me is the output channel mask… and how it would apply to my M2 2x4 solution.

The convolver website example suggests 33 to be used for a 2x4 setup, it seems to be an addition of the speaker position hex bits, 1,2,10,20… but I really don’t understand how its generated… or what the correct number would be for my situation, in the context to how Roon assigns channel mapping…

Convolver suggestion/example here:

Can anyone describe how the output mask needs to be calculated in the context of Roon?

Looking at a basic procedural filter in Roon (Yes not Convolution), channel mapping follows the following:
image
So in this circumstance, 1+3 left, 2+4 is right.

Thanks in advance.

Yeah agreed. I will simply create the sampling rates I need.