Procedure for measuring different convolution engines

Keith_W

New Member
Thread Starter
Joined
Apr 3, 2018
Posts
10
Hello guys, and thanks for the great software. I have been using it for years. Please excuse my ignorance. I do not have a background in pro audio. I am a consumer audio hobbyist. I bought a RME Fireface UC to help implement my 8 channel home stereo.

Background of my problem: I am running a pair of four way speakers in stereo. I generate crossover filters using Acourate, then use a convolution engine to send 8 channels of digital into an 8 channel DAC. From there, it goes to 8 channels of power amplification, and then to each driver.

Subjectively, the convolution engines I am using (HQPlayer and Acourate Convolver) sound different even though they are running the same filters. They continue to sound different even after being level matched with a handheld SPL meter.

I want to measure the output of HQPlayer and compare it to Acourate Convolver, preferably before the signal undergoes DA conversion to find out if I am imagining things or it is real.

What I want to know is: how do I do this.

1. I will be using (REW) to generate the log sweeps and to take the measurements. Setup of REW seems simple enough. All I need to do is run a pre-recorded sweep through each convolution engine using this procedure: https://www.avnirvana.com/threads/can-rew-measure-a-pre-recorded-sweep.599/#post-6391

2. The main issue is that both convolution engines will be using the SAME ASIO output that REW will be using for its input. I don't know enough about RME Totalmix to know how to configure it to make this possible.

The relevant section in the manual (on page 71) says:

"Recording a Software's playback
In real world application, recording a software's output with another software will show the following problem: The record software tries to open the same playback channel as the playback software (already active), or the playback one has already opened the input channel which should be used by the record software.

This problem can easily be solved. First make sure that all rules for proper multi-client operation are met (not using the same record/playback channels in both programs). Then route the playback signal via TotalMix to a hardware output in the range of the record software, and activate Loopback for recording."

The section I have highlighted is giving me problems. How exactly do I do this?

At present this is how the RME is set up:

Digital input 1: Left subwoofer
Digital input 2: Right subwoofer
Digital input 3: Left woofer
Digital input 4: Right woofer
Digital input 5: Left mid
Digital input 6: Right mid
Digital input 7: Left tweeter
Digital input 8: Right tweeter
Microphone input: Microphone (Earthworks M30)

I presume that I need to repeat the procedure 8 times for each channel, each time routing one of the digital outputs into the mic input?
 

Matthew J Poes

AV Addict
Joined
Oct 18, 2017
Posts
1,904
I have explained how to use totalmix for a loopback measurement in https://yabb.jriver.com/interact/index.php?topic=112967.0

Hopefully that gives you enough to get it working

This is right on, you want to do a loop back measurement to create a transfer function response.

Check for evidence of clipping. Some convolution engines I've used clipped for some reason. That will make a big difference in sound, and it doesn't always sound like you expect.
 

Keith_W

New Member
Thread Starter
Joined
Apr 3, 2018
Posts
10
Thank you so much for your help gents, especially 3ll3d00d - are you Matt Khan? I'll take a look at this when I get back home later. Most grateful.

Let me see if I have the procedure correct.

1. Use REW to generate .WAV files of logsweeps

2. In my playback software, this is what I set:
- Output sound card, ASIO RME Fireface

3. In RME Totalmix,
- Loopback according to that procedure

4. In REW:
- Input, ASIO RME Fireface
- Make sure "Wait for timing reference" box is checked, then Click Start Measuring

5. Go back to playback software and play back .WAV file of log sweep with timing chirp which I pre-generated with REW
 
Last edited:

Keith_W

New Member
Thread Starter
Joined
Apr 3, 2018
Posts
10
All right, I have run into a new problem. REW doesn't wait for the timing chirp, it just starts measuring straight away. I am using the newest version of REW which I downloaded yesterday.

I followed the procedure in https://www.avnirvana.com/threads/can-rew-measure-a-pre-recorded-sweep.599/#post-6391

1. I recorded the .WAV file using "Meas.Sweep". I maxed out the volume (-3dBfs), 20Hz - 21kHz, 1M, and 48kHz. I did this for left and right channels. I also made sure that the timing chirp was there.
2. I played back the .WAV file through the speakers and I could hear the timing chirp AND the log sweep. So far so good.
3. In REW, I removed the sound card and mic calibration files as recommended in that link.
4. I clicked on "Measure". I made sure the Start Freq = 20, the End Freq = 21kHz, length 1M. I selected "Use acoustic timing reference", and made sure the "Wait for timing reference" box was checked.
5. In the Playback software, I made sure that it output at 48kHz, same as the .WAV and same setting as REW.

I then click "Start Measuring" and REW immediately takes a measurement without waiting for the timing chirp! Result:

rew.jpg


What have I done wrong?
 
Last edited:

Keith_W

New Member
Thread Starter
Joined
Apr 3, 2018
Posts
10
I don't think I did. In any case, if I select "Use acoustic timing reference", REW shouldn't output a sweep ... should it?
 

John Mulcahy

REW Author
Joined
Apr 3, 2017
Posts
8,115
Yes, it will - REW doesn't 'know' you are playing your own sweep, as far as it is concerned it is making a normal measurement, playing its sweep, just waiting to see the timing reference before starting capture.
 

Keith_W

New Member
Thread Starter
Joined
Apr 3, 2018
Posts
10
Thanks John. I'll go and take another look. This is giving me a headache.
 

Keith_W

New Member
Thread Starter
Joined
Apr 3, 2018
Posts
10
I managed to figure it out. For the benefit of anyone else wanting to perform the same procedure, here are all the steps required.

1. Create log sweep for offline playback
- In REW, go to "Generator". You will get this screen:
rewsetting2.jpg

- In the Generator, set start frequency 20Hz, End frequency 21kHz, 1M length, and max out the RMS volume at -3.0. Click on WAV.
- The window on the left pops up. Choose your sweep channel (in this case Left), and make sure the "Add timing reference signal" and Sample rate of 48kHz is selected.
- Click "OK" to save the .WAV file.

2. Load the .WAV file into your player of choice
- I loaded the .WAV file into both Acourate Convolver and HQPlayer.
- In AC: I set output to 48kHz and ASIO output to RME Fireface
- In HQP: do the same.
- Verify that the .WAV sound is correct by playing it through your speakers. You should hear a high frequency chirp followed by a normal log sweep.

3. Set RME Totalmix for Loopback
- Open RME Totalmix:
totalmix4.jpg

- In the bottom panel (Hardware Outputs) click on ADAT 3/4. Note that all the Software Playback channels shows ADAT 3/4 as the output channel.
- Adjust the volume in each software playback channel to max
- Click on ADAT 3/4 and press the LOOPBACK button - it will glow orange.
- Go to the top right panel and increase adjust output volume (see later).

4. In REW, set up for measurement:
- Open REW and click on the "Measure" button:
rewsetting.jpg

- Choose "Use Acoustic Timing Reference"
- Make sure "Wait for timing reference" is checked
- Set start freq, end freq, level, and length to be exactly the same as the .WAV file you recorded earlier.
- Set input to ADAT 3
- Set timing reference to an unused digital channel (in this case, SPDIF coax 1). Do this because - if you click on "start measuring", REW will output its own timing chirp which will immediately loop back and cause REW to start making the measurement! If you set it like this, REW will listen for the timing chirp on both ADAT 3 and SPDIF 1.

5. Begin measurement
- In REW, click on "Start Measuring". You will see the output meter jump and then settle to zero.
- Go to your player software and press PLAY
- Immediately go back to REW and watch. You will see the Input bar jump (indicating the chirp) and REW immediately begins taking the measurement.
- IF REW indicates clipping or insufficient volume, stop playback, go back to Totalmix and adjust the output volume and repeat Step 5.
- Enjoy your new measurement. Result:

HQP vs JRiver.jpg
 
Last edited:

John Mulcahy

REW Author
Joined
Apr 3, 2017
Posts
8,115
Glad you got it working!

In the Generator, set start frequency 20Hz, End frequency 21kHz, 1M length, and max out the RMS volume at -3.0.
Maxing out the generator volume is often not a good idea, it isn't unusual for signal paths to have problems with signals at or very close to full scale, worth keeping a little headroom even if only a few tenths of a dB.
 

Keith_W

New Member
Thread Starter
Joined
Apr 3, 2018
Posts
10
Thanks John. I was watching the meters like a hawk and I did not see any clipping. There was about 15dB of headroom. My reasoning is that high level volume improves the signal to noise ratio?

If my results are invalid i'll have to repeat them. What do you think?
 

3ll3d00d

New Member
Joined
Jun 4, 2017
Posts
46
- Adjust the volume in each software playback channel to max
you shouldn't need to add additional gain (+6 in that example) in totalmix, no harm done if it doesn't clip though

I would be surprised if you had any SNR issues with a digital loopback

does the graph show the results of that comparison? the difference seems a bit odd
 

John Mulcahy

REW Author
Joined
Apr 3, 2017
Posts
8,115
Thanks John. I was watching the meters like a hawk and I did not see any clipping. There was about 15dB of headroom. My reasoning is that high level volume improves the signal to noise ratio?

If my results are invalid i'll have to repeat them. What do you think?
'High' doesn't have to mean full scale :). Rarely necessary to take things to extremes, especially in the output path. As long as you don't see lots of odd harmonic distortion it is most likely OK though.
 

Keith_W

New Member
Thread Starter
Joined
Apr 3, 2018
Posts
10
Yes 3ll3d00d, I thought that the difference was quite odd too. But I started this thread on this forum to figure out how to take the measurement because I could hear a difference between HQP and AC. The result recorded by REW confirms that there is indeed a difference.

I posted a discussion about the difference between AC and HQP in Computer Audiophile (where the author of HQP visits) and the Acourate forum (where the author of Acourate commented). After taking their advice on board, I repeated the experiment with a series of null filters. This is the result:

HQP vs AC Dirac.jpg


As you can see, Acourate Convolver and HQP output exactly the same signal (apart from the volume difference which I deliberately introduced to stagger the curves). The reason both curves aren't perfectly flat is because I stupidly forgot to remove the microphone calibration when taking these measurements.

My conclusion now is that both convolution engines produce the same curve. Therefore the difference I am hearing and measuring must be because the filters are different. I don't understand how they can be different, given that they were generated only one step apart (first Acourate creates the .WAV files for HQP, and then the very next step is to create the .CPV files for Acourate Convolver).

As always, the most likely explanation is user error. But it's one thing to know that I f*cked up, the problem is figuring out exactly where I f*cked up.
 

3ll3d00d

New Member
Joined
Jun 4, 2017
Posts
46
did you try the wav filters in jriver (without using acourateasio as the output device or with AC in a passthrough mode)? this should tell you whether the filters themselves have a problem or whether it is a config issue in HQP

having said that I guess you could do that by just loading them back into acourate and compare vs the cpv filters
 

Keith_W

New Member
Thread Starter
Joined
Apr 3, 2018
Posts
10
That is a good point. In any case I will be making new filters this weekend. I have lost faith in the old ones - they sound weird and measure weird.
 

John Mulcahy

REW Author
Joined
Apr 3, 2017
Posts
8,115
The reason both curves aren't perfectly flat is because I stupidly forgot to remove the microphone calibration when taking these measurements.
Just click the Change Cal... button on each measurement and remove the cal file there.
 
Top Bottom