A convolution based alternative to electrical loudspeaker correction networks

Hi Jesper,

With these room targets there is no right or wrong. Personally I use a curve that's largely similar to the trained listeners curve as presented by Toole/Harmon:

attachment.php


But as you see there's lots of wiggle room there. Find what you like. But don't forget, you haven't used DRC-FIR yet :).
 

Attachments

  • toolecurve.jpg
    toolecurve.jpg
    52.5 KB · Views: 422
Hello here ;)

I did some listning yesterday with my older son, which have been within this process from the start (younger ears!)...
I must say i like much of it, but i really need some more listning before i get used to it also.
The boy (23years old good kid btw.) would prefer some more power in the bass region, but not near as much as without filters.
I will try another "housecurve" later in progress but still need some more time with this "fluid" (thanks) filter. Also i look forward to see the result when doing some measure.

will be back!

Jesper.
I would image it might take a little bit of time to get used to a different sound if you have been listening to those speakers uneq'd for a while. There was a large amount of boom and some upper frequency boost in your measurements.

You can try some simple shelving filters to boost the bass or cut the highs at different points which make help with preferences.

The impression of bass tends to come from the overall slope, how much bass there is relative to the high frequencies. A steeper slope of 1db/Oct or more could be used as the target in REW and that would likely move in a more bass heavy direction. The slope can also be extended to continue on to a lower frequency. Easy enough to try.

The room makes a difference too, more HF energy in an untreated room can lead to wanting a steeper slope. There is a good track on one of the demonstration discs that has a double bass playing which is very good for checking if the bass is even.
 
Hi... :)

The big boosting bass responce actually makes sense as the speakers have bassvent hole behind and the wall are too close duo to otherwise i can't watch the tv from the corner of the coach :eek:

Also the left speaker are jailed in the corner... have to refurnish perhaps.. (just joking)... Actually the overall sound on my setup is good ;)

Jesper.
 

Attachments

  • IMG_6710.jpg
    IMG_6710.jpg
    507.3 KB · Views: 196
wesayso & fluid :)

But as you see there's lots of wiggle room there. Find what you like. But don't forget, you haven't used DRC-FIR yet .

I tried now to make a target B&K with DRC and it's for sure working ;)... but back to buisiness...

Anyway, i struggled a few day's getting my convolution engine to be used on my laptop so that i can take a measurement with the filter fluid did for me. I do hope i can try it soon.

Jesper.
 
Finally success !

Hi here...

So i finally made it :)
My convolution engine (camilladsp) is running on my laptop so making measurements through filter to confirm the EQ etc... are now possible for me.

The filter EQ fluid helped me with with my old measurements (back of couch) was measured through this filter at point nr. 1 only (back of couch).
The picture LR_fluid_44100 shows the result; measured at 44100 with umik-1.

While i had taking over the living for some time i took new measurements at front of couch (thanks wesayso)... The picture couch_1 shows this, but points are ofcause in front of couch. I also took a Sweet spot measurement (square green spot still at front of couch), this point is where i usually sit, eventhrough is a litte to the left compared to the middle of the speakers. I did apply a link for a .zip file with my new measurements :p
Thoose are taking with 48Khz native umik-1 samplerate without filter ofcause :)

If i compare the measurement, it's easy to see that filters are working, and that the bassboom is decreased when measuring in front of couch.

Very funny and learning this... COOL :D

Front_couch_48000
 

Attachments

  • LR_fluid_44100.jpg
    LR_fluid_44100.jpg
    80.4 KB · Views: 187
  • couch_1.png
    couch_1.png
    95 KB · Views: 174
  • Compare.jpg
    Compare.jpg
    78.8 KB · Views: 77
My suggestion for the next stage would be to use the sweet spot measurement with the filter as the input measurement to DRC. Export the sample rate converted file from Audacity as raw 32 bit float then change the extension to .pcm

gmad's psycho template or 4 cycle setups would probably be a good start. You can then try different target slopes with the corrections and see if you like the results.

If Camilla can run two instances of convolution then you can just add the separate filters there (pre EQ and DRC), if only one then the filters will need to be convolved together.
 
fluid...

My suggestion for the next stage would be to use the sweet spot measurement with the filter as the input measurement to DRC

What filter do you mean i have to add to the sweetspot ? - For now i only did take the measurements in REW...
Do you mean i should make a target curve in REW and make a filter in rePhase and then use this as "preEQ" for DRC? - If this is the case, i still need to learn howto correct the phase(s) for L & R as good as you did.

gmad's psycho template or 4 cycle setups would probably be a good start. You can then try different target slopes with the corrections and see if you like the results.
I should be able to figure that out, until now i just used the GUI, but i see how the scripting gmad made works i think :p

If Camilla can run two instances of convolution then you can just add the separate filters there (pre EQ and DRC), if only one then the filters will need to be convolved together.
I think camilladsp is able to do that, just didn't try it yet!... Otherwise i can convolve them...

Have a good day over there man :)

Jesper.
 
fluid...

What filter do you mean i have to add to the sweetspot ? - For now i only did take the measurements in REW...
Do you mean i should make a target curve in REW and make a filter in rePhase and then use this as "preEQ" for DRC? - If this is the case, i still need to learn howto correct the phase(s) for L & R as good as you did.
You already have a measurement with the filter in place the one shown above labelled fluid umik 1 44100, by using the already EQ'd measurement as the input base measurement in DRC it will have an easier time correcting to whatever target you set. Export the measured impulse from REW (no smoothing or window) and convert it with Audacity to raw 32 bit float, sample rate covert too if needed.

If that was taken at your preferred spot use it if not take it again at that position with the EQ in place.

The EQ file I sent you is being used as "pre EQ" more detailed than necessary for that purpose but it will still work. Because that EQ is embedded into the measurement DRC is using it still needs to be present in the system on playback. Hence the need for two convolvers or convolving the two impulses together.

I made no specific phase changes, all that happened was the flattening of phase by correcting the magnitude response. They are similar between left and right because the magnitudes are similar.

DRC will correct the phase if the template used has that setup, check the step responses before and after DRC. That will show you some of what it has done.

Make more sense?
 
Hello here :)...

Been strugling some with my laptop, mostly usb stuff the camilladsp and REW are not behaving like i would like them to... I did take some measurements with a prefilter i did, but it was not having any effect, but i know it had been working some day's ago, so i can get it to work again.

You already have a measurement with the filter in place the one shown above labelled fluid umik 1 44100, by using the already EQ'd measurement as the input base measurement in DRC it will have an easier time correcting to whatever target you set. Export the measured impulse from REW (no smoothing or window) and convert it with Audacity to raw 32 bit float, sample rate covert too if needed.
I understand this, but the measurement you EQ'ed for me was taking at back of couch so i need to create a new set of filter for my new measurement (sweet spot L&R).
I can do that and i can see that the phaseplot in rePhase is looking good, but i really would like the same target curve as you used, could it be possible to attach this curve here?

The EQ file I sent you is being used as "pre EQ" more detailed than necessary for that purpose but it will still work. Because that EQ is embedded into the measurement DRC is using it still needs to be present in the system on playback. Hence the need for two convolvers or convolving the two impulses together.
I did read a lot of this now, but did not find any answer yet, if i would avoid to have two instanced of camilladsp running how do i convolve the filters like this ::
Prefilter (the one i make now) ----> DRC filter (with gmad's settings) into a final filter?

Thank's here...

Jesper.
 
i really would like the same target curve as you used, could it be possible to attach this curve here?
This is the target settings used in REW
attachment.php


I did read a lot of this now, but did not find any answer yet, if i would avoid to have two instanced of camilladsp running how do i convolve the filters like this ::
Prefilter (the one i make now) ----> DRC filter (with gmad's settings) into a final filter?
You don't necessarily need two instances of camilla just the ability to have two convolutions running in the setup file. Maybe Henrik can tell you if this is possible?

If not then using REW to combine the two with trace arithmetic works. A*B with a level reduction. The filter combined that way will likely be quite long and have more latency than needed. The result can be windowed before being output to get a specific filter length but it does get a little complicated. Another alternative is to use IIR EQ in Camilla for the pre EQ. Generate the EQ with generic and add the settings manually into Camilla. That is what I do but with a VST plugin instead.
 

Attachments

  • REW Target.jpg
    REW Target.jpg
    137.2 KB · Views: 301
fluid / wesayso...

I finally solved my usb problems; case was a faulty usbconnector on the motherboard on my laptop. I desoldered and fixed it. Problem was that both umik mic. and usb-dac needs to be connected directly onto the motherboard for successfull operation. They act weird when connected through a hub or like (i allready knew that dooooh :eek:)

So my journey at the step stairs learning curve can continue now... :)
As i wrote earlier i did take some new measurements, and now that i solved my usb problems i can also see that the fir's through the camilladsp is working as expected.

I have some things going on right now, and the first is that i would follow the path fluid so kindly helps me with.
The idea of combine biquad with fir-filter and use biquad as an pre-correction for DRC is brilliant, so i will dig into this for a while now.

There is something through. In post #674 here, fluid did correct my old measurements real "straith" in REW and thing is i can't correct like this. I allways end up with some bigger dips and bumps out of line with the target curve? - I am only doing autoEQ and adjust the target dB to the "middle" of the curves. But again i cannot make the response "strait". Do i have to do different?

I also tried to generate some filters with DRC-Designer, and for the ease of it and to avoid using wine simulation i digged out some old laptop with windows on to try gmad's scripts, but i am not there yet.
The filters i designed in DRC-Designer is only with the standard ones and a B&K target curve. But sure they can be heard, and as i mentioned earlier my to big bass response is way better with some of the filters i created... very good ;)

Jesper.

Front_couch_48000
 
There is something through. In post #674 here, fluid did correct my old measurements real "straith" in REW and thing is i can't correct like this. I allways end up with some bigger dips and bumps out of line with the target curve? - I am only doing autoEQ and adjust the target dB to the "middle" of the curves. But again i cannot make the response "strait". Do i have to do different?
You have to try different target levels as REW's algorithm will work better higher or lower depending on the curve. I find it hard to predict but it doesn't take long to run a few different tries and see the result.

The Flatness target and maximum boost can have an effect too. Sometimes 1dB Flatness works, other times 2dB or 3dB gives a better result. I'm afraid this is trial and error.

This graph from before shows where I put the target. REW complained about it being too low, click to ignore that and it did a very good job :)

840439d1588545088-convolution-based-alternative-electrical-loudspeaker-correction-networks-avg-target-jpg


REW can save the biquad coeffcients to a txt file, generic might be the best to try first, be sure to match the sample rates though as biquad coefficents will not work at a different rate.

Parametric EQ works better for this if camilla can do that.
 
Hello today dsp fellow's...

fluid i succesfully created a better target now, so some progress there is :)

I feel a little, hmmm... dumb perhaps, but i have two quistions in my head now.
Sorry if it should be obvious, but here it goes...

1.)
If i create an L & R target curve in REW, and the target curve is lower as the measurements say 8 dB, will it then in the end give lower volume on the amplifier?

2.) I created a new, (to just try it out) target curve in REW and saved the filter settings & loaded that in rePhase. In rePhase i then created 32bit mono wav filter at 44100.
The two wav's i converted and ran them through DRC strongfilter with an B&K target.

Is it allright to do that? - Will the EQ from REW (from the rePhase filters) still be present after running it through DRC ?

Jesper. :eek:
 
1. Yes if you use cut in the EQ rather than boost it is likely that you would need to turn your amplifier up to compensate or add a fixed volume gain in the filter or software to get back closer to your original level.

If I was EQing manually I doubt I would set the target that low but REW doesn't work like I do and in this case that is where it worked best.

2. I'm not exactly sure what you did from your description. The Pre EQ if used in the measurement that is fed into DRC must be present in the system at all times. That can be from two separate EQ sections IIR or FIR for the pre EQ and FIR convolution for the DRC filter. The two can be combined together as a single impulse by convolving the impulse responses of the two filters (Pre EQ and DRC) together.

The way I do it is to use a VST Plugin for the pre EQ. I then measure the speakers with the pre EQ in place. This is the measurement that goes into DRC. I then use the DRC correction filter in a convolution engine with the pre EQ VST still running in the background.

So if you don't have the pre EQ running separately or manually convolved into a combined impulse it won't work.
 
Be sure to be in the exact sweet spot and measure/correct each loudspeaker (Left and Right) separately. But you know that already, right?

I use the same workflow as fluid outlines. My pré EQ is loaded in a vst filter within JRiver and has not changed in years. It is there for measurements but stays put after using my FIR file too. In DRC you'll need to have/use a similar target.

To make my life easier, I use a flat target for my correction filter making and use a couple of PEQ's to set my desired target curve. Easy to change, lots of space available in JRiver to make that an option.
 
Hi :)

I get it... i understand now, thanks both!

I'am in for doing this now (which i also posted part of in the CamillaDSP thread)
There are just some small thing's i need to know, which i ask in red below

My workflow should be as this for creating the final result :
1) Measure at sweetspot (excatly in the middle).
2) Create flat and/or with a tiny housecurve target BiQuad with thoose measurements
My understanding here is that i can save the Generec target BiQuad's from REW in all the samplerates i need (fluid this is right yes ???)
3) Apply the BiQuads to Camilladsp, and start camilladsp.
3a) Maybee apply -2dB gain now??? I got this cleared, will add the -dB gain if clipping occours.
4) Measure again same spot with BiQuads in place
5) Create FIR's with thoose measurements
6) Apply the FIR's in camilladsp pipeline, so camilla runs both BiQuad's and FIR in her pipeline

I will create the FIR in DRC, making sure that the measurements are at center and that the highest peak comes first, which also should be peaking positive, otherwise i can invert the signal in my DAC.

But my plan is to make measurements at both noninverted and inverted.
I will measure some nearby places when i'am at it, all measures will be taking at umik-1's 44100 & 48000.

Jesper.
 
Yes you can save generic biquad coefficients from REW at whatever sample rate you need it will then be a matter of being able to auto select those in camilla. That is why PEQ is good it doesn't rely on the sample rate directly like biquads do.

Measuring at the sweet spot at the exact centre between the speakers is a good idea for a single position measurement particularly if you are going to listen from there.

If you are going to listen in the corner seat then I would take a measurement about where you think your head will be and make another correction for there. You can then switch between them as presets depending on where you are listening. In an offset position you can change the level of the Left and right channels to get a better stereo image and balance but that would affect everywhere else too, so having it selectable would be a good idea.

Adding a small level reduction is usually a good idea, if the filter has gain then reduce the level by at least the amount of gain the filter has.

You don't need to invert the phase of your DAC just manually tell DRC where the impulse centre is if it has trouble finding it or setting it correctly. Try auto first but if it doesn't work the parameters to look for in the drc file are BCImpulseCenterMode and BCImpulseCenter, A for Auto M for Manual and then set which sample is the peak. Audacity will tell you that, place the cursor at the peak after zooming in and read the sample position bottom left of the screen.
 
This is very cool :)

I can now run REW generated (Generic EQ) BiQuad's as a Pre-filter in the CamillaDSP engine.

I took some new measurements today, with the suggested places at my comfy couch ;)
Jesper_48khz

I took measurements at 4 places, and while i was at it i took them noninverted also.
The green spot is where i sit mostly.
I have an idea of making this green spot a preset, and then make an average of them all so to have two sets of BiQuad's for the prefiltering. One for critical listning and one for overall so to say. -I will ofcause do the same with the DRC's when i'll get there.
Allmost as you suggested fluid... cool!

Yes you can save generic biquad coefficients from REW at whatever sample rate you need it will then be a matter of being able to auto select those in camilla. That is why PEQ is good it doesn't rely on the sample rate directly like biquads do.
I allready have this in place through an hacked player (squeezelite) and switching camilladsp filters on the fly is working also.

Next goal is to make real good BiQuad's and i think i kindoff need some help with this.
My left's measurements have thoose "dips" which i still cannot correct like you could fluid? - Bellive me i tried 1000 times or more :D with all different settings and target's...

There must be something i do wrong or something i didn't enable or whatever, i donno?

Have a nice weekend here...
Jesper.
 

Attachments

  • Measurement.pdf
    410.9 KB · Views: 70
  • SETUP.png
    SETUP.png
    125.1 KB · Views: 161
  • REW_1.png
    REW_1.png
    100.3 KB · Views: 150