• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

REW filters into JRiver Convolution

Matias

Master Contributor
Forum Donor
Joined
Jan 1, 2019
Messages
5,031
Likes
10,806
Location
São Paulo, Brazil
I spent some time trying to figure out how to make this work, gathering information from different sources, and now that it is working, I share below if someone is interested. I am far from an expert, but this is a starting point for noobs like me.

The basic idea is to make measurements with REW, create an EQ filter, export the filter as convolution wave files, and use them with JRiver Media Center. It is possible to do a lot more advanced operations (multichannel, speaker crossover, crosstalk, etc), but I am showing what I did for simple stereo playback only.

The convolution wave file has its tricks:
- Can use 1 mono wave file per channel, or 1 stereo wave file for 2 channels.
- The wave files are specific for a sampling rate (44.1, 48, 88.2, 96 kHz etc).


In REW, assuming one has done the measurements and created the EQ filters (see a tutorial here), then go to File - Export - Export filters impulse response as WAV.

1.jpg


I used Stereo file and selected each measurement (left/right speaker) to the corresponding left/right channel of the wave file. Then tick the boxes for which sample rates REW will create the EQ filter wave files. When saving, select a filename, and REW is going to create the wave file and append a suffix to the name with the sampling rate. Example: write "filter" and it will create "filter-44k.wav".

2.jpg


JRiver Media Center has a very manual way of configuring it to use the convolution wave files (see here). One can go to Audio - DSP - Convolution and choose one the options below:
  1. To use a single wave file directly. All music sampling rates will be resampled to use the sampling rate of the convolution wave file. Example: convolution filter wave file is 44.1 kHz, all the music being played, be it 48 kHz, 96 kHz or DSD64, will be resampled to 44.1 kHz during playback before using that filter wave file.

  2. To use 1 configuration file, which I had to create using their tutorial, in which for 1 sampling rate you specify which wave files to use. Same as above, it will resample all other sampling rates to that frequency specified in the config file. But with the config file one can use 2 mono wave files and map so that each channel of the music uses the appropriate wave file.

  3. And finally, what I ended up using, is to set up multiple configuration files, one for each sampling rate pointing to its stereo wave file. The config files need to use a specific file name format. This way, for each sampling rate JRiver MC is going to play, it chooses the correct config file and the correct convolution wave file.

For option 3, I set up 2 config files for the sampling rates of 176.4/192 kHz, and had the Audio - Output Format do resampling of the different sampling rates in order to use one of the configs below. In my case, I chose to use 1 stereo filter wave file for the 44.1/88.2/176.4 kHz "family", and 1 stereo filter wave file for the 48/96/192 kHz "family".

ressampling.jpg


The config files are below (filename and the content I wrote on Notepad).

config2.0_176.cfg​
176400 2 2 0​
0 0​
0 0​
C:\path\filter-176k.wav​
0​
0.0​
0.0​
C:\path\filter-176k.wav​
1​
1.0​
1.0​
config2.0_192.cfg​
19200 2 2 0​
0 0​
0 0​
C:\path\filter-192k.wav​
0​
0.0​
0.0​
C:\path\filter-192k.wav​
1​
1.0​
1.0​

So finally it is done. During playback, the Audio - DSP - Convolution screen shows if all is working correctly. Depending on the song, MC should be auto-switching between the config files and filter wave files now. :)

3.jpg
 
Last edited:

ernestcarl

Major Contributor
Joined
Sep 4, 2019
Messages
3,106
Likes
2,313
Location
Canada
I've only recently figured how to do this myself in the past weeks.

I prefer to use rePhase for creating the convolution files, but only to make "minor" phase adjustments to maximize phase compliance between all channels with the least amount of delay. All other DSP work is still handled elsewhere.

My own use case is simple: for example, in my multichannel configuration, there is only one sample rate i.e. everything is upmixed/downmixed to 48kHz 5.1 MCH -- BUT, a center channel does not exist so it's bypassed...


----

config_phase_adjust.txt


4800 6 6 0
0 0 0 0 0 0
0 0 0 0 0 0
C:\Users\ernes\rePhase\mains.wav
0
0.0
0.0
C:\Users\ernes\rePhase\mains.wav
0
1.0
1.0
C:\Users\ernes\rePhase\sub_LFE.wav
0
3.0
3.0
C:\Users\ernes\rePhase\surrounds.wav
0
4.0
4.0
C:\Users\ernes\rePhase\surrounds.wav
0
5.0
5.0


-----


I just copied and modified some of the examples config files I found from other forums.
 
OP
Matias

Matias

Master Contributor
Forum Donor
Joined
Jan 1, 2019
Messages
5,031
Likes
10,806
Location
São Paulo, Brazil
Now trying to figure out why there is a gap between songs while playing DLNA with convolution to a Rendu...
 
Last edited:
OP
Matias

Matias

Master Contributor
Forum Donor
Joined
Jan 1, 2019
Messages
5,031
Likes
10,806
Location
São Paulo, Brazil
Added pictures as we all know a thread is worthless without pictures. :)
 

ernestcarl

Major Contributor
Joined
Sep 4, 2019
Messages
3,106
Likes
2,313
Location
Canada
Some visualization graphs of my FIR phase filter corrections:

For my 4.1 mch setup

1618077299169.png

Speakers are already "phase linear" so very little correction applied to simply match better with surround channels.

1618077313732.png

The LSR305 required a single "Minimum-Phase Filters Phase Correction" centered at 1725 Hz +15 paragraphic phase EQs "only".

1618077991084.png




1618077329970.png

Looks extreme but the area of concern are potential frequencies up to 300Hz


1618077345867.png

FDW 5 cycles


1618077382442.png


Not only the LFE, but even a small correction (really just a "small" nudge) with the surrounds+sub managed summed combo fixed a shallow but quite wide dip between 40-80Hz.


The most "textbook flat" looking saved correction profile preference I've done with the KH120 + Rythmik F12 sub nearfield desk setup:

1618078398946.png

6144 taps at used at 48kHz sampling with an ~64ms delay

Step response just happens to be somewhat easy to correct here given the already very good setup and alignment made beforehand.

1618078668542.png


1618078717934.png


All other EQ filters are just simple IIR PEQs in my miniDSP -- except for the HF shelving which I am now using a linear phase filter (separate profiles) for via JRiver.

1618078759947.png


This looks unusually smooth BECAUSE it's a spatial vector average of 50 sweeps across a fairly wide area: 0.7-1m distance 20x15x5 inches LxWxH. Takes time and definitely not something one does ordinarily.
 
Last edited:

ernestcarl

Major Contributor
Joined
Sep 4, 2019
Messages
3,106
Likes
2,313
Location
Canada
Some visualization graphs of my FIR phase filter corrections:

For my 4.1 mch setup

View attachment 123215
Speakers are already "phase linear" so very little correction applied to simply match better with surround channels.

View attachment 123216
The LSR305 required a single "Minimum-Phase Filters Phase Correction" centered at 1725 Hz +15 paragraphic phase EQs "only".

View attachment 123223



View attachment 123217
Looks extreme but the area of concern are potential frequencies up to 300Hz


View attachment 123218
FDW 5 cycles


View attachment 123219

Not only the LFE, but even a small correction (really just a "small" nudge) with the surrounds+sub managed summed combo fixed a shallow but quite wide dip between 40-80Hz.


The most "textbook flat" looking saved correction profile preference I've done with the KH120 + Rythmik F12 sub nearfield desk setup:

View attachment 123225
6144 taps at used at 48kHz sampling with an ~64ms delay

Step response just happens to be somewhat easy to correct here given the already very good setup and alignment made beforehand.

View attachment 123226

View attachment 123227

All other EQ filters are just simple IIR PEQs in my miniDSP -- except for the HF shelving which I am now using a linear phase filter (separate profiles) for via JRiver.

View attachment 123228

This looks unusually smooth BECAUSE it's a spatial vector average of 50 sweeps across a fairly wide area: 0.7-1m distance 20x15x5 inches LxWxH. Takes time and definitely not something one does ordinarily.

Heck, I probably should be using the PCM format instead of IEEE wave... JRiver seems not to mind(?). Hmmmn... will have to search the rePhase threads in other corners to find out the difference.

*The generic filters in REW correspond with "proportional" Q rather than "constant" Q which is default for rephase. FYI, JRiver parametric EQ also seems equivalent to proportional -- I mistakenly used constant Q algorithm in the paragraphic gain EQ section tab before -- but this was only for visualizing more clearly in my mind what effect my EQ potentially have to the overall system.
 
Last edited:

ernestcarl

Major Contributor
Joined
Sep 4, 2019
Messages
3,106
Likes
2,313
Location
Canada
Heck, I probably should be using the PCM format instead of IEEE wave... JRiver seems not to mind(?). Hmmmn... will have to search the rePhase threads in other corners to find out the difference.

FYI: It looks like it's okay after all. Also, I've also now fully linearized the speakers in my sofa setup so the above phase trace examples are all essentially "flat" -- all setups requiring only 2048 taps for some very general "fuzzy" phase correction.

If one is using JRiver's PEQ section I've also outlined some templates as a simple guide for manual bass-management in another thread here.
 
Last edited:

mccarty350

Member
Joined
Dec 10, 2020
Messages
39
Likes
14
FYI, as of this last weekend I have been able to emulate the active crossover scenario described here using:
Jriver 2 channel output with fixed sampling rate of 96khz -> jriver convolver for room curve/shaping -> hifiaudio cable -> ekio -> 4 channel (I haven't purchased the full version yet) output to a pair of active crossover two ways. It worked out great.

I ended up trying a few audio interfaces and the one that acted in a completely stable and predictable manner was the Behringer U-Phoria UMC1820.

I was also able to get this to work using jriver's parametric eq to build crossover slopes but that was an incredibly painful process. Using this method involved involved sending out 8 channel output direct from jriver.

I noticed that Dephonica which is listed as an EKIO alternative seems to be nonresponsive i.e. I was unable to solicit an answer from them nor to download a demo.

I am considering purchasing Ekio but before doing so I would like to know if anyone has encountered any jriver vst's that build crossover slopes, etc.

Thanks,

John
 

mccarty350

Member
Joined
Dec 10, 2020
Messages
39
Likes
14
Hahahah EXCELLENT I discovered it and began working with it last night believe it or not so it's a great suggestion.

Question:
In my scenario I'm rebuilding my Linkwitz LX521.4 active crossover which I had hosted in minidsp onto jriver as I'm trying to consolidate to software/multichannel dac platforms due to the mostly unlimited taps/peq's/etc.

In this case I'm taking 2 channel stereo and breaking it out over 8 channels for an active crossover:
Tweeter x 2
Upper Mid x 2
Lower Mid x 2
Woofer x 2

To make the parametric eq and crossover portions work I was required to set up a 7.1 output configuration and I treat the sub like any other channel.

How do I setup my convolution? I would think that somehow I need to do this over two channels not have literally 8 channels of convolution right?

Prior to this I was trying this through Ekio where I fed 2 channels of of stereo output + convolver house curve into EKIO where it broke it out into 8 channels. I'm having some trouble mentally wrapping my brain around how to do all of this within jriver.

Thanks,

John
 

3ll3d00d

Active Member
Joined
Aug 31, 2019
Messages
207
Likes
173
How do I setup my convolution? I would think that somehow I need to do this over two channels not have literally 8 channels of convolution right?
so you're doing crossovers in PEQ then adding PEQ on top of that afterwards?

if so, your convolver cfg would have 8 paths in it. Assuming your used channels 1-4 for the L and 5-8 for the R then it could be

Code:
1->1 (L W)
1->2 (L LM)
1->3 (L UM)
1->4 (L T)
2->5 (R W)
2->6 (R LM)
2->7 (R UM)
2->8 (R T)

the cfg file format for each path is

Code:
<filter filename>
<filter channel>
<input channel>
<output channel>

so assuming a mono wav for each channel it would be like

Code:
/some/path/LT.wav
0
0.0
3.0

i.e. take the 1st channel of the LT.wav file, apply it to the 1st input channel (the L of the source) and output it to the 4th channel

repeat for all the other channels and add the header like

Code:
48000 8 8 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0

and it should then work

if your PEQ doesn't care about the multiple ways then it's probably simpler to do that before convolution and just apply the PEQ to the L&R only
 

mccarty350

Member
Joined
Dec 10, 2020
Messages
39
Likes
14
Let me provide more of my intent and isolate where my confusion is. Yes, I am doing the crossovers in PEQ using BEQ designer. Included in scope:
1. High pass/low pass
2. PEQ's

Out of scope:
1. Room correction or applying a room curve which I'll likely do via convolver.

Confusion:
Given that for me to make an active crossover for 8 channels in Parametric Equalizer plugin I need to define my jriver output as 7.1 how can I apply my convolver to two channels? I believe I should only be applying these things before the PEQ plugin but I don't see how I can do so.

Does this make sense? I'm pretty sure that I have to define my output as 7.1 in order to even be able to break things out and define them at the PEQ plugin level but if I set the output to 7.1 I believe I am eliminating the possibility of applying convolution to two channels anywhere in the chain.

I hope this is something simple and that I'm misunderstanding things. I'm trying to provide several alternative processes to doing this so that we can have a few methods disseminated to the members of the Georgia Audio Society. One using EKIO which requires it's purchase where you take jriver output in two channels, apply convolver, then output to EKIO where the 8 channel break out occurs that I successfully performed and another whereby we use only jriver and that's where I'm stumbling.
 

3ll3d00d

Active Member
Joined
Aug 31, 2019
Messages
207
Likes
173
You just need to use the 2 channel in a 7.1 container option. This will put the source content in the L and R channels and leave 6 channels empty for you to do whatever you want in. Mixing can be done in peq (using mix channels) or convolution as you like. It's not obvious to me why you'd use ekio with jriver, is it just a different/nicer UI or it actually has some feature MC doesn't?
 

mccarty350

Member
Joined
Dec 10, 2020
Messages
39
Likes
14
Thank you so much. This is exactly the direction that I needed. Totally makes sense, I can mix everything out to whatever channels I need.

As for Ekio it is graphically simpler and more intuitive and plus I was wrestling with the problem that you helped me through on how to run a convolver over two channels and yet get 8 channels of output.

I also was unaware of the existence of BEQ designer making the integrated PEQ settings even more unintuitive.

So it sounds like i'm going to set the output to stereo in a 7.1 container, bump my convolver above the peq in plugin in the order of processing and run my two channel convolver files there and then copy left and right channels to the appropriate channels in the mixer and apply the crossovers.

I much appreciate the clarity!
 
Top Bottom