I am seeking help to integrate my subwoofer with the other speakers in my system, which include left front L, right front R, center C, surround left SL, surround right SR, back left BL, and back right BR. Although this is a 7.1 system, it is simplest to start with integrating the sub with L and R only. I believe I need to choose a crossover, sub gain, sub polarity, and sub delay. (If there is anything else, please mention. Also, if I need to start a new thread for this please let me know but it seemed to fit here.).
For context, I am streaming 2.0, 5.0, and 5.1 channel music from a home server to a laptop which is connected to a Denon AVR by HDMI. The AVR is running in Direct Mode with the speaker levels set to 0, the speaker distances all the same at 10 feet, speakers set to Large, and LPF for LFE set to 250hz. The subwoofer is connected via the single LFE cable. The laptop has Ubuntu 26.04 with Kodi and CamillaDSP set up such that there is 8 channel output via HDMI from the laptop to the AVR. CamillaDSP and HDMI output are set at 88200hz (because 94% of my collection is DSD64 or CD derived 44.1khz). The sub has it's DSP turned off, volume set to -31dB, phase set to 0 degrees, no crossover, normal polarity.
The seven speakers have their delays and gain trims already set in CamillaDSP called delays_gains.yml. Based on that, I will set up my crossover, sub gain, sub polarity and sub delay, in that order unless it turns out that's not the best sequence. Those sub parameters will be entered into CamillaDSP.
I am measuring with REW using UMIK-1 pointed at the ceiling at the main listening position and with calibration file loaded.
In this post when I refer to 'speakers' I mean the 7 speakers or L and R speakers, and not the sub.
So here is my workflow, put to you for consideration, questions, and discussion. As questions arise below I'll note them with ***question***. If you're in a hurry, my most pressing questions are in Step 4 for determining sub delay.
Step 1 Determine Crossover.
1. Take a single MLP measurement of each of the 7 main speakers and sub
in REW:
- Sweep: 20Hz to 20000Hz, 256k length
- Level: -9dBFS
- AVR: -9dB
- Timing: No timing reference, t=0 at IR start
2. In REW overlay, view SPL for all 7 speakers zoomed to 20-150Hz.
3. For each speaker, find the frequency where the response drops
3dB below the speaker's broadband level in the low frequency
region.
4. Considering my center speaker (red, file crossover.jpg), a crossover at 80hz looked about right. Other speakers shown are L (blue), sub (green), and SR (yellow) for comparison.
***Does it make sense to choose a single crossover point for simplicity, even though there are 7 speakers?I think yes, because all of the below determinations are taken based on one crossover. If there were different crossovers for different speakers the complexity would be vast. We can only have one sub delay, one sub gain, one polarity choice. Because L and R speakers are most important, I integrate sub to them.***
5. Along with speaker delays and gain trims, implement the crossover at 80hz in CamillaDSP using a file called crossover.yml.
Step 2 Determine sub gain
1. With speaker delays, speaker gain trims, and crossover at 80hz in CamillaDSP, proceed to determine sub gain.
2. Measure L + R only with sub off:
- Turn sub off
- REW output to L and R
- Sweep: 20-200Hz, 256k, -9dBFS
- AVR: -9dB
- Name: "LR only no sub"
3. Measure LFE only:
- Turn sub back on
- REW output to LFE channel only
- Same settings
- Name: "LFE only"
4. Overlay both in REW. Zoom to 40-120Hz (please see file called sub_gain.jpg).
Note the dB difference at approximately 80hz. This is the sub gain needed.
**Where should I note the dB difference in #4? Exactly at the crossover of 80hz, or just below it around 70hz?**
**At 80hz, a sub gain of 15dB would be needed to match L+R (blue), but that area is in a small dip (LFE, red). Perhaps I should choose something that would also account for the overall area around 80hz such as 10db sub gain? 15dB seems like a lot, maybe too much. I'm afraid of causing clipping.**
5. Update crossover.yml with the sub gain.
Step 3 Determine Sub Polarity
1. With speaker delays, speaker gain trims, sub gain, and crossover at 80hz in CamillaDSP, proceed to determine sub polarity.
2. Measure LR+sub with normal polarity:
- Sweep: 20-200Hz, 256k
- Level: -9dBFS
- AVR: -9dB
- Name: "LR+sub normal polarity"
3. Change to inverted polarity on the subwoofer. Measure again with identical settings.
Name: "LR+sub inverted polarity"
4. Overlay both measurements in REW. Zoom to 40-120Hz. Sub polarity is normal in blue and inverted in red (sub_polarity.jpg)
The correct polarity shows higher SPL in the 60-100Hz crossover
region, particularly around 80Hz. The deep dips on inverted around 102 hz and 131 hz and the lower SPL in the 60hz-100hz range on inverted mean that normal polarity should be chosen.
**is this correct?**
5. Update crossover.yml with sub polarity.
Step 4 Determine Sub Delay
References:
QMuse post #1:
This topic was opened several times on the forum but each time it got complicated and IMHO failed to produce simple how-to procedure to do this. So, prerequisite for this procedure is that you have a device capable of adjusting mains delay and applying high pass filtering to to them in addition...
www.audiosciencereview.com
Ultrasonic's post #19 here
Starting a fresh thread on this Does anyone know how to measure the timing/delay of subs vs mains with REW? It seems like it should be easy but I can't suss it out. I'm guessing it has something to do with the IR Windows option but can't see how you do it. Audyssey seems to get it mostly...
www.avforums.com
1. With speaker delays, speaker gain trims, sub gain, sub polarity and crossover at 80hz in CamillaDSP, proceed to determine sub delay.
***Should I determine sub delay with crossover active? I saw conflicting advice on this. It made sense to me that I should do it with crossover active since that is the state in which the sub delay will be used. However, I have some doubt about this. The included ASR reference from QMuse above looked like without crossover but I otherwise followed their protocol here.***
***The sub delay determination must be done with polarity already set, correct?***
2. In REW, set acoustic timing reference to timing reference speaker
(the speaker physically closest to the MLP, example Surround Right).
Decide which front speaker to use to time align with sub, the one that
is closer to the sub is a good choice. Let's assume that is the R speaker.
3. Measure R front (sub turned off, XO active), L front (sub turned off, XO active) and LFE (XO active) using:
- Sweep: 40-120Hz, 512k length (I saw advice calling for 2million but it seemed risky for speakers based on REW documentation)
- Level: -9dBFS
- AVR: -9dB
- Single sweep mode (required when using acoustic timing reference)
4. For each measurement, IR Windows, apply FDW (Frequency Dependent Windowing)
of 6 cycles, and apply to all SPL selections.
5. Go to overlay and choose phase. Under actions, Unwrap phase for both measurements.
6. In the phase overlay view at 80Hz (sub_delay.jpg; L blue, R red, LFE with no delay light green at bottom, LFE with 7.29ms delay calculated as below in dark green), find the timing offset for LFE
that places the LFE phase curve at R phase curve. This may involve
several cycles of increasing timing offset and re-measuring the
30-150hz frequency sweep. Or instead this can be estimated by:
sub delay (in ms) = 1000*(LFE phase - R phase)/(-360 degrees*80hz),
where phase has unit of degrees and 1000 converts from seconds to milliseconds.
***Notice in overlay figure sub_delay.jpg that L and R speakers, although matched for gain and delay are still not completely in phase with each other. How to deal with that? Above in figure, I suggested just choosing R and setting sub gain until their phase curves meet at 80hz crossover. But what about instead setting the sub delay to the midpoint between L and R at 80hz? Or should I work to get L and R in phase so they are overlapping at 80hz, but if I do that that will throw off the speaker delays (that were determined using a higher frequency sweep)?****
Thank you in advance for your consideration and suggestions.