• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Working through OCA videos to create DSP filters

Joined
Mar 30, 2023
Messages
30
Likes
15
This thread is mostly directed at @OCA to continue YouTube comment section discussions in a little easier format, but maybe it will be helpful to others.

First system I'm working on is my office desktop setup, in a carpeted bedroom that's approximately 4.7m x 4.1m x 2.9m. I live just under 2000m elevation. No acoustic treatment other than a few piles of random stuff in the room (still moving into new house and need more storage space!). Basic rectangular prism with one small closet, leaving the door open for listening is my only "room treatment." Eventually I'll have maybe a couple bookcases and some other objects, but I thought for convenience/comfort of working on this at my normal desk and for the challenge of applying room correction to a fairly "lively" room with moderately non-ideal setup/layout, this would be a good place to start learning practical application of DSP/room correction.

My desk is a large L-shape, simple table-style, no hutches or anything. It's pushed into a corner, and I sit facing the long wall of the room, so my head is about 1.6m from the left wall and 1.4m from the front wall. Two 32" computer screens in front of me, with main speakers nearly touching the edges of the screens and tweeters about ear height. Speaker baffles are slightly closer to me than the screens.

Equipment: Windows PC, USB DAC (Focusrite 2i2), balanced outputs to JBL LSR310s, balanced outputs from sub to JBL 306p MkII, toed in to point directly at listening position. Using CamillaDSP with web-based GUI on the Windows PC for applying filters (VB-Audio Virtual Cable serves as input to Camilla). Measurement mic is UMIK-1.

I followed this video by OCA and due to the 40Hz peak I did not apply EQ above 80Hz. REW files are attached showing before and after left and right measurements (each is a vector average of 2 positions with 2-3 measurements each), and vector average of left and right.

EQ was highly effective (again, only applied below ~80Hz). I used a target curve that was quite a bit flatter than Harman in that region.
VBALS_1_FR.jpg


Group delay improved:
VBALS_1_GD_smoothed.jpg


Impulse response improved a bit:
VBALS_1_Impulse.jpg


Clarity improved in the bass region, not sure about higher frequencies difference, but I only applied crossover correction there (1425Hz 24dB/octave):
VBALS_1_Clarity.jpg


The really impressive (and seemed audibly apparent) improvement was step response, shown zoomed out and then zoomed in:
VBALS_1_Step.jpg

VBALS_1_Step_Zoomed.jpg


At this point I'm going to re-do everything using a higher limit for the EQ to deal with my 100Hz-140Hz plateau, and with the Harman curve as target to get the bass a little more in line with my tastes.
 
Last edited:
I used a target curve that was quite a bit flatter than Harman in that region.
It seems you've already obtained great results.

One suggestion: If you could find the anechoic frequency response of this subwoofer and use that as your target curve, you would get even better acoustic results. I couldn't find much on this sub's FR other than 27Hz low bass limit. This could be quoted at -3dB or -6dB but that's not given anywhere I checked either. The blue line in the first graph seems to have a roll off more like -12dB at 27Hz. You can maybe measure it yourself outdoors or indoors with near field technique. You could also determine the port frequency by placing the mic inside the port. That would help you apply port phase correction and improve the bass response further.
 
It seems you've already obtained great results.

One suggestion: If you could find the anechoic frequency response of this subwoofer and use that as your target curve, you would get even better acoustic results. I couldn't find much on this sub's FR other than 27Hz low bass limit. This could be quoted at -3dB or -6dB but that's not given anywhere I checked either. The blue line in the first graph seems to have a roll off more like -12dB at 27Hz. You can maybe measure it yourself outdoors or indoors with near field technique. You could also determine the port frequency by placing the mic inside the port. That would help you apply port phase correction and improve the bass response further.
Yeah, definitely a noticeable improvement in bass! I'm about to try out my second version where I extended the EQ to 200Hz with Harman curve and recalculated everything else.
Regarding the subwoofer, I was able to find the -3dB point quoted as 32Hz and saw a claim for port tuning of 31Hz, so I started there with rePhase. The original slope is really steep, I used 26Hz 48dB/octave and didn't lose anything. Here's a comparison of stereo vector averages, original measurement (blue), first version of filter measurement (green), second version of filter predicted (orange):
VBALS_1-2_FR.jpg


Of course higher target curve in low/sub bass accounts for some of the difference, but I think I was able to maximize my bass extension. Here's the phase of all three:
VBALS_1-2_phase.jpg


And here's rePhase for the latest filter, not shown is the crossover correction of 1425Hz 24dB/oct and 80Hz 12dB/oct which I believe to be realistic values:
rePhase_v2_1.JPG


I'm wondering if I should address the frequency response dip and phase issues at 98Hz with another minimum-phase filter or two?

I'll take some measurements with the new filter soon and do some listening :)
 
Yeah, definitely a noticeable improvement in bass! I'm about to try out my second version where I extended the EQ to 200Hz with Harman curve and recalculated everything else.
Regarding the subwoofer, I was able to find the -3dB point quoted as 32Hz and saw a claim for port tuning of 31Hz, so I started there with rePhase. The original slope is really steep, I used 26Hz 48dB/octave and didn't lose anything. Here's a comparison of stereo vector averages, original measurement (blue), first version of filter measurement (green), second version of filter predicted (orange):
View attachment 319908

Of course higher target curve in low/sub bass accounts for some of the difference, but I think I was able to maximize my bass extension. Here's the phase of all three:
View attachment 319909

And here's rePhase for the latest filter, not shown is the crossover correction of 1425Hz 24dB/oct and 80Hz 12dB/oct which I believe to be realistic values:
View attachment 319912

I'm wondering if I should address the frequency response dip and phase issues at 98Hz with another minimum-phase filter or two?

I'll take some measurements with the new filter soon and do some listening :)
In my experience, bass sounds best (not necessarily deepest) when I can immitate the anechoic response of the woofer with VBA and auto-eq. When I target deeper bass, I can get it but it's the room not the speaker anymore and thus not minimum phase.

You can fix phase at 98Hz, and 280Hz, and even both but you will need to convolve each phase filter and test for audible pre-echo. Sometimes very high Q filters wouldn't cause echo and sometimes relatively low Q filters will. But since these are rotations caused by wall reflections, I prefer to work on only the ones that cause major phase differences between the left and right speakers.
 
In my experience, bass sounds best (not necessarily deepest) when I can immitate the anechoic response of the woofer with VBA and auto-eq. When I target deeper bass, I can get it but it's the room not the speaker anymore and thus not minimum phase.
Good point, I will see if I can do some pseudo-anechoic tests and port tests to get better quantification.
You can fix phase at 98Hz, and 280Hz, and even both but you will need to convolve each phase filter and test for audible pre-echo. Sometimes very high Q filters wouldn't cause echo and sometimes relatively low Q filters will. But since these are rotations caused by wall reflections, I prefer to work on only the ones that cause major phase differences between the left and right speakers.
Yes I remember this from one of your other videos - I did go through the little experiment of getting too aggressive with Q values to get some pre-ringing and heard it clearly on Billie Jean. I was just playing around with 98/280Hz and I've ended up here, was going to check for pre-ringing next.
rePhase_v2_2.JPG
 
Here's the same with the 280Hz filter removed, so 98Hz with Q=15:
XO2_98Hz-Q15.jpg


And here's with only 98Hz with Q=7, I think I will try this one:
XO2_98Hz-Q7.jpg
 
Okay, I've ended up with two filters I'm going to try out this morning. First one is basically same as my original post, but extending EQ range up to 200Hz and using Harman curve to get a little more bass (orange in the plots below). Second one is the same, but with additional phase correction at 98Hz, with 2nd-order all-pass Q=7 (green). And compared to my original uncorrected response (blue). Note that original is measured and both filtered versions are calculated.

VBALS_2_FR.jpg

VBALS_2_Phase.jpg

VBALS_2_Impulse.jpg

VBALS_2_Step.jpg

VBALS_2_GD.jpg

VBALS_2_Clarity.jpg



EDIT:
One thing stands out to me - despite correcting/not correcting phase at 98Hz, predicted frequency response dip there is bigger than the original. However, individual right and left channels both improved after the filter(s). Here's before and after both filters for left and right channels only, and the final filter (with 98Hz phase correction) L/R/Stereo comparison:
VBALS_2_FR_Left.jpg

VBALS_2_FR_Right.jpg

VBALS_2_FR_Stereo.jpg
 
Last edited:
Good point, I will see if I can do some pseudo-anechoic tests and port tests to get better quantification.

Yes I remember this from one of your other videos - I did go through the little experiment of getting too aggressive with Q values to get some pre-ringing and heard it clearly on Billie Jean. I was just playing around with 98/280Hz and I've ended up here, was going to check for pre-ringing next.
View attachment 319916
They are not flattened though. Can you share the EP response you used in this rePhase session?
 
Yep, here you go
rePhase settings
eNqdVE1v2zAM/SuGThvmeJK/ndsG9DBgwIqdBhSFodhyYtSWPElJ2gX97yNlp3VWBwV2MUw+ko8S
n3giG/VYNm1nhTZkfXfvk0pIMFq5JWvSt3XdCQLOnagezL4HHxdVtCkiWhebOOdpWjdNkcU8Cuss
TATPMVorY2ZV78j3n54Xxl799bOqLESwOEyIT+/9EWLhK5RTBKARyBeS9wI4B6Xtrx8Effqy20bp
nlsISWNv01rjfbu5ufF6JZX3ITjyw0dyjikPkNQqCbEsoNjmlrdo0YBStMTvseRW82FXGmEtXALS
nEi9KXv+SNaMUt8ZmLgKnSW2E5afLQc6c9fWohx23OAhVszx7P681KJYAG3MYD45AvM5nD2/aaXU
XD64wPbiGu6AZ7tbDdwYqB/K2lO6Ftr70nWr28kZE1/uu86H02Y0YzTNchYCEDGcBsFBzIswY98t
cj37nRZCzCqygBX/k51gdpilQZ4spl8EZ3hGvGkEUFS94GavRQ8iJ+sT2Ty5rDXMoVL9IKThVjiz
5pbD3boyl5/7UTmlahqYDAqITJPu+daNZz52KNVKkJ51v7btxTzx2SdSISO2rQaA2z/cjiqVSop/
vGXTKaVftTQ4zZ4Ir2x7EI7baYsUDsUOSi26c8VKSWO5tCunfOjmaRAzt2c6NSDlgXd7MSrrEyuC
GIulEX5pkE7Pdno1YRzkNMKfgF4iURFE7vrfIGkYJEv+oghCtpjBkiyIiyUkTOgy+aSPBfIiKNJF
klEmC+Q5sC+Tw+3kS0h8pVYaxUVwjT1bPCFLr9QKk6iYkd/jwhhUx3Vrn2CqoDoADe+HbiY5EBC3
Z/+45ON8JDCqsUeuURFa3Dr1vjpLs99My3gBnK/WOEA5QPjlorZ8MIhHjDpVuJdQt1pUL3LX/VyT
eoK8l00MC7KVtTqObSPM5XYPBybPfwEexuZT
 
2nd order reversed Q of sqrt(2)/2 and a 1st order allpass at 31Hz port freq makes more sense. The other allpass filters seem quite likely to ring but no harm trying ;)
 
rePhase settings
eNqdVE1v2zAM/SuGThvmeJK/ndsG9DBgwIqdBhSFodhyYtSWPElJ2gX97yNlp3VWBwV2MUw+ko8S
n3giG/VYNm1nhTZkfXfvk0pIMFq5JWvSt3XdCQLOnagezL4HHxdVtCkiWhebOOdpWjdNkcU8Cuss
TATPMVorY2ZV78j3n54Xxl799bOqLESwOEyIT+/9EWLhK5RTBKARyBeS9wI4B6Xtrx8Effqy20bp
nlsISWNv01rjfbu5ufF6JZX3ITjyw0dyjikPkNQqCbEsoNjmlrdo0YBStMTvseRW82FXGmEtXALS
nEi9KXv+SNaMUt8ZmLgKnSW2E5afLQc6c9fWohx23OAhVszx7P681KJYAG3MYD45AvM5nD2/aaXU
XD64wPbiGu6AZ7tbDdwYqB/K2lO6Ftr70nWr28kZE1/uu86H02Y0YzTNchYCEDGcBsFBzIswY98t
cj37nRZCzCqygBX/k51gdpilQZ4spl8EZ3hGvGkEUFS94GavRQ8iJ+sT2Ty5rDXMoVL9IKThVjiz
5pbD3boyl5/7UTmlahqYDAqITJPu+daNZz52KNVKkJ51v7btxTzx2SdSISO2rQaA2z/cjiqVSop/
vGXTKaVftTQ4zZ4Ir2x7EI7baYsUDsUOSi26c8VKSWO5tCunfOjmaRAzt2c6NSDlgXd7MSrrEyuC
GIulEX5pkE7Pdno1YRzkNMKfgF4iURFE7vrfIGkYJEv+oghCtpjBkiyIiyUkTOgy+aSPBfIiKNJF
klEmC+Q5sC+Tw+3kS0h8pVYaxUVwjT1bPCFLr9QKk6iYkd/jwhhUx3Vrn2CqoDoADe+HbiY5EBC3
Z/+45ON8JDCqsUeuURFa3Dr1vjpLs99My3gBnK/WOEA5QPjlorZ8MIhHjDpVuJdQt1pUL3LX/VyT
eoK8l00MC7KVtTqObSPM5XYPBybPfwEexuZT
How do I get this into rePhase? I tried saving as a .rephase file in a text editor I needed to add "rePhase settings" to the top of the file.
Wow! I'll give it a try and post predicted REW results in a moment.

rePhase_v2_OCA.JPG
 
Here's the rePhase filter you created in REW, I'll still run through the calculations and give it a try:
XO_OCA.jpg
 
You can quickly export the wav file from rePhase and use directly in the DSP and test for pre-echo, if it's fine, it will be fine with whatever you add to it in REW.
 
If my theory as per the vertical lines is right, this is gonna be a very echo happy filter :)
Yeah, but it looks a little better than the 98Hz-corrected version I made in several metrics, so going to try and see :) exporting filters to wav files and trying momentarily
 
If my theory as per the vertical lines is right, this is gonna be a very echo happy filter :)
My filter with the 98Hz correction pre-rings a little on Billie Jean. The one you shared adds a couple extra notes between each kick drum lol
 
Your setup(306p+310s), and messurment looks interesting. I also have experience using 305p and 310s in the past.
If you don't mind, could you share your REW mdat(Non EQ, Non correction)?
 
Your setup(306p+310s), and messurment looks interesting. I also have experience using 305p and 310s in the past.
If you don't mind, could you share your REW mdat(Non EQ, Non correction)?
I thought I attached to to the first post, but I guess I need a zip file, let me try again. Hopefully it's attached here.
 

Attachments

  • 2023-10-17_Office_Baseline.zip
    3.3 MB · Views: 78
Back
Top Bottom