Room correction improvement suggestions

dominikz

Member
Joined
Dec 31, 2024
Messages
21
Hello all,

New WiiM user here, but a long time audio enthusiast. :)
I've been testing the room correction feature in my Amp Pro and have noticed what I believe are several areas for improvement. Here's a list (though I assume many of these were already requested by other members):
  1. Room correction should calculate correction filters for the subwoofer range as well (i.e. below the crossover). This is crucial because the sub fully operates in the modal region where several main room resonances will be.
  2. Implement per-channel room correction even when subwoofer output (bass managements) is enabled.
  3. There should be separate controls for the positive (boost) and the negative (cut) gain range of room correction filters (currently both are affected by the same control parameter). This way one could allow deep cut filters, but disallow strong boosts - which saves amplifier headroom and avoids temporal ringing, while still providing audibly very good correction results. My proposal is to have boost gain range =0dB and cut gain range =max by default.
  4. Implement a PEQ setting import function, which supports EQ files generated in REW. This would significantly simplify manual room correction implementation via REW-generated filters; today the filter parameters need to be manually configured in WiiM which is quite tedious and errror-prone.
  5. Implement import of measurement microphone calibration files.
  6. Implement import of custom correction target curves.
  7. Consider using the built-in microphone of the WiiM Voice Remote in the Room Correction feature - assuming the microphone in the remote is consistent enough between units and has sufficient frequency range.
  8. Consider supporting the moving microphone method (MMM) with periodic pink noise for room response measurement, as it is fast and easy to use, gives very repeatable results, and provides a good level of spatial smoothing.
  9. Implement the variable smoothing option when calculating filters - i.e. almost no smoothing at low frequencies (1/48 octave below 100Hz), gradually shifting to very high smoothing at high frequencies (1/3 octave above 10kHz). See variable smoothing in REW as an example. I'd also suggest to use variable smoothing as the default smoothing for room correction filter calculation. Variable smoothing enables accurate correction of sharp room resonances in the low frequencies, while at the same time allowing only smooth tone-shaping above the modal region. This reduces the risk of over-correction.
  10. Consider limiting the correction range to 20Hz-500Hz by default, but with default boost range =0dB. This should better match the modal region in most residential rooms.
  11. Implement simple tone control (individual treble-bass control, or even better a single "slope" control) adjustment that can work even when room correction is active. This could be used to easily tune overall system tonality to taste, or to apply basic on-the-fly correction to bright/dark sounding media content.
Luckily corrections based on the above principles can functionally already be implemented manually with PEQ, but it would be great if a similar correction could be created by using the automated room correction process.
 
Upvote 1
@dominikz Regarding the cut-only option, I guess we would need the option do set the overall target SPL too, so that the entire response can be adjusted relative to the lowest valleys? Either automatically with a lower limit, or the possibility to edit the target curve and move it down relative to the SPL.
 
@dominikz Regarding the cut-only option, I guess we would need the option do set the overall target SPL too, so that the entire response can be adjusted relative to the lowest valleys? Either automatically with a lower limit, or the possibility to edit the target curve and move it down relative to the SPL.
You mean like e.g. in MathAudio Room EQ? Hm, I guess that would only really be needed in the following two cases:
  1. In case WiiM Room Correction automatically set the target level incorrectly (i.e. not aligned with average measured response level).
  2. In case you intend to 'correct' all of the dips in the measured response by EQ - which IMHO is not necessary for good audio quality in most cases; and in any event comes with a couple of important drawbacks:
    • It decreases the overall max volume level (by the same amount you decreased the target level compared to average measured response level).
    • It will cause strong resonances elsewhere in the room at the original dip frequency (i.e. in locations where the original dip didn't exists).
Note that cutting everything except the dip is in effect equivalent to boosting just the dip with positive gain PEQ and reducing pre-gain to compensate.

Addressing strong/wide dips (typically caused by SBIR) should be done by optimizing loudspeaker placement and by integrating a subwoofer (I wrote a little about this here; also covered in this very nice guide by Genelec). If that is done correctly, the remaining dips will be narrow and usually not an audible issue. Then flattening just the in-room response resonance peaks with PEQ is sufficient.

In summary, I guess it wouldn't hurt to have the option to tweak default target level, but I personally don't see it as a crucial feature.
 
You mean like e.g. in MathAudio Room EQ? Hm, I guess that would only really be needed in the following two cases:
  1. In case WiiM Room Correction automatically set the target level incorrectly (i.e. not aligned with average measured response level).
  2. In case you intend to 'correct' all of the dips in the measured response by EQ - which IMHO is not necessary for good audio quality in most cases; and in any event comes with a couple of important drawbacks:
    • It decreases the overall max volume level (by the same amount you decreased the target level compared to average measured response level).
    • It will cause strong resonances elsewhere in the room at the original dip frequency (i.e. in locations where the original dip didn't exists).
Note that cutting everything except the dip is in effect equivalent to boosting just the dip with positive gain PEQ and reducing pre-gain to compensate.

Addressing strong/wide dips (typically caused by SBIR) should be done by optimizing loudspeaker placement and by integrating a subwoofer (I wrote a little about this here; also covered in this very nice guide by Genelec). If that is done correctly, the remaining dips will be narrow and usually not an audible issue. Then flattening just the in-room response resonance peaks with PEQ is sufficient.

In summary, I guess it wouldn't hurt to have the option to tweak default target level, but I personally don't see it as a crucial feature.
I agree that there's no need to cut everything to match the lowest dips, but it could useful to do some overall cuts below average measured response level.

I do have a subwoofer, and it mostly evens out lower bass peaks, but it won't solve my mid/upper bass dips. Those are as you mention most likely caused by SBIR (or possibly other room modes). My room is decently treated (above 200Hz), but it's small and I cannot fit large bass traps, and I also cannot pull out speakers 1 meter into the room. I can pull them out perhaps 2-3 dm, or push them flush to the front wall. But in either case I am going to get very audible, wide dips in the 125-250 Hz region, which results in a thin sound, lacking body. Compensating for this with EQ is not optimal, but it sounds better than not doing anything at least.

But as you also say, cutting everything except dips is equivalent of boosting dips and reducing pre-gain. I would however want the ability to at least limit the gain boost in that case. Today you can set a gain limit per filter only, not limiting total gain. If I limit to +3dB, WiiM will just chain adjacent filters to achieve a boost of whatever gain is needed to match the target curve, so that limit does nothing for total max gain.
 
I agree that there's no need to cut everything to match the lowest dips, but it could useful to do some overall cuts below average measured response level.
But as you also say, cutting everything except dips is equivalent of boosting dips and reducing pre-gain. I would however want the ability to at least limit the gain boost in that case. Today you can set a gain limit per filter only, not limiting total gain. If I limit to +3dB, WiiM will just chain adjacent filters to achieve a boost of whatever gain is needed to match the target curve, so that limit does nothing for total max gain.
It definitely wouldn't hurt to have added flexibility!
I do have a subwoofer, and it mostly evens out lower bass peaks, but it won't solve my mid/upper bass dips. Those are as you mention most likely caused by SBIR (or possibly other room modes). My room is decently treated (above 200Hz), but it's small and I cannot fit large bass traps, and I also cannot pull out speakers 1 meter into the room. I can pull them out perhaps 2-3 dm, or push them flush to the front wall. But in either case I am going to get very audible, wide dips in the 125-250 Hz region, which results in a thin sound, lacking body. Compensating for this with EQ is not optimal, but it sounds better than not doing anything at least.
I hear you, and I'm in a somewhat similar situation.

In this case I personally prefer to push the loudspeakers as close a possible to the wall behind them. That typically pushes the main SBIR dip to about 200-300Hz, which is also a bit easier to treat acoustically.

One thing I sometimes did to combat this SBIR dip with EQ was use a subtractive high-shelf filter with the corner frequency centered in the dip.

E.g. below you see an SBIR dip between 200-300Hz in the uncorrected response (dotted lines).
In REW I used a single high-shelf filter (f=250Hz, Q=0,8, gain=-4dB) to lower the response post the dip to be in line with the dip, and then used only negative-gain PEQ filters to bring down the rest of the peaks in the 20-600Hz range. There are no boosts used at all.
index.php

This works quite well - but unfortunately you again lose max playback level equivalent to the high-shelf cut (in this example -4dB).
 
It definitely wouldn't hurt to have added flexibility!

I hear you, and I'm in a somewhat similar situation.

In this case I personally prefer to push the loudspeakers as close a possible to the wall behind them. That typically pushes the main SBIR dip to about 200-300Hz, which is also a bit easier to treat acoustically.

One thing I sometimes did to combat this SBIR dip with EQ was use a subtractive high-shelf filter with the corner frequency centered in the dip.

E.g. below you see an SBIR dip between 200-300Hz in the uncorrected response (dotted lines).
In REW I used a single high-shelf filter (f=250Hz, Q=0,8, gain=-4dB) to lower the response post the dip to be in line with the dip, and then used only negative-gain PEQ filters to bring down the rest of the peaks in the 20-600Hz range. There are no boosts used at all.
index.php

This works quite well - but unfortunately you again lose max playback level equivalent to the high-shelf cut (in this example -4dB).

I really envy that curve :P

A tilt function on top of RC would be great. I have just started working with REW and I haven't achieved any great results in terms of PEQ yet. Perhaps you have some recommendations for EQ'ing tutorials?

As you can see below, adding a subwoofer tames the huge 45Hz peak a bit, and to some extent the room mode at 70-90 Hz (this is a high level connected Rel subwoofer, so no active bass management and no high pass filtering) It does however do nothing about the 125-200 dip.
After EQ'ing with WiiM (20Hz-4kHz, max gain 6dB, max Q-value 5.5, and decreasing max volume to 90% in order to avoid clipping), it does sound better, although I'd prefer a bit steeper slope, with more (sub) bass. The Harman curve is much too elevated in the bass, I'd like something like 07 octave slope.


472240963_618220314057108_3140273003895692657_n.png

472084393_3364596160336999_546318094041843076_n.png
 
It definitely wouldn't hurt to have added flexibility!

I hear you, and I'm in a somewhat similar situation.

In this case I personally prefer to push the loudspeakers as close a possible to the wall behind them. That typically pushes the main SBIR dip to about 200-300Hz, which is also a bit easier to treat acoustically.

One thing I sometimes did to combat this SBIR dip with EQ was use a subtractive high-shelf filter with the corner frequency centered in the dip.

E.g. below you see an SBIR dip between 200-300Hz in the uncorrected response (dotted lines).
In REW I used a single high-shelf filter (f=250Hz, Q=0,8, gain=-4dB) to lower the response post the dip to be in line with the dip, and then used only negative-gain PEQ filters to bring down the rest of the peaks in the 20-600Hz range. There are no boosts used at all.
index.php

This works quite well - but unfortunately you again lose max playback level equivalent to the high-shelf cut (in this example -4dB).
Does that SBIR dip appear if you only play one speaker? I did some recent measurements with REW for independent L/R room correction and a dip at 160Hz appeared with both speakers playing which wasn't present with left or right playing alone. I am still considering what to do about it.
 
Does that SBIR dip appear if you only play one speaker? I did some recent measurements with REW for independent L/R room correction and a dip at 160Hz appeared with both speakers playing which wasn't present with left or right playing alone. I am still considering what to do about it.
I have a similar issue where it seems like L and R speakers are cancelling each other at a certain frequency. I have to EQ L+R together. Doesn’t look like a phase issue in REW, so not really sure what it is.
 
As you can see below, adding a subwoofer tames the huge 45Hz peak a bit, and to some extent the room mode at 70-90 Hz (this is a high level connected Rel subwoofer, so no active bass management and no high pass filtering)
Honestly, that doesn't sound like a sensible solution to me at all. :(

Look at it this way: Your wasting extra electrical power on your subwoofer just to create partly out-of-phase sound pressure to partly reduce the sound pressure created by your main speakers. That doesn't make sense from an electrical point of view. Neither does it from an acoustical view point. There is a peak, so ideally the cone of your speakers should move less around that frequency. Instead, you're adding another cone that also has to move, although you do not want additional acoustical output, but less of it.

For me this is just another proof that REL's outdated concept doesn't work all that well. Have you tried the WiiM Ultra's subwoofer management instead? The setup procedure described by Genelec and mentioned by @dominikz above does assume proper high pass filtering of the mains along with low pass filtering of the sub. Otherwise the benefits described couldn't materialise.

Doesn’t look like a phase issue in REW, so not really sure what it is.
It might just be a phase issue in reality. :)
 
Honestly, that doesn't sound like a sensible solution to me at all. :(

Look at it this way: Your wasting extra electrical power on your subwoofer just to create partly out-of-phase sound pressure to partly reduce the sound pressure created by your main speakers. That doesn't make sense from an electrical point of view. Neither does it from an acoustical view point. There is a peak, so ideally the cone of your speakers should move less around that frequency. Instead, you're adding another cone that also has to move, although you do not want additional acoustical output, but less of it.

For me this is just another proof that REL's outdated concept doesn't work all that well. Have you tried the WiiM Ultra's subwoofer management instead? The setup procedure described by Genelec and mentioned by @dominikz above does assume proper high pass filtering of the mains along with low pass filtering of the sub. Otherwise the benefits described couldn't materialise.


It might just be a phase issue in reality. :)
I’ve tried active bass management in WiiM, and if we disregard the fact that I’m currently running my WiiM unit with fixed volume into an integrated amplifier’s pre-stage (which controls volume), I couldn’t get a good result. Soundstage shrinks, as do stereo separation. Perhaps I need dual subs.

I’m not sure exactly how Rel does it, but it’s not as simple as phase cancellation. The sub pressurizes the room and evens out the bass response. It might not look like it in the measurements, but bass reaches a lot deeper and soundstage and stereo separation is increased. I’d prefer active bass management as it really makes things simpler, but I can’t seem to get it to sound as good.

As for wasting power, my 2x150 watts into 8ohm is more than enough for my Wharfedale Libton’s without high passing. :)
 
I’ve tried active bass management in WiiM, and if we disregard the fact that I’m currently running my WiiM unit with fixed volume into an integrated amplifier’s pre-stage (which controls volume), I couldn’t get a good result. Soundstage shrinks, as do stereo separation. Perhaps I need dual subs.

I’m not sure exactly how Rel does it, but it’s not as simple as phase cancellation. The sub pressurizes the room and evens out the bass response. It might not look like it in the measurements, but bass reaches a lot deeper and soundstage and stereo separation is increased. I’d prefer active bass management as it really makes things simpler, but I can’t seem to get it to sound as good.

As for wasting power, my 2x150 watts into 8ohm is more than enough for my Wharfedale Libton’s without high passing. :)
It's always about the results, of course.

If you just continue to do more measurements with REW you'll certainly come to see that REL has absolutely nothing magically different to offer but marketing speak. Every subwoofer (when placed correctly) "pressurises" the room. Dual subs can do this even better. The only way to reduce sound pressure when adding a speaker is through cancellation. Also make sure you read the summary @dominikz wrote on the ASR forum.

But again, whatever you like best is right for you.
 
It's always about the results, of course.

If you just continue to do more measurements with REW you'll certainly come to see that REL has absolutely nothing magically different to offer but marketing speak. Every subwoofer (when placed correctly) "pressurises" the room. Dual subs can do this even better. The only way to reduce sound pressure when adding a speaker is through cancellation. Also make sure you read the summary @dominikz wrote on the ASR forum.

But again, whatever you like best is right for you.
Sure, I don’t believe in magic either. :)

I guess you gotta work with what you have sometimes and do what works (sounds) best.

There’s a HT bypass input on my amp, so I could use the WiiM Ultra as a preamp. Too bad I’m already doing this for my AVR. 😅
But it at least gives me the possibility to tinker with bass management and do comparisons.

What I really need is a better room, or to rearrange my current room and setup so that I can optimize speaker placement.

Will read the ASR summary too. 👍
 
Adding a tilt option to room correction, to do the B&K 6dB downward slope from approx 100hz to 20khz would be awesome.
 
Last edited:
I've just submitted a ticket to WiiM for this. Thanks for your help!
WiiM support was really great about this - they identified the root cause and delivered a fix in the latest version of the WiiM Home app (v3.1.1). With the new app version RC filters are now calculated also below the subwoofer crossover frequency (when the Subwoofer Calibration setting is enabled). So that solves item #1 in my original list. :)
I really envy that curve :P

A tilt function on top of RC would be great. I have just started working with REW and I haven't achieved any great results in terms of PEQ yet. Perhaps you have some recommendations for EQ'ing tutorials?
Perhaps you could start with the short guide from this post; just note that outside of the ultra-nearfield listening the 'flat' target is not really appropriate. Instead I suggest to use a 'tilt' roughly matching the slope of the in-room measured response. This 'tilt' target is still a straight line, just with a downward slope. In my case the slope is roughly -0,6dB/oct.

On a high level, I find the following approach consistently produces good results:
  • Use the moving microphone method (MMM) to measure each channel independently, and both together
  • Apply REW variable smoothing to the measured responses
  • Use a downward-sloping line (roughly matching the measured in-room response slope) as the EQ target.
  • Use only negative-gain EQ filters to automatically match the target in REW (i.e. limit both individual and total max boosts to '0' in)
  • Generate EQ corrections for each channel independently
  • Validate post-EQ response with the moving microphone method (MMM), again for each channel independently, and for both together
But for best results, before you apply an EQ correction, it is good practice to optimize loudspeaker placement and subwoofer integration.
This requires a bit of experimentation and experience, but hopefully tips from post #22 can help. As other have suggested, I'd also personally prefer to use the bass management function in WiiM with subwoofer line-level LFE input to optimize the crossover - from my own experience I'm pretty sure that with a combination of speaker/sub placement and crossover parameter optimization (frequency, level, phase and mains/sub timing) you can decrease the severity of the dips.

But if you're already happy with the results you get with your current approach, just enjoy the music and forget about the curves! :)

Does that SBIR dip appear if you only play one speaker?
The measurements shown above are already for individual speakers+sub, just pre- and post-EQ. So the dip is not a result of two speakers interacting - if this is what you meant.
 
The measurements shown above are already for individual speakers+sub, just pre- and post-EQ. So the dip is not a result of two speakers interacting - if this is what you meant.
Yes that is exactly what I meant. In my case after correcting both channels independently a dip appeared at a frequency where neither channel had a dip individually. I am limited in how much I can move the speakers so have just ignored it for now.
 
The 'flat' curve can only be suitable for ultra-nearfield listening, where the loudspeaker direct sound is heavily dominant.
In nearly all other cases some kind of downward-sloping curve is suitable - like e.g. the B&K curve you preferred - and the 'flat' target curve is not suitable. Actually, EQ-ing the in-room response to a flat target would result in a very bright sound with most loudspeakers (in non-ultra-nearfield scenarios).

This is because typical front-firing loudspeakers exhibit rising directivity with frequency - meaning that while low frequencies are omnidirectional, higher frequencies become more and more directional.

In simple words: since low frequencies radiate all around, after bouncing around, more of the low frequency sound energy will reach the listening position compared to high frequency sound energy.

So if you design a front-firing loudspeaker with 'flat' anechoic on-axis response, its in-room measured response will still be downward-sloping.
Since we do room correction based on in-room measured response, the target curve also needs to be downward-sloping to preserve the flat on-axis response.
I wanted to share my experience in room correction so far- objective being to tame my shouty and bright b & w 706 s2 . I have the Wiim only for a week and tinkered with it on the weekend using iPads Mic from my listening position . When I give the frequency range quite wide , e.g., say 20 hz to 20 kHz, the Wiim is having only 10 parameters available and it gave mainly fixes on the bass via room correction. Since my problem is coming from higher frequencies it didn’t really solve my problem . So i clicked pics of the frequency curves Wiim room correction generated and also independently got a frequency curve from a reviewer who had uploaded it online . I uploaded all these curves into ChatGPT and got it to give peq for shouty and bright speakers . Post that it was listening and giving feedback to ChatGPT for further tinkering which gave me workable peq parameters . Will evaluate this over a week and see how it sounds.

Please let me know any other suggestions.
 
Back
Top