This method creates a set of correction filters using n-1 stereo pairs (where n is the number of main channels in the system). A single channel is nominated as the „reference“ channel and is used in each stereo pair.
The following factors may be relevant for a complete correction but are out of scope of this document;
The example provided is for a 5.1 system using JRiver for playback.
There is no right answer here as it depends on the layout of your room.
In my setup I choose a position that places the mic at exactly the same distance from L and R and which is also the same distance from SL and SR, since my LCR are on wall then this places C slightly closer to the mic than L and R.
Use the mic alignment tool and measure offsets between the reference channel and each other channel. For example, if you use L as the reference channel then you need to know the delay (in samples) for
Record these delays. I recommend recording them permanently and returning the mic to the same position for future measurement sessions.
Create a workspace for the LR pair Create an XO to cross LR to the subwoofer, time align and apply any other adjustments required to the XO (Optional) Apply L-R delay adjustment to XO2R (Optional) Add prefilters using Macro 0 Create a target curve
For each of LC, LSL, LSR
An example which copies LR to the 3 fresh workspaces above, run from the parent directory
for target in LC LSL LSR do mkdir ${target} cp LR/XO*.dbl ${target}/ cp LR/Target.dbl ${target}/ sed -e "s/\\\LR/\\\\${target}/g;s/\\\LR\\\/\\\\${target}\\\/g" LR/Acourate.ini > ${target}/Acourate.ini done
If using shared prefilters (e.g. for manual IIR on the subwoofer) then place these in a separate common directory.
Open the LR workspace
Configure signal chain to measure LR/SW
Open the logsweep recorder Check „freeze gain“ box Do a quick log sweep Run macro 1
Load the target curve into slot 3 Adjust the target curve level to ensure the response is fully corrected using TD-Functions/Gain Save the target curve as a dbl, this is your „reference“ target curve
For each of LC, LSL, LSR
Copy the „reference“ target curve file into every workspace
For each of LR, LC, LSL, LSR
If there is a non zero delay between XO2L and XO2R (i.e. the mic alignment tool did not report 0 offset)
Special note for surround channels…. if you find that there is a markedly different correction applied to the surround channels then it may be better to compare SL to SR rather than SL to L and SR to L. Use your eyes and ears to judge this.
The LFE channel can contain high(er) frequency content than your subwoofer is really capable of playing. It is therefore common to apply a low pass filter to the LFE input channel to avoid your subwoofer(s) making bad noises when presented with such content. 120Hz is a common option but you may choose to apply this at a higher or lower frequency as you prefer.
To implement this, just create another workspace as per the LR with the desired crossover in place. Use the resulting Cor1L filter as your LFE channel correction.
This step assumes you are using jriver for playback as this is the only known convolver aware video playback engine (and hence can cope with the high latency induced by acourate filters).
Create a named folder to hold the filters, lets call it final (and assume it has the same parent dir as LR, LC etc)
Copy files as follows (assuming 48kHz filters here, change sample rate as necessary)
copy LR\Cor1S48.wav final\Cor1S48_LR.wav copy LR\Cor2S48.wav final\Cor2S48_LR.wav copy LC\Cor1S48.wav final\Cor1S48_LC.wav copy LC\Cor2S48.wav final\Cor2S48_LC.wav copy LSL\Cor1S48.wav final\Cor1S48_LSL.wav copy LSL\Cor2S48.wav final\Cor2S48_LSL.wav copy LSR\Cor1S48.wav final\Cor1S48_LSR.wav copy LSR\Cor2S48.wav final\Cor2S48_LSR.wav
Create file named acourate_5.1_48.cfg and enter the following (replace the path as appropriate)
48000 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 <PATH TO YOUR WORKSPACE>\Cor1S48_LR.wav 0 0.0 3.0 <PATH TO YOUR WORKSPACE>\Cor1S48_LR.wav 1 1.0 3.0 <PATH TO YOUR WORKSPACE>\Cor1S48_LC.wav 1 2.0 3.0 <PATH TO YOUR WORKSPACE>\Cor1S48_LSR.wav 1 3.0 3.0 <PATH TO YOUR WORKSPACE>\Cor1S48_LSL.wav 1 4.0 3.0 <PATH TO YOUR WORKSPACE>\Cor1S48_LSR.wav 1 5.0 3.0 <PATH TO YOUR WORKSPACE>\Cor2S48_LR.wav 0 0.0 0.0 <PATH TO YOUR WORKSPACE>\Cor2S48_LR.wav 1 1.0 1.0 <PATH TO YOUR WORKSPACE>\Cor2S48_LC.wav 1 2.0 2.0 <PATH TO YOUR WORKSPACE>\Cor2S48_LSL.wav 1 4.0 4.0 <PATH TO YOUR WORKSPACE>\Cor2S48_LSR.wav 1 5.0 5.0
This configuration is summing multiple input channels into one subwoofer output channel as well as applying a +10dB gain increase to the LFE input channel. If you simply use the convolver cfg above to do this, you will digitally clip the subwoofer channel during this process. This diagram illustrates the signal chain
This means there needs to be some gain adjustments performed on each channel both before and after summation to avoid clipping. In particular note that the optimal implementation is likely to require an awareness of gain structure across your signal chain as it may leverage the input sensitivity and downstream amplifiers.
One jriver centric implementation when using a 5.1 output format is;
Making Room for Summation and Adjusting the LFE channel
Recovering Gain after Summation
Note that this implementation allows headroom of 5dB (in the LFE + low passes) before digital clipping will occur. A theoretical worst case signal will require about 3dB of additional attenuation (and subsequent recovery) to pass through cleanly. This sort of signal is exceedingly rare (non existent?) so it is a decision for the user as to how much headroom to leave.