Jump to content
IGNORED

Testing different convolution engines


Recommended Posts

I don't post much on CA these days, but those who remember me from before will know that I run a computer based crossover with 8 digital channels out. I generate the filters with Acourate, and until recently I have been using HQPlayer as my main convolution engine. 

 

For a long time now, I have been mystified by a problem I have been having. I made the filters as perfect as my knowledge allows. The measurement sweeps look pretty much flawless. Yet the listening experience is quite a let down - the upper midrange and lower treble are smeared, and the smearing is so bad that it sometimes hurts my ears. In other words, the sound was unacceptable. 

 

I have been tearing whatever's left of my hair out trying to get to the bottom of the problem. Tried swapping amps, swapping DAC's, swapping computers, everything. Eventually it occurred to me to try swapping the convolution engine. 

 

So I purchased a copy of Acourate Convolver. I was quite surprised that the problem went away immediately, given that HQPlayer is so highly rated by CA members. 

 

JRiver also has a convolution engine - since I own a copy of JRiver, I decided to try that. Voila - the smearing is gone. 

 

I know there are other convolution engines out there which I have not tried. For my purpose it will need to have an ASIO in/out interface and run on Windows. 

 

It appears that the smearing is a problem that only happens with HQPlayer on my system. At the moment I have no way to run a signal through the convolution engine and take a measurement to confirm with hard evidence what I can hear. To be honest, I wouldn't even know how to design an experiment to test which convolution engine is "better", short of only using my ears. Does anybody know if this has been done before? 

Link to comment
6 minutes ago, Keith_W said:

I don't post much on CA these days, but those who remember me from before will know that I run a computer based crossover with 8 digital channels out. I generate the filters with Acourate, and until recently I have been using HQPlayer as my main convolution engine. 

 

For a long time now, I have been mystified by a problem I have been having. I made the filters as perfect as my knowledge allows. The measurement sweeps look pretty much flawless. Yet the listening experience is quite a let down - the upper midrange and lower treble are smeared, and the smearing is so bad that it sometimes hurts my ears. In other words, the sound was unacceptable. 

 

I have been tearing whatever's left of my hair out trying to get to the bottom of the problem. Tried swapping amps, swapping DAC's, swapping computers, everything. Eventually it occurred to me to try swapping the convolution engine. 

 

So I purchased a copy of Acourate Convolver. I was quite surprised that the problem went away immediately, given that HQPlayer is so highly rated by CA members. 

 

JRiver also has a convolution engine - since I own a copy of JRiver, I decided to try that. Voila - the smearing is gone. 

 

I know there are other convolution engines out there which I have not tried. For my purpose it will need to have an ASIO in/out interface and run on Windows. 

 

It appears that the smearing is a problem that only happens with HQPlayer on my system. At the moment I have no way to run a signal through the convolution engine and take a measurement to confirm with hard evidence what I can hear. To be honest, I wouldn't even know how to design an experiment to test which convolution engine is "better", short of only using my ears. Does anybody know if this has been done before? 

 

I use HQP convolver for EQ and phase correction, mostly with 2 channel.

 

It’s easy enough to test that it’s doing what I expect it to do with REW. I have a digital recording of an REW sweep I play over my system and use REW to record the output, both digital and analog. I can see exactly what changes that are introduced into the output by the convolver, from frequency response to phase. So far I’ve not encountered any issues with the convolver, but  configuration or settings in HQP may cause some ill effects, so maybe you can share the settings you use with it.

Link to comment

Thanks pkane. I do not want this thread to turn into a discussion about HQPlayer settings. All i'll say is that i've tried them all. DSD and PCM, at different sample rates, with different filters. 

 

My question was: how do you measure what comes out, and what criteria do you use to judge whether a convolution engine is doing its job or not. Is there a better way than to send it through the system and speakers and then measure with a microphone, because to me it seems as if the best way to do it is to take the measurement from the DAC output. 

 

 

Link to comment
10 minutes ago, Keith_W said:

Thanks pkane. I do not want this thread to turn into a discussion about HQPlayer settings. All i'll say is that i've tried them all. DSD and PCM, at different sample rates, with different filters. 

 

My question was: how do you measure what comes out, and what criteria do you use to judge whether a convolution engine is doing its job or not. Is there a better way than to send it through the system and speakers and then measure with a microphone, because to me it seems as if the best way to do it is to take the measurement from the DAC output. 

 

 

 

Sure, that’s what I tried to describe. I use a digitally recorded REW sweep to play through my system. REW can record and analyze the output of a sweep, so you can judge what effect the convolver and your impulse response is having.

 

I do use a microphone if I want to measure speakers or headphones, but I also use a digital audio input on my MacBook to analyze the sweep before it’s fed into the DAC. This should give a very pristine view as to what HQP, filters, and convolver do to the original sweep frequencies and phase.

Link to comment

Ah, I see. A very dim light just started shining in my head :) What you are suggesting is some kind of loopback cable that goes from the DAC output to the microphone input of my sound card? Hmmmmm. 

 

I have to confess I haven't played with REW very much. All I use it for is to generate sine waves since I don't know how to pass REW's output through the convolution engine. Time to do a bit of googling, I think. 

Link to comment
3 hours ago, Keith_W said:

Ah, I see. A very dim light just started shining in my head :) What you are suggesting is some kind of loopback cable that goes from the DAC output to the microphone input of my sound card? Hmmmmm. 

 

I have to confess I haven't played with REW very much. All I use it for is to generate sine waves since I don't know how to pass REW's output through the convolution engine. Time to do a bit of googling, I think. 

 

REW has some very good measurement tools, including a logarithmic frequency sweep. The trick to testing your convolution engine is to have the frequency sweep recorded into a PCM file so that HQP or other playback software can play it through your system, including any convolution filters, upsampling, etc. Then, REW can measure the output giving you various measurements, from FR to distortion and phase errors to impulse response and waterfall plots.

 

Link to comment

use a virtual soundcard together with liveprofessor & use a vst convolver , you can route the input & output in asio4all.

with the software, you create a loop that doesn't play to the output pin of the speakers but instead the input pin of the virtual soundcard & then you tell rew to use the virtual soundcard input as the microphone.

that creates the loopback that lets you analyze what the convolver is doing.

 

it's a situation of to each their own.

i'd tell a beginner to just use the microphone to do a rew measurement with the convolver used & then analyze those results.

otherwise you need to be able to adjust what you see from the loopback plus or minus the speaker deficiencies & the room acoustics to be able to see clearly what it is and what it does.

but if you are willing to make an attempt, you could always purposefully raise or lower a frequency with an equalizer & then run another measure to look for the difference & with enough trial & error you build yourself a learning experience that is tailored to revealing what was once obscure.

 

here is a link to a virtual soundcard: https://www.e2esoft.com/vsc/

if you need more from the virtual soundcard (higher bitdepth & sample rate) virtual audio cable does, but it's paid software.

paying for the one i linked to gives you more instances of the virtual soundcard but doesn't raise the maximum bitdepth or sampling rate.

 

**edit**

oh damn, i see they changed the way they do their free licensing.

now they've got a voiceover for the trial that is removed when you pay for it.

there are other virtual soundcards that came up in the google search - might be a free one running around somewhere.

Link to comment
  • 2 weeks later...

I haven't. I came across two barriers which I am finding difficult to surmount: 

 

1. I haven't figured out how to play a pre-recorded sweep through REW. I looked in the help files, and my googling didn't turn up any links. If you (or anybody else) knows how to do this, a pointer would be most appreciated. 

 

2. I don't know how to loop back the digital output of HQP/JRiver to the digital input. I think that my sound card (RME Fireface USB) allows me to do this virtually, but if it doesn't then I would need to buy a physical loopback cable. 

Link to comment
21 hours ago, Keith_W said:

I haven't. I came across two barriers which I am finding difficult to surmount: 

 

1. I haven't figured out how to play a pre-recorded sweep through REW. I looked in the help files, and my googling didn't turn up any links. If you (or anybody else) knows how to do this, a pointer would be most appreciated. 

 

2. I don't know how to loop back the digital output of HQP/JRiver to the digital input. I think that my sound card (RME Fireface USB) allows me to do this virtually, but if it doesn't then I would need to buy a physical loopback cable. 

 

You record a sweep from REW to a FLAC or WAV file once, and then play it back over your system using your normal player, HQPlayer or similar with convolution enabled. Before you play it, you start REW with the measuring mic and tell it to measure a sweep, but use 'Acoustic timing as reference' option. You can turn off the output from REW, so it doesn't try to play a sweep -- it's just used to measure in this scenario. The sweep is played by HQP in this case and measured by REW.

 

If you can't figure out how to record a sweep from REW, let me know, and I can share the files I recorded (it's pretty easy to do on a Mac, not sure of how to do it on a PC)

Link to comment
23 minutes ago, pkane2001 said:

If you can't figure out how to record a sweep from REW, let me know, and I can share the files I recorded (it's pretty easy to do on a Mac, not sure of how to do it on a PC)

 

Just remembered that this is easy to do on any device using REW:

 

Start signal generator, and select 'Meas. Sweep' for output, select desired dB level (say -3dB) and click on WAV button. You can then save a separate sweep for each of the channels, but make sure you include Timing Reference Signal as that's used by REW to recognize the beginning of the sweep. Choose the correct sample rate (same as you'll use to measure) and 24 bit samples. That's about all you need.  

Link to comment

Well, I managed to perform an REW recording comparing the output of HQPlayer vs. JRiver + Acourate Convolver. It was quite difficult to figure out all the settings. For those who wish to replicate the experiment, this is how you do it (i'm also recording it here for my future reference): 

 

1. Create log sweep for offline playback

- In REW, go to "Generator". You will get this screen: 

rewsetting2.thumb.jpg.680035f3376d01dabe6068d8a3234026.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.thumb.jpg.e78d8f61acdb6163b0c3a84c74577bf2.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.thumb.jpg.80a1790c3ef908458ddfde16d9162466.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). If you set the timing reference to be the same as the input channel (ADAT 3) - 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 (see next post). 

Link to comment

Well, I have to say that I feel vindicated. I previously claimed to be able to hear a difference between HQP and Acourate Convolver. This is the measurement, using the exact same filters for both. 

 

Note that this is a measurement purely of the digital output of both software prior to DA conversion. The reason it looks so lumpy is because of all the correction built into the filters. 

 

5ac613068a977_HQPvsJRiver.thumb.jpg.c5f23a4c90bf213defd60ea8e98c68fe.jpg

 

In GREEN we have JRiver + Acourate Convolver. I made sure the ISO226 volume was turned off and all the EQ settings returned to zero. 

 

In RED we have HQPlayer. This was set to PCM output, 48kHz, poly-sync 1. 

 

Note that both HQP and AC are using the exact same filters generated by Acourate. The ONLY difference is that the HQP filters are in .WAV format, and the AC filters are in Acourate's proprietary .CPV format. 

 

Note I am UNABLE to test HQP output in DSD because REW is not able to take DSD or even DOP as an input for measurement. It HAS to be 48kHz as far as I am aware. The ONLY way for me to measure DSD is to pass the signal through my DSD DAC, allow DA conversion, then pass that through the ADC of the RME and send that signal to REW. 

 

I am at a loss to explain why there is a difference between the two convolution engines. It is quite obvious that HQP is putting out more high frequencies and more bass, which is why HQP sounds harsh and "top endy" to my ears. 

 

It is possible that the convolution engines sound and measure different because there is some setting that I ignored or missed when setting up the two players. Any comments or criticism is welcome. I am more than happy to go back and check settings and repeat the test. 

Link to comment
1 hour ago, Keith_W said:

Well, I have to say that I feel vindicated. I previously claimed to be able to hear a difference between HQP and Acourate Convolver. This is the measurement, using the exact same filters for both. 

 

Note that this is a measurement purely of the digital output of both software prior to DA conversion. The reason it looks so lumpy is because of all the correction built into the filters. 

 

5ac613068a977_HQPvsJRiver.thumb.jpg.c5f23a4c90bf213defd60ea8e98c68fe.jpg

 

In GREEN we have JRiver + Acourate Convolver. I made sure the ISO226 volume was turned off and all the EQ settings returned to zero. 

 

In RED we have HQPlayer. This was set to PCM output, 48kHz, poly-sync 1. 

 

Note that both HQP and AC are using the exact same filters generated by Acourate. The ONLY difference is that the HQP filters are in .WAV format, and the AC filters are in Acourate's proprietary .CPV format. 

 

Note I am UNABLE to test HQP output in DSD because REW is not able to take DSD or even DOP as an input for measurement. It HAS to be 48kHz as far as I am aware. The ONLY way for me to measure DSD is to pass the signal through my DSD DAC, allow DA conversion, then pass that through the ADC of the RME and send that signal to REW. 

 

I am at a loss to explain why there is a difference between the two convolution engines. It is quite obvious that HQP is putting out more high frequencies and more bass, which is why HQP sounds harsh and "top endy" to my ears. 

 

It is possible that the convolution engines sound and measure different because there is some setting that I ignored or missed when setting up the two players. Any comments or criticism is welcome. I am more than happy to go back and check settings and repeat the test. 

 

That's a very interesting result, Keith! One thing you can do in REW is load the uncorrected curve and your impulse response file, and then convolve them directly in REW. Then, you can compare the result to what both, HQP and Acourate produced.


To do this, load the uncorrected curve and impulse response, select All SPL view at the top, then click on Controls and select Trace Arithmetic A=original curve, B=impulse response, set operation to A*B and click Generate. The new curve will be the convolution of both. You may need to change offset of this generated curve to align it to the measured convolution results. Curious to see which of the two convolvers it'll match.

 

 

 

 

Link to comment

For the colour blind member who PM'ed me, here is the same graph. Hopefully you can read it now. 

 

forkal.thumb.jpg.e0252501d254dfd580ad7208dff57fc2.jpg

 

pkane it's not so easy to do that. The problem is - the graph that you see is a composite of a 4 way crossover. This is what it looks like in its naked, un-summed form: 

 

xo.thumb.jpg.fda5f86f87ca982460d9211b5d748536.jpg

 

If you can figure out a way to sum them (perhaps Mitchco can help) then it would be possible to compare it to the output of the convolvers. 

Link to comment
3 minutes ago, Keith_W said:

For the colour blind member who PM'ed me, here is the same graph. Hopefully you can read it now. 

 

forkal.thumb.jpg.e0252501d254dfd580ad7208dff57fc2.jpg

 

pkane it's not so easy to do that. The problem is - the graph that you see is a composite of a 4 way crossover. This is what it looks like in its naked, un-summed form: 

 

xo.thumb.jpg.fda5f86f87ca982460d9211b5d748536.jpg

 

If you can figure out a way to sum them (perhaps Mitchco can help) then it would be possible to compare it to the output of the convolvers. 

 

Summing should be just as easy in REW. Use A+B operation.

 

Link to comment

Paul, the crossover filters are in Acourate. The output files are either .WAV or .CPV. REW can only open .MDAT files, unless I missed something. 

 

Please remember that I don't claim to be any sort of authority here, I am very much a novice. If you want to have a go at it yourself, inbox me your email address and i'll send the files to you. 

Link to comment
1 minute ago, Keith_W said:

Paul, the crossover filters are in Acourate. The output files are either .WAV or .CPV. REW can only open .MDAT files, unless I missed something. 

 

Please remember that I don't claim to be any sort of authority here, I am very much a novice. If you want to have a go at it yourself, inbox me your email address and i'll send the files to you. 

 

 I'll PM you my email address. REW can import WAV files. MDAT files are just the internal multi-measurement format REW is using. Look under File->Import menu. Import using Freq Response for measurements, and Impulse response for your filters. 

 

Link to comment
31 minutes ago, Keith_W said:

OK I managed to superimpose the two images using Photoshop. The thick black line is the summation of the crossover files in Acourate. 

 

5ac62fbe67704_HQPvsJRiver.thumb.jpg.2acb7b3c2dc6c7867b42a4a93e34f7c2.jpg

 

So these are all different. What does that mean? Here's my comparison in REW based on the files you sent me, similar to what you did in PS, except for some differences above 10KHz

 

keith.thumb.jpg.692f7d5fd558b62d49b7dec3e85542b2.jpg

Link to comment
10 minutes ago, Keith_W said:

What I see is that Acourate Convolver more closely follows the target curve that the filters describe, and HQPlayer is a bit off - although NEITHER follow the target curve perfectly. Perhaps @Miska might like to comment. 

 

Yes, I see that. Very curious to see  what's going on here, as I'm using HQP convolver for all my playback, headphones and speakers. 

 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...