Home Theater Forum and Systems banner

Using convolver universally in HTPC

55437 Views 142 Replies 28 Participants Last post by  adolfotregosa
I've been reading the forums for a while now, but I can't find an exact answer here or anywhere else. I'm trying to setup my HTPC to do software room correction for anything that comes out of the soundcard. This thread is the closest thing to an answer I've found:


Is anybody successfully doing this? I'm still working on assigning filters for my sub's impulse response. However, I won't know if I did it right unless I find a way to measure the corrected response.

Here's my plan:
1. Choose 'Virtual Audio Cable'- VAC (shareware) as the output for REW.
2. Use ConvolverVST (free) in VSTHost (also free). I should be able to select VAC as the input and my soundcard (SB Audigy 4Pro) as the output.
3. Verify my REW filters and tweak as necessary.
4. Once I'm satisfied with the room correction, I'd set all of my applications and Windows to output to VAC--> ConvolverVST in VSTHost--> Soundcard.

You'd think someone has already done something like this. It seems like the most eloquent solution, since:
  • it's possible to apply filters to the full frequency range
  • I'd be able to use room correction for streaming audio, DVD-A :bigsmile:, etc. instead of just Zoomplayer and JRMC.
  • It would be cheaper than a hardware solution and could be used in a car pc setup as well

Can anyone help?
1 - 20 of 143 Posts
I did very recently exactly what you are trying to do.

I am now applying 6 convolved filters, 6 parametric equalizers, 4 delays and a bass manager to whatever goes out of my sound card and whatever is the sw player.

The result is astonishing and does not require any external hw.

I'm now in the hurry, I'll post more details later on.
Here I am.

I'm running an AMD 4200+ dual core, an audio card Terratec Auron Space 7.1 flashed as Audiotrak Prodigy and Vista.

As VST shell I'm using Console working in ASIO. The VST plug-ins are Spinaudio SpinEQ as parametric equalizer, Voxengo Pristine Space as convolution engine, Voxengo BMS as Bass manager, Voxengo Audio Delay to introduce delays for multichannel reproduction.

I'm generating the impulse response files with REW (1 M sweep), then I create the filters with DRC. DRC goes much further than frequency equalization because it works also in the time domain.

The trickiest part of the process is intercepting the audio stream from the sw players. I tried first Reaper, but I couldn’t manage to make it work in Vista. Then I tried VAC. It was working but only in stereo and it cannot route the streams to ASIO, and I wanted low latency.
Then I chose the easiest way: I bought an used Terratec audio card, compatible with Audiotrak drivers. Audiotrak/ESI drivers offer a unique feature, Directwire, capable of intercepting and routing audio streams from and to ASIO.

What you can get at the end of this is probably the most sophisticated audio equalization around. I’m using it in two different installations, stereo and multichannel, and I can tell you that it’s now very difficult for me to listen music and movies without it.
See less See more
This is the result. I realized after measuring that I was not using the mic calibration file, so now the result is slightly better in the high frequency range. Equalization was done automatically by DRC. I only used the parametric equalizer to correct a couple of spikes in the very low range.

I don't have to tell you what line is before and what is after :D.

What you cannot see is the phase correction, but believe me you can easily hear it!
See less See more
Unfortunately no. I start Console when Windows starts and is a little bit annoying having it in the task bar.
Setting up Convolver is the easiest part.

The problem is that at the moment there is no blu ray sw player where you can use it. Powerdvd and Arcsoft cannot apply audio post processing.

The only way I managed to equalize blu ray is using the Directwire functionality of ESI/Audiotrak sound cards. But first of all you need an ESI/Audiotrak soundcard.
You need to set up Directwire in this way:

It will route the audio streams from a WMD program like Powerdvd towards ASIO.
Then you need a VST host such as Console. You should create an Asio project.
The project should look like this:

The 5.1 channels will be processed in this way, from left to right:
- a convolution engine, Voxengo Pristine Space but you can use Convolver as well
- a parametric equalizer (SpinEQ)
- a time delay, to adjust speakers distance (Voxengo Audio Delay)
- a bass manager (Kelly Industries) to boost LFE channel by 10 Db and to route bass frequencies towards the subwoofer.

I doubt you can get a more sophisticated sound elaboration :dumbcrazy:.

This is another example of final result, amplitude graph is slightly decreasing because I set the target curve in this way:
See less See more
CPU is not relevant (unless you get to 100% usage). Latency depends on audio card and plug-in used.

I'm currently having a latency of less than 512 samples. At 48 KHz is 10 milliseconds. One frame at 24fps (blu ray) is 41 milliseconds.

No way you can notice it ;).
...do I need a Audiotrak Prodigy 7.1 HiFi card to get this working correctly?...
Yes, or an ESI audio card.
...If so, is it because of the simplification the Audiotrak drivers provide in regards to Directwire functionality?...
... And does any of this apply if I'm simply pushing the signal out of the HTPC via component audio to my receiver?...
I don't understand exactly what you mean by "component". In order to use the HTPC as an equalizer you need to use the analog 7.1 outputs of the audio card. You cannot use the spdif. By the way HD audio streams cannot go through the spdif and currently there is no audio card with HDMI 7.1 outputs.
SPIDF can carry DD and DTS, but not the new HD audio streams such as PCM 5.1 or Dolby TrueHD.

In any case the equalization process requires to use the analog outputs of the audio card. The audio decoding must be done by the sw player.

If you select spdif as output you will bypass the equalization.
There are only 6 wires because I have 5.1 speakers. If you want 7.1 you should wire all the 8 channels.

You can find the explanation of inputs and outputs in the instruction of your audio card. If I remember well:
1 front left
2 front right
3 surround left
4 surround right
5 central
6 sub
7 back surround left
8 back surround right
In fact is the same, because the output level of all channels including sub is in any case levelled slightly below the sound card clipping.

In theory you might go both ways, but all the VST bass managers work with +10 Db, so there is no real option.
I'm using the Adobe Premiere version from Kelly Industries because I had problem with the standard one.
In this version you can choose the sequence of the channels by clicking in the bottom left corner (L R Ls Rs C LFE or L R C LFE Ls Rs).

In my sound card LFE is channel 6, but with a 5.1 setup.

In any case it should not be difficult to identify the LFE with some trials.
See less See more
...Are you using bass management also for measurement signal when recording the impulse response for side channels...
Exactly, in this way you optimize the integration of sub with other channels.
It should look similar to this:

Each wav mono filter should have a slot, each channel should refer to a different slot. If you are using stereo wav filters you will use only 4 slots.

Dry is not important, as you said is a bypass, and should be muted. You should only take care of the wet. Each channel's wet level should be adjusted manually. You might want to try A-gain.
See less See more
I noticed you created a 44.1 KHz filter. I suggest to use 48 KHz. DVD and most of Blu Ray audio tracks use 48 KHz.

I'll take a closer look to Audiolense, it seems interesting.
Try increasing the latency of the audio card.
1. For surround sound (5.1) room correction, for drc, do we generate the correction filters one channel after another (L, R, C, Ls, Rs) and include the sub in the measurement and correction process (a total of 5 room response correction filters)...!
Yes, but the filters are 6: L, R, C, Ls, Rs and LFE.
2. In the console snapshot, what is the purpose of the Equalizer after the correction filter convolution
To Give some additional flexibility, however this is not very useful and currently I'm just using the convolution, without any additional equalization.
3. If I need to convert two channel stereo to pro-logic II or dts neo:6, how do I add crossover filters into the chain if I want to completely bypass the a/v receiver and direct drive the amplifier from the soundcard? Also, is this advisable?...
I'm not sure this is possible.
4. I would like to buy the audiotrak 7.1 prodidy card, but I have read that these have very low level (0.5-0.6volts) soundcard output signals on the analog outs. Will it be a problem if I need to drive the sound through 12feet of co-ax cables to the amplifier?...
Cannot tell, I am using short cables. Other options, of much higher quality and price, are RME sound cards. RME drivers allow loopback routing of audio streams.
...in the bass management, all the LFE frequencies are summed to the final LFE output....
...how do i make sure the levels of the L,R,C,Ls and Rs for the room correction convolution with the sub included is the same? Is it done by calibrating each channel one by one during measurement with the sub connected for each channel?...
Yes, first you should set the volume of the sub at a reasonable level compared to the other channels. You don't need to be precise because DRC will equalize the level anyway. Once all the filters are created you will need to balance the volume of the 6 channels again.

...How did you estimate the audio delay in the voxengo audio delay vst?...
(distance of the farthest speaker - distance of each single speaker)/speed of sound

...I was seeing that in the cyberlink powerdvd, they have the option to do dolby/dts psuedo surround. I guess if it can software encode this, then with directwire, it should be possible to do the console based correction chain...
If you use a sw player to apply pro-logic II or dts neo, then there is no problem. In theory you might apply the same effects with appropriate vst plug-ins, but I don't know if it's worthwhile.
In REW you should select Export -> Impulse Response as wav and choose mono 32 bit.

In order to process the file with DRC, you need to convert the wav file to pcm 32 bit floating point.

You can do it with SOX or with Audacity.

With sox you should use this command:

sox.exe impulseresponse.wav -t raw -c 1 -f -4 impulseresponse.pcm

Then feed impulseresponse.pcm to DRC.

In the meantime I changed my Audiotrack with a EMU 1616M, a really nice piece of hardware, with superb performance and simple to configure with Console :T.
See less See more
1 - 20 of 143 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.